HA中的ESXI主機,踩雷案例!(注意紅色部分)

以前貼HA工作原理的時候曾經提醒過這個. 今天終於有人踩了地雷.

今天上午, 網絡運營部門運行DNS, 計費系統的20VM被ESX強制關機. 導致近20分鐘的total outage.

它們有一個小VI3環境, 配置也很簡單:

ESX01 - (SC IP: X.X.X.90, SC GW: X.X.X.10)
ESX02 - (SC IP: X.X.X.91, SC GW: X.X.X.10)
VC01 -  (IP: X.X.X.51, GW: X.X.X.10)
GW 是一個ROUTER的口地址.

ESX01與ESX02同屬於一個HA/DRS cluster. 各運行10臺VM

他們計劃爲ESX01添加一塊網卡:

1. 首先將ESX01上的10臺VM VMotion到ESX02
2. 關閉ESX01, 添加網卡
3. 啓動ESX01
4. 將10臺VM VMotion回到ESX01上.

第一步VMotion成功, 20臺VM在ESX02上正常運行.  接着他們在ESX01的service console上將ESX01 shutdown, 安裝網卡的過程中, 卻發現原來在ESX02上正常運行的20VM全部被關閉了. 他們判斷可能是ESX02的資源分配有問題. 手動啓動了一些VM, 可是過不久, 啓動後的VM又被ESX02關閉. 情急之下, 他們開始向其他部門求援. 我們分析象HA出現所謂的"腦裂"現象, 提示他們趕緊放棄trouble shoot ESX02, 立即啓動ESX01, 果然, ESX01啓動之後, ESX02不再自動關閉VM. 系統逐漸恢復正常.

分析原因:

1. 從service console shutdown ESX01, ESX01並沒有退出HA cluster (應該在VC上先進維護模式在shutdown)

2. 由於ESX01/ESX02同處與一個HA cluster, 他們互相檢查對方的狀態.

3. 當ESX01被關閉後, ESX02發現失去與ESX01的聯絡, 這時ESX02要判斷是ESX01出了故障還是ESX02本身出故障.

4. ESX02默認的的判斷方式是PING SC 的網關 (可以手動設置成其他地址), 如果迴應了, 則認爲是ESX01出現問題, 如果沒有迴應, 則認爲自己被孤立了(本機出現網絡故障), 如果被孤立, ESX02就會關閉所有的VM, 釋放對這些VM的盤文件的鎖定, 以便讓ESX01接管對這些VM的控制. 碰巧他們的SC 網關又被設置成不響應ICMP. 這下, 所有能出問題的地方的都出了問題, ESX02得不到來自ESX01及SC網關的響應, 認爲自己是被孤立了, 便開始關閉VM.

其實這時候個輕易避免的錯誤: ESX01進入維護模式; 暫停HA; 開啓SC GW的ICMP響應; 指定其他的故障檢測地址; 或是將"孤立"默認響應從"關閉VM"改成"維持VM運行". 做了其中的任何一項都能避免問題的出現.(讀者個人習慣是做任何類似於停機前必須要把之前的狀態更改爲維護狀態,可以避免錯誤的發生,在部署桌面虛擬化中刪除計算機目錄前也必須這樣幹,刪除域的計算機前,建議也先停)

解決故障時間不到10分鐘, 檢討可就夠他們去寫一兩個星期了...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章