事故分析
我在下班時(shí)認(rèn)為這個(gè)問題是個(gè)容易解決的問題。 我在家里的保險(xiǎn)箱中備份了一份資料,而且還通過Carbinite公司的服務(wù)在因特網(wǎng)上做了備份。在回家的路上,我在銀行停了一下,取回了保持在保險(xiǎn)箱的備份硬盤。 我想我現(xiàn)在已經(jīng)可以應(yīng)付各種突發(fā)事件了。 我每月都會更新一次備份。
第一步是首先搞清楚磁盤失效的原因。我在幾個(gè)月之前更換了電腦的電源,從那個(gè)時(shí)候開始就沒有再使用過那些文件了。 為了保證性能,我在電腦中配備了一個(gè)由兩塊磁盤組成的RAID-0 SATA-2 250G硬盤。我猜想是不是RAID控制器出了什么問題導(dǎo)致文件失效了。 我想最好從對硬件進(jìn)行一整套的診斷分析開始入手,沒想到一無所獲。然后我運(yùn)行了一整套微軟公司的文件系統(tǒng)差錯(cuò)和分析程序,結(jié)果立刻在五個(gè)步驟中都發(fā)現(xiàn)了許多錯(cuò)誤。 對于我來說,一個(gè)錯(cuò)誤都是很多了,要知道NTFS是一種定期文件系統(tǒng),日志應(yīng)該可以避免出現(xiàn)數(shù)據(jù)失效和速度恢復(fù)。我在過去幾個(gè)月一直沒有進(jìn)行過完整的差錯(cuò),我認(rèn)為這可能就是這次磁盤出問題的原因。 數(shù)據(jù)的失效會不會是因?yàn)槲以趲讉€(gè)月之前弄出的某個(gè)硬件或者軟件問題所引起的呢?
我覺得我已經(jīng)完成了分析,因?yàn)槲覜]有發(fā)現(xiàn)硬件問題而且進(jìn)行了完整的磁盤檢查。我仍然弄不清楚問題是什么以及它是為什么而發(fā)生的,我必須盡快解決這個(gè)問題,時(shí)間已經(jīng)不多了,我通過fsck磁盤檢查程序查出了更多失效的文件。 現(xiàn)在不是一個(gè)大問題了,而是十個(gè)或者更多的大問題接踵而來。我對我夫人說我會在她早上起床時(shí)弄好她的文件,當(dāng)時(shí)差不多是晚上8點(diǎn)鐘了。 時(shí)間一分一秒地在流逝。
數(shù)據(jù)修復(fù)
當(dāng)我開始從本地UBS硬盤上修復(fù)那些數(shù)據(jù)時(shí),我不禁悲觀地想到如果硬盤等下又出錯(cuò)失效了怎么辦,我現(xiàn)在所做的只是將錯(cuò)誤的數(shù)據(jù)從系統(tǒng)中的硬盤上復(fù)制到外部磁盤上。那好像是對的,但是我仍然在外部硬盤上保留了一份一個(gè)月之前備份的數(shù)據(jù)。 天,硬盤上的數(shù)據(jù)也是壞的。
我看了一下那些文件的最新一次訪問時(shí)間,根據(jù)文件系統(tǒng)顯示,它們一直都沒有被修改過。自從那些照片被拍攝出來到現(xiàn)在已經(jīng)有一年多的時(shí)間了,但是在幾個(gè)月之前我們還知道那些文件是絕對沒有什么問題的。 時(shí)間仍在流逝,現(xiàn)在已經(jīng)解決晚上10點(diǎn)鐘了,而且我明早必須在6點(diǎn)鐘一過就起床。 由于備份的副本都是壞的,我唯一的選擇就是去調(diào)保持在網(wǎng)絡(luò)上的副本了。 我將最重要的數(shù)據(jù)下載下來,幾分鐘之后用Photoshop打開發(fā)現(xiàn)它是完好無損的。我將我發(fā)現(xiàn)的那些壞文件進(jìn)行了修復(fù)。 我最后終于在晚上11點(diǎn)鐘剛剛過的時(shí)候完成了工作上床睡覺。
這件事說明了什么
我那天晚上睡得很不好,一直在考慮這件事說明了什么問題、我還碰到這種事情還能做些什么以及那些文件到底是為什么失效的。下面就是我的思考結(jié)果:
我意識到我應(yīng)該平時(shí)多做些增量備份而不是完全備份,沒次去掉那些老的備份文件,因?yàn)槲业腢SB硬盤空間大約只有硬盤空間的75%。而我在修復(fù)這次的問題時(shí)大概只用了一半的空間,因此我認(rèn)為一個(gè)USB硬盤應(yīng)該是足夠了。 如果我以前進(jìn)行了增量備份的話,我就可以回到文件被創(chuàng)建的時(shí)候。因?yàn)槲冶容^看重備份的速度,因此我才沒有選擇進(jìn)行增量備份;進(jìn)行增量備份的話,要花更多時(shí)間去管理和修復(fù)。 我發(fā)現(xiàn)對于系統(tǒng)崩潰之后的完全恢復(fù)來說,幾乎肯定要用到完全備份和修復(fù),但是增量備份只有在數(shù)據(jù)發(fā)生失效的時(shí)候才會用到。問題是,我如何才能知道那些文件是完好的呢? 增量備份也許可以幫到我,但是我搞不清楚我要想保證文件完好得進(jìn)行多少增量備份。也許需要一年的增量備份吧。
我明白了如果備份的副本有問題,那么再多的備份也沒有用的道理。 正是由于我比較偏執(zhí)而且在銀行保險(xiǎn)箱保留了一份備份副本并不意味著那些副本上的數(shù)據(jù)就是好的。別人可能會將我的電腦偷走、我們家可能被這種或者那種原因而毀壞、或者遇到其他一些災(zāi)難(我說了我是比較偏執(zhí)的一個(gè)人),那么保險(xiǎn)箱里的備份也沒有用,因?yàn)樯厦娴臄?shù)據(jù)也是壞的。 這并不是說我不能取回99.9%的數(shù)據(jù)了(保險(xiǎn)箱中的備份副本里的數(shù)據(jù)只有0.1%失效了),但是對某些人來說,那還是不夠的。比如對我來說就是不夠的。
保留一份網(wǎng)絡(luò)備份不失為一個(gè)好主意。我將所有的數(shù)據(jù)備份到網(wǎng)絡(luò)上幾乎花了2個(gè)月的時(shí)間,而且我的電腦通常都整夜在工作。 這樣做當(dāng)然比較浪費(fèi)能源,但是它可能會在關(guān)鍵的時(shí)候救我一把,還有挽救了我的婚姻,因?yàn)槲以诩依锸秦?fù)責(zé)電腦并且確保它的用戶(就是我夫人)可以在任何時(shí)候使用它。
這些問題中,有些是顯而易見的,有些則不是。我現(xiàn)在仍然在考慮的問題是:
我在將一個(gè)文件備份之前,如何知道它是否是完好的? 我在備份壞數(shù)據(jù)時(shí)渾然無知。我的備份操作正確無誤,而且時(shí)候還測試了一遍,但是我如何保證備份的海量文件中每一個(gè)文件都是完好的呢? 顯然,我不可能逐一將那些文件打開。 我知道查日志的方法是可行的,但是我除了進(jìn)行增量備份之外還能有別的什么辦法呢? Sun公司打算用其ZFS文件系統(tǒng)來檢查文件和的方式來解決數(shù)據(jù)失效問題。FC /SAS社區(qū)也試圖用T10DIF標(biāo)準(zhǔn)來解決這個(gè)問題,但是這兩種方法都幫不了我。
是什么原因?qū)е铝藬?shù)據(jù)失效? 到今天我也沒搞清楚這個(gè)問題。我們已經(jīng)發(fā)現(xiàn)其他一些文件也失效了,但是據(jù)我們所知,失效的都是些舊文件。 它可能是由于電源故障引起的,也可能是因?yàn)殡妷翰徽W兓鸬模部赡苁且驗(yàn)榭刂破骰蛘叽疟P失效引起的,還可能是因?yàn)殡娫椿蛘邉e的什么部件出現(xiàn)問題導(dǎo)致系統(tǒng)同步出錯(cuò)而引起的,SATA控制器也許出了問題,硬盤也許也出了問題,也有可能上述幾個(gè)方面同時(shí)出現(xiàn)問題。
我永遠(yuǎn)也不能弄清楚那次的數(shù)據(jù)失效是為什么發(fā)生的,讓我感到高興的是那個(gè)問題最后終于解決了。你應(yīng)該從我的經(jīng)歷中學(xué)到一些教訓(xùn),在數(shù)據(jù)失效問題發(fā)生之前就做好各項(xiàng)準(zhǔn)備。