今天的話題是企業級固態硬盤和斷電保護功能。這個功能到底有怎樣的作用,我們選購固態硬盤的時候是否應將這個功能其納入考慮范圍呢?
斷電保護是作什么用的?
斷電保護幾乎是企業級固態硬盤的標配功能,它的作用是在發生意外斷電(非正常關機)時,保護板載DRAM緩存中的數據不致丟失。
企業級固態硬盤示例,圖片來自鎧俠,即原東芝存儲
由于固態硬盤的DRAM緩存中除了用戶讀寫的數據緩存之外,還包含了相當大容量的FTL閃存映射表,這張虛擬表對固態硬盤工作極為重要,一旦丟失的話固態硬盤就會變磚(無法被識別)。
FTL閃存映射表的作用
下圖是東芝HK3R企業級固態硬盤拆解,圖片來自TweakTown,左側兩個大電容就是它的斷電保護用儲能電容。為了實現斷電保護,不僅需要添加電容,還要有相關的升降壓元件、電壓檢測以及固件控制邏輯。
企業級固態硬盤 圖片來源:Tweaktown
按照東芝的介紹,完整的斷電保護其實分為兩部分:PFM(電源故障管理)和PLP(斷電保護)。PLP主要是指儲能電容和相關電路。PFM更多是固件算法和控制邏輯,包括檢測電壓下降水平,并決定何時將供電轉移到儲能電容應急供電,將DRAM緩存中的數據安全寫入NAND閃存,避免意外損壞。PFM還會將FTL閃存表同時備份在兩個不同的NAND閃存芯片上,防止某顆閃存損壞而失去全部備份。
斷電保護功能中的供電切換
有電容不等于萬無一失:
斷電保護的儲能電容只是一個硬件基礎設施,能不能做到完整的保護還取決于主控硬件結構,以及固件中與之相對應的軟件算法是否足夠健壯、是否經過了充分的驗證,能夠應對各種邊角案例,并不是只要肯加電容就能保安全。
歷史上Intel 320系列就沒能通過鉭電容根治它的祖傳8M掉盤毛病:這是主控架構上的缺陷,不那么容易修好的。后來英特爾開始在消費級固態硬盤上換用其他公版定制方案(先是SandForce,SandForce沒落后又換成SMI慧榮),也算跳出了8M這個坑。
Intel 320中的儲能電容 圖片來源:Anandtech
歷史上還有一些消費級固態硬盤也有斷電保護電容,但是容量比較小,僅僅能保護FTL數據(避免掉盤變磚),而顧不得DRAM緩存中其他用戶數據,可以被稱之為“基礎版本的斷電保護”。典型的例子有美光MX300、OCZ Vector 180等,基本都是一些老型號了。
MX300中的小電容僅能保護FTL
下圖中的OCZ Vector 180原本設計階段是準備做完整斷電保護的,當時媒體曝光的PCB上有6顆大電容:
工程樣品階段的VT180 圖片來源:techpowerup
但最后上市版本是只具備基礎斷電保護(僅FTL)能力的單電容形式:
最終上市的VT180 圖片來源:Anandtech
為什么Vector 180虎頭蛇尾?是負擔不起區區5顆電容的成本嗎?并不是。即便固態硬盤擁有完整斷電保護,所能保障的也僅僅是斷電發生的瞬間已經存儲在固態硬盤DRAM緩存內的數據,而對于沒有及時保存的文檔以及Windows系統寫入緩存(位于電腦主內存中)里的數據這些都是無能為力的。
SSD斷電保護給不了你全部的安全
要想獲得全面的數據安全保障,絕不僅僅是購置一塊具備完整斷電保護的SSD或者給電腦裝一個UPS不間斷電源就可以高枕無憂的,這是一個軟硬件的系統工程。而一般家庭用戶使用的不是數據庫一類對數據完整性的要求非常高的應用,同時也不愿接受完整保護體系所附帶產生的高成本、性能降低等副作用。也就是說,看似高大上的固態硬盤完整斷電保護其實在家用電腦里并不香,無論廠商還是用戶,需要的只是基礎的自我保護能力:不要因為意外斷電就變磚故障。
人人皆有的斷電保護:
早期的固態硬盤是比較容易掉盤的,現在百度搜索“Intel 8M”、“美光 30分鐘”,依然能看到很多相關的信息,這些故障基本都和固態硬盤意外斷電有關。所以一些比較了解固態硬盤的玩家都很關注斷電保護。
現在的固態硬盤不容易掉盤,并不是因為掉電保護電容普及了。相反,現在的固態硬盤大都沒有配備儲能電容,但卻依然具備較強的斷電保護能力。下圖是東芝TR200固態硬盤的拆解,它代表了當前SATA固態硬盤的主流形式:本身沒有外置DRAM緩存,但主控內集成有32MB容量的SRAM緩存,起到存儲FTL閃存映射表的作用。
東芝TR200 圖片來源:thessdreview
TR200沒有斷電保護儲能電容,但是它并不容易因為意外斷電而變磚。這不是魔法,而是軟件形式的斷電保護在發揮作用:定時保存FTL到閃存,并且在閃存中保留多個FTL備份。
從硬件電路+固件邏輯到純固件軟件實現,其實還是有一定差別的。軟件實現的斷電保護只能護住FTL閃存映射表不致損壞,或者損壞后能夠快速有效地完成重建,但是由于沒有儲能電容,它無法保護DRAM緩存中的數據,所有數據寫入都會在檢測到斷電事件的瞬間被凍結以防出錯。簡單,但實用。
總結一下:軟件的斷電保護功能已經是當前幾乎每一塊固態硬盤都具備的基礎功能,它不需要配備儲能電容也能提供基礎的斷電保護,滿足SSD面對意外斷電時的可靠性的需求。


