作者:admin 日期:2023-08-25 瀏覽: 次
【技術(shù)干貨貼】如何實現(xiàn)SSD系統(tǒng)級的可靠性?
SSD系統(tǒng)級可靠性最是那一低頭的溫柔,恰似一朵水蓮花不勝涼風的嬌羞。前傳中講到的Read disturb與Program disturb 屬于架構(gòu)級的可靠性,Data Retention與P/E Endurance屬于物理級的可靠性,這些基本可以歸納為NAND閃存相關(guān)的可靠性??赐昵皞?,咱們進入正傳,介紹一下SSD系統(tǒng)級可靠性的實現(xiàn)手段。也許你有個疑問:SSD中存放數(shù)據(jù)的部分不就是NAND閃存嗎?直接優(yōu)化NAND閃存就可以提高SSD的可靠性了啊,那為什么還要優(yōu)化SSD系統(tǒng)級的可靠性?如果只是針對我們個人電腦的應用,只有一個塊SSD,而且對數(shù)據(jù)安全的要求也不是太苛刻,也就沒有了系統(tǒng)級優(yōu)化的概念了。但是在企業(yè)級數(shù)據(jù)中心,不單單是一塊SSD,而是一個龐大的SSD陣列,并且對數(shù)據(jù)安全性要求很嚴格,這個時候系統(tǒng)級可靠性的優(yōu)化顯得灰常重要。目前SSD系統(tǒng)級可靠性的優(yōu)化主要手段:RAID系統(tǒng)、高速緩存(Caching)、新型SSD。其中,RAID=Redundant Arrays of independent Disks,中文含義為“獨立磁盤冗余數(shù)組”,簡稱“磁盤數(shù)組”。1. RAID系統(tǒng)RAID技術(shù)在基于HDD機械硬盤發(fā)展起來的,RAID技術(shù)主要實現(xiàn)把數(shù)據(jù)分散存儲在不同的硬盤,增加磁盤數(shù)組對失效信息的容忍度。把RAID技術(shù)移植到SSD陣列中同樣適用。雖然SSD內(nèi)部的Wear-leveling和ECC技術(shù)已經(jīng)可以解決大部分的失效信息,但是只能局限于屬于NAND相關(guān)的失效信息。如果是系統(tǒng)造成的失效信息呢?這就需要RAID這個大神出場了。根據(jù)對數(shù)據(jù)安全性能不同要求,RAID也可以分為不同的級別:(1) RAID0級別RAID 0 是速度最快的一種 RAID 模式。它需要至少兩個驅(qū)動器,并且會將數(shù)據(jù)分條到每個磁盤。所有磁盤的可用容量合在一起,成為計算機上的一個邏輯卷。一旦陣列中有一個物理磁盤發(fā)生故障,所有磁盤的數(shù)據(jù)都將不可訪問,因為有部分數(shù)據(jù)已被寫入所有磁盤。RAID 0 是要求最高速度和最大容量的用戶的理想選擇。要處理超大型文件的視頻編緝?nèi)藛T可以使用 RAID 0 來編輯視頻的多個流,以達到最佳播放效果。RAID 0 陣列更適于在頻繁的文件處理(例如視頻編輯)中使用,不宜用作唯一的存儲備份解決方案,也不宜在關(guān)鍵任務系統(tǒng)中使用。(2) RAID1級別RAID 1 是一種安全的 RAID 模式,它至少需要兩個驅(qū)動器,并且驅(qū)動器成對工作。計算機上將安裝一個邏輯卷,兩個驅(qū)動器合并后的可用容量限制為不超過最小磁盤的容量。如果其中一個物理磁盤出現(xiàn)故障,可以立即從第二個磁盤上獲取數(shù)據(jù)。即使一個磁盤出現(xiàn)故障,也不會丟失任何數(shù)據(jù)。在一個磁盤出現(xiàn)故障時,RAID 1 可提供最高的數(shù)據(jù)安全性,但由于數(shù)據(jù)需寫入兩次,因此在寫入時性能會略有下降。在更注重安全性而非速度的情況下,RAID 1 是理想選擇。(3) RAID2級別與RAID3相似,都是將數(shù)據(jù)條塊化分布于不同硬盤上,條塊單位為位或字節(jié)。使用一定的編碼技術(shù)提供錯誤檢索及恢復。由于海明碼的特點,它可以在數(shù)據(jù)發(fā)生錯誤的情況下將錯誤校正,以保證輸出的正確。數(shù)據(jù)傳送速率相當高。天下沒有免費的午餐,要利用海明碼,必須要付出數(shù)據(jù)冗余的代價。輸出數(shù)據(jù)的速率與驅(qū)動器組中速度最慢的相等。RAID2還有個致命的缺點就是需要多個磁盤存放檢查及恢復信息,使得RAID2技術(shù)實施更復雜。因此在商業(yè)環(huán)境中很少使用。(4) RAID3級別RAID 3 使用字節(jié)級別的條帶化技術(shù),并采用專用的奇偶校驗磁盤(下圖中的磁盤 4),因此計算機上會安裝一個卷。RAID 3 陣列能在一個磁盤出現(xiàn)故障的情況下確保數(shù)據(jù)不丟失。如果一個物理磁盤出現(xiàn)故障,該磁盤上的數(shù)據(jù)可以重建到更換磁盤上。如果數(shù)據(jù)尚未重建到更換驅(qū)動器上,而此時又有一個磁盤出現(xiàn)故障,那么陣列中的所有數(shù)據(jù)都將丟失。RAID 3 在要讀取連續(xù)的長文件(如視頻文件)的環(huán)境中可提供良好的數(shù)據(jù)安全性。由于數(shù)據(jù)是從奇偶校驗塊中讀取,因此磁盤故障不會導致服務中斷。RAID 3 適用于那些追求性能并要求持續(xù)訪問數(shù)據(jù)的用戶(如視頻編輯人員)。對于密集使用不連續(xù)文件的用戶來說,RAID 3 并非理想之選,因為專用的奇偶校驗磁盤會影響隨機讀取性能。(5) RAID4級別RAID4與RAID3類似,不同的是,它對數(shù)據(jù)的訪問是按數(shù)據(jù)塊進行的,也就是按磁盤進行的,每次是一個盤。缺點就是在失敗恢復時,它的難度比RAID3大得多,控制器的設計難度也要大許多,而且訪問數(shù)據(jù)的效率不怎么好。(6) RAID5級別RAID 5 綜合了 RAID 0 的條帶化技術(shù)以及陣列數(shù)據(jù)冗余技術(shù)(陣列最少包括三個磁盤)。RAID 3 和 RAID 5 之間的區(qū)別在于,RAID 3 配置提供的性能更高,但總?cè)萘柯缘?。?shù)據(jù)會在所有磁盤之間分條,并且每個數(shù)據(jù)塊的奇偶校驗塊 (P) 寫入到同一條帶上。如果一個物理磁盤出現(xiàn)故障,該磁盤上的數(shù)據(jù)可以重建到更換磁盤上。單個磁盤出現(xiàn)故障時,數(shù)據(jù)不會丟失,但如果數(shù)據(jù)尚未重建到更換驅(qū)動器上,而此時又有一個磁盤出現(xiàn)故障,那么陣列中的所有數(shù)據(jù)都將丟失。RAID 5 綜合考慮了數(shù)據(jù)安全和磁盤空間充分利用這兩方面的因素。由于數(shù)據(jù)是從奇偶校驗塊中讀取,因此磁盤故障不會導致服務中斷。RAID 5 適用于歸檔,且適合那些追求性能并要求持續(xù)訪問數(shù)據(jù)的用戶(如視頻編輯人員)使用。(7) RAID6級別在 RAID 6 中,數(shù)據(jù)會在所有磁盤(最少四個)間進行分條,并且每個數(shù)據(jù)塊的兩個奇偶校驗塊(如下圖中的 p 和 q)寫入到同一條帶上。如果一個物理磁盤出現(xiàn)故障,該磁盤上的數(shù)據(jù)可以重建到更換磁盤上。這種 RAID 模式最多允許兩個磁盤出故障而不丟失數(shù)據(jù),而且它能更快地重建故障磁盤上的數(shù)據(jù)。在驅(qū)動器出現(xiàn)故障時,RAID 6 能進行有效的重建,確保了數(shù)據(jù)的可靠性。為此,安全性要求較高,而性能要求不高的用戶可以選擇 RAID 6。2. 高速緩存(Caching)這個部分的高速緩存與SSD中的DRAM作用是一樣的,在Host發(fā)送一小筆數(shù)據(jù)時,不會馬上寫到NAND閃存,盡量減少對NAND的操作,增加NAND的壽命。3.新型SSD形態(tài)目前在企業(yè)級SSD市場,為了加強SSD壽命和可靠性,當前最火的就是ZNS SSD(Zoned Namespace SSD,即分區(qū)命名空間固態(tài)硬盤)
ZNS的概念也是WD從SMR疊瓦式機械硬盤的基礎上提出,并在多個大廠聯(lián)合推動加入到NVME協(xié)議規(guī)范中,目前已是行業(yè)潮流。
ZNS SSD的核心理念是SSD分區(qū)管理,每個zone區(qū)域只允許順序?qū)懀辉试S隨機寫,盡可能減少寫放大,增加SSD的壽命可靠性。
相關(guān)閱讀:
加權(quán)循環(huán)仲裁WRR特性對NVME SSD性能有什么影響?
存儲隨筆《NVMe專題》大合集及PDF版正式發(fā)布!
燃爆存儲圈的PCIe專題科普貼之PDF版新鮮出爐,拿走不謝!
如果您也想針對存儲行業(yè)分享自己的想法和經(jīng)驗,誠摯歡迎您的大作。投稿郵箱:[email protected] (投稿就有驚喜哦~)