存儲(chǔ)系統(tǒng)故障導(dǎo)致臺(tái)北桃園機(jī)場(chǎng)宕機(jī)36小時(shí)
這幾天國(guó)內(nèi) IT 業(yè)界最熱門的新聞不外乎是中國(guó)臺(tái)灣省臺(tái)北桃園機(jī)場(chǎng)境管系統(tǒng)當(dāng)機(jī) 36 小時(shí)了;事情一發(fā)生,各種專業(yè)的,非專業(yè)的猜測(cè),流言,內(nèi)線消息不斷,熱鬧極了。
有人從政治的角度解讀(這好像是這幾年國(guó)內(nèi)各種事件必然要有的一個(gè)面相),說(shuō)是為了掩護(hù)某些人士的出境;而筆者看到網(wǎng)絡(luò)上最扯的說(shuō)法是被“某國(guó)”給黑了,放毒了,對(duì)于這些,筆者 只能用一句電視上的廣告臺(tái)詞“不要再相信那些沒(méi)有根據(jù)的傳言了”來(lái)響應(yīng)。
沒(méi)有任何一位 IT 人員(尤其是 IT 工程師)愿意看到系統(tǒng)在自己的手上“無(wú)法上線”36 個(gè)小時(shí),筆者 在這里使用“無(wú)法上線”而不使用“宕機(jī)”,是因?yàn)?,就IT工程的角度來(lái)說(shuō),“宕機(jī)”指的是一部機(jī)器 (不論是主機(jī)或存儲(chǔ)系統(tǒng)) 因?yàn)槟承┰蚨鵁o(wú)法開機(jī)成功回復(fù)運(yùn)作;這次境管系統(tǒng)的事件,從現(xiàn)有枱面上的消息來(lái)說(shuō),并不是機(jī)器無(wú)法運(yùn)作,而是境管查驗(yàn)系統(tǒng)無(wú)法上線作業(yè)。
至于被黑或是中毒的說(shuō)法,更是一般使用者的猜測(cè);現(xiàn)有的境管系統(tǒng)使用的是 UNIX 操作系統(tǒng),到目前為止,業(yè)界還沒(méi)有發(fā)生過(guò) UNIX 作業(yè)平臺(tái)的中毒事件;而且境管系統(tǒng)是一套封閉的系統(tǒng),即使有辦法可以黑入移民署或是桃園機(jī)場(chǎng)的網(wǎng)站,也不可能連上境管系統(tǒng),因?yàn)榫彻芟到y(tǒng)根本沒(méi)有對(duì)外部的網(wǎng)絡(luò)聯(lián)機(jī)!
至于系統(tǒng)的備份或是數(shù)據(jù)備份的問(wèn)題,“在最短時(shí)間內(nèi)恢復(fù)聯(lián)機(jī)操作”本來(lái)就是境管系統(tǒng)架構(gòu)當(dāng)初設(shè)計(jì)的目的之一,就 筆者 的了解,桃園機(jī)場(chǎng)的境管主機(jī)是雙機(jī)備份作業(yè)的架構(gòu),也就是只要有一部主機(jī)可以運(yùn)作,就可以維持在線的作業(yè);數(shù)據(jù)備份,也肯定是有的;至于為什么這些設(shè)計(jì)沒(méi)有在需要的時(shí)候發(fā)揮它應(yīng)有的功能,這是移民署必須要給的答案,筆者 不愿多做猜測(cè)。
回歸 IT 專業(yè),這次故障,至少到目前為止,系統(tǒng)維護(hù)廠商?hào)熋嫔辖o的解釋是某供應(yīng)商的存儲(chǔ)系統(tǒng)中有三塊磁盤及一片機(jī)板故障,而在硬件修復(fù)后,必須要等待數(shù)據(jù)由第二套系統(tǒng)回復(fù),所以需要這么久的時(shí)間,我們就從這個(gè)故障原因談起;機(jī)板故障的問(wèn)題我們不討論,因?yàn)闄C(jī)板存粹就是一個(gè)硬件組件,換新的就好了。
再來(lái)就是磁盤啰!企業(yè)級(jí)的存儲(chǔ)系統(tǒng)是不可能出現(xiàn)某幾塊磁盤故障而導(dǎo)致無(wú)法開機(jī)的。那有沒(méi)有可能導(dǎo)致數(shù)據(jù)損毀?當(dāng)然可能!
存儲(chǔ)系統(tǒng)最重要的數(shù)據(jù)其實(shí)并不是用戶的數(shù)據(jù),而是一個(gè)我們稱之為“元數(shù)據(jù)”(metadata) 的數(shù)據(jù),metadata 簡(jiǎn)單來(lái)說(shuō)就是存儲(chǔ)系統(tǒng)的組態(tài)文件,所有磁盤驅(qū)動(dòng)器如何劃分,哪些磁盤驅(qū)動(dòng)器組成一個(gè) RAID 群組,每一個(gè)數(shù)據(jù)卷 (volume) 的大小等等,這些相關(guān)信息通通存儲(chǔ)在 metadata 中。所以一旦metadata 損毀,可以想見的是,也許整個(gè)存儲(chǔ)系統(tǒng)內(nèi)的用戶數(shù)據(jù)全部都在,但卻不知道如何組織這些數(shù)據(jù),這是存儲(chǔ)系統(tǒng)的最大災(zāi)難,如何確保metadata 的安全是所有存儲(chǔ)系統(tǒng)的一個(gè)重要課題。
不同的存儲(chǔ)系統(tǒng)會(huì)使用不同的方法來(lái)保存 metadata;企業(yè)級(jí)的高端存儲(chǔ)系統(tǒng)會(huì)將 metadata 存放在具鏡射保護(hù)的非揮發(fā)性內(nèi)存 (non-violated memory) 中,非揮發(fā)性內(nèi)存不會(huì)因?yàn)闆](méi)有電源而失去數(shù)據(jù),另外為了增加系統(tǒng)的可用性,會(huì)把 metadata 復(fù)制幾份放在磁盤中,以備不時(shí)之需。中端存儲(chǔ)系統(tǒng)的 metadata 會(huì)存放在以 RAID 保護(hù)的特定磁盤中,或是分散在系統(tǒng)的不同硬盤中,保護(hù)顯然就沒(méi)有大型存儲(chǔ)系統(tǒng)來(lái)的好,但也足夠了。
在最壞的情況下,如果 metadata 真的完全損毀而無(wú)法由任何備份來(lái)回復(fù)時(shí),每家存儲(chǔ)系統(tǒng)原廠的研發(fā)部門還是可以在某些特定的狀況下,試著搶救 metadata,不過(guò)修復(fù)的時(shí)間與修復(fù)的程度則沒(méi)人敢打包票了。就這次的情況來(lái)看,境管系統(tǒng)使用的是高端的存儲(chǔ)系統(tǒng),顯然并不是 metadata 的損毀,否則可能還要花更長(zhǎng)的時(shí)間才能修復(fù)。
那么在數(shù)據(jù)硬盤上一次壞掉三顆硬盤?這個(gè)就有趣了,值得來(lái)討論一下。
我們都知道現(xiàn)在在存儲(chǔ)系統(tǒng)上普遍使用的 RAID (Redundant Array of Independent Disks),就是用來(lái)保護(hù)資料可以避免因?yàn)閱我淮疟P的故障而致無(wú)法使用的技術(shù),RAID5 是可以容許一個(gè) RAID 群組有一顆磁盤故障而不會(huì)影響數(shù)據(jù)的存取,雖然新的 RAID6 技術(shù)可以容許二顆磁盤的故障,但 筆者 相信境管系統(tǒng)應(yīng)該不是使用 RAID6 的技術(shù)。所以,如果使用 RAID5,而這三顆故障的磁盤是分散在三個(gè) RAID 群組中,那就不會(huì)出事了,顯然故障的三顆磁盤至少有二顆是在同一個(gè) RAID 群組。
一個(gè) RAID 群組,或是一個(gè)數(shù)據(jù)卷無(wú)法使用,會(huì)導(dǎo)致系統(tǒng)無(wú)法上線?存在這個(gè)數(shù)據(jù)卷上的是必然是一個(gè)極其重要的數(shù)據(jù)文件,沒(méi)有它程序無(wú)法運(yùn)作。但從應(yīng)用系統(tǒng)設(shè)計(jì)的角度來(lái)看,最重要的數(shù)據(jù)文件會(huì)考慮以更好方式來(lái)保護(hù),如使用 RAID1,或是在再?gòu)?fù)制一份存放在其他地方,一旦因?yàn)橛布?wèn)題無(wú)法存取數(shù)據(jù),可以以人工的方式要求程序去讀取備份的數(shù)據(jù)文件,在最短時(shí)間內(nèi)恢復(fù)聯(lián)機(jī)操作。
另外一個(gè)可能是,這個(gè)故障的數(shù)據(jù)卷是一個(gè)大型資料卷的一部份,這在大型資料文件中相當(dāng)常見;使用數(shù)據(jù)卷管理 (volume management) 軟件,將幾個(gè)硬件的數(shù)據(jù)卷合成一個(gè)數(shù)據(jù)卷,為了避免 RAID 重復(fù)計(jì)算導(dǎo)致數(shù)據(jù)訪問(wèn)時(shí)間的延遲,這種大型的數(shù)據(jù)卷通常不會(huì)再使用 RAID 保護(hù),而是以 stripping 或是 concatenated 的方式來(lái)組成大型數(shù)據(jù)卷,因?yàn)闆](méi)有 RAID 的保護(hù),一旦有某一個(gè)硬件數(shù)據(jù)卷故障,就會(huì)導(dǎo)致數(shù)據(jù)無(wú)法存取。
在實(shí)務(wù)上,筆者通常都會(huì)建議使用者在考慮使用這種大型數(shù)據(jù)卷時(shí),數(shù)據(jù)的回復(fù)時(shí)間一定要考慮進(jìn)去,因?yàn)闆](méi)有人敢打包票硬件一定不會(huì)故障,硬件故障會(huì)不會(huì)造成數(shù)據(jù)損毀,通常來(lái)講機(jī)率不高,但不是零。這也是為什么要一再?gòu)?qiáng)調(diào)數(shù)據(jù)備份的重要性。同時(shí)還要考慮到,一旦數(shù)據(jù)不見了,需要的回復(fù)時(shí)間。
所以回歸到硬件上,究竟在一個(gè) RAID 群組發(fā)生二塊以上的磁盤同時(shí)故障的機(jī)率到底高不高?筆者看到在網(wǎng)絡(luò)上絕大部份的人都認(rèn)為這是中了簽王,不過(guò)是不是真的如此?
磁盤驅(qū)動(dòng)器的可靠度是以平均故障時(shí)間 (MTBF, Mean Time Between Failure) 來(lái)評(píng)估,以現(xiàn)在的企業(yè)級(jí)磁盤驅(qū)動(dòng)器來(lái)說(shuō),MTBF 是一百廿萬(wàn)個(gè)小時(shí),大概是 136 年,那在我們有生之年應(yīng)該看不到磁盤驅(qū)動(dòng)器故障才對(duì)!其實(shí) MTBF 并不是這樣算的,它是指每一百廿萬(wàn)個(gè)使用小時(shí),就可能會(huì)有一顆磁盤驅(qū)動(dòng)器故障,所以有人使用沒(méi)幾天,有人可以使用好幾年。所以 MTBF 只是一個(gè)參考值,它可以顯示磁盤驅(qū)動(dòng)器的可靠度,當(dāng)然 MTBF 越高故障率也越低,但與單一系統(tǒng)可能碰到磁盤故障的機(jī)會(huì)并沒(méi)有絕對(duì)的長(zhǎng)短關(guān)系。
另外一個(gè)與碰到磁盤驅(qū)動(dòng)器故障機(jī)會(huì)有關(guān)的因素就是工業(yè)的產(chǎn)品壽命;每一個(gè)單一工業(yè)制品都有它的使用壽命,就像電池一樣,使用壽命到了,它就是會(huì)報(bào)廢。但是使用壽命與使用狀況有極大的關(guān)系,運(yùn)作環(huán)境當(dāng)然是一個(gè)很重要因素,國(guó)外已經(jīng)有報(bào)告指出,在平均溫度偏高的環(huán)境中運(yùn)作的 IT 設(shè)備,它的故障頻率也會(huì)相對(duì)的高;以磁盤驅(qū)動(dòng)器來(lái)說(shuō),除了環(huán)境之外,使用頻率與使用負(fù)載也是影響產(chǎn)品壽命的因素。用通俗的話來(lái)說(shuō),就是操得比較兇的,掛得也比較快。
所以就理論上來(lái)說(shuō),在各種條件都相同的狀況下,同型的磁盤驅(qū)動(dòng)器如果開始使用的時(shí)間相同,那么它們故障的時(shí)間也會(huì)接近。在實(shí)務(wù)上,筆者 也的確遇到過(guò)這樣的狀況,同一批上線的磁盤驅(qū)動(dòng)器,一旦其中有部份開始出現(xiàn)故障的狀況,在接下來(lái)的一段時(shí)間,將會(huì)出現(xiàn)密集的“換機(jī)潮”。
但吊詭的是,在同一部存儲(chǔ)系統(tǒng)的磁盤驅(qū)動(dòng)器,雖然外在的環(huán)境是相同的,但使用頻率和使用負(fù)載應(yīng)該是不同的,它們的“故障期”應(yīng)該是不同!這就牽涉到存儲(chǔ)規(guī)劃了。一個(gè)有經(jīng)驗(yàn)的存儲(chǔ)規(guī)劃人員,在建置一個(gè)存儲(chǔ)環(huán)境時(shí),通常都會(huì)與應(yīng)用系統(tǒng)或是數(shù)據(jù)庫(kù)管理人員有過(guò)溝通,了解每一種數(shù)據(jù)型態(tài)未來(lái)的使用狀況,并且盡可能的將使用負(fù)載分散,這是為了數(shù)據(jù)的存取效能與避免出現(xiàn)磁盤上的熱點(diǎn) (hot spot,指的是磁盤上大量數(shù)據(jù)存取而容易造成的壞軌)。所以本來(lái)應(yīng)該因?yàn)槭褂脿顩r不同而不致于同時(shí)出現(xiàn)的故障時(shí)間,卻因?yàn)橐?guī)劃時(shí)其他的考慮因素,反而使故障時(shí)間接近。
這次境管系統(tǒng)當(dāng)機(jī)事件,筆者 看網(wǎng)絡(luò)上一片罵聲,當(dāng)然,移民署絕對(duì)有很多值得檢討的地方;雖然 IT 設(shè)備是造成這次事件的主因,但 筆者 認(rèn)為 IT 的環(huán)境或是 IT 的建置,是這整個(gè)事件最后一個(gè)才需要被檢討的部份。不論是政府機(jī)關(guān)或是民間企業(yè),IT 的“備份”設(shè)計(jì)有沒(méi)有被認(rèn)真當(dāng)做一件事來(lái)討論?根據(jù) 筆者 的經(jīng)驗(yàn),一定要發(fā)生大事后,才會(huì)有人重視!“備份”這件事,不是只有 IT,它是一套應(yīng)變的方法,如果連應(yīng)變的計(jì)劃都沒(méi)有,那還談什么 IT 備份呢?
【責(zé)任編輯:劉強(qiáng) TEL:(010)68476606】