VMWARE: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擁有冗餘網絡。

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