ESXi host需下線維修,host上的VMs 怎辦?

虛擬化,雲端運算
回覆文章
schumi
Site Admin
文章: 696
註冊時間: 2004-04-15 14:30:34

ESXi host需下線維修,host上的VMs 怎辦?

文章 schumi »

http://vlife.pixnet.net/blog/post/46550240

Q: 首先談這個問題的正確解法,一台 ESXi host 要停機維修,上面的 VMs 怎麼辦?有什麼辦法可以快速移轉 VM 到其它 ESXi host?

A: Maintenance Mode

Description:
你必須先進入維護模式,vCenter Server 才知道你這台機器是要停機維修,進一步採取措施。這很重要,一旦 host 宣告要進入 Maintenance mode,代表了 DRS 必須馬上要有後續因應動作:將所有 VM 撤出這台機器。假設你啟用了 DRS,由於 vMotion 會自動化 (Fully automated 選項),你並不需要擔心 Cluster 裡的 VM,因為他們會被自動分配到合適的 host 上去運行,此期間服務並不會中斷,也不需要自己手動一台一台 vMotion。對於 "預期性的計畫停機",DRS 可以說是最好的因應之道。

但是在這個例子中,由於公司購買的版本是 Essential Plus,有 vMotion、HA 功能但沒有 DRS,怎麼辦?若是在 HA Cluster 讓 ESXi host 宣告 Maintenance Mode,代表的意義是什麼?請注意,HA 並不會觸發 vMotion,沒這回事,兩者功能目的並不相同,我們一般說的 "搬"、"飛" 的字眼,其實都是 vMotion,期間並不中斷服務,HA 用於防止 "非預期、非計畫性的故障停機" 帶來的問題 -- 當實體機器臨時掛了,哪裡來得及 vMotion?但許多 VMs 都 on 在這台機器上,總要有個脫困的方法。這也就是為什麼 HA 是採用接管、重新啟動 VM 在其它 ESXi host 的方式來解決,這絕對會產生 Downtime。

以這個例子來說,由於版本限制功能的問題,停機維修並沒有 DRS 可用,若不想中斷服務,必須手動或排程執行 vMotion。若是啟用 HA,關閉 host 的方法讓所有的 VM 重新啟動在另一 ESXi 是可行的,但記得這會造成虛擬機器關閉、重啟,有數分鐘停止服務的時間。(當然 VM 要能符合 vMotion 及 HA 的條件,在此就不多說)

你可能會想,幾分鐘的停機時間算不錯了,不會造成太大的影響。沒錯,我敢說在企業裡 95% 以上的服務是沒有急迫性,連幾分鐘都等待不了的。真正不允許有停機時間的應用不到 5%。問題是,老闆可不這麼想,他說我一秒幾十萬上下,電腦怎可停止服務?於是你被罵了一頓。ESXi 永不當機做不到,但 Guest OS 服務不停頓,卻是辨得到的,那就是再架構 FT / MSCS / APHA 保護關鍵性應用 (但是又要花費龐大支出,你可能又會被罵了一頓)

然後接著你會發現,即使你的 VM 都符合條件,也啟用了 HA,當一台 ESXi 發生故障,VM 卻無法重啟在另一 host 上,於是你灰頭土臉地被罵了第三次。IT 人很辛苦,我暸 (拍肩),我來告訴你是怎麼一回事。通常發生這樣情形,可能原因是:

1. Configuration

你設定的 Heartbeating、VM monitoring、VM 啟動優先順序、Isolation Respone、有無啟用 Admission Control 等均會造成影響,牽扯範圍甚廣,有機會的話專文介紹之。

2. Admission Control

若是啟用了 HA Admission Control,則它就會嚴格把關,一旦其它 hosts 支撐不了那麼多 VM 啟動,VM 就被禁止開機。這也就是前面所提到的,在 HA Cluster 將 host 宣告爲 Maintenance Mode,代表的就是它的硬體資源不會被計算在內, Cluster 的整體資源減少了。以這個例子來看只有兩台實機,將一台停機維修等於當埸少了一半硬體資源,若是事先沒有規劃妥善,預留資源的話,Admission Control 爲了確保原 host 的 VM 運作正常,當然不答應所有的 VM 全部跑過來。若是關閉 Admission Control,則 VM 都能重新啟動在僅剩的 host 上,但你必須確定資源不會被拖垮,效能每個人都能接受。否則接下來,可能會被罵N次了 >"<
回覆文章

回到「VMware」