浪潮InCloud OpenStack:度量可用性“三維”,實現高可用雲環境
雲端計算環境中,高可用(HA)是IaaS層必備的特性,在雲環境中,失效狀態是雲管理系統必須解決的問題,研究並增強高可用性無疑是一個很有價值並且具有挑戰性的工作。
可用性是指系統在執行任務的任意時刻能正常工作的概率,提高可用性需要強調減少從災難中恢復的時間。從某種意義而言,提高可用性就是一場與時間的賽跑,從故障中恢復的耗時越短,價值就越大。
浪潮InCloud OpenStack(以下簡稱ICOS)從產品設計之初,就將HA作為第一優先順序的需求。目前,OpenStack開源社群並沒有一個完整的雲業務HA解決方案。起初社群認為虛擬機器的HA不是雲平臺層次的特性,虛擬機器的HA應該通過應用層面而不是在雲平臺層面來實現。但是在實際部署中,有相當數量的應用並不具有應用層面的HA,OpenStack在HA特性上的缺失帶來了業務中斷的風險。隨後社群也提出過計算節點HA解決方案,例如在管理程式或其底層硬體出現故障時,虛擬機器在不同的計算節點上自動重啟等,但方案仍然是相對不成熟的、實驗性的,並沒有應用到生產環境上來。而比較受關注的Masakari專案也由於未考慮虛擬機器腦裂和計算節點的隔離,缺乏成熟的應用場景。
從度量可用性“三維”入手
如何提升OpenStack的HA特性,從而消除使用者的使用障礙,使更多的使用者從開源雲端計算中受益?浪潮基於對行業客戶上雲的深刻理解和豐富的實踐經驗,認為應該先從度量虛擬機器、關鍵程序和物理機的可用性“三維”入手,有的放矢的採取多種維度的故障檢測與應對策略,解決雲環境特別是大規模雲環境的可用性問題,從而實現高可用的雲環境。
業務虛擬機器宕機:元件服務程式的執行時異常,如系統資源不足或者hypervisor層的系統bug都有可能引起業務虛擬機器宕機的發生,導致對外服務的中斷,影響使用者正常業務開展。
計算節點上的關鍵服務意外退出:業務虛擬機器的健康執行離不開計算主機上必要的虛擬網路設施以及後端分散式儲存。負責維護這些資源的關鍵服務如果發生異常退出,將會引起業務虛擬機器宕機或網路中斷,從而導致服務的不可用。
計算節點宕機:在發生主機掉電或者硬體故障時,如果沒有精準的宕機感知機制來獲取意外的發生,且沒有自動修復機制,將導致執行在其上的虛擬機器全部宕機,最終導致虛擬機器上執行的大量應用服務不可用,直接導致業務中斷,會給企業帶來無法估量的損失。
ICOS 叢集 HA 管理服務實現全方位高可用
面對雲環境中如此複雜多樣的引發業務主機“服務不可用”的元凶,ICOS提供了叢集HA管理服務。目前,高可用性實現模式主要有三種,分別是主從模式、雙機模式和叢集模式。通常來說,雲端計算的計算資源和儲存資源是以叢集形式實現的,特別強調可擴充套件性。從理論上而言,叢集模式是最優的選擇,這種模式可以在保證高可用的同時,利用多機分擔負載,確保整個IT基礎設施具有更高的擴充套件性。
浪潮ICOS從業務高可用、關鍵程序高可用、主機高可用三個方面入手,為客戶業務提供真正的高可用保障。
ICOS 高可用計算架構
業務層高可用:確保業務高可用的關鍵在於能敏銳感知Hypervisor虛擬化層面異常事件並及時採取合適的保護動作。ICOS的叢集HA管理服務方案在計算主機配置雲主機監控服務,輪詢底層虛擬化介面,關注虛擬機器異常事件,例如“異常退出”。當事件發生時,雲主機監控服務封裝併發送“雲主機異常退出通知”到叢集HA管理服務,由異常事件處理引擎甄別事件,併發送“雲主機重啟”請求到ICOS計算服務介面,完成對問題業務的恢復。
關鍵程序高可用:如果要確保業務雲主機的健康執行,僅僅從Hypervisor層關注虛擬機器是否宕機顯然是不夠的,因為在複雜的雲環境下,業務的健康不僅取決於其掛載的後端分散式儲存是否可用,業務網路是否暢通,還在於雲環境中能否被良好地治理等諸多因素。在計算叢集中,負責維護這些因素良好狀態的程序就是我們所關注的“關鍵程序”。ICOS的叢集HA管理服務方案提供了一套高度可配置化,自由定製化架構以實現對計算主機程序的監控:監控程序列表可配置,監控指令碼以及異常處理Action可以自定義,支援基於Action列表的工作流定製化。
系統預設提供“嘗試重新啟動失敗程序”的處理方式,一旦目標程序發生異常,可以在數秒內檢測到並恢復服務以解決問題,如果多次嘗試無果,即自動傳送“程序不可用”事件到叢集HA管理服務,由其通知雲平臺Disable本節點計算服務,使該計算主機不在為新建虛擬機器提供計算資源,但並不妨礙既有業務執行,這時配合外部的叢集監控系統告知運維人員,使其進行系統修復,並可以將該修復方法定義為新的Action以實現系統的進化。
主機高可用:各個計算主機上的主機監控程序集成了業界成熟開源的高可用心跳檢測工具Pacemaker Remote,不僅可以提供高效率的執行狀態探測,而且突破了Pacemaker叢集最多16節點的限制,極大地擴充套件了計算叢集大規模彈性的上限。主機監控程序藉助該工具感知叢集Peer節點的執行狀態,一旦發生物理主機宕機,那麼就會由心跳叢集主控節點的主機監控程序產生“宕機事件通知”,並告知叢集HA管理服務,並經後者的事件處理引擎甄別,觸發ICOS計算服務的“雲主機疏散”,將故障主機上的業務遷移到叢集其他可用計算節點,從發現宕機到虛擬機器重啟並且能夠正常執行,整體時間可以控制在1分鐘左右。此外,ICOS還可以基於可配置策略對物理主機進行諸如重啟或者關機的相應處理策略,從而防止業務虛擬機器出現腦裂現象。當主機故障清除後,主機健康執行後,還可以根據配置策略決定是否自動加入高可用監控叢集中,使得高可用的配置策略更加簡單化、人性化。
藉助於浪潮自研的高可靠分散式儲存以及ICOS全方位的叢集高可用管理服務,在主機硬體故障,機房斷電等不可抗因素引發宕機的場景下,ICOS確保業務連續性,有效降低宕機時間。
【本文版權歸儲存線上所有,未經許可不得轉載。文章僅代表作者看法,如有不同觀點,歡迎新增儲存線上微信公眾號(微訊號:doitmedia)進行交流。】