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