摘要:旨在發生單點故障后,消除單點故障的影像,盡可能在剩余資源池上運行業務。首先需要找出屬于最大全連接組以下簡稱的,用選擇一個,重啟丟失連接的。是通過在每個主機中進行配置,高可用集群中,每個主機上該配置文件都必須保持一致,如果不一致將導致不可用。
概述
隨著云計算市場的快速發展,用戶對服務的實時性需求越來越高,系統的穩定性和可用性顯得尤為重要。高可用性HA(High Availability)可以做到盡量縮短日常計劃維護的操作和突發的系統崩潰所導致的停機時間,以提高系統和應用的可用性。所以HA是目前云計算中防止核心計算機系統因故障停機最有效的手段。那么在本文中我們一起探討一下,高可用性在XenServer中是如何應用的。
前文回顧:還記得三大虛擬化技術之一的XenServer嗎
高可用集群(HA):
高可用集群在指發生單點故障時,可以從其他正常工作的節點中選出一個節點替換故障節點,繼續提供服務,即將有故障節點上的資源和服務轉移到工作正常的節點上。保證服務不中斷,一直在線,用戶對底層的資源切換無任何感知。
XenServer的HA盡量保持VM一直處于運行狀態,即使當管理員不在時,發生資源池中的硬件損壞。下圖中展示了包含HA的資源池,兩個主機之間網絡連接出現問題前后的變化。
XenServer在啟用HA時,資源池中所有的主機,通過網絡定期交換心跳信息,并將心跳信息發送到共享存儲設備,不斷嘗試獲取共享存儲的“master lock”權限。
XenServer HA旨在發生單點故障后,消除單點故障的影像,盡可能在剩余資源池上運行業務。首先需要找出屬于最大全連接組(以下簡稱“liveset”)的VM,用“master lock”選擇一個Master,重啟丟失連接的VM。
XenServer HA實現的主要組件有xapi、xen、xhad。
Xapi用于配置HA策略,即哪些網絡存儲用于心跳,發生故障之后哪些VM需要重啟。配置和管理xhad心跳守護進程。Xapi在本地數據庫主要存儲了兩個設置:1.ha_disable_failover_actions通常設置為false,表示節點可以恢復VMs,在HA禁用過程中設為true,防止僅部分啟用HA發生腦裂 2. ha_armed設為true表示xapi在host啟動加入liveset時啟動xhad
Xen主要應用于主機被集群部分或完全隔離時,xen的監控程序保證主機的隔離。
Xhad是集群成員守護進程,通過網絡和存儲心跳維護集群中的主機。Xhad是通過在每個主機/etc/xensource/xhad.conf中進行配置,高可用集群中,每個主機上該配置文件都必須保持一致,如果不一致將導致HA不可用。Xhad.conf是用XML編寫的,包含了資源池范圍配置和本地主機配置。資源池范圍配置包括集群所有活動的主機及全局超時信息。本地主機配置記錄了本地主機的信息及用于本地網絡接口和塊存儲的心跳設備。以下是xhad.conf文件示例:
<?xml version="1.0" encoding="utf-8"?>
<xhad-config version="1.0">
<!--pool-wide configuration-->
<common-config>
<GenerationUUID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</GenerationUUID>
<UDPport>694</UDPport>
<?。璮or each host, specify host UUID, and IP address-->
<host>
<HostID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</HostID>
<IPaddress>xxx.xxx.xxx.xx1</IPaddress>
</host>
<host>
<HostID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</HostID>
<IPaddress>xxx.xxx.xxx.xx2</IPaddress>
</host>
<host>
<HostID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</HostID>
<IPaddress>xxx.xxx.xxx.xx3</IPaddress>
</host>
<!--optional parameters [sec] -->
<parameters>
<HeartbeatInterval>4</HeartbeatInterval>
<HeartbeatTimeout>30</HeartbeatTimeout>
<StateFileInterval>4</StateFileInterval>
<StateFileTimeout>30</StateFileTimeout>
<HeartbeatWatchdogTimeout>30</HeartbeatWatchdogTimeout>
<StateFileWatchdogTimeout>45</StateFileWatchdogTimeout>
<BootJoinTimeout>90</BootJoinTimeout>
<EnableJoinTimeout>90</EnableJoinTimeout>
<XapiHealthCheckInterval>60</XapiHealthCheckInterval>
<XapiHealthCheckTimeout>10</XapiHealthCheckTimeout>
<XapiRestartAttempts>1</XapiRestartAttempts>
<XapiRestartTimeout>30</XapiRestartTimeout>
<XapiLicenseCheckTimeout>30</XapiLicenseCheckTimeout>
</parameters>
</common-config>
<?。璴ocal host configuration-->
<local-config>
<localhost>
<HostID>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2</HostID>
<HeartbeatInterface> xapi1</HeartbeatInterface>
<HeartbeatPhysicalInterface>bond0</HeartbeatPhysicalInterface>
<StateFile>/dev/statefiledevicename</StateFile>
</localhost>
</local-config>
</xhad-config>
參數說明:
GenerationUUID:每次重新配置HA時生成的一個UUID。這個參數可以讓Xhad做到通知故障節點,已將它從配置中移走,HA系統重置,UUID已經發生變化。
UDPort:用于心跳的端口號。需要確保所有的主機上該端口號未被其他進程占用,并且沒有被防火墻屏蔽。
HostID:標識資源池中主機的UUID。
IPaddress: 遠程主機的IP地址,通常配置xapi的管理網。
HeartbeatTimeout: 設定心跳包接收的超時時間。如果超過這個時間沒有收到心跳包,xhad認為心跳失敗。用“T”來表示, T必須大于10,通常使用60秒。
StateFileTimeout:如果在設定的時間內沒有得到主機存儲的更新,那個xhad認為存儲心跳連接異常。一般設置和HeartbeatTimeout相同的時長T。
HeartbeatInterval: 心跳包發送時長間隔。通常使用2<=t<=6,根據HeartbeatTimeout 的值通過公式t=(T+10)/10計算得出。
StateFileInterval:存儲更新間隔時長,通常跟HeartbeatInterval設置為一樣的值。
HeartbeatWatchdogTimeout:如果主機在設置的時間內沒有發送心跳,則主機監視程序開始防護,通常設置為T。
StateFileWatchdogTimeout:如果主機在設置時間內沒有更新文件狀態,則主機監視程序開始防護,通常設置為T+15
BootJoinTimeout:當主機啟動并加入集群時,如果超過設置的值,將視為加入失敗,通常將該值設置為T+60
EnableJoinTimeout:當主機首次啟動HA時,如果超過該設置時長,則認為加入失敗。通常將該值設置為T+60
XapiHealthCheckInterval:“運行狀況檢查”的間隔時長,通過運行腳本檢查xapi是否響應
XapiHealthCheckTimeout: 假設xapi死鎖之前等待時長
XapiRestartAttempts:停止未響應的xapi之前,嘗試重啟xapi的最大次數
XapiRestartTimeout:重啟xapi等待時長
XapiLicenseCheckTimeout: xhad終止之前等待xapi 許可證檢查時長
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/5378.html
摘要:在協議實現里,虛擬路由器使用作為虛擬地址,就是唯一的,這個地址同一時間只有一個物理路由器占用。在虛擬路由器里面的物理路由器組里面通過多播地址來定時發送通告消息。負責健康檢查,包括常見的各種檢查方式。 公司內部 OA 系統要做線上高可用,避免單點故障,所以計劃使用2臺虛擬機通過 Keepalived 工具來實現 nginx 的高可用(High Avaiability),達到一臺nginx...
摘要:因為我們認為正常情況下用戶的不會在短時間內發生變化,所以當我們選擇使用策略進行負載均衡時,意味著期望同一個用戶能夠一直訪問到同一臺服務器上,就像下圖這樣。但是,我們還需要明白一個事實嚴格來說保持本質上是破壞了做負載均衡的初衷。 本文長度為3056字,預計讀完需1.1MB流量,建議閱讀8分鐘。 這篇是《分布式關注點系列》中「負載均衡」相關的內容最后一發了,后續也會繼續講「高可用」相關的其...
摘要:憑借公司和其他一些大廠商近期聲明的推動,混合云已經越來越吸引公眾的眼球了?;旌显凭邆浜芏嘁俗⒛康膬瀯?,而且我們認為這最終會使各種組織的云部署策略的游戲結束。 ????? 憑借VMware公司和其他一些大廠商近期聲明的推動,混合云已經越來越吸引公眾的眼球了?;旌显瓢压驳耐獠吭坪蛢炔克接性疲ㄆ鋵嵞壳熬拖喈斢趥鹘y的內部IT環境)整合成更具功能性的解決方案。而混合云的秘訣就是處于中間的連接技術。...
摘要:的首次公開發行是在年。年,得到了廣泛的采用,和都將添加進他們的虛擬化解決方案。收購之后將其產品整合,統一更名為。奠定了在服務器虛擬化市場的地位。年月日,項目被宣布作為一個合作項目移至基金會下。前言XenServer是一個由Citrix發起和管理的開源項目和社區。該項目開發的開源軟件實現了虛擬化的多種功能,允許在硬件設備上安全地運行多個操作系統和應用程序,完成硬件整合和自動化;將靜態、復雜的I...
閱讀 2229·2019-08-30 10:51
閱讀 785·2019-08-30 10:50
閱讀 1463·2019-08-30 10:49
閱讀 3130·2019-08-26 13:55
閱讀 1591·2019-08-26 11:39
閱讀 3412·2019-08-26 11:34
閱讀 1937·2019-08-23 18:30
閱讀 3381·2019-08-23 18:22