歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

如何應對固態硬盤的突然死機

來源:本站整理 作者:佚名 時間:2019-03-17 TAG: 我要投稿

在前一篇文章《開啟Trim功能后,如何使用工廠訪問模式對固態硬盤驅動器進行映像》一文中,我們提到了固態硬盤驅動器的可靠性一面。不過凡事都有兩面性,你可能知道,固態硬盤用固態電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固態硬盤在接口的規范和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也完全與普通硬盤一致。被廣泛應用于軍事、車載、工控、視頻監控、網絡監控、網絡終端、電力、醫療、航空、導航設備等諸多領域。NAND閃存可以支持有限數量的寫入操作。當今的消費類固態硬盤驅動器的制造商通常會在保修期結束前保證大約150到1200個寫入周期。根據這些事實,我們可以得出這樣的結論:NAND閃存單元可以支持多達1200個寫入周期,而固態硬盤驅動器實際上可以在不考慮其他條件的情況下支持超過1000次完整的重寫。然而,這么說也并不完全正確。因為特定的使用條件和載荷類型會使固態硬盤驅動器的磨損速度明顯快于廠家聲明的耐久性。在這篇文章中,我們將向你說明為什么一個允許良好和各方面都正常的固態硬盤驅動器會在存儲空間剩余98%-99%的情況下突然死機。不過即使固態硬盤驅動器已損壞或未出現在系統中,我們也會提供一些可以恢復數據的工具和方法的建議。
NAND Flash Endurance (閃存耐久性)的期望與現實的差距
一些主要的固態硬盤制造商,如critical和三星,為他們的最新型號提供了5年的有限保修,且這些制造商指定了在保修期內可以寫入固態硬盤驅動器的最大數據量。
NAND Flash寫入前必須擦除, Block擦除1次后再寫入1次稱為1次PE Cycle,Endurance (耐久性)用于衡量NAND Flash的擦寫壽命的可靠性指標;Endurance指的是在一定的測試條件下NAND Flash能夠反復擦寫數據的能力,即對應NAND Flash的PE Cycle。
例如,以下就是Crucial和三星對他們最新型號的固態硬盤系列的保修承諾。

目前已經有獨立研究人員證實了制造商所聲稱的耐久性評級,如果你感興趣,可以閱讀這份TechReport的技術測試報告,雖然此測試的時間已經很久遠了,但其中的發現與最近3DNews.ru正在進行的測試是一致的。TechReport的Geoff Gasior總結說:
這意味著你買的產品,如果實現制造商保證的寫入操作規格,并不值得炫耀。
3DNews對多個固態硬盤型號進行的長期測試也表明,即使是中等水平的固態硬盤驅動器,在閃存開始出現降級跡象之前,也可以重寫數千次。但是,這并不能解釋為什么有些用戶的固態硬盤驅動器在保修期內,僅在固態硬盤重寫了20到30次(這意味著還剩余98%-99%的額定壽命)后,就無法正常運行。
之所以會出現這樣的疑問,是因為如今的TLC閃存不可能在明顯降級的情況下,還會支持數千個寫入周期。實際上,典型的存儲單元可以在開始電荷泄漏(charge leakage)之前,始終支持20到50個寫入或擦除周期。低質量的NAND閃存可能不太穩健,而SLC緩存可以改善寫入周期數,但它們的最終結果是相同的:NAND存儲單元會在保留電子方面變得不太可靠。
那么,這些數字與制造商宣稱的1000多個寫入周期的耐久性有什么關系呢?這些固態硬盤驅動器到底有多可靠呢?讓我們試著找出答案。
說到磨損,每次寫入操作都會對NAND單元造成輕微的損壞。與在MLC或TLC模式下寫入多位數據相比,在SLC模式下寫入一位數據需要的電壓更低。因此,與沒有SLC緩存的低成本固態硬盤驅動器相比,配備SLC緩存的基于MLC或TLC的固態硬盤驅動器可以承受更高的負載(尤其是隨機寫入)。在一些涉及頻繁寫入小塊數據的情況下,使用SLC緩存與不使用SLC緩存的固態硬盤驅動器相比,提高固態硬盤的耐久性可以多達100倍。

經過一定數量的重寫或擦拭周期之后,NAND存儲單元不再能夠進行大規模存儲并開始泄漏電子。不過此時,人們仍然可以在磨損的存儲單元中寫入數據,一旦數據被寫入后,就可以立即被成功讀取。然而,由于存儲單元此時已開始泄漏電子,所以那些成功被讀取的數據僅僅能保留很短一段時間。
讓我們做一個假想的測試,將“1 0 0”寫入TLC單元。寫入完成后,假如我們可以立即讀取該存儲單元,那電荷數量仍然是“1 0 0”。接著,我們關閉固態硬盤驅動器,讓它靜置兩天,然后再打開電源并讀取該單元,此時電荷仍為“1 0 0”。現在讓我們再次關閉電源,這次靜置時間是兩周。在兩周后讀取電荷后,電荷則在處于“0 1 0”水平。再過兩周,電荷是“0 0 1”,接著再過兩周,電荷數量則徹底變為 “0 0 0”。
NAND存儲單元所使用的電池在一定的重寫周期后所保持電荷的時間,是計算耐久性等級的主要標準。目前大多數NAND閃存制造商規定,電池必須在高溫下(例如在數據中心環境中) 至少保持兩周的滿電荷狀態。如果是非高溫狀態,比如家里的常溫下,則要求的時間更長。在規定的滿電荷狀態內,是允許某些存儲單元泄漏電荷的,但這種位錯誤必須通過ECC糾正。
在現實使用場景中,兩周是個可怕的挑戰,有信譽的制造商使用的NAND芯片一般大大超過了這個最低標準。
Data Retention(數據保存力)是用于衡量寫入NAND Flash的數據能夠不失真保時間的可靠性指標,一般定義為在一定的溫度條件下,數據在使用ECC糾錯之后不失真保存在NAND Flash中的時間;影響數據保存力最大的兩個因素是擦寫次數和存儲溫度。通常情況下企業級SSD盤的Data Retention都是遵循JEDEC的JESD218標準,即40℃室溫下,100%的PE Cycle之后,在斷電的情況數據保存力時間要求達到3個月。

以上的圖片來自全球頂級評測網站AnandTech關于固態硬盤數據保存狀態的測試,如果NAND閃存芯片沒有通過固態硬盤 oem的嚴格要求,會發生什么情況?對低成本的低標準NAND芯片的需求從未缺少過。 諸如Kingspec,Smartbuy或Silicon Power等三線制造商會批量購買這種廉價芯片,生產可靠性各不相同的低成本固態硬盤驅動器。或者,制造商仍然可以通過增加存儲塊的數量,以在他們的固態硬盤中使用非標準的NAND芯片,此時,他們所宣稱的固態硬盤的單元容量就較低,例如會主動說明是480 GB而不是500 GB。另一種選擇(主要由critical /Micron采用)是在MLC模式下使用低于標準的TLC芯片,這大大提高了可靠性。將最后兩種方法結合的一個很好的例子是Crucial BX300,這是一個3D MLC驅動器,號稱具有480 GB的存儲容量。

[1] [2] [3]  下一頁

【聲明】:黑吧安全網(http://www.zjtpzs.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        神秘东方电子游艺