正確配置vSphere HA:確保虛擬機正常重啟
ESXi服務器發生故障后,VMware的vSphere HA將會快速重啟受影響的虛擬機。但是啟動虛擬機所需的資源足夠用嗎?如果不足,可能無法交付必需的虛擬機性能。虛擬化管理員應正確配置vSphere HA,保護虛擬化應用的性能,確保業務價值的實現。
vSphere HA特性最早在ESX 3中引入,硬件出錯或者管理員誤操作后,能夠恢復受影響的虛擬機。正是這些特性使vSphere成為了標準的企業虛擬化平臺。
vSphere HA解決了虛擬化的一個主要的關注點:當10個、20個或者100個虛擬機運行在單臺ESXi服務器上時存在的脆弱性。在虛擬化之前,單臺物理服務器故障只會影響一個應用。現在單臺物理服務器可能會承載30個應用。如果ESXi服務器發生故障,HA將會快速重啟虛擬機,將硬件故障帶來的影響降至最低。
但是vSphere HA只保護預留的資源,因此在配置vSphere高可用性環境時,設置合理的預留值是非常重要的一部分。既然vSphere HA保護為虛擬機預留的資源,那么設置預留值將非常重要;否則在硬件發生故障時虛擬機性能將受到影響。
這是一個常見的誤解:HA并不保護虛擬機所消耗的資源,只保護設置的預留資源。如果預留資源不夠,將無法保證性能。
如何確保虛擬機正確重啟
虛擬化管理員配置HA集群,主設置決定了是否針對故障提供保護以及預留多少資源來應對服務器故障。在生產環境中,你總想使用訪問控制設置來應對故障。你應該在訪問控制策略設置中預留足夠多的資源來應對故障。進行了上述設置后,如果其中一臺主機發生故障,能夠確保正在運行的虛擬機正常重啟。
我們無法確定虛擬機重啟之后的性能以及集群中其他虛擬機的性能狀況,因為這些虛擬機共享著同一個資源池。這是因為ESXi主機默認并不保證向虛擬機交付任何的CPU或者內存;除非設置了資源預留值否則不會為虛擬機預留任何資源。
在之前的文章《利用優先級列表提升關鍵虛擬機性能:設定恰當的預留值》中,我們討論了預留的重要性。預留確保了虛擬機獲取到了交付相應的服務級別所需要的最小資源數量。在你使用vCenter啟動虛擬機時,在配置完故障級別后HA集群將檢查是否有足夠多未預留的資源。如果預留值為零,HA將允許你開啟大量的虛擬機,但可用的資源將會減少或者虛擬機性能將會下降。
在問題出現前,通過限制正在運行的虛擬機的數量可以確保在主機發生故障后虛擬機能夠交付所必需的性能。但更好的方式是為虛擬機配置預留值。為虛擬機設置預留值后,你可能會發現HA不允許你在集群中啟動太多的虛擬機,而且ESXi服務器的資源利用率也不會非常高。如果主機出現故障,虛擬機的性能級別將不會受到影響,特別是具有高預留值的運行關鍵業務虛擬機。關鍵虛擬機對業務的重要性表明ESXi服務器發生故障將對業務連續性產生不小的影響。
當集群中優先級低的虛擬機較多時,為虛擬機設置的預留值較低,你可能仍會看到ESXi主機硬件資源的利用率較為正常,因為在ESXi服務器發生故障時這些虛擬機占用的資源較少,仍能夠繼續運行。