VMware vSphere ESXI/ESX 中的HA工作原理介紹

HA全稱High Availability。它是VMware的企業應用環境中用來保障企業級應用的不間斷運行需求所產生的一個組件。

HA允許一個集羣中在資源許可的情況下,將出現故障的ESX主機上面的VM在其他的主機上啓動起來,其間的業務時間間斷爲:VM系統啓動時間+應用啓動時間+15秒左右的心跳檢測時間。通常這個時間都能夠保持在3分鐘內。

HA不受DRS和VMotion的影響,也就是說它並不依賴於後兩者存在,它的心跳檢測信號可以通過在ESX主機之間發生。HA甚至都不依賴於VC服務器,不過鑑於HA的配置需要一來VC,所以我們一般認爲HA還是需要依賴於VC服務器的,但是我們必須清楚的認識:VC於HA的作用僅限於配置時需要它,配置完成之後,只要我們設定了心跳檢測的隔離地址,則我們可以丟棄VC服務器了(前提是我們不需要用到DRS和VMotion等功能)。

設定HA集羣過程中,我們可以看到如下幾個選項,他們分別的含義是:

1、接入控制。用於設定集羣中可以恢復或確保故障切換的最大主機故障數(VI3中集羣最大允許故障主機數目爲4臺)、確定違反可用性限制的VM是否可以被啓動。

2、默認羣集設置。默認會應用於羣集中的所有滿足HA條件的VM。其中“虛擬機重新啓動優先級”選項指定發生主機故障時重啓VM的相對優先級,優先級較高的VM將優先啓動,依此類推,優先級從高到低次第啓動;“主機隔離響應”選項則用於執行已與集羣失去連接的ESX主機應對正在運行的VM執行的操作。默認情況下,住過主機被隔離,則每臺VM會保持啓動狀態,也就意味着被隔離ESX主機無法於集羣中的其他主機取得聯繫,但是其中的VM還繼續保持運行;“關閉虛擬機”和“虛擬機關閉”則會將VM交付於其他ESX主機,等同於切斷VM的電源,可能導致應用數據丟失。其中前者相當於拔電源,後者則是溫和的自動啓動關機命令。區別在於,前者的等待時間較短,但是容易導致應用數據丟失,後者等待時間較長,但是應用數據更容易受到保護。

3、虛擬機監控。可以通過安裝VMtools對虛擬機的運行狀態通過VMtools發出的監控信號進行監控,如果在規定時間內沒有收到信號則說明該機異常,將自動重啓這臺機。這個規定時間有:2分鐘、1分鐘、30秒鐘三個選項。

4、高級選項。這裏是對HA的一些高級選項進行配置。比如das.isolation-address(確定主機狀態的隔離地址)。

HA的具體工作原理

  在集羣中,VC通過心跳信號(Agent Heartbeat)來監控各臺ESX主機的工作狀態,ESX主機之間也能夠相互發送心跳信號來確定相互之間的連通性和運行狀態。集羣中的心跳信號默認通過Service Console來傳輸(端口不定),那麼,當某臺ESX主機沒有收到其他主機的信號時,則可能有兩種可能:(1)、其他ESX主機故障;(2)、本機網絡連通性出了問題,我們稱之爲“孤立”(isolation)。

ESX主機的聯通性心跳信號測試,還可以通過一個“隔離地址”來實現,默認情況下這個地址是Service Console的網關地址,但是,我們可以在高級選項中自定義這個地址。

一旦ESX主機確定是自身的問題,那麼,系統將會自動解除對ESX主機上面虛擬機的VMDK文件解除鎖定,方便其他主機接管它;如果ESX主機確認非自身問題,則開始嘗試接管其他可能故障的ESX主機上面的VM。

根據實驗資料,ESX主機會在停止收到心跳信號數秒後,開始確認自己是否被孤立,如果確認是,則會根據遇險的配置來決定其中VM的狀態處理。正常ESX主機會在停止接收到故障ESX主機的心跳喜好15s之後,開始嘗試接管並啓動原來在故障主機上的VM。

另一種特殊的情況,我們稱之爲“腦裂”

這種情況一般發生在非冗餘網絡和主機集羣中。假定某HA集羣中有2臺主機T1和T2,當T1崩潰後沒能發出心跳信號時,T2無法確認是T1問題還是自身問題,這時它會嘗試ping隔離地址設定的IP,來確認是否是自身被孤立,如果隔離地址因爲防火牆封閉或其他原因無法ping通,則T2會認爲自身是孤立主機,那麼,它就會按照預先設定的操作進程對VM進行相應的處理,進而擴大化故障範圍

正是爲了防止“腦裂”現象的發生,VMware中將HA設置中的“主機隔離響應”默認配置爲“保持VM啓動狀態”。

備註:早期的版本默認設置爲“關閉VM”。所以,我們一再強調對HA集羣中的默認ESX主機爲3臺以上,或者集羣中的ESX擁有冗餘網絡。



關於vmware 推薦的ha羣集最佳做法:

主要是分設計羣集,網絡配置,網絡冗餘.

一關於設計羣集:

1)將警報設置爲監控羣集更改

當 VMware HA 或容錯執行可用來維護可用性的操作時(例如,虛擬機故障切換),我們需要系統通知我們

此更改。可以將 vCenter Server 中的警報觸發設置配置爲在執行操作或向指定的一組管理員發送警示(如,電

子郵件)時觸發。

2)監控羣集有效性

有效羣集是尚未違反接入控制策略的羣集。

當已啓動的虛擬機數超過了故障切換需求,即當前故障切換容量小於所配置的故障切換容量,則已啓用 VMware

HA 的羣集將會變爲無效(紅色)。如果禁用了接入控制,則羣集不會變爲無效。

vSphere Client 中的羣集的“摘要”頁面顯示羣集的配置問題的列表。該列表說明了造成羣集無效或過載(黃色)

的原因。

如果羣集是由於 VMware HA 問題而變爲紅色的,則 DRS 行爲不會受到影響。

3)檢查羣集的操作狀態

羣集或其主機可能會出現一些配置問題和其他問題,這會對 VMware HA 的正常運行產生負面影響。可以查

看“羣集操作狀態”屏幕來監控這些錯誤,能夠從 vSphere Client 中羣集的摘要選項卡的 VMware HA 部分訪

問此屏幕。大家應該解決此屏幕上列出的所有問題。

二關於網絡配置(維護):

下列網絡維護建議可以幫助我們避免對由於丟失 VMware HA 檢測信號而發生故障的主機和網絡隔離的意外檢測。

1)對羣集 ESX/ESXi 主機所在的網絡進行更改時,VMware 建議我們掛起主機監控功能。更改網絡硬件或網絡

設置會中斷 VMware HA 用於檢測主機故障的檢測信號,並且這可能導致不必要的虛擬機故障切換嘗試。

2)在 ESX/ESXi 主機上更改網絡配置時(例如,添加端口組或移除 vSwitch),VMware 建議除了掛起主機

監控以外,還應將主機置於維護模式。

羣集範圍的網絡注意事項

爲了使 VMware HA 運行,羣集內的所有主機都必須有兼容網絡。添加到羣集的第一個節點指明爲了使所有後

續主機成爲羣集成員還必須擁有的網絡。如果 IP 地址和子網掩碼的組合生成的網絡與其他主機的網絡相匹配,

則將此網絡視爲兼容網絡。如果嘗試添加具有太多或太少管理網絡的主機,或者要添加的主機具有不兼容的網絡,

則配置任務將失敗,而且“任務詳細信息”窗格中將指定該主機不兼容。

例如,如果添加到羣集的第一個主機有兩個網絡用於 VMware HA 通信,10.10.135.0/255.255.255.0 和

10.17.142.0/255.255.255.0,則所有後續主機必須配置相同的兩個網絡,並用於 VMware HA 通信。

網絡隔離地址

網絡隔離地址是要 ping 的 IP 地址,以確定主機是否與網絡隔離。只有當主機已停止從羣集內的任何其他主機

接收檢測信號時才 ping 此地址。如果主機可以 ping 其網絡隔離地址,則說明該主機並未與網絡隔離,並且羣

集內的其他主機已發生故障。但是,如果主機無法 ping 其隔離地址,則可能該主機已與網絡隔離,並且不會

執行故障切換操作。

默認情況下,網絡隔離地址是主機的默認網關。無論已定義了多少管理網絡,都只指定了一個默認網關,因此,

應當使用 das.isolationaddress[...] 高級屬性爲其他網絡添加隔離地址。

指定額外的隔離地址時,VMware 建議將 das.failuredetectiontime 高級屬性的設置增加到 20000 毫秒(20 秒)

或更長時間。如果主機隔離響應是爲了故障切換虛擬機(而非將其保持爲啓動狀態),則從網絡隔離的節點需

要時間釋放其虛擬機的 VMFS 鎖。必須在其他節點將該節點聲明爲故障節點之前進行此操作,以便當它們啓動

虛擬機時,不會由於虛擬機仍然被此隔離節點鎖定而收到錯誤。



其他網絡注意事項

配置交換機。如果連接服務器的物理網絡交換機支持 PortFast(或等效)設置,請將其啓用。此設置可防止主

機在執行冗長的跨樹算法期間誤認爲網絡已被隔離。

主機防火牆。在 ESX/ESXi 主機上,VMware HA 需要並自動打開以下防火牆端口。

A 入站端口:TCP/UDP 8042-8045

B 出站端口:TCP/UDP 2050-2250

端口組名稱和網絡標籤。在 VLAN 上使用一致的公用網絡端口組名稱和網絡標籤。端口組名稱用於重新配置虛

擬機對網絡的訪問。如果在原始服務器和故障切換服務器間使用的名稱不一致,虛擬機將在故障切換後中斷網

絡連接。虛擬機使用這些標籤在重新啓動時重新建立網絡連接。

三網絡路徑冗餘

羣集節點之間的網絡路徑冗餘對 VMware HA 可靠性非常重要。單個管理網絡會最終成爲單一故障點。

如果當我們只有一個管理網絡,則主機和羣集之間的任何故障都可能導致不必要的(錯誤的)故障切換情況。可

能的故障包括網卡故障、網絡電纜故障、網絡電纜移除和交換機重置。考慮主機可能導致故障的上述原因,然

後嘗試減少這些問題(通常通過提供網絡冗餘來實現此目的)。

可以使用網卡綁定在網卡級別或在管理網絡級別實現網絡冗餘。在大多數實現中,網卡綁定可以提供足夠的冗餘,

但如果需要,可以使用或增加管理網絡冗餘。冗餘管理網絡可以可靠地檢測故障並防止出現隔離的情況,因爲

檢測信號可以通過多個網絡發送。

在羣集內的服務器之間儘量少配置硬件分段,目的是爲了限制單一故障點。此外,躍點過多的路由可能會導致

檢測信號的網絡數據包延遲,並增加潛在的故障點數目。



使用網卡綁定的網絡冗餘

如果用兩個連接到不同物理交換機的網卡組成一個網卡組,則可以提高管理網絡的可靠性。因爲通過兩個網卡

(並且通過單獨的交換機)連接的服務器具有兩條獨立的路徑來發送和接收檢測信號,所以羣集具有更好的彈性。

要爲管理網絡配置網卡組,請在活動或待機配置的 vSwitch 配置中配置 vNIC。推薦的 vNIC 參數設置如下:

A默認的負載平衡 = 基於源虛擬端口 ID 的路由

B 故障恢復 = 否

在爲 VMware HA 羣集內的主機添加網卡後,必須在該主機上重新配置 VMware HA。

使用輔助網絡的網絡冗餘

除了使用網卡綁定提供檢測信號冗餘之外,還可以創建一個輔助管理網絡連接,並將其連接到一個單獨的虛擬

交換機上。主管理網絡連接用於網絡和管理。輔助管理網絡連接創建之後,VMware HA 會同時通過主管理網

絡連接和輔助管理網絡連接發送檢測信號。如果一條路徑發生故障,VMware HA 仍可通過另一條路徑發送和

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