В
為什麼需要在 SSD 上進行 RAID?
基於 SSD 的存儲陣列相對於 HDD 存儲陣列的優勢包括更快地訪問驅動器上的數據和卓越的讀/寫性能。 然而,理想的基於 SSD 的 RAID 性能需要處理器、高速緩存、軟件和硬件的最佳組合。 當所有這些因素完美結合時,SSD RAID 可以大大優於使用傳統 HDD 的類似配置。
典型的 SSD 比 HDD 消耗更少的功率,因此當您在 RAID 陣列中組合大量 SSD 時,與 HDD RAID 陣列相比的能源節省也可以轉化為更低的企業能源賬單成本。
然而,SSD RAID 有局限性和缺點,特別是與同等容量的硬盤驅動器相比,每 GB 空間的價格更高。 並且閃存故障之間的時間限制在一定數量的重寫週期內。 也就是說,SSD 驅動器有一定的使用壽命,這取決於操作:覆蓋的信息越多,驅動器失效的速度就越快。 另一方面,企業級 SSD 的使用壽命可與機械硬盤相媲美。
金士頓固態硬盤如何在 RAID 模式下與 Broadcom 控制器一起使用
在 SSD 的早期,RAID 設計有很多細微差別。 包括由於使用容錯性較低的 HDD。 固態驅動器比基於磁盤的對應驅動器可靠得多。 眾所周知,SSD 解決方案中沒有活動部件,因此機械損壞降至零。 固態驅動器因電湧而發生故障的可能性也不大,因為在家用 PC 和任何服務器級別,UPS、電湧保護器甚至電源都可以保護您。
同時,固態硬盤還有一個顯著的優點:即使存儲單元寫壞了,仍然可以從裡面讀出數據,但是如果磁盤損壞了,唉。
今天,在不同級別的 RAID 陣列中使用 SSD 解決方案是很正常的做法。 最主要的是選擇合適的 SSD,其延遲最小。 理想情況下,使用同一製造商和同一型號的 SSD,這樣您就不會得到支持不同類型負載並基於不同類型的內存、控制器和其他技術構建的驅動器大雜燴。 也就是說,如果我們決定從金士頓購買 16 塊或 XNUMX 塊 NVMe SSD 來創建 RAID 陣列,那麼如果它們都來自同一系列和型號範圍會更好。
順便說一句,在
我們分析了金士頓 SSD 在最流行的 RAID 類型中的工作 - “1”、“5”、“10”、“50”
因此,“零”RAID 級別不提供數據冗餘,而只是提高性能。 RAID 0 根本不提供任何數據保護,所以我們不會在企業部門考慮它。 另一方面,RAID 1 提供完全冗餘但僅提供適度的性能提升,因此如果在構建 SSD RAID 陣列時性能提升不是主要考慮因素,則應予以考慮。
基於金士頓 SSD 和 Broadcom 控制器的 RAID 1
因此,基於 Broadcom MegaRAID 9460-16i 控制器的一級 RAID 陣列結合了 32 到 1000 個金士頓驅動器,它們是彼此的副本,並提供完全冗餘。 如果說在使用傳統 HDD 時,寫入和讀取數據的速度保持在這個 HDD 的水平,那麼使用 NVMe SSD 解決方案,我們將獲得十倍的性能提升。 特別是在數據訪問時間方面。 例如,在服務器 RAID 2 中使用兩個金士頓 DC1M U.350 NVMe SSD,我們獲得 000 隨機讀取 IOPS 和 75 寫入 IOPS。
在順序讀取速度方面,結果將符合驅動器的特性——3200 MB/s。 但由於兩個 NVMe SSD 都處於工作狀態,因此可以同時從它們讀取數據,這使得讀取操作非常快。 但是寫入速度(號稱2000MB/s)會比較慢,因為每次寫入操作都要執行兩次。
RAID 1 非常適合小型數據庫或任何其他需要容錯但容量較低的環境。 驅動器鏡像在災難恢復場景(性能略有下降)中特別有用,因為如果陣列中的一個驅動器出現故障,它可以立即“復甦”重要數據。 但由於這種保護級別需要將鏡像數據的存儲容量增加一倍(100 TB 需要 200 TB 的存儲空間),因此許多企業系統使用更經濟的存儲選項:RAID 5 和 RAID 6。
基於金士頓 SSD 和 Broadcom 控制器的 RAID 5
要組織第五級 RAID 陣列,我們至少需要三個驅動器,其上的數據是交錯的(循環寫入陣列中的所有驅動器),但不重複。 在組織它們時,應該考慮到它們更複雜的結構,因為這裡出現了“校驗和”(或“奇偶校驗”)這樣的概念。 這個概念意味著邏輯代數 XOR 函數(也稱為異或),它規定在陣列中至少使用三個驅動器(最多 32 個)。 在這種情況下,奇偶校驗信息被寫入陣列中的所有“磁盤”。
對於由四個容量為 500 TB 的金士頓 DC3,84R SATA SSD 組成的陣列,我們得到 11,52 TB 的空間和 3,84 TB 的校驗和。 如果將 16 個容量為 1000 TB 的金士頓 DC2M U.7,68 NVMe 驅動器組合成一個 115,2 級 RAID,我們將學習 7,68 TB,損失 5 TB。 如您所見,驅動器越多,最終效果越好。 這也更好,因為 RAID 0 中的驅動器越多,整體寫入性能就越高。 並且線性讀取會達到RAID XNUMX的水平。
RAID 5 磁盤組提供高吞吐量(特別是對於大文件)和冗餘,同時將功率損耗降至最低。 這種類型的數組組織最適合同時執行許多小型輸入/輸出 (I/O) 操作的網絡。 但是你不應該將它用於需要對小塊或小塊進行大量寫操作的任務。
還有一個細微差別:如果至少一個 NVMe 驅動器發生故障,RAID 5 將進入降級模式,而另一個存儲設備的故障可能對所有數據都至關重要。 如果陣列中的一個驅動器出現故障,RAID 控制器會使用奇偶校驗信息來重新創建任何丟失的數據。
基於金士頓 SSD 和 Broadcom 控制器的 RAID 10
因此,RAID 0 為我們提供了速度和訪問時間的兩倍增長,而 RAID 1 提供了可靠性。 理想情況下,它們會結合在一起,此時 RAID 10(或 1 + 0)可以派上用場。 “十”由四個 SATA SSD 或 NVMe 驅動器(最多 32 個)組成,表示一個“鏡像”陣列,其中的驅動器數量必須始終是四的倍數。 該陣列中的數據是使用固定塊分區(如 RAID 0 的情況)和驅動器之間的條帶化寫入的,將副本分佈在 RAID 1 陣列中的“驅動器”上。並且能夠訪問多個驅動器組同時,RAID 10表現出高性能。
由於 RAID 10 能夠跨多個鏡像對分割數據,這意味著它可以容忍一對中的一個驅動器發生故障。 但是,如果兩個鏡像對(即所有四個驅動器)都發生故障,則不可避免地會丟失數據。 結果,我們也獲得了良好的容錯性和可靠性。 但請記住,與 RAID 1 一樣,第十級陣列僅使用總容量的一半,因此是一種昂貴的解決方案。 而且設置起來也很麻煩。
RAID 10 適用於需要鏡像磁盤組 100% 冗餘的數據倉庫,以及 RAID 0 提高的 I/O 性能。它是中型數據庫或任何需要更高容錯性的環境的最佳解決方案比 RAID 5。
基於金士頓 SSD 和 Broadcom 控制器的 RAID 50
類似於 5 級 RAID 的組合陣列,它是由 50 級陣列構建的 5 級陣列。 和以前一樣,該陣列的主要目標是在保持 RAID XNUMX 陣列的數據可靠性的同時實現雙倍性能。與此同時,RAID XNUMX 在驅動器發生故障時提供比標準 RAID XNUMX 更高的寫入性能和更好的數據保護,並且還能夠在其中一個驅動器發生故障的情況下更快地恢復。
RAID 50 驅動器組將數據分割成更小的塊,然後將其跨每個 RAID 5 陣列分割。RAID 5 驅動器組又將數據分割成更小的塊,計算奇偶校驗,對塊執行邏輯或運算,然後對磁盤組中的每個磁盤執行數據塊寫入和奇偶校驗操作。
雖然如果其中一個驅動器發生故障,性能不可避免地會下降,但它並不像 RAID 5 陣列中那麼重要,因為一個故障只會影響一個陣列,而另一個則可以正常運行。 事實上,如果每個故障“磁盤”位於單獨的 RAID 50 陣列中,RAID 5 最多可以承受八個 HDD/SSD/NVMe 驅動器故障。
RAID 50 最適用於需要高可靠性且必須處理大量請求,同時保持高數據傳輸速率和比 RAID 10 更低的驅動器成本的應用程序。但是,由於設置 RAID 50 陣列至少需要六個驅動器,成本並沒有完全排除在外。 RAID 50 的一個缺點是,與 RAID 5 一樣,它需要一個複雜的控制器:例如
還值得注意的是,由於分配了容量來保存奇偶校驗記錄,RAID 50 的磁盤空間使用率低於 RAID 5。 但是,它仍然比其他 RAID 級別具有更多的可用空間,尤其是那些使用鏡像的級別。 由於至少需要六個驅動器,RAID 50 可能是一個昂貴的選擇,但額外的磁盤空間通過保護公司數據來證明成本是合理的。 對於存儲可靠性要求高、請求率高、傳輸率高、存儲容量大的數據,推薦使用這種陣列。
RAID 6 和 RAID 60:我們也沒有忘記它們
既然已經談到了第五、五十級陣列,那麼不提RAID 6和RAID 60這樣的陣列組織方式就太過分了。
RAID 6 的性能與 RAID 5 類似,但這里至少給兩個驅動器提供了奇偶校驗,這使得陣列可以在兩個驅動器發生故障時存活下來而不會丟失數據(在 RAID 5 中,這種情況是非常不可取的)。 這導致更高的可靠性。 否則,一切都與第五級陣列相同:在一個或兩個磁盤發生故障的情況下,RAID 控制器使用奇偶校驗塊重新創建所有丟失的信息。 如果兩個驅動器發生故障,恢復不會同時發生:首先,第一個驅動器被激活,然後是第二個。 這樣,執行了兩次數據恢復操作。
很容易猜到,如果說RAID 50是level 60陣列的level 6陣列,那麼我們剛才講的RAID 50就是level 8陣列的level 16陣列。 也就是說,這種 RAID 存儲組織允許您在每組 RAID XNUMX 驅動器中的兩個 SSD 的損失中倖存下來。操作原理類似於我們在 RAID XNUMX 部分中談到的那個,但是失敗的次數是一個XNUMX 級陣列可以承受從 XNUMX 個驅動器增長到 XNUMX 個驅動器。 通常,此類陣列用於對容錯性要求較高的在線客戶服務。
我們總結一下:
雖然鏡像比 RAID 50/60 提供更多的容錯能力,但它也需要更多的空間。 由於數據量翻倍,您實際上只能獲得安裝在服務器中的驅動器總容量的 50% 用於記錄和存儲信息。 在 RAID 50/60 和 RAID 10 之間進行選擇很可能取決於可用預算、服務器容量和您的數據保護需求。 此外,當我們談論 SSD 解決方案(企業級和消費級)時,成本就顯得尤為突出。
同樣重要的是,我們現在確信基於 SSD 的 RAID 是一種完全安全的解決方案,也是當今企業的常規做法。 作為家庭使用的一部分,如果預算允許,也有轉向 NVMe 的理由。 如果您仍然有疑問,為什麼需要所有這些,請返回文章開頭 - 我們已經詳細回答了。
本文是在我們 Broadcom 同事的支持下編寫的,他們向金士頓工程師提供他們的控制器,用於使用企業級 SATA/SAS/NVMe 驅動器進行測試。 由於這種友好的共生關係,客戶在生產時不必懷疑帶有 HBA 和 RAID 控制器的金士頓硬盤的可靠性和穩定性。
有關金士頓產品的更多信息,請訪問
來源: www.habr.com