【虛擬化實戰】Cluster設計之三HA

作者:範軍 (Frank Fan) 新浪微博:@frankfan7

一 爲什麼使用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

響應:

下面的分析幫助你在確認主機處於隔離狀態後,選擇合適的響應動作


主機可以訪問VM DataStore的可能性

可以訪問VM網絡的可能性

建議的響應動作

理由

可能

可能

Leave Powered On

VM可能仍在正常運行

可能

不可能

Leave Powered On 或 Shut Down

因爲VM仍然可以訪問DataStore,選擇shutdown可以把該VM在其他主機上重啓

不可能

可能

Power Off

避免兩個VM拷貝同時運行的情況。尤其是使用iSCSI或NFS的情況下。



以上僅僅是建議參考,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


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