歡迎光臨
每天分享高質量文章

詳解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一樣必須物理銷毀。

      好了,今天的分享到此為止,關於更多快閃記憶體深度知識,請參看前期詳細總結分享過<Flash快閃記憶體顆粒和工藝知識深度解析>文章。另外,筆者對本號涉及的技術做了總結和彙總(20+本打包),請點原文連結或識別小程式獲取電子書詳細資訊。

熱文閱讀



溫馨提示:

請搜尋“ICT_Architect”“掃一掃”二維碼關註公眾號,點選原文連結獲取更多技術資料

Stay hungry Stay foolish

贊(0)

分享創造快樂