我們在日常工作和生活中享受著信息時代的便利,殊不知這背后有著成千上萬的技術(shù)工程師在辛勤地工作著。數(shù)據(jù)中心里的故障每天其實都在上演,只是我們很少感知到而已,只有出現(xiàn)非常嚴(yán)重的故障時,我們才能感受得到。一個優(yōu)秀的數(shù)據(jù)中心,在業(yè)務(wù)處理的各個方面都會考慮備份,當(dāng)任何一臺設(shè)備出現(xiàn)問題時,業(yè)務(wù)都會向其它設(shè)備平滑遷移,只有在很少的情況下,所有的備份機(jī)制都出問題時,業(yè)務(wù)才會受到影響。數(shù)據(jù)中心要做到不出問題幾乎是做不到的,這其中有各種各樣的原因:硬件的,軟件的,操作的,人為的等等。那么一旦數(shù)據(jù)中心遇到了故障,如何快速的去分析和診斷呢?中醫(yī)里講究望聞問切。望,指觀氣色;聞,指聽聲息;問,指詢問癥狀;切,指摸脈象。各稱四診。這里引用中醫(yī)里的“望聞問切”來說明一下數(shù)據(jù)中心故障診斷的四大方法。
望
當(dāng)接手一個數(shù)據(jù)中心故障時,往往最先從業(yè)務(wù)部門得知,這時要檢查整個數(shù)據(jù)中心承載業(yè)務(wù)的運行情況,檢查網(wǎng)管監(jiān)控的各個節(jié)點流量是否出現(xiàn)異常,檢查業(yè)務(wù)訪問是集中于一定區(qū)域還是特定的幾臺服務(wù)器,盡量縮小故障查找的范圍,要進(jìn)行有目的的觀察。業(yè)務(wù)上異常的表現(xiàn)必然和數(shù)據(jù)中心基礎(chǔ)設(shè)施:服務(wù)器、網(wǎng)絡(luò)、存儲、安全等有關(guān)聯(lián)。要通過“望”,透過業(yè)務(wù)故障的表面現(xiàn)象,看到問題的本質(zhì)。比如我們通過網(wǎng)頁去訪問銀行卡系統(tǒng),如果訪問失敗,那么表現(xiàn)可能是多種多樣的,可能是輸入用戶名無法登陸,可能是訪問個人數(shù)據(jù)出錯,也可能是無法完成查詢、異地轉(zhuǎn)帳等各種具體業(yè)務(wù)功能。當(dāng)短時間內(nèi)無法確知問題產(chǎn)生的來源時,要通過“望”對數(shù)據(jù)中心整體業(yè)務(wù)運行狀況做檢查,看是否有和平日里相比運行異常的地方。根據(jù)這些差異,推斷可能問題出在了哪里。
聞
并不是所有的問題都那么好發(fā)現(xiàn),有的隱藏得很深。這就需要“聞”。“聞”指的是通過一些診斷手段去分析現(xiàn)有數(shù)據(jù)中心的運行狀態(tài)是否正常。比如可以通過PING工具,對數(shù)據(jù)中心里的各個設(shè)備進(jìn)行訪問,看是否有不可達(dá)的。通過模擬業(yè)務(wù)訪問,看是否能夠正常操作,具體是什么操作是失敗的,將故障進(jìn)行分解。要知道數(shù)據(jù)中心里的設(shè)備多達(dá)數(shù)千臺,運行的應(yīng)用也有數(shù)十種,怎么能夠快速找到故障點是一件非常耗時的事情。通過“聞”對數(shù)據(jù)中心做各種模擬測試,就可以排除干擾,將故障表現(xiàn)集中在一點,然后才能對癥下藥。
問
“望”和“聞”都是通過各種手段快速地找到是哪里有故障,有時這些手段得到的結(jié)果容易是片面的,甚至根本沒有時間去做,那么從現(xiàn)場得到的故障表現(xiàn)描述就非常關(guān)鍵了。根據(jù)現(xiàn)場人員的反饋,了解問題最初的現(xiàn)象,從問題的表現(xiàn)上來推斷可能哪里出現(xiàn)了問題。比如有人反饋搜索系統(tǒng)出現(xiàn)了問題,在搜索框里輸入字符總是得到搜索失敗的結(jié)果,根據(jù)這樣的描述,我們將故障放在運行搜索業(yè)務(wù)的集群系統(tǒng)里。在這個集群系統(tǒng)里可能還包含著幾百臺同時工作的服務(wù)器,還有網(wǎng)絡(luò)設(shè)備和存儲設(shè)備,到底是哪里出了問題。那么看搜索是否只有特定的字符搜不到,是否是因為延遲過大而不得到結(jié)果,是否是有服務(wù)器出現(xiàn)掛死,而導(dǎo)致訪問這臺都得不到結(jié)果,等等。通過了解詳細(xì)的故障描述,那么就基本可以確定故障分析的方向,然后再去細(xì)化。“問”的環(huán)節(jié)至關(guān)重要,不僅要聽現(xiàn)場人員的反饋,還要進(jìn)行咨詢,有時現(xiàn)場人員只是將看到的故障一部分表現(xiàn)說出來,并不了解數(shù)據(jù)中心系統(tǒng)運行的機(jī)制,所以需要主動進(jìn)行“問”,用自己的思路去詢問。了解的越準(zhǔn)確,了解的越細(xì)節(jié),那么排除故障所耗費的時間就越短。如果反饋的現(xiàn)象本身就是錯誤的,往往將技術(shù)人員帶入到了錯誤的分析過程里,甚至找不到故障的原因。所以有些時候也不能完全依賴“問”得到的信息,還要結(jié)合“望”和“聞”,綜合分析和判斷,最終找到故障點。
切
根據(jù)故障描述,通過“切”來查找故障根因。“切”就是具體的診治了,通過“望”,“聞”,“問”,基本將故障縮小在幾臺設(shè)備之間,或者是一個應(yīng)用系統(tǒng)中的某個部分,這時就要對故障涉及的設(shè)備進(jìn)行深入診治。數(shù)據(jù)中心涉及的設(shè)備五花八門,任何設(shè)備都有出問題的可能,當(dāng)已經(jīng)將故障縮小在了某個設(shè)備上時,通過平時積累的設(shè)備運維指導(dǎo)進(jìn)行分析,如果無法找到原因,立即求助設(shè)備廠商支援。為了縮小業(yè)務(wù)故障的時間,可能將業(yè)務(wù)割接到其它設(shè)備上。“切”的過程需要有對設(shè)備內(nèi)部運行機(jī)制非常精通的人才能診治。這也像我們不舒服時去看病一樣,根據(jù)哪里難受先掛個內(nèi)科或者外科,然后醫(yī)生根據(jù)描述,再讓做各種檢查,縮小范圍,可能再到骨科或者頸椎科做進(jìn)一步判斷,然后再分頭骨還是腿骨,最終將病變部位找到。通過“切”就是要消除病根,徹底解決問題。
通過“望聞問切”對數(shù)據(jù)中心里發(fā)生的各種故障進(jìn)行診治,往往可以節(jié)省解決故障的時間,作為數(shù)據(jù)中心里的故障排查專家,尤其要掌握好“望聞問切”的本領(lǐng)?,F(xiàn)在的數(shù)據(jù)中心認(rèn)證已經(jīng)有了故障排查專家的認(rèn)證了,其主要考核的就是對故障分析過程的掌握情況。一個數(shù)據(jù)中心故障分析的專家往往并不需要對所有的技術(shù)都精通,實際上也做不到,但是要有一個分析問題的清晰思路,能夠透過故障現(xiàn)象看到問題的本質(zhì)。正如中醫(yī)里的四診,數(shù)據(jù)中心里也需要四診。