硬碟忽然掉電會損壞硬碟和數據嗎?

每個人的無數個過去的瞬間定義了現在的自己。那些歡樂悲傷的瞬間也許對別人無關痛癢,對自己來說卻是彌足珍貴。硬碟里的照片和文檔承載著過去美好的瞬間和知識的積累,對大家來說是十分寶貴的,遠遠不是硬碟的那幾百一千的價格所能衡量。

現在的個人電腦早就不是原來嬌貴的高科技產品,不可中斷電源也不復存在,誰沒有過在一次忽然斷電後,憂心硬碟損壞的的經歷。在重新開啟電源的瞬間,心中默念,如果這次沒問題,下次我一定做好備份!可是當看見操作正常啟動,除了當時編輯的資料有很小部分丟失而其他完好無缺後,卻又忘記的自己的承諾,繼續裸奔,直到下一個循環。

我們知道操作系統為了效率的考慮,在文件系統驅動中都有緩存。Word等軟體會創建臨時文件,不停地刷新該文件的緩存來儘可能避免數據的損失。而最新的NTFS等現代的日誌型文件系統也比傳統的FAT對意外掉電的魯棒性提高很多。

這是軟體的角度,而如果硬體上沒有保證的話,這些都是揚湯止沸之舉。那麼如果我們從硬體的角度來了解一下,硬體工程師們為我們的數據安全都做了哪些努力。我們來分別看看硬碟的兩種典型的形態:機械硬碟和固態硬碟SSD,它們都是怎麼處理掉電(Power Failure/Loss)的。

機械硬碟

典型的溫切斯特硬碟結構如下:

一般操作情況下,碟片(2)在轉子(1)的帶動下,以每分鐘數千轉的速度飛速旋轉。轉臂(5)在程序指令下,帶著磁頭(4)來到指定位置開始讀取/寫入數據。

磁頭是依靠空氣動力的原理懸浮在磁碟表面,高度比頭髮絲還細。這樣它既可以迅速準確的讀取/寫入內容,又不會和盤面接觸(想像一下數千轉的速度旋轉的磁碟和磁頭接觸時會發生什麼)。這時如果沒有電了,磁碟不轉了,空氣浮力也不復存在,磁頭就會慢慢降落,進而碰到碟片,引發物理損傷。那怎麼避免這種情況呢?

正常斷電的時候,硬碟控制晶元會收到SATA控制器傳來的STANDBY IMMEDIATE命令;而SAS和SCSI硬碟會收到stop命令。這時控制器會把磁頭歸位到一個叫做Parking Zone的地方:

磁頭完美地停在停車區,避免了和磁碟接觸。而在停好之前,關機時序並不能夠結束,保證了整個過程的完整性。似乎很完美,但是意外斷電的時候,並不會收到各種命令,也沒有時間從容的停車,那該怎麼辦呢?

心細的同學也許注意到我在介紹硬碟構造的圖片中沒有介紹3的位置。其實這裡別有玄機,這裡叫做Landing Zone。這裡並沒有磁軌,表面介質也不同:

在意外斷電的情況下,磁碟控制器會利用空氣動力和一些電容的余電,將磁頭移到Landing Zone裡面降落,從而保證不會劃傷碟片。Landing Zone也是硬碟沒事幹時,磁頭的休息區。還有些硬碟廠商採用load/unload技術來做類似的事情,這裡就不詳細介紹了。

固態硬碟SSD

固態硬碟沒有機械旋轉,應該不會出問題吧。其實沒有那麼簡單,看過我們固態硬碟系列的讀者應該都知道FTL的存在(雜談快閃記憶體三:FTL)。FTL的邏輯塊和物理塊的轉換表必須存儲在NAND Flash上,否則會造成混亂;高端企業級硬碟上有大量的DRAM來加速,其中的內容也必須存儲下來。

在正常關電的時候,和機械硬碟類似,SATA的STANDBY IMMEDIATE命令和SCSI的Stop指令是合適的存儲這些信息的機會。SSD控制器可以從容的將這些信息寫在合適的地方。

在意外掉電的情況下,情況就複雜不少。不知道大家注意過沒有,現在M.2的SSD上面有很多很小的電容:

在Vcc沒電的時候,這些電容的gate就會打開,會為主控爭取1ms左右的時間。主控會立刻放棄現在所有沒有存儲的數據,而立刻開始存儲FTL表,保證不會出大問題。

在企業級的SSD中,有的DRAM大小將近1GB,而企業SSD的數據完整性要求極高,不容有失,不但FTL表要存好,DRAM中沒有存儲過的,也必須全部存下來。這就需要很大的電容,來爭取更多的時間,如果我們拆開企業SSD,就會發現很多大黃快:

這個Micron的SSD有3塊,而Intel的部分SSD,因為DRAM很大,大電容達到8塊!

有些低端SSD廠商,沒有電容,或者在長時間使用後電容能力下降。在掉電後,FTL表並沒有存下來。而是採取在下一次上電的時候重建FTL表,這是用戶就會發現SSD反應很慢,要一會才會恢復正常。

結論

古老的機械硬碟沒有各種保護功能,掉電的確會造成物理上的損傷,帶來數據丟失。現在的無論機械硬碟和固態硬碟,一般來說忽然斷電都不會損壞硬碟,丟失的數據也僅限於Cache裡面沒有存下來的,風險不大。

那麼有同學提了個邪惡的知乎體問題,怎麼優雅的弄壞機械硬碟呢?其實也很簡單,在大量讀寫硬碟的時候猛烈搖動/震動硬碟,讓磁頭狠狠的劃傷表面,神仙也救不回來被物理劃傷的部分數據了。

後記

有很多同學留言問我某些情況下磁碟會不會損壞等等。我建議大家重要的數據一定要做好備份,畢竟數據是無價的,丟了再就找不回來了。現在硬碟損壞,數據恢復的價格是很貴的,動輒數千上萬,而且經常只能恢復部分數據。再加上我們的某些數據因為敏感性,擔心數據恢復公司濫用(誰想當陳冠希?),也不想給他們恢復。也許大家還記得去年的病毒勒索事件,我的一個朋友的所有照片都被加密了,欲哭無淚啊。

我的建議是重要數據,如照片和文檔等都要保存兩份(熱備份),至少離線備份兩份份(冷備份)。才能保證數據無虞。我後期可能會寫些磁碟數據恢復的文章,大家可以看看。

其他快閃記憶體文章:

老狼:雜說快閃記憶體一:關公戰秦瓊之 UFS VS NVMezhuanlan.zhihu.com圖標老狼:雜談快閃記憶體二:NOR和NAND Flashzhuanlan.zhihu.com圖標老狼:雜談快閃記憶體三:FTLzhuanlan.zhihu.com圖標老狼:雜說快閃記憶體四:快閃記憶體硬碟介面大比拼zhuanlan.zhihu.com圖標老狼:雜說快閃記憶體番外:手機為什麼越用越卡和快閃記憶體寫放大zhuanlan.zhihu.com圖標老狼:雜說快閃記憶體番外:SSD硬碟如何進行日常維護和Trimzhuanlan.zhihu.com圖標老狼:雜說快閃記憶體番外:傲騰Optane與NAND快閃記憶體zhuanlan.zhihu.com圖標老狼:機械硬碟裡面是真空嗎?zhuanlan.zhihu.com圖標

歡迎大家關注本專欄和用微信掃描下方二維碼加入微信公眾號"UEFIBlog",在那裡有最新的文章。同時歡迎大家給本專欄和公眾號投稿!

用微信掃描二維碼加入UEFIBlog公眾號


推薦閱讀:

電腦會算錯數嗎?
《高速M.2……三星960EVO 250GB簡測》
是時候對新卡做一波總結了
不聯網也不再安全——針對硬碟的聲波攻擊
下一代主機需要什麼樣的性能,才能讓普通用戶覺得畫面相比本世代有大幅提高?

TAG:电脑硬件 | 知识 | 计算机 |