天天看點

伺服器4塊固态硬碟做raid5,固态硬碟内RAID5技術

提到備援保護,最容易想到的就是RAID(Redundant Arrays of Independent Disks)。它是一種把多塊獨立的實體硬碟按不同方式組合形成一個硬碟組,以此提供比單個硬碟更高的存儲性能和資料備援的技術。該技術在伺服器和存儲陣列産品中廣泛應用。

近年來,随着固态硬碟的使用率上升,提升固态硬碟的性能和可靠性(包括壽命)一直是行業攻關的重點。RAID技術在固态硬碟内已經得到了廣泛應用。關鍵資料多副本,可以看作是RAID1保護,使用者資料更常見的則是使用成本效益較高的RAID5。具體使用什麼RAID級别,一般是根據實際情況進行選擇。DapuStor的HaiShen系列産品就使用RAID5技術為使用者資料提供備援保護,提升可靠性。這裡,我們就将盤内RAID5技術做一個簡單介紹。

RAID5原理

伺服器4塊固态硬碟做raid5,固态硬碟内RAID5技術

資料按條帶分布在不同位置,比如圖中A1~Ap是一個條帶,B1~Bp是另一個條帶,每個條帶中的一份資料(比如A1)叫做條帶單元。每個條帶有一份校驗資料(比如Ap),是以我們一般也稱它為N+1的RAID組。RAID5校驗計算通常采用異或(XOR)算法。現在很多主要也提供RAID5計算的硬體加速功能。

盤内RAID5條帶布局

為了保證任意時候,一個Block或者DIE損壞,不會導緻資料丢失。一個RAID5條帶中的每個條帶單元最好是來自不同的Block和不同的DIE。這種我們一般稱為DIE級别的RAID備援。跟上圖對應,比如A1資料在DIE 1的某個Block,A2資料在DIE2的某個Block。最直覺的組條帶方式就是每個DIE各選一個Block,然後每個Block的相同Page組成一個條帶。各個Block的Page組成RAID5條帶有下面幾種常見布局:

1)固定DIE的布局

伺服器4塊固态硬碟做raid5,固态硬碟内RAID5技術

在組成一個RAID組的Block中,使用一個固定DIE的Block存儲校驗(類似傳統的RAID3),但是組成不同RAID組的Block可以不同。

2)旋轉布局

伺服器4塊固态硬碟做raid5,固态硬碟内RAID5技術

組成一個RAID組的Block中,校驗不固定在某個Block上,而是有規律的旋轉變化(RAID5的旋轉布局有多種方式,此處隻列舉了一種)。

不同的資料布局,會産生不同的盤内資料布局。最直覺的,順序寫後,順序讀,各個DIE或者Block上的壓力模型,在前面提到兩種布局下是不同的。

RAID5資料恢複

如果Host 讀某個Nand Page發生UNC(UNCorrectable)錯誤,這時RAID5恢複的原理是讀這個條帶内其他資料和校驗資料,進行計算,得到期望的資料。

伺服器4塊固态硬碟做raid5,固态硬碟内RAID5技術

盤内RAID的異常處理

RAID5的資料恢複依賴分條的完整性,因為故障可能發生在任何階段,是以資料恢複前必須判斷出校驗的有效性,避免恢複出錯誤資料。

典型場景1:某個Nand Block故障時,這個Block已經在一個寫完成的條帶上,此時RAID其實處于降級狀态,較優的想法是把相關條帶的資料重新放到一個健康的條帶或者重建出故障Block的資料來替換它。

典型場景2:某個Nand Block 故障時,此時還沒有資料寫入,盡量把它從RAID組的Block中剔除,選一個健康的Block替換或者讓目前RAID組從N+1保護轉換成(N-1)+1。

典型場景3:一個條帶單元的資料寫入Nand 過程中發生了Program fail,同時另一個位置的讀又遇到UNC,這些場景在DapuStor的HaiShen系列産品中都有專門處理,保障可以恢複出正确資料。

因為錯誤可能發生在任何時刻,是以其他場景這裡就不一一列舉。

RAID帶來的影響

1.OP(Over Provisioning)空間降低

引入RAID後,有的Nand空間用于存儲校驗資料,間接導緻使用者資料的可用OP空間降低,

2.WA(Write Amplification)變大

因為每個條帶額外寫入了一份校驗資料,是以整個生命周期的WA會增大。

3.性能影響

前面兩點提到的OP變小,寫放大變大,其實最終也都會表現成對性能的影響。另外,一個直覺感受是順序寫和讀的過程,因為每個條帶都有一個DIE沒有提供給Host IO服務,是以性能也必定會有影響。

盤内備援技術發展

RAID5為使用者資料提供了N+1級别的備援保護。随着盤内功能增強,業務對盤内可靠性要求的提高,不同成本和可靠性定位的使用者可能會需要不同備援保護的級别。技術上還有一些更進階别的備援保護:

1.RAID6

相比RAID5的N+1,它提供了N+2的保護。對應在SSD産品中,它當然也會帶來更大的OP損耗。

2.EC(Erasure Coding)

現在分布式存儲時代,多備份和EC相比傳統RAID是更廣泛的應用。EC算法提供了N+M的保護級别,可以有更廣闊的選擇空間。

原文标題:盤内資料備援保護

文章出處:【微信公衆号:大普微】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq