墨菲定律發威的一週 A week of Murphy’s Law gone wild

作者:周思博 (Joel Spolsky)
譯:Paul May 梅普華
屬於 Joel on Software, https://www.joelonsoftware.com/2003/01/25/20030125/

第一章:存放我們 CVS 儲存庫(我們所有的程式)的 Linux 伺服器掛了。沒啥大不了的,我們有自動的遠端映對備份(用 rdist)。花了幾小時壓縮遠端資料再傳回來。結果發現我們忘記用讓 rdist 移除已刪除檔案的選項,所以備份並不完美:所有已刪除的檔案都還包含在內,只能手動刪除。

把這事解決之後,我決定把整個程式目錄樹重新取出,與我原本在用的目錄樹相比較,戠當作最後的確認。可是我的筆記型電腦磁碟機空間不足,該是升級的時候了。我訂了一台 60 GB 的筆記型電腦用硬碟,還有一個PCMCIA/硬碟連接器好把舊硬碟備份到新硬碟。這個動作做了約六個小時,在完成 50% 時失敗了,還要我「執行磁碟掃描」。花了幾小時掃描硬碟後重來一次。六個多小時後到 50% 時又失敗了。這次原來的硬碟帶著我的一生掛了。我花了幾個小時東試西試,把硬碟接到不同電腦,試盡各種方法,結論是它真的掛了。

好法,這也沒什麼了不起,我們每天都會備份(NetBackup Pro)。我把新的 60 GB 硬碟裝進筆記型電腦,格式化後裝好 Windows XP Pro。然後要 NetBackup Pro 把機器回復到掛掉之前的狀態。我損失了一天工作時間,不過反正我這一天也做不了什麼事。那天的電子郵件也沒了,所以如果你這星期有寄電郵來而我沒反應,重寄一次吧。

NetBackup Pro 跑了幾個小時,我就回家讓它在晚上繼續做。結果早上整個系統都掛了而且連開機都不行。我猜原因一定是我把 XP Pro 系統回復到 Win2K 映像檔。於是我就再做一次,這次先安裝 Win 2K (硬碟格式化:一小時;安裝 Win 2K:一小時;再安裝 NetBackup Pro Client),接下來再開始回復。五個小時後才做了一半,所以我就回家了。

第二天系統開不太起來,會出現藍色當機畫面,不過用安全模式試了半小時後終於能動了。看起來所有東西都回來了,不過有幾個我要 Windows 加密(用EFS)的檔案不能用而且原因不明,應該是公用金鑰和認證的緣故。我猜加密過的檔案回復後就會讀不出來。我還不知道要怎麼解決。如果你知道要怎麼解決我會永遠感激你的。[1/26:我想盡辦法弄了幾個小時終於解決了。]

教訓:硬碟掛掉後衍生一串問題然後浪費好幾個工作日,這已經不是第一次發生了。注意我有個很不錯的備份策略,所有東西每天都會備份到別處。事實上我相信這已經是第三次因硬碟壞掉引發一串事故而浪費好幾天了。結論:備份還不夠好,現在起我要用 RAID 映對備份。以後硬碟再掛掉,我要能用 15 分鐘換台新硬碟進去,回到出事前的狀態繼續作業。新方針:Fog Creek 所有非筆電的電腦都要 有RAID 映對備份。

第二章:你注意到之前我們的 web 伺服器當了嗎?星期五大約中午本地的 Verizon 交換器失火,我們的電話和 Internet 連線全斷了。Verizon 花了幾個小時回復電話線,不過 T1 比較麻煩。我們的 T1 是跟 SAVVIS 買的,他們則是找 MCI(現在叫WorldCom)來營運地區性的迴路。而 Worldcom 當然也不是自己實際去營運任何線路,他們才不會弄髒自己的手呢,他們只是向 Verizon 購買當地的線路。

所以由週五中午一直到週六半夜,Michael 和我輪流上場,大約每小時打電話到 Savvis 關心一次。我們對 Savvis 施壓,他們偶而就會去催 Worldcom,而 Worldcom 則認定全都是某種 SQL Server DDOS 攻擊搞的鬼,所以不太理 Savvis。而 Savvis 也沒告訴我們 Worldcom 不理他們。於是我們逼 Savvis,而他們又逼 Worldcom,大概搞了三回 Worldcom 才同意打電話給 Verizon,然後 Verizon 找了一個技師來把問題修好。說實在的,這有點像在推彈簧。就像上次 Savvis 讓我們的T1線斷了一天,技術問題其實沒什麼,如果不用跟這麼多白痴公司打交道,幾分鐘就能找到問題並修好。

教訓:當你向某家公司購買服務,而該公司其實只是把服務外包,這樣多了一層是很難有好的客戶服務的。如果外包了兩次就幾乎不可能有什麼服務了。我非常討厭鼓勵獨占的地區電信公司,只有一件事會比直接和地區電信公司打交道更糟,就是和另一家只能和地區電信公司來往的官僚公司溝通。我們以後的辦公室用的是 Verizon DSL,真是謝天謝地。

順便一提,如果 Dell 把我們該死的伺服器準時送到,你們其實完全不會發現這次的事件。我們應該在一個月前就換到很好的 Peer1 高備援安全托管設施上運行。看看我上一篇大罵。我有提到我發燒了嗎?每次事情出錯時我就會生病。

第三章:已經發生上千次了,Fog Creek 所在的赤褐色建築四樓的暖氣又沒了。暖氣是用熱水流過牆壁裡面產生的。在牆裡怎麼可能結凍呢?噢,原來上星期火爐壞掉了,因為當初裝火爐的白痴(大概是無照的)裝了 25 呎長的水平煙囪,不但妨礙通風還害一個房客住院,火爐也因此熄滅了幾十次。最後暖氣公司的人承認有可能加裝一個導風管強迫煙囪通風,不過是在熱水管凍住之後再施工。水管本身的隔熱當然也沒做好,這是另一個無能的紐約建築業者的傑作。不過如果火爐正常燃燒是不會有影響的。

教訓:差的系統可能表現完全正常,不過等相鄰的系統故障時就會出事。有過敏背痛的人可能好幾個有都沒事,不過一患乾草熱打噴嚏就會背痛到不行。這種事在系統管理中到處都有。可以利用這種機會把所有問題一次修好。幫你所有的 PC 都加裝 RAID 並且定期備份,不要使用 EFS,要買很大的硬碟(這樣就永遠不必停下工作來升級),另外要再次確認 rdist 的命令列選項。安裝導風管並且把水管隔熱做好。把你重要的伺服器移去安全的代管設施並且在辦公室改用 Verizon 的 T1 服務。

這些網頁的內容為表達個人意見。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.