佘華煜:Windows 8構(gòu)建更健康的存儲
在上大學(xué)那會兒,我(@佘華煜)接觸的更多是家用級的產(chǎn)品,說真的,到也沒見過什么損壞硬盤以及數(shù)據(jù)恢復(fù)的case。而工作之后,我是親眼所見服務(wù)器上面會偶爾有壞盤,而不得不找廠家更換的情況。而且,我還真的見過花了大價錢請專業(yè)數(shù)據(jù)恢復(fù)廠商恢復(fù)硬盤數(shù)據(jù)的情形。當(dāng)然,這些正常的損壞多是由于服務(wù)器的硬盤吞吐量太大,讀寫次數(shù)太多造成的,工作中我還從一個機房硫超標(biāo)導(dǎo)致硬盤數(shù)月內(nèi)陸續(xù)大量損毀的案例,學(xué)到了機房施工要科學(xué)合理、符合質(zhì)量標(biāo)準、特別是空氣循環(huán)及冷卻系統(tǒng)都要設(shè)計達標(biāo)的道理。
上面說的是我所經(jīng)歷過的在存儲物理損壞方面的一些事情,相對于物理損壞,磁盤上的文件系統(tǒng)一樣可以有邏輯損壞,即由于意外掉電、程序問題或者其他意外導(dǎo)致的文件損壞、磁盤邏輯故障等問題。對于這些邏輯損壞,或者意外產(chǎn)生的磁盤上的非一致現(xiàn)象,大家一定并不陌生,不知大家是否還記得當(dāng)年 XP 時代,只要電腦意外掉電了,重啟時一定會見到等待十秒之后自動掃描磁盤的提示,而且,文件數(shù)量越多,掃描所花費的時間也是越長的。很多人不能忍耐很久的磁盤檢測時間,干脆又一次故意重啟,然后按鍵盤上任意鍵跳過接下來啟動時的磁盤檢查。
從 Windows Vista 開始,Windows 引入了一項叫"聯(lián)機自愈"的文件系統(tǒng)功能。NTFS 文件系統(tǒng)本身具備自愈的設(shè)計,在系統(tǒng)運行期間的某些類型的損壞,系統(tǒng)是可以將其修復(fù)而不用等待下次重新啟動時修復(fù)。而在 Windows 8 中,這一功能得以加強和改進,可聯(lián)機自愈的問題種類有所增加,因此,要運行 chkdsk 的機會大大減少?,F(xiàn)在,相信您幾乎就沒看見過意外斷電后,重啟計算機時會要求檢測磁盤了。(從這里也可以看出,為什么不論 Vista 賣得多不好,我也多次在不同文章強調(diào) Vista 具有很重要的意義。)
除了聯(lián)機自愈及其該進以外,其實 Windows 8 里面針對磁盤和文件系統(tǒng)的穩(wěn)定性還做出了更多的努力:
1. 聯(lián)機驗證
有時候,磁盤并不是真的損壞,而是由于內(nèi)存問題導(dǎo)致的間歇性的、偶發(fā)性的"損壞",在這種情況下,新的 Spot Verifier 服務(wù)可以甄別此問題。在檢測到潛在的不健康磁盤狀態(tài)時并且聯(lián)機自愈不成功后,文件系統(tǒng)驅(qū)動可以觸發(fā)該服務(wù),讓其運行并確認是否是真的磁盤損壞。
2. 聯(lián)機標(biāo)識和記錄
當(dāng)聯(lián)機驗證確認這是個磁盤問題時,Windows 8 會在適當(dāng)?shù)臅r機(例如計算機空閑時)和必要的時候(例如發(fā)現(xiàn)文件系統(tǒng)損壞),通過維護任務(wù)來進行聯(lián)機文件系統(tǒng)掃描后臺任務(wù),掃描到的所有問題都會被系統(tǒng)確認和記錄下來,以便隨后更正。
3. 快速精準的更正
對于非要脫機才能修復(fù)的這些錯誤,Chkdsk 實用程序會在卸下卷的時候進行修復(fù),那么這個"快速精準更正"特點,能夠極大地減少脫機修復(fù)所耗費的時間。對于非系統(tǒng)卷,關(guān)閉所有當(dāng)前打開的文件句柄即可;而對于系統(tǒng)卷,這脫機修復(fù)類似于 XP 時代那樣的重啟過程中磁盤檢修的過程了,但是,由于聯(lián)機標(biāo)識和記錄功能已經(jīng)將錯誤和損壞位置記錄下來,這時的脫機修復(fù)是非常精準的定點修復(fù)過程,壞多少修多少,哪里壞了修哪里,往往只要幾秒的時間,極大地幫助用戶減少了等待磁盤檢修的時間。對于一個100 GB的硬盤分區(qū),數(shù)秒vs數(shù)十分鐘甚至幾小時,還是非??捎^的。
4. 更好的可管理性
資源管理器里面的驅(qū)動器屬性中,以及操作中心的維護一欄下面都可以顯示磁盤卷的健康狀態(tài)。
而且,我們通過 fsutil 命令,可以看見它對新的這些磁盤特性的支持。(我的C盤是系統(tǒng)盤)
通過查看 chkdsk 的幫助,我們可以發(fā)現(xiàn),該工具也配合新的磁盤卷的穩(wěn)定性改善,提供了新的參數(shù)開關(guān)。
其實總結(jié)起來比較簡單,現(xiàn)在 Windows 8 上面的磁盤健康狀態(tài)的控制可以用以下這圖表概括: