xenserver ha是一套全自動功能設計,規劃,安全地恢復出現問題的xenserve 主機上的虛擬機器的功能元件。
啟用 ha 後,xenserver 將持續監視池中主機的執行狀況。如果當前 vm 主機發生故障,ha 機制會自動將受保護的 vm 移動到一台執行狀況良好的主機上。此外,如果發生故障的主機是pool master,ha 會自動選擇另一台主機來接管pool master的角色,以便xenserver 資源池能夠繼續正常的工作。
xenserver ha通過多個檢測訊號機制來定期檢查主機。這些檢測訊號使用儲存介面(至檢測訊號 sr)和網路介面(通過管理介面)進行訊號的檢測和傳遞。這兩種檢測訊號路由都可以是多宿(多連線)的,以防止產生誤報,從而進一步提高可靠性。
要實現xenserver ha功能,只要滿足以下幾個條件:
(1)虛擬機器必須置於共享儲存中,例如iscsi、fc san,nfs;
(2)需要兩台以上的xenserver,並且設定了資源池,citrix最佳實踐建議使用3臺xenserver及以上時設定ha;
(3)所有xenserver有靜態管理ip位址;
(4)購買的xenserver版本需要支援ha。
下圖顯示了在啟用ha的資源池中,前後兩個主機之間的網路鏈路發生故障後,虛擬機器所進行的自動遷移過程。
當啟用ha時,池中的所有主機:
ha設計就是為了避免一台物理主機損壞出現單點故障,因此需要它消除在出現單點故障後盡可能的不影響資源池的執行和上面虛擬機器的執行。
通過ha可以更快的恢復資源池執行,因為資源池一旦出現故障,資源池剩餘的池成員可能無法應付任何更多的故障,採用ha在故障產生的第一時間進行自動恢復,可以保證有充足的資源應對隨時可能下一次故障。
ha絕不能違反以下安全規則:
然而ha更加重要的地方還在下面的這些選項裡:
當試圖在同一時間既需要快速精確又需要安全可靠的時候,實施起來的困難就應運而生了。
在描述本文中我們使用下面的術語:
所有i/o用於監控主機的執行狀況(即基於儲存和基於網路的心跳)是相互冗餘的路徑,使得她在單一硬體故障下也正常生存(例如乙個開關偶然關掉或拔出電纜)。這個時候根據其中一方心跳的資訊維持相應的生存法則,並進行相應報警告知管理員進行修復,以確保環境在不必要的條件下生效ha的安全規則,從而遷移虛擬機器
並重啟。
同時管理程式監視機制將能保證一旦預先安排的時間段之內通訊失效節點的隔離。
如果一台虛擬機器被標記為agile(受保護的),那麼該台虛擬機器就是完全靈活的,即可以在任何主機上執行
。但是其任何形式的附加約束是無法在其他主機上被重現的,比如指定``cpu預留''。
資源池假定為對同質cpu的型別和存在的vt / svm支援(也稱為「hvm」)。如果乙個池使用--force標誌不均勻的主機,這等於是建立了額外的限制,那麼在主機故障的時候,有可能導致ha切換策略操作不生效。
同時xenserver 會動態維護故障轉移方案,該方案詳細說明了如果池中的一組主機在任意給定時間出現故障時應執行的操作。其中乙個重要概念是允許的主機故障數,該值作為 ha 配置的一部分進行定義。該值確定在不丟失任何服務的情況下所允許的故障數。例如,如果資源池包括 16 臺主機,而允許的故障數的設定為 3,則池將計算故障轉移方案,該方案允許任意 3 臺主機出現故障,並仍然能夠在其他主機上重新啟動 vm。如果找不到方案,則會認為該池使用過量。方案根據 vm 生命週期操作和移動動態地進行重新計算。如果所做的更改(例如將新 vm 新增到池)導致池使用過量,則會傳送警報(通過 xencenter 或電子郵件)。
同時在進行虛擬機器的重啟和遷移的時候,將永遠作出關閉或掛起「低」優先順序的虛擬機器,以保證「較高的」優先順序的虛擬機器的生存。在設定ha的時候,虛擬機器需要分配乙個重新啟動優先順序和乙個標誌狀態,以指示是否應該受到保護以及受到保護的級別。
啟用ha時,盡一切努力保護的虛擬機器。如果伺服器出現故障執行的虛擬機器將遷移到另一台伺服器上啟動,根據優先順序規定,任何受保護的虛擬機器將自動啟動或停止。重新啟動優先順序的說明:
優先順序 說明
0具有此優先順序第一,嘗試最先啟動虛擬機器 1
只有在嘗試重新啟動所有優先順序為0的虛擬機器後,再嘗試啟動具有此優先順序的虛擬機器 2
只有在嘗試重新啟動所有優先順序為1的虛擬機器後,再嘗試啟動具有此優先順序的虛擬機器 3
只有在嘗試重新啟動所有優先順序為2的虛擬機器後,再嘗試啟動具有此優先順序的虛擬機器
best-effort
只有在嘗試重新啟動所有優先順序為3的虛擬機器後,再嘗試啟動具有此優先順序的虛擬機器
對於那些重要的虛擬機器以及處於共存儲存上的虛擬機器應給予重新啟動優先順序0。所有次要的虛擬機器應分配乙個優先順序1或2優先順序。重新啟動優先順序是確定在發生故障時,xenserver嘗試啟動虛擬機器的順序。虛擬機器重新啟動優先順序0,1,2或3,這樣可以保證伺服器故障的時候,按照預先安排好的既定數量的有序重新啟動虛擬機器。
同時xenserver的ha需要特定的容量來保證重新啟動計畫的成功。如果資源池遇到伺服器故障並進入ha切換狀態的容量不足以全部切換完畢,剩下受保護的虛擬機器將不再保證重新啟動。如果這個條件到達時,系統將生成警報。如果乙個受保護的虛擬機器在伺服器發生故障的時候無法重新啟動(例如,資源池故障發生時容量已使用完畢,這時再次故障),啟動此虛擬機器的進一步嘗試將根據資源池的容量變化的狀態來進行。這意味著,沒有資源的情況下ha不會生效,並且切換計畫會一直進行嘗試。
還應該說明的是,一旦啟用ha,資源池是不可能重新配置管理網路以及用於儲存心跳的sr的。同時在啟用ha的時候,還存在乙個ha配置資料庫,該資料庫配置為「心跳」的所有更新寫入「心跳」sr,以保證主機失敗時,虛擬機器配置更改不會丟失。
Mysql之高可用
使用快取memcache,1,可使用hash演算法由客戶端決定路由到哪個memcache伺服器上 客戶端完全不用關心資料儲存在哪個memcache伺服器上 完全隔離了客戶端與服務端 由於是hash,在陣列中查詢,選擇到指定memcache伺服器非常迅速 前提 維持固定數量的memcache伺服器數不...
XenApp之高可用篇
前言 新年的第一篇文章,過去的一年,收穫了很多,希望新的一年能夠更上一層樓。在傳統的桌面和應用中,使用者的行為對企業的生產造成的影響很小,但是在桌面雲和應用雲中,結合netscaler來實現高可用性。1 硬體 硬體主要包含以下兩個硬體 使用者終端 建議通過使用瘦客戶機,如果出現問題,通過替換來實現。...
高可用 架構
不要把雞蛋都放在同一籃子裡 標準 1 正常情況下,使用者無論訪問哪乙個地點的業務系統,都能夠得到正確的業務服務。2 某個地方業務異常的時候,使用者訪問其他地方正常的業務系統,能夠得到正確的業務服務。與 活 對應的是字是 備 備是備份,正常情況下對外是不提供服務的,如果需要提供服務,則需要大量的人工干...