SSD數據可靠性問題分析

前幾個月對近兩年FacebookGoogle發表的兩篇SSD故障分析的文章進行了閱讀,並進行了整理。Google的在今年的FAST會議上發表了《Flash Reliability in Production: The Expected and the Unexpected》,在這篇文章中通過收集長達六年的數據對SSD可靠性進行了研究,並且對比了SSDHDD之間的可靠性差別。Facebook2015年發表了《A Large-Scale Study of Flash Memory Failures in the Field》,同樣通過大數據的方式對Flash的故障進行了長時間的分析。這些研究工作實際上都在追問SSD在企業級應用的一些問題:SSD在實際的數據中心中是否可以安全部署?爲了讓SSD在數據中心大規模部署,我們還需要做哪些工作?

 

Google的研究中對UEUncorrectable Error)進行了深入的研究分析。大家知道NAND Flash介質是不可靠的,經常會出現錯誤,用着用着就有可能遇到位錯誤,這是常態。尤其是15nm製程以及TLC/QLC的推廣,使得NAND FlashBit Error問題變得更加嚴重。SSD一個重要的職責就是糾正這些Bit Error,讓不可靠的NAND Flash變成可靠的SSD存儲盤。

 

但是,儘管SSD內部具有強大的BCH或者LDPC編解碼單元,以及RAIN等條帶化數據保護機制,但是還是不可避免的發生UE這樣的錯誤。NAND Flash發生故障,可以通過ECCRAIN或者Firmware等手段解決,這類錯誤被稱之爲Correctable Error,屬於Transparent Error的範疇,這類錯誤不會對應用產生影響。SSD內部機制無法解決的錯誤,那麼這類錯誤將會對業務產生影響,被稱之爲UE,屬於Non-Transparent Error範疇。對於UE故障,Google通過連續4年的數據表明,20% 20~63%)的SSD遇到會發生UE,這種UE在業務層表現爲Bad Sector;和磁盤對比,在32月的時間內,3.5%的傳統磁盤會遇到Bad Sector。這也就說明SSD在數據局部損壞方面會遠遠高於HDD,大致對比如下:


wKiom1fih1XR-c97AABEGLfgDIg539.jpg

除了觀察局部損壞故障之外,用戶還會比較關注SSD的整盤損壞。Google的研究數據告訴我們,在4年的時間內,SSD的整盤更換率爲4~10%,而傳統機械磁盤的年更換率爲2~9%。從這點上來看SSD的整盤故障更換率要比HDD低很多。這也表現爲一旦SSD上線之後,比磁盤要具備更低的更換率,可以大大簡化系統運維。


wKioL1fih1aDfJF5AAEKH48F1p0783.jpg


對於具體的錯誤類型,從上圖我們可以看出,在Non-Transparent Error這塊,絕大部分錯誤都是Uncorrectable Error,也就是讀操作時發現bad sector,導致數據丟失。並且在大規模部署的情況下,這種錯誤導致的影響還是非常嚴重的。

 

除了分析SSD盤對外表現出來的局部以及整體故障之外,Google還對SSD數據可靠性因素進行了分析,影響SSD數據可靠性的因素大致有如下幾點:

1,  SSD磨損(Wear Out

2,  SSD技術類型(MLCTLC

3,  製造工藝

4,  使用時間(Age

5,  溫度

 

比較有意思的是,SSD的數據可靠性與使用時間相關,而不僅是使用壽命。如果一塊盤在沒有使用的情況下長時間存放,那麼該盤的數據故障率要比一塊新盤高。如下圖所示:


wKiom1fih1az1mIQAABeYSkOQcU980.jpg


對於一個全新的舊盤,由於長時間存放之後,SSD內部NAND Flash所產生的出錯位數明顯增加。這也說明SSD的數據可靠性與時間相關。此外,不同的製造工藝對SSD的數據可靠性也會產生重要影響,下圖對比了不同NAND類型以及不同製造工藝情況下的數據可靠性:


wKiom1fih1ewqmrtAAClNPeivmw598.jpg


總體來講,從Google的統計數據我們可以發現SSD的故障模型和HDD相比發生了重要變化。SSD在整盤故障方面要優於HDD;但是在局部故障方面,SSD明顯故障率要高於HDD。因此,在大規模部署SSD的情況下,上層的應用軟件還是需要考慮SSD存儲的容錯機制,防止數據在SSD中丟失。由於SSD故障模型的變化,上層軟件的容錯機制也需要做出調整,適應SSD大量局部故障的問題。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章