數(shù)據(jù)完整性是數(shù)據(jù)存儲系統(tǒng)中關(guān)鍵的元素之一,對于企業(yè)而言,不一致的數(shù)據(jù)可能導(dǎo)致錯誤的業(yè)務(wù)決策,因此保障數(shù)據(jù)的完整性與一致性至關(guān)重要。
一、靜默數(shù)據(jù)錯誤
在數(shù)據(jù)存儲系統(tǒng)中,數(shù)據(jù)從主機端生成直至寫入SSD NAND中,會經(jīng)過多個部件、多種傳輸通道和復(fù)雜的軟件處理過程,其中任意一個環(huán)節(jié)發(fā)生錯誤都可能會導(dǎo)致數(shù)據(jù)錯誤。但是這種錯誤一般無法被立即檢測出來,而是后續(xù)通過應(yīng)用在訪問數(shù)據(jù)過程中才會發(fā)現(xiàn),這種情況被稱為靜默數(shù)據(jù)破壞(Silent Data Corruption)。
靜默數(shù)據(jù)錯誤問題是存在存儲系統(tǒng)中最難解決的數(shù)據(jù)一致性問題之一。在數(shù)據(jù)通路傳輸過程中,每百萬億(10^13)比特中就會有概率出現(xiàn)bit錯誤,而鏈路傳輸大多采用CRC進行檢錯,CRC存在碰撞概率導(dǎo)致bit錯誤無法發(fā)現(xiàn);在SSD內(nèi)部數(shù)據(jù)傳遞過程中,大部分路徑會經(jīng)過SRAM,SRAM存在bit翻轉(zhuǎn)概率,控制器一般采用ECC+CRC對路徑保護,但仍然無法避免bit靜默錯誤(極低概率)。
對于數(shù)據(jù)中心而言,維護數(shù)據(jù)安全至關(guān)重要。發(fā)生靜默錯誤對應(yīng)用層有很高的風(fēng)險,如果應(yīng)用系統(tǒng)可靠性設(shè)計不完善,一旦出現(xiàn)靜默錯誤,會存在數(shù)據(jù)損壞且不可恢復(fù)的可能,因此支持DIF/DIX特性端到端的數(shù)據(jù)鏈路保護對SSD部件及系統(tǒng)層都十分重要。
二、NVMe SSD端到端保護
為確保主機與閃存之間數(shù)據(jù)的完整性,NVMe SSD提供了一個端到端的功能,即主機寫入閃存的數(shù)據(jù)與最初主機寫的數(shù)據(jù)必須一致,以及主機讀到的數(shù)據(jù)與最初從閃存上讀上來的數(shù)據(jù)也一致。
在OCP Clould Spec對端到端的需求定義中,要求每一段傳輸路徑都應(yīng)有糾/檢錯算法,降低數(shù)據(jù)傳輸過程中每一個環(huán)節(jié)出錯的可能,規(guī)避靜默錯誤的發(fā)生。如PCIe 每個TLP會通過ECRC(End-to-end CRC)進行校驗、RAM有ECC保護、Flash接口有 RAID 保護,Scrambler 增加擾碼以及CRC編解碼保護和LDPC重讀保護。
NVMe則是在控制器內(nèi)添加保護信息(PI)來檢驗數(shù)據(jù)一致性,這部分?jǐn)?shù)據(jù)一般存放在DDR中(DDR有ECC保護)。具體則是給用戶邏輯塊(Logical Block)通過增加額外的8字節(jié)保護信息(PI),或者由主機軟件添加≥8字節(jié)的元數(shù)據(jù)(Metadata),支持DIF/DIX模式,使得控制器和/或主機軟件可以校驗用戶數(shù)據(jù)邏輯塊的數(shù)據(jù)完整性和一致性。
三、什么是PI?
在端到端數(shù)據(jù)保護中,PI的使用尤為重要。PI全稱Protection Information,即保護信息,是元數(shù)據(jù)的一種。
NVMe協(xié)議里定義SSD控制器可以支持給每個邏輯塊(也就是用戶數(shù)據(jù))增加額外的元數(shù)據(jù),以及主機如何使用元數(shù)據(jù)區(qū)域自定義(如分布式文件系統(tǒng)的元數(shù)據(jù)),元數(shù)據(jù)最常見的用途之一是傳遞PI端到端保護信息(end-to-end protection information)。
PI相當(dāng)于邏輯塊數(shù)據(jù)的保鏢,有DIF和DIX兩種數(shù)據(jù)保護機制,兩者主要區(qū)別是 PI 信息的位置不同。具體選擇哪種格式,要根據(jù)應(yīng)用場景的具體需求。
DIF( Data Integrity Field ):保證HBA 、陣列和硬盤的數(shù)據(jù)完整性。
DIF實現(xiàn)的PI
DIX( Data Integrity Extensions ): 保證應(yīng)用、HBA卡的數(shù)據(jù)完整性。
DIX實現(xiàn)的PI
·PI信息的處理
Protection Information Field(PRINFO) 包括PRACT(Protection Information Action)和PRCHK(Protection Information Check) 字段。PRACT指明了PI信息生成的機制,PRCHK指明了controller收到包時檢查的PI信息。
PRACT
=1時,
MD = 8B, SSD controller生成新的PI替代host傳入的PI,并將其寫入NAND;
MD>8B,host生成的PI直接傳入SSD,替換MD的前8或者后8字節(jié)(這里還需要注意kernel是否支持)。
=0時, controller獲取上層應(yīng)用下發(fā)的PI信息,將檢查PI信息并寫入NAND。
PRCHK
Bit2=1,SSD在收到packet時,檢查CRC;
Bit1=1,SSD在收到packet時,檢查App Tag;
Bit0=1,SSD在收到packet時,檢查Reference Tag。
四、憶聯(lián)SSD端到端保護方案
作為一家領(lǐng)先的存儲廠商,憶聯(lián)長期以保障用戶數(shù)據(jù)安全作為產(chǎn)品的核心基礎(chǔ),旗下企業(yè)級固態(tài)硬盤(ESSD)與數(shù)據(jù)中心級固態(tài)硬盤(DSSD)均支持DIF/DIX特性,以此提升硬盤的全鏈路數(shù)據(jù)保護能力。
·延伸至主機系統(tǒng)、應(yīng)用的端到端保護
憶聯(lián)SSD支持多種DIF配置,滿足512+8、4K+8、4K+64字節(jié)多種情況的數(shù)據(jù)和元數(shù)據(jù)(含PI)的存儲要求,支持從應(yīng)用到Flash的端到端數(shù)據(jù)保護,并能有效杜絕data replacement故障發(fā)生的可能。
·端到端冗余校驗,提升數(shù)據(jù)可靠
憶聯(lián)SSD通過保護整個傳輸路徑中的數(shù)據(jù)來保障數(shù)據(jù)的完整性。在DDR內(nèi)存上,采用ECC和CRC來防止DDR內(nèi)存異常導(dǎo)致的數(shù)據(jù)錯誤和篡改;在NAND flash上,采用LDPC和CRC來防止由于NAND flash上的異常而導(dǎo)致的數(shù)據(jù)丟失;在DIE內(nèi),采用 XOR 算法來防止由于 DIE 或隨機故障造成的數(shù)據(jù)丟失。
·應(yīng)用級數(shù)據(jù)冗余校驗 ,且業(yè)務(wù)性能不受影響
憶聯(lián)SSD還通過支持DIF、DIX兩種傳輸方式,不僅在盤內(nèi)提供DPP數(shù)據(jù)路徑保護,更能夠與系統(tǒng)配合,實現(xiàn)端到端的保護,確保從系統(tǒng)到盤片整個通路的數(shù)據(jù)安全,從而為多種極端場景下系統(tǒng)的正常運維提供雙重保護。
數(shù)據(jù)安全一直是信息技術(shù)中的一個重要問題。伴隨著數(shù)字化轉(zhuǎn)型進程的不斷深入,風(fēng)險也隨之而來,企業(yè)數(shù)據(jù)的存儲安全問題也越來越突出。憶聯(lián)憑借在存儲領(lǐng)域多年的積累,為用戶提供極致體驗的同時,更能為企業(yè)數(shù)據(jù)存儲做好堅實的保障。
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
112文章
16379瀏覽量
178271 -
SSD
+關(guān)注
關(guān)注
21文章
2863瀏覽量
117464 -
數(shù)據(jù)存儲
+關(guān)注
關(guān)注
5文章
976瀏覽量
50927 -
存儲系統(tǒng)
+關(guān)注
關(guān)注
2文章
413瀏覽量
40866 -
nvme
+關(guān)注
關(guān)注
0文章
221瀏覽量
22661
原文標(biāo)題:憶聯(lián)SSD端到端數(shù)據(jù)保護技術(shù)——企業(yè)關(guān)鍵業(yè)務(wù)的“守護者”
文章出處:【微信號:UnionMemory憶聯(lián),微信公眾號:UnionMemory憶聯(lián)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論