引子:不知是哪來的誤導,導致很多人都認為ssd不能多寫入東西,不然很容易損壞。導致有些人甚至擔心到要去留op空間來減少損耗。本期我們來聊聊SSD壽命的那些事。。。
首先,在一切開始之前,你必須瞭解有個東西叫寫入放大,通俗的說就是你寫入的是1g大小檔案,可是nand實際損耗卻大於或者小雨1g。關於這個名詞的專業解釋,我引用pceva浴室大神的一段話,諸位且看:由於快閃記憶體的運作特性,資料不能像在普通機械硬盤裡那樣被直接覆蓋。當資料第一次寫入SSD的時候,由於SSD內所有的顆粒都為已擦除狀態,所以資料能夠以頁為最小單位直接寫入進去(一般是4K,參考顆粒資料),SSD上的主控制器,使用了邏輯和物理的對映系統來管理著快閃記憶體。對於單次操作,最簡單的例子,比如我要寫入一個4KB的資料,最壞的情況就是,一個塊裡已經沒有乾淨空間了,但是有無效資料可以擦除,所以主控就把所有的資料讀出來,擦除塊,再加上這個4KB新資料寫回去,這個操作帶來的寫入放大就是: 我實際寫4K的資料,造成了整個塊(512KB)的寫入操作,那就是128倍放大。同時帶來了原本只需要簡單的寫4KB的操作變成讀取(512KB),擦(512KB),改寫(512KB),造成了延遲大大增加,速度慢是自然了。
說完了寫入放大,我們再分主控來聊聊各類ssd的壽命
1 SandForce,sf主控是壓縮主控,會壓縮磁碟上可壓縮可資料,作為op空間。比如,舉個簡單的例子,假如你要存了一部10mb大小的小說
,當你存進去的時候,主控制器會壓縮資料,假設壓縮了5mb,那麼硬盤裡將有5mb空間空出來了,當然,顯示在你電腦上的還是10mb。那麼剩下5mb就會作為op空間,以減少寫入放大。寫入放大少了,實際寫入快閃記憶體的量就會降低,快閃記憶體壽命較長。然而,也有壞處,假如你寫入的資料是類似高清電影之類的不可壓縮資料,那麼寫入放大將會大於1,而且整體速度明顯小於非壓縮主控。
2 Marvell
m牌主控多為主流ssd所採用,像是浦科特m5pro之類,該主控無壓縮特性,寫入多少就是多少,不能壓縮資料來作為op空間。故此類主控寫入放大會比sandforce大,一般會大於1。該方案的好處就是寫入無需經過壓縮處理,速度會比較快。壞處就是相對於sandforce的ssd,nand寫入量會更多。
3 Intel,Samsung,Jmicro
此類主控因無壓縮特性,在寫入放大方面會和marvell的主控類似,這裡不多講
講完了各類主控的特點,我們再來說說快閃記憶體晶片的壽命
首先必須澄清一點,快閃記憶體製程越小壽命越低,所以50nm製程(已停產)壽命是遠大於目前的19nm製程的。
眾所周知,目前用作快閃記憶體晶片從好到壞分為slc,emlc,mlc,tlc。
SLC
寫入壽命最長,速度最快,據估測大概有100000次擦寫壽命,接近於無限。但是由於成本過高,現逐漸遠離ssd市場。
EMLC
寫入壽命僅次於slc,擦寫次數幾乎是用不完的,但由於成本高,一般作為伺服器級ssd使用。
MLC
寫入壽命中等,視製程不同大約有,3000---10000次擦寫壽命,為主流ssd所採用。
TLC
壽命最差,只有不到1000次,目前僅有三星840,840EVO採用。
計算
按19nm mlc晶片的約2000次擦寫壽命計算,假如你每天需要寫入100GB資料(事實上很少有人這麼高),假設ssd容量為128G(容量越高壽命越長),你至少需要7年才能用完壽命,除去寫入放大等因素,大約是5年左右(這是日均寫入100G的情況計算的),就算是三星的TLC晶片,由於目前主控制器方案的成熟,壽命也是無需擔心的。
問:需要留出N個G不分割槽來延長壽命嗎?
答:不需要,出廠就預留好了,使用者手動預留影響甚微,但是會大量浪費空間。所以,有多大的空間就要全部用起來。
SSD損壞案例及分析:
本次我們分析的是Macbook Air Mid 2012的SSD大規模損壞事件,這是一起典型的韌體設計缺陷問題,在最初版本的韌體中,韌體對快閃記憶體僅是測試版的支援,導致第一批掛盤使用者的產生。然後,Apple Upadte 了韌體到較新的一版,總算對顆粒的支援變為正式支援。但是,另一個重大安全隱患卻被忽略了,這個版本韌體設計上有缺陷。由於mac os的特殊電源管理,導致某個儲存日誌的區域被寫入過多資料,最後導致了溢位,然後就全盤崩潰了。實際上此時快閃記憶體顆粒是完好的。
我順便解釋一下為什麼FD的使用者SSD不安全關機次數那麼多:因為Mac的激進電源管理策略導致的,尤其是睡眠的時候,往往主機還沒對SSD發出斷電指令就先斷電了,這樣SMART裡的不安全關機數就加一。實際上,你完全可以忽略這個資料,幾乎沒有帶來副作用,因此可放心使用。
關於休眠造成的SSD大量寫入問題:
由於部分睡眠模式會把記憶體映象寫入硬碟中,尤其是對大記憶體的朋友來說,單次寫入的量也是可觀的,那麼如何解決呢?
其實只要更改睡眠模式即可,關於更改睡眠模式,詳見該帖雖然文中寫的是Macbook Air,但其他Mac機也可以通用。(記憶體睡眠模式一旦電池沒電會丟失當前資料)
總結:
依據目前SSD損壞的案例,基本都是主控制器韌體損壞,抑或是韌體設計不合理,而因為快閃記憶體晶片壽命問題損壞的非常少,根本無需擔心壽命問題。
So,愛怎麼用怎麼用,盡情迅雷吧。