當前位置:
首頁 > 科技 > 詳解SSD可靠性影響因素、原理和解決方法

詳解SSD可靠性影響因素、原理和解決方法


快閃記憶體技術對大家來說,已經不是什麼新鮮技術。但每個技術從出現到廣泛應用,都需很長的時間跟現有技術進行博弈,最終通過實踐才能深得用戶的認可。快閃記憶體就是一個典型的例子。用戶在欣喜快閃記憶體高性能的同時,也對可靠性、擦寫次數和故障率等問題充滿擔憂。所以,筆者覺得非常有必要通過以下幾點,談談快閃記憶體這方面的問題,緩解大家的疑慮和擔憂。

快閃記憶體介質為什麼會有擦寫壽命的限制?

快閃記憶體介質中,保存數據的基本單元被稱為Cell。每個Cell通過注入、釋放電子來記錄不同的數據。電子在Cell中進出,會對Cell產生磨損;隨著磨損程度的增加,Cell中的電子出現逃逸的概率會不斷增加,進而導致Cell所保存的數據出現跳變。(舉個例子,某個Cell最開始保存的二進位數據是10,一段時間後再讀取該Cell,二進位數據可能就變成了11)。

因為快閃記憶體中保存的數據有一定的概率出現跳變,因此需要配合ECC演算法(Error-Correcting Code)來使用。

寫入數據時,ECC引擎基於原始數據計算出冗餘數據,並將原始數據和冗餘數據同時保存。

讀取數據時,原始數據和冗餘數據一併被讀出,並通過ECC引擎檢查錯誤並糾正錯誤,最終得到正確的原始數據。

快閃記憶體所保存的數據出現跳變的數量,隨著擦寫次數的增加而增加。當擦寫次數達到一定的閾值後,快閃記憶體中保存的數據出現跳變的數量會增大到ECC引擎無法糾正的程度,進而導致數據無法被讀出。這個閾值就是快閃記憶體的最大擦寫次數。

LDPC演算法為什麼可以提升快閃記憶體的擦寫壽命?

快閃記憶體所保存的數據,在保存一段時間後,會出現跳變;且出現跳變的數量,隨著擦寫次數的增加而增加。因此,SSD內部需要有ECC引擎進行數據檢錯和糾錯。

在SSD領域,當前標準的ECC演算法是BCH演算法(該演算法以三位作者的名字首字母命名),可以滿足絕大多數SSD的糾錯需求。快閃記憶體介質所宣稱的最大擦寫次數,就是基於BCH演算法來給出的。

但隨著TLC介質和3D NAND的普遍應用,同樣的數據塊,其壽命末期的出錯率將會大大增加,BCH編碼的糾錯能力顯得非常無力,這也使得LDPC糾錯演算法在SSD領域有了用武之地。

LDPC演算法是一個糾錯能力很強的演算法(相比BCH,可以糾正更多的數據跳變),複雜度較高,最早應用於通信行業。

1963年Gallager的一篇名為Low Density Parity Check Codes>的論文詳細描述了該演算法思想,從此LDPC就此誕生,LDPC 編碼已經廣泛應用於光通信、衛星通信、通信等領域,可以說是一套非常成熟的糾錯演算法。


SSD的高性能是如何體現的?

存儲系統的性能主要體現在兩個指標上,一個是IOPS代表每秒存儲處理的IO數量,另一個是時延代表存儲接收到IO之後處理的速度。

上表為SSD和傳統HDD的性能對比,我們可以看出無論從IOPS還是從時延角度SSD均遠遠好於HDD。

從IOPS角度一塊SSD提供的IOPS,需要60塊左右高性能HDD才能達到相同的IOPS,但是從時延角度SSD的低時延是HDD無法提供的。

聽說SSD寫幾千次就壞了,這是真的嗎?

當然這不是真的。SSD在處理數據寫入時,每次都寫到新的物理地址,從而使得所有的快閃記憶體物理空間被均勻使用。

舉個例子,假設一塊600GB的SSD,其快閃記憶體介質寫次數為1萬次,那麼該SSD可以寫入的數據總量達到6PB (600GB*10000)。

而業界對大量企業級硬碟的研究數據顯示,應用在企業級環境中的硬碟,整個生命周期的寫入數據總量是有限的。假設以單盤寫入小於200TB為例,這意味著這塊600GB的SSD磁碟,可以使用近十年以上。

所以,即便SSD所採用的快閃記憶體介質只能寫入幾千次或者幾萬次,但是將快閃記憶體做成SSD之後,完全滿足企業級應用的需求。

SSD壽命由哪些因素所決定?

SSD的壽命一般是指其所使用的快閃記憶體顆粒可以承受的磨損壽命。SSD內部的其他器件不會成為整盤壽命的限制或瓶頸,一般不會成為壽命的短板。為了延長SSD磨損壽命,大多數廠商採用如下方法。

1、提供冗餘(Over Provisioning)。舉個例子,一塊100GB容量的SSD,其內部的快閃記憶體顆粒的物理容量是大於100GB,企業級SSD一般可以達到128G或者更多,超出的那部分就被稱為冗餘。

2、採用較好的部件。如更好的顆粒、更好的控制晶元等。舉例,SLC快閃記憶體顆粒的最大擦寫次數優於MLC,而MLC又優於TLC。

SSD的壽命與所採用的快閃記憶體冗餘度、顆粒類型器件也有很大關係,所採用快閃記憶體的冗餘越大,壽命越長。採用快閃記憶體的顆粒類型越好,壽命越長。採用控制晶元糾錯能力越強,壽命越長。

SSD壽命並非單純取決於快閃記憶體的類型,而是多個因素綜合作用的結果。通過充裕的容量冗餘、強力的LDPC糾錯演算法,可以滿足各種企業級應用需求。


導致SSD發生故障的原因一般有哪些?

導致SSD的故障原因主包括快閃記憶體介質故障、硬體故障、軟體故障等。相比HDD,SSD沒有機械部件,因此對運行環境各方面的要求更低,滿足HDD正常運行的環境完全可以滿足SSD正常運行,並且在如在地鐵、艦船等振動環境下,SSD更能發揮其穩定可靠地優勢,保持業務穩定運行。


SSD故障後數據是否可以恢復?

SSD和HDD雖然技術原理有所不同,但是在多數故障場景下,可以通過排除故障點,對故障SSD的數據進行部分或全部恢復。這一點上SSD與HDD相類似。

1、當快閃記憶體介質失效時,如果SSD內部出現了部分快閃記憶體介質失效,進而導致SSD故障,那麼此時與HDD內部磁碟發生了物理傷害的情況是類似的,可以對故障部分進行隔離,進而恢復其他數據。

2、當其他硬體失效時,如果SSD出現了除快閃記憶體介質之外的其他硬體器件失效,進而導致SSD故障,那麼可以通過替換失效的硬體器件,對數據進行部分或全部恢復。

3、當SSD發生軟體故障時,軟體故障可以通過升級軟體來恢復部分或全部數據。

4、針對數據安全擦除,實際上不屬於SSD故障。在對SSD執行了全盤安全擦除後,數據無法恢復,SSD的數據安全擦出不必像HDD一樣必須物理銷毀。

熱文閱讀

溫馨提示:

Stay hungryStay foolish


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

什麼是SAP HANA?方案設計和部署關鍵點解析
淺析PureStorage業界首款AI存儲系統AIRI

TAG:架構師技術聯盟 |