# 四十一、墨菲法則肆掠的禮拜
2003年一月廿五的消息
第一章:存放我們CVS儲存庫(我們所有的程序)的Linux服務器掛了。沒啥大不了 的,我們有自動的遠程映對備份(用rd/st)。花了幾小時壓縮遠程數據再傳回來。 結果發現我們忘記用讓rd/st移除已刪除檔案的選項,所以備份并不完美:所有 已刪除的檔案都還包含在內,只能手動刪除。
把這事解決之后,我決定把整個程序目錄樹重新取出,與我原本在用的目錄樹相 比較,戠當作最后的確認。可是我的筆記本電腦磁盤驅動器空間不足,該是升 級的時候了。我訂了一臺60 GB的筆記本電腦用硬盤,還有一個PCMCIA/硬盤連接 器好把舊硬盤備份到新硬盤。這個動作做了約六個小時,在完成50%時失敗了, 還要我「執行磁盤掃描」。花了幾小時掃描硬盤后重來一次。六個多小時后到 50%時又失敗了。這次展來游硬盤帶著我的一生掛了。我花了幾個小時東試西試, 把硬盤接到不同計算機,試盡各種方法,結論是它真的掛了。
好法,這也沒什么了不起,我們每天都會備份(NetBackup Pro)。我把新的60 GB 硬盤裝進筆記本電腦,格式化后裝好Windows XP Pro。然后要NetBackup Pro把 機器回復到掛掉之前的狀態。我損失了一天工作時間,不過反正我這一天也做不 了什么事。那天的電子郵件也沒了,所以如果你這星期有寄電郵來而我沒反應, 重寄一次吧。
NetBackup Pro跑了幾個小時,我就回家讓它在晚上繼續做。結果早上整個系統 都掛了而且連開機都不行。我猜原因一定是我把XP Pro系統回復到W i n2K映像檔。 于是我就再做一次,這次先安裝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 DD0S攻擊搞的鬼,所以不太理Savvis。而Savvis 也沒告訴我們Worldcom不理他們。于是我們再逼Savvis,而勉#7又逼Worldcom, 大概搞了三回Worldcom才同意打電話給Verizon,然后Verizon找了一個技師來把 問題修好。說實在的,這有點像在推彈費。就像上次Savvis讓我們的T1線斷了一 天,技術問題其實沒什么,如果不用跟這么多白癡公司打交道,幾分鐘就能找到 問題并修好。
教訓:當你向某家公司購買服務,而該公司其實只是把服務外包,這樣多了一層 是很難有好的客戶服務的。如果外包了兩次就幾乎不可能有什么服務了。我非 常討厭鼓勵獨占的地區電信公司,只有一件事會比直接和地區電信公司打交道更 糟,就是和另一家只能和地區電信公司來往的官僚公司溝通。我們以后的辦公 室用的是Verizon DSL,真是謝天謝地。
順便一提,如果Dell把我們該死的服務器準時送到,你們其實完全不會發現這次 的事件。我們應該在一個月前就換到很好的Pee「1高備援安全托管設施上運行。 看看我上一篇大罵。我有提到我發燒了嗎?每次事情出錯時我就會生病。
第三章。已經發生上千次了,Fog Creek所在的赤褐色建筑四樓的暖氣又沒了。 暖氣是用熱水流過墻壁里面產生的。在墻里怎么可能結凍呢?噢,原來上星期火 爐壞掉了,因為當初裝火爐的白癡(大概是無照的)裝了 25呎長的水f煙囪,不但 妨礙通風還害一個房客住院,火爐也因此熄滅了幾十次。最后暖氣公司的人承認 有可能加裝一個導風管強迫煙囡通風,不過是在熱水管凍住之后再施工。水管本 身的隔熱當然也沒做好,這是另一個無能的紐約建筑業者的杰作。不過如果火爐 正常燃燒是不會有影響的。
教訓:差的系統可能表現完全正常,不過等相鄰的系統故障時就會出事。有過敏 背痛的人可能好幾個有都沒事,不過一患干草熱打噴嚏就會背痛到不行。這種 事在系統管理中到處都有。可以利用這種機會把所存你題一次修好。幫你所存游 PC都加裝RAID龍互定期備份,不要使用EFS,要買很大的硬盤(這樣就永遠不必停 下工作來升級),另外要再次確認rdist的命令行選項。安裝導風管龍互把水管隔 熱做好。把你重要的服務器移去安全的代管設施龍互在辦公室改用Verizon的T1 服務。
- 第一部分 位與字節:編程實踐點滴
- 一、語言的選擇
- 二、深入底層
- 三、joel測試:改進代碼的12個步驟
- 四、每一位軟件開發人員必須、絕對要至少具備UNICODE 與字符集知識(沒有任何例外!)
- 五、輕松寫就功能規格說明書 - 第1節:為什么煩心?
- 六、輕松寫就功能規格說明書 - 第2節:什么是規格說明書?
- 七、輕松寫就功能規格說明書 - 第3節:但是……如何?
- 八、輕松寫就功能規格說明書 - 第4節:技巧
- 九、輕松制訂軟件進度表
- 十、每日連編是朋友
- 十一、難伺候的故障修復
- 十二、軟件開發中的5個世界
- 十三、稿紙原型開發
- 十四、不要被太空架構師所嚇倒
- 十五、開火與運動
- 十六、人員技能
- 十七、源于計算機學科的三個錯誤思想
- 十八、二元文化
- 十九、自動獲取用戶故障報表
- 第二部分 開發人員的管理
- 二十、面試游擊指南
- 二十一、重金激勵害多利少
- 二十、二不配備測試人員的五個首要(錯誤)原因
- 二十三、任務換人有害無益
- 二十四、絕不去做的事情,第一部
- 二十五、冰川下的秘密
- 二十六、漏洞抽象定律
- 二十七、程序設計界的LordPalmerston
- 二十八、評測
- 第三部分 Joel對常態問題的遐想
- 二十九、RickChapman解讀愚昧
- 三十、在這個國家狗是干什么的? 我們有多么天真?
- 三十一、作為哼哈二將,只管去做事
- 三十二、兩個故事
- 三十三、巨無霸麥當勞與天才廚師JamieOliver
- 三十四、沒有什么像IT看起來那么簡單
- 三十五、提防非自主開發綜合癥
- 三十六、策略I:BEN&JERRY公司與AMAZON
- 三十七、策略II:雞與蛋問題
- 三十八、策略III:讓我回去!
- 三十九、策略IV:大件與80/20神話
- 四十、策略V:公開源代碼的經濟因素
- 四十一、墨菲法則肆掠的禮拜
- 四十二、微軟公司是如何敗北API之戰的
- 第四部分 對.NET稍多的評說
- 四十三、微軟精神失常了
- 四十四、我們的.NET對策
- 四十五、請問,我可以使用連接程序嗎