新概念運維之文件都到哪兒去了
原創(chuàng)【51CTO精選譯文】編者按:管理員們常常將大部分注意力集中于數(shù)據(jù)庫升級過程中的關(guān)鍵性工作上,但這種工作的性質(zhì)是,即使你99步都做對,只做錯了一步,也會全盤皆輸,遭遇升級失敗甚至寶貴數(shù)據(jù)丟失的悲劇。在下面這篇技術(shù)故事中,大家可以看到人為因素導(dǎo)致的失誤是如何破壞管理員的既有計劃的。
在這個故事發(fā)生時,我正為一家大型高科技企業(yè)工作;而且我們陷入了一種困境:無論在預(yù)先規(guī)劃方面付出多少努力,人為失誤總會時不時出現(xiàn),徹底破壞我們的日常工作。
由于整個項目由外包公司中散處于各個國家的分支機構(gòu)共同負責(zé),因此對應(yīng)的管理員當(dāng)然也不止一位。當(dāng)時某位客戶的一個大規(guī)模數(shù)據(jù)庫已然陳舊過時,我們需要為整套系統(tǒng)提供支持,而這套系統(tǒng)的全部細節(jié)都需要升級,包括服務(wù)器硬件、操作系統(tǒng)、集群及數(shù)據(jù)庫軟件。
這是一個關(guān)鍵性數(shù)據(jù)庫,必須采取一切預(yù)防措施,包括對當(dāng)前資料進行適當(dāng)?shù)膫浞?,并為故障情況準(zhǔn)備一套緊急的回檔機制,以保證其工作安全。所有關(guān)于變更的說明都被總結(jié)成書面材料,并得到了參與到該項目當(dāng)中的各家科技企業(yè)的一致認可。當(dāng)時我們采取的是一套相當(dāng)簡便的執(zhí)行手段,而所部署的每個細節(jié)似乎都能在最短的時間內(nèi),獲得易行、快捷及代價極小的升級效果。
變更過程終于開始了?;谀撤N原因,真正的開始時間為周日傍晚。首先進行全面?zhèn)浞荩凑沼媱?,存儲在某個舊有文件系統(tǒng)當(dāng)中的資料即將被遷移到新服務(wù)器上。遷移過程正式啟動。
剛開始各項工作進行得有條不紊:全部文件系統(tǒng)正在被安裝到新的服務(wù)器上,而新服務(wù)器中則已經(jīng)運行著新的操作系統(tǒng)及集群軟件。接下來,服務(wù)器管理員運行了一個腳本,該腳本由負責(zé)數(shù)據(jù)庫的管理員提供,旨在對數(shù)據(jù)庫系統(tǒng)進行更新。
致命的錯誤就出在這一步上:腳本的功能設(shè)計初衷是既要能處理一個全新對象的安裝,又要能對現(xiàn)有對象的更新操作進行管理。然而,這兩種截然不同的處理方式由一個單獨的命令行開關(guān)控制,其內(nèi)容為:進行更新,否則進行全新安裝。
該命令行選項的內(nèi)容并沒有包含在服務(wù)器管理員所參照的項目變更說明文件當(dāng)中。該腳本具有這樣一種功能,在安裝新對象時,腳本會檢索是否存在可能與新安裝間存在沖突的舊有文件。而為了獲得比較準(zhǔn)確的檢索結(jié)果,腳本將在安裝二進制文件前發(fā)出另一項不同的指令,以消除可能造成影響的與數(shù)據(jù)庫相關(guān)的文件系統(tǒng)。
服務(wù)器管理員就眼睜睜地看著該腳本運行了數(shù)分鐘之久。不知道出于何種原因,他忽略掉了腳本給出的需要刪除這些或那些文件的提示信息,也許是因為這些信息被淹沒在了滿屏幕的其它信息之中吧。腳本運行順利結(jié)束了,因此數(shù)據(jù)庫管理員開始著手啟動數(shù)據(jù)庫。
這時他發(fā)現(xiàn)了一點“小”問題:數(shù)據(jù)不見了。新安裝的數(shù)據(jù)庫二進制文件都在,但所有數(shù)據(jù)文件系統(tǒng)的內(nèi)容都消失了。
他們將問題歸結(jié)為文件系統(tǒng)損壞,最近這一原因已經(jīng)在其它項目中造成過不良影響。他們嘗試卸載并重新加載文件系統(tǒng),但數(shù)據(jù)仍然沒有出現(xiàn)。他們緊接又著運行了一些文件系統(tǒng)檢查工具,結(jié)果顯示正常。再次查看,還是沒有數(shù)據(jù)。***,他們打電話給存儲域網(wǎng)絡(luò)的技術(shù)支持團隊來對硬盤進行驗證,結(jié)論是:硬盤沒問題。
經(jīng)過了數(shù)次這類徒勞的嘗試,他們開始將硬盤接回舊服務(wù)器以進行數(shù)據(jù)歸檔、由備份文件恢復(fù)并啟動數(shù)據(jù)庫。
他們將上述方案付諸實踐。在將文件系統(tǒng)安裝在舊服務(wù)器上之后,他們注意到文件系統(tǒng)仍然沒有內(nèi)容(這時他們?nèi)f分確定文件系統(tǒng)絕對已經(jīng)損壞),甚至連存儲備份文件的區(qū)域也是空的。又一次,他們進行了一些故障排查,嘗試修復(fù)這套所謂“損壞”了的文件系統(tǒng)。
忙碌到這里,時間已經(jīng)是周一上午八點鐘,終端用戶需要立即開始使用新服務(wù)器,緊迫的事態(tài)使每個人都變得越來越焦慮。他們終于意識到,數(shù)據(jù)已經(jīng)***消失,而且他們別無選擇,只能利用日常磁帶備份進行徹底的恢復(fù)工作。
***個問題:他們并沒有在變更工作開始之前就檢查備份磁帶,這導(dǎo)致從他們著手變更項目之時起,磁帶上周日部分的數(shù)據(jù)備份就已經(jīng)不再完整。因此,他們不得不回頭從周六的備份下手,這意味著周日一整天的寶貴數(shù)據(jù)正式宣告丟失。第二個問題:要從磁帶上恢復(fù)1TB容量的龐大數(shù)據(jù)需要消耗大量時間。事實上,數(shù)據(jù)恢復(fù)工作要持續(xù)到周一下午才能完成。
接下來又發(fā)生了一大堆各種各樣的問題。一致性檢查過不去、日志文件丟失等等。他們不得不對數(shù)據(jù)庫二進制文件進行降級,在此期間用戶們失去了包括訪問在內(nèi)的各種權(quán)限。最終,直到周二夜里,數(shù)據(jù)庫才完全恢復(fù)到正常的工作狀態(tài)。
問題發(fā)生的根源正是數(shù)據(jù)庫管理員提供的那個腳本:它移除了所有文件,當(dāng)然也包括備份文件。而且服務(wù)器管理員在此期間還犯下了嚴重錯誤,他甚至搞不清空白的文件系統(tǒng)和損壞的文件系統(tǒng)應(yīng)該如何辨別。
退一步來說,徹底的審查流程與完善的計劃實施(有望)能夠防止此類事件重演,包括如何與身處不同國家、不同時區(qū)、使用不同母語的項目參與者們互相溝通。但無論技術(shù)的發(fā)展達到什么樣的高度,或者說一家企業(yè)在全球化方面做得多么成功,人為因素永遠是項目中不能忽略的重要組成部分之一——無論其作用是好還是壞。
【有關(guān)新概念運維】
在日常的系統(tǒng)管理運維工作中,每個人對于系統(tǒng)、工具、應(yīng)用、命令、架構(gòu)等方面都會有自己的理解。理解方式的不同也意味著不同的認知,因此,這種理解方式的交流,也可能碰撞出更多思維的火花,讓每個人從另一個角度了解自己每天從事的工作。51CTO系統(tǒng)頻道從日常和運維人員的交流中收集這些理解方式,組合成短文集,名為《新概念運維》。
【51CTO.com譯文,轉(zhuǎn)載請注明原文作譯者和出處?!?/p>
原文:Where have all the files gone?
【編輯推薦】