我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

В 過去的材料 我們已經以金士頓硬盤為例考慮過“我們會在 SSD 上應用 RAID 嗎”這個問題,但我們只是在零級別內進行了考慮。 在當前文章中,我們將分析在最流行的 RAID 陣列類型中使用專業和家用 NVMe 解決方案的選項,並討論控制器兼容性。 博通 與金士頓驅動器。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

為什麼需要在 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、電湧保護器甚至電源都可以保護您。

同時,固態硬盤還有一個顯著的優點:即使存儲單元寫壞了,仍然可以從裡面讀出數據,但是如果磁盤損壞了,唉。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

今天,在不同級別的 RAID 陣列中使用 SSD 解決方案是很正常的做法。 最主要的是選擇合適的 SSD,其延遲最小。 理想情況下,使用同一製造商和同一型號的 SSD,這樣您就不會得到支持不同類型負載並基於不同類型的內存、控制器和其他技術構建的驅動器大雜燴。 也就是說,如果我們決定從金士頓購買 16 塊或 XNUMX 塊 NVMe SSD 來創建 RAID 陣列,那麼如果它們都來自同一系列和型號範圍​​會更好。

順便說一句,在 上一篇文章 當我們談到金士頓的 NVMe SSD 時,我們引用 Broadcom 控制器是有原因的。 事實是,這些設備的手冊立即規定了兼容的驅動器(包括上述美國 SSD 製造商的解決方案),控制器可以與之完美配合。 在為 RAID 選擇控制器-SSD 捆綁包時應依賴此信息。

我們分析了金士頓 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。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

在順序讀取速度方面,結果將符合驅動器的特性——3200 MB/s。 但由於兩個 NVMe SSD 都處於工作狀態,因此可以同時從它們讀取數據,這使得讀取操作非常快。 但是寫入速度(號稱2000MB/s)會比較慢,因為每次寫入操作都要執行兩次。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

RAID 1 非常適合小型數據庫或任何其他需要容錯但容量較低的環境。 驅動器鏡像在災難恢復場景(性能略有下降)中特別有用,因為如果陣列中的一個驅動器出現故障,它可以立即“復甦”重要數據。 但由於這種保護級別需要將鏡像數據的存儲容量增加一倍(100 TB 需要 200 TB 的存儲空間),因此許多企業系統使用更經濟的存儲選項:RAID 5 和 RAID 6。

基於金士頓 SSD 和 Broadcom 控制器的 RAID 5

要組織第五級 RAID 陣列,我們至少需要三個驅動器,其上的數據是交錯的(循環寫入陣列中的所有驅動器),但不重複。 在組織它們時,應該考慮到它們更複雜的結構,因為這裡出現了“校驗和”(或“奇偶校驗”)這樣的概念。 這個概念意味著邏輯代數 XOR 函數(也稱為異或),它規定在陣列中至少使用三個驅動器(最多 32 個)。 在這種情況下,奇偶校驗信息被寫入陣列中的所有“磁盤”。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

對於由四個容量為 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的水平。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

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表現出高性能。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

由於 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 更高的寫入性能和更好的數據保護,並且還能夠在其中一個驅動器發生故障的情況下更快地恢復。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

RAID 50 驅動器組將數據分割成更小的塊,然後將其跨每個 RAID 5 陣列分割。RAID 5 驅動器組又將數據分割成更小的塊,計算奇偶校驗,對塊執行邏輯或運算,然後對磁盤組中的每個磁盤執行數據塊寫入和奇偶校驗操作。

雖然如果其中一個驅動器發生故障,性能不可避免地會下降,但它並不像 RAID 5 陣列中那麼重要,因為一個故障只會影響一個陣列,而另一個則可以正常運行。 事實上,如果每個故障“磁盤”位於單獨的 RAID 50 陣列中,RAID 5 最多可以承受八個 HDD/SSD/NVMe 驅動器故障。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

RAID 50 最適用於需要高可靠性且必須處理大量請求,同時保持高數據傳輸速率和比 RAID 10 更低的驅動器成本的應用程序。但是,由於設置 RAID 50 陣列至少需要六個驅動器,成本並沒有完全排除在外。 RAID 50 的一個缺點是,與 RAID 5 一樣,它需要一個複雜的控制器:例如 我們提到的 在上一篇文章中 MegaRAID 9460-16i 來自博通。

還值得注意的是,由於分配了容量來保存奇偶校驗記錄,RAID 50 的磁盤空間使用率低於 RAID 5。 但是,它仍然比其他 RAID 級別具有更多的可用空間,尤其是那些使用鏡像的級別。 由於至少需要六個驅動器,RAID 50 可能是一個昂貴的選擇,但額外的磁盤空間通過保護公司數據來證明成本是合理的。 對於存儲可靠性要求高、請求率高、傳輸率高、存儲容量大的數據,推薦使用這種陣列。

RAID 6 和 RAID 60:我們也沒有忘記它們

既然已經談到了第五、五十級陣列,那麼不提RAID 6和RAID 60這樣的陣列組織方式就太過分了。

我們分享我們的經驗,SSD 在 RAID 框架內的表現如何以及哪個陣列級別更有利可圖

RAID 6 的性能與 RAID 5 類似,但這里至少給兩個驅動器提供了奇偶校驗,這使得陣列可以在兩個驅動器發生故障時存活下來而不會丟失數據(在 RAID 5 中,這種情況是非常不可取的)。 這導致更高的可靠性。 否則,一切都與第五級陣列相同:在一個或兩個磁盤發生故障的情況下,RAID 控制器使用奇偶校驗塊重新創建所有丟失的信息。 如果兩個驅動器發生故障,恢復不會同時發生:首先,第一個驅動器被激活,然後是第二個。 這樣,執行了兩次數據恢復操作。

我們分享我們的經驗,SSD 在 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

添加評論