侯超平,李春锃(.廣西科技大學網絡與現代教育技術中心; .廣西陸港科技有限公司,廣西 柳州 545006)
?
云計算的高可用性實現技術探討
侯超平1,李春锃2
(1.廣西科技大學網絡與現代教育技術中心; 2.廣西陸港科技有限公司,廣西 柳州 545006)
摘 要:文章對云基礎架構及業務應用層設計這兩個層面的屬性進行分析,對云計算中實現高可用的關鍵技術進行介紹,探討為實現高可用性提供支撐的計算資源伸縮、業務會話處理等技術實現方式。為實現高可用的業務系統設計及云平臺實施提供參考。
關鍵詞:云計算;高可用;資源彈性伸縮
高可用性HA(High Availability)是指通過盡量縮短因日常維護操作(計劃)和突發的系統崩潰(非計劃)所導致的停機時間,以提高系統和應用的可用性。HA是目前企業防止核心計算機系統因故障停機的最有效手段[1]。云計算的高可用性能已成為云計算相對于傳統應用服務體現的眾多優勢之一,所以如何實現高可用性是設計云平臺時需要重點考慮的要素之一。為實現運行于云平臺上業務系統的高可用特性,在構建云平臺時需要從硬件、軟件、策略及管理等多個方面、多維度進行分析及設計,使構建的云平臺能為運行于其上的業務系統提供不間斷服務保障。
典型云平臺中的云基礎架構通常劃分為硬件層、虛擬化層、云層這三個層次。業務系統及云基礎架構層次如圖1所示。
(1)虛擬化層:大多數云基礎架構都廣泛采用虛擬化技術,包括計算虛擬化、存儲虛擬化、網絡虛擬化等[2]。通過虛擬化層可實現標準化、可靈活擴展和收縮、彈性的虛擬化資源池。
(2)云層:對資源池進行調配、組合,能根據業務系統的需要自動生成、擴展所需的計算資源,將更多的應用系統通過流程化、自動化部署和管理,提高系統負載能力及可靠性[2]。
(3)應用層:包括業務系統及數據庫系統等,該層為用戶業務請求提供服務。
根據業務系統及云基礎架構層次特點,云計算中的高可用設計主要集中在云層、業務系統及應用層這兩個層面。
3.1 云層
云層主要是對虛擬化層實現統一管理,在該層中高可用設計需要考慮的問題主要包括資源動態伸縮、負載均衡調度、節點遷移等因素。
3.1.1 計算資源動態伸縮
當云平臺中的計算節點業務負載能力達到設定的閥值時,為保障新業務請求的響應時間及業務可用性,必須對計算資源池中的節點資源實現動態擴展。當業務系統負載減少,業務請求降低時,需要對以前擴展的資源進行收縮,以保證在有限的硬件資源的條件下,能將資源分配給其它更迫切需要計算資源的業務系統,從而保障云平臺內全部業務系統的整體可用性。計算資源動態伸縮需要考慮如下問題:
(1)彈性伸縮策略。1)虛擬機系統級性能參數的彈性伸縮,包括cpu使用率、內存使用率、虛擬內存頁面交換率等;2)業務級別的性能參數的彈性伸縮,包括tcp連接數、http連接數、DB連接數等;3)除了支持系統性能參數、業務性能參數彈性伸縮外,還支持監測應用是否健康來進行彈性伸縮。目前比較常用的是web類應用,通過http/https心跳消息進行檢測,發送約定次數的http/https消息均無響應時,則認為是業務系統節點已經宕機,則進行相應處理。首先重啟虛擬機,若重啟虛擬機后,該業務系統節點還是宕機,則彈性生成一個業務節點,同時添加至虛擬負載均衡集群中,以接收新的業務服務請求。
(2)延時關機。彈性收縮虛擬機時,為減少對已經建立會話的業務影響,需要支持延時關機。負載均衡調度器收到減少集群成員時,不是馬上將該成員移出集群,而是繼續處理的已經存在的會話,但是此時不再處理新的會話,等待一段時間后,再執行移出集群,執行關機或銷毀虛擬機。
(3)動態伸縮模式。計算資源的動態伸縮模式可主要分為資源節約優先模式及伸縮時間優先模式兩種。
1)資源節約優先模式。計算資源擴展時,通過虛擬機鏡像新創建虛機并加入資源池。由于需要重新創建虛機并安裝部署應用,時間上不占優勢。計算資源收縮時,不提供服務的虛以機都進行銷毀,回收全部資源,資源可以得到最大程度的利用。
2)伸縮時間優先模式。該方式總是保存彈性伸縮組(集群)最大容量的虛擬機數量,即使該虛機沒有提供服務,此時只是將該虛擬機關閉。虛擬機關閉時,存儲空間不能進行回收(CPU、內存可以回收重新利用)。由于虛擬機未激活時僅時處于關閉狀態,在需要新增活動虛擬機進計算資源池中時,只需要重新啟動即可,所以該方式在伸縮時間效率上具有較大的優勢。
3.1.2 負載均衡設計
當業務系統負載高時,為保證系統的可用性,需要由單節點擴充成多節點,以應對高并發帶來的系統性能問題,并使用負載均衡機制,根據某種負載策略把業務請求分發到計算資源池中的每一節點上,讓整個計算節點群來處理業務系統的用戶請求。
(1)第四層及第七層服務器負載均衡??紤]到云平臺上運行業務的多樣性,負載均衡需要實現對第四層的TCP協議、UDP協議,第七層的HTTP協議、HTTP Proxy、Header URL和URL 哈希轉換、URL和域操作的支持。對第四層及第七層協議負載均衡功能通常使用深層包檢查與流量操作技術實現。
(2)負載均衡算法。由于業務系統的多樣性,為了最大程度地支持各類具有不同負載特點的業務系統,負載均衡一般采用輪詢調度、最小連接調度、加權輪詢調度、加權最小連接調度、最快回應分配等方法實現。
(3)設計健康檢查機制確保服務器與應用系統及時響應,并清除無負載均衡響應的節點應用系統,避免用戶請求被調度至無效的資源節點中,以保證業務系統的高可用性。
3.1.3 虛擬機節點遷移
虛擬機節點遷移時,通過心跳機制,定時監測計算資源池集群內主機的CPU、內存利用率等指標,并根據預定的規則來判斷是否需要為該主機在集群內尋找有更多可用資源的主機,以將該主機上的虛擬機遷移到另外一臺具有更多合適資源的服務器上,通過動態資源調整來保障系統的響應時間,實現業務系統的高可用。虛擬節點遷移過程見圖2。
3.2 業務系統及應用層
除云基礎架構層面需要考慮高可用特性實現外,為了使運行于具有資源自動伸縮特性的云平臺上業務系統能更好地實現高可用,業務系統及架構也有必要針對云平臺的特點進行相應的設計。
3.2.1 資源自動伸縮類型特點
當業務系統的資源利用率達到預定的閥值或無法及時響應業務請求時,云平臺的計算節點將自動擴展。根據云平臺的計算節點不同擴展方式,一般可分為活動節點復制擴展及模板生成擴展兩類。
(1)活動節點復制擴展。即節點擴展生成新計算節點時,以當前運行的活動節點(母節點)作為克隆對象,將虛擬機連同虛擬機運行內容一起復制,生成新計算節點(子節點)。初始時,子節點具有與母節點相同的內存內容,即業務系統運行時所存放于內存的會話、緩存等信息一起被復制到新生成的計算節點中。
(2)模板生成擴展。即生成新計算節點時以虛擬機鏡像或快照等作為模板,生成新計算節點并加入到業務計算節點集群中。初始時,新創建的計算節點尚未存有業務運行信息,為使調度至該節點的業務請求能繼續處理此前已在業務系統中活躍的業務會話,應用層的業務系統架構需要考慮業務會話共享的問題。
3.2.2 業務系統適配資源自動伸縮類型
(1)適配活動節點復制擴展類型?;顒庸濣c中運行的業務系統根據系統特點可為兩類,需要對分類進行不同處理。
1)活動節點中的服務會話及緩存均適用于任何用戶請求,如DNS服務系統。由活動節點復制出的新節點加入資源池后即可為所有業務請求提供服務,該類型的業務系統無須進行特別處理,與傳統的單機系統一致。
2)節點中的業務系統會話及緩存無法適用所有節點,如一般的web應用中,僅全局性的對象值適用于所有節點,用戶會話信息通常會保存于不同的業務處理節點中。由于適配活動節點復制擴展時會將母節點包括會話和緩存在內的所有內存信息克隆至新節點中,為了使新節點有足夠的內存資源去接受新的業務請求,必須將內存中與新業務請求無關的會話及緩存進行清除。
所以業務系統在設計時需要考慮監視其運行的節點IP等信息,業務系統可通過IP等信息產生變化,能感知其位于新創建的節點上,并自動清除無用的會話及緩存,以釋放內存去接受新的業務請求。例如asp.net程序實現的業務系統中,程序需要設計成能在新節點創建完成時,在新節點保留Application對象集中的值,清空Session對象集的對象以釋放計算節點內存,使得節點中內存能夠保存新用戶請求產生的新Session對象。
(2)適配模板生成擴展類型。云平臺使用虛擬機鏡像、快照等模板創建新計算節點并加入資源池向外提供服務,新的計算節點在創建時并沒有任何的業務會話信息。若負均衡調度器將業務請求轉發至該節點,且該業務請求需要使用此前業務系統中的一些會話信息,由于新節點上尚無會話信息,則新生成的計算節點無法進行業務處理。對運行于適配模板生成擴展類型云平臺上的業務系統,在業務系統設計時需要把會話從各計算節點的業務系統中剝離出來,并將會話共享,使用戶請求業務可在不同節點間透明遷移,當某個計算節點宕機時也不影響業務的持續運行,使系統達到高可用。不同節點間的會話共享一般通過兩種方式實現。
1)將業務Session信息保存到所有計算節點均可訪問的數據庫中,當新節點創建完成后,運行于其上的業務系統獲取保存于數據庫中的會話信息,持續提供應用服務。該方式優點是可靠性較高,缺點是會話恢復時間相對較長。
2)業務系統設計時考慮配置專門的Session服務器,各個計算節點上運行的業務系統將Session信息存于Session服務器中,當新節點創建完成后,運行其上的業務系統通過Session服務器中Session信息運行應用服務。該方式優點是新節點會話恢復時間極快,缺點是Session服務器發生故障時,業務系統將無法持續運行。所以一般也會采用配置Session服務器集群的方式來避免單點故障造成業務系統崩潰的問題發生。
綜述,在云計算環境中,為了讓業務系統獲得高可用的特性,在實施時需要在云基礎構架、應用層及業務系統這兩大方面進行考慮。特別是業務系統需要根據云平臺中計算資源伸縮的不同方式,設計時采用不同的系統構架并進行相應的處理,最終實現云平臺業務系統整體達到高可用的目標。
參考文獻:
[1]張國平.IPTV業務差異化保障系統的應用研究[D].南昌:南昌大學,2010:15.
[2]王理,姜新超.云計算環境下的基礎架構融合[J].信息系統工程,2013(11):32-35.
[3]王理,姜新超.云計算環境下的基礎架構融合[J].信息系統工程,2013(11):32-35.
廣西柳州市科技型中小企業技術創新資金計劃項目合同 項目名稱:現代物流信息安全與云計算解決方案 研究及應用開發,合同編號:2013F030303 計劃類別:中小企業技術創新資金
作者簡介:侯超平(1981-),男,工程師,研究方向:云計算、虛擬化、高可用。
DOI:10.16640/j.cnki.37-1222/t.2016.02.231