虛擬化實戰:Cluster設計之三HA
一 為什么使用HA
高可用性是虛擬化平臺最突出的特性之一,設置和維護非常簡單,技術非常成熟。對于一些非常關鍵的應用,可能對容災的要求特別高,可以考慮采用基于應用層的HA,或者操作系統層的HA,比如MSCS。虛擬層的HA是在底層架構上實現的高可用性,在恢復時間可接受的情況下是非常好的選擇。
相對應用層和操作系統層HA而言,vSphere HA以較低的成本實現了整個集群的高可用性,同時實施和維護都十分的簡單。無需在應用或者VM上作任何設置或改動。
二 HA是如何工作的?
HA Agent
vSphere5.0之后的版本對架構作了很多的改動。摒棄了原來Cluster中的Primary Node和Secondary Nodes的概念。并且引入了Master HAagent 和 Slave HA Agent的概念。通常情況下一個Cluster中僅有一個Master HA Agent。HA Agent有以下的功能:
-與vCenter互相交換信息
-Master HA Agent監控VM的狀態,在其出現問題時重啟
-Slave HA Agent把VM的狀態信息傳遞給Master HA Agent, 并且在MasterAgent 的指令下重啟VM
-檢測VM上運行的應用的狀態
當Master HA所在的主機出現問題時,其他主機上的Agent開始參與競選成為MasterHA, 連接DataStore數目最多的主機會成為Master。如果兩臺主機DataStore數目相同,Managed Object Id較高的主機會成為Master。
HeartBeating
用來判斷主機是否仍然正常運行。
Network Heartbeating
每臺Slave都和Master主機互相發送Heartbeat信息。
Datastore Heartbeating
有的情況下Management網絡中斷之后,如果VM還能夠繼續訪問其他網絡和存儲,那么就無需對被隔離主機上的VM采取響應措施。這是就需要檢測Datastore Heartbeating來進一步驗證。
對于Converged Infrastructure,比如Cisco UCS等系統,Datastore Heartbeating能起的作用不大,因為管理網絡和存儲共用物理鏈路,在管理網絡中斷的情況下,存儲很可能也無法訪問了。
主機隔離
檢測: 在某個主機無法與Management Network通訊時,也就是ping isolation Address失敗后,該主機會被認為處于隔離狀態。 Management Network的網關缺省作為isolationAddress。 為了增加可靠性和避免誤判,可以設置多個isolationAddress
響應:
下面的分析幫助你在確認主機處于隔離狀態后,選擇合適的響應動作
以上僅僅是建議參考,Leave Powered On適用于大多數的情況。因為虛擬化設計大多考慮了網絡的冗余,出現HostIsolation本來就是很少見的情況。
在使用iSCSI或NFS的情況下,如果你估計管理網絡中斷的同時,可能存儲網絡也會中斷。考慮使用PowerOff. 在主機無法訪問存儲時,HAAgent會在其他主機上啟動VM的第二個Instance.而此時第一個Instance仍然在被隔離的主機上運行,當所有網絡正常恢復時,這可能會造成很麻煩的情況。因為同一個VM有兩個Instance同時運行。
Admission Control
用來保證在主機出問題時,Cluster有充足的資源供問題主機上的VM使用。
有以下策略可供選擇:
1 Define failover capacity bystatic number of hosts
2 Use dedicated failover hosts
3 Define failover capacity byreserving a percentage of the cluster
resources
第三種方式,也就是用百分比方式定義Failover Capacity,適用于大多數情況。最大可能的高效使用資源,從而可以運行較多的VM。
三基本設計原則
HA策略中優先啟動vCenter以及較重要的VM。比如DNS,AD,MS SQL等。同時需要注意HA并不能完全保證VM重啟的順序。如果VM之間有復雜的依賴關系以及嚴格的啟動順利,可以考慮VMware SRM。
如果維護可能造成Management Network的中斷,考慮暫時屏蔽HA,避免觸發HA的隔離響應措施
最好每臺主機有一致的CPU和RAM配置。如果一個Cluster中某個主機有較高的配置,HA的策略需要保證有充足的資源來保證運行該主機的VM
雖然多個Cluster可以共享同一個DataStore,但最好還是為每個Cluster分配專屬的Datastore。這樣可以簡化管理,同時在某主機被隔離后,HA可以較容易的重啟VM。
一定注意Management Network的冗余。 因為HA的Network Heartbeating依賴于ManagementNetwork
在Stretched Cluster情況下,也就是Cluster中的主機和存儲分布在兩個間隔較遠的數據中心,建議最少設置4個HeartbeatDatastore. 每個數據中心設置2個。
參考:
VMware vSphere 5.1 ClusteringDeepdive by Duncan Epping
HAArchitecture Decision by Josh Odgers
vSphereAvailability Guide
VMware vSphere High Availability5.0 Deployment Best Practices
原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://frankfan.blog.51cto.com/6402282/1329945