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