邱恩海
摘要:虛擬化作為信息技術(shù)領(lǐng)域一個(gè)新興的事物,云計(jì)算近年來逐步推廣和普及。由于云計(jì)算擬化技術(shù)大大節(jié)省物理資源、具有良好的隔離性、高可用的優(yōu)點(diǎn),云計(jì)算大受IT界的歡迎。目前,在如何提高云平臺(tái)的高可用性方面已經(jīng)有很多的研究,傳統(tǒng)的云平臺(tái)高可用性措施都停留在物理主機(jī)層面,沒有提供應(yīng)用級(jí)、業(yè)務(wù)級(jí)的高可用性措施。大多平臺(tái)的高可用性只針對(duì)公有云的,對(duì)私有云需要越來越大,雖然現(xiàn)在有很多的管理云平臺(tái)和很多業(yè)務(wù)平臺(tái)但是連通性不好,當(dāng)業(yè)務(wù)出現(xiàn)故障,不能及時(shí)地通知管理平臺(tái)。文提出基于OpenStack構(gòu)建一個(gè)高可用性插件。
關(guān)鍵詞:云計(jì)算 OpenStack 插件 運(yùn)行環(huán)境
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)09-0248-01
本文提出基于OpenStack構(gòu)建一個(gè)高可用性插件,該插件主要目的是:第一,增加進(jìn)程級(jí)的高可用性模塊,不斷檢測(cè)進(jìn)程的運(yùn)行情況,并利用虛擬機(jī)化技術(shù)對(duì)相應(yīng)的故障進(jìn)行處理;第二,實(shí)現(xiàn)業(yè)務(wù)和云平臺(tái)及時(shí)溝通,對(duì)傳統(tǒng)的Web系統(tǒng)進(jìn)行云化提高專有云的高可用性,并在一定程度上實(shí)現(xiàn)云平臺(tái)的負(fù)載平衡。該插件不僅可以提高云平臺(tái)運(yùn)行環(huán)境出現(xiàn)的故障,而且可以權(quán)衡云中資源的情況,合理分配資源,某種程度上實(shí)現(xiàn)云的負(fù)載平衡,避免了云平臺(tái)“假滿”的情況發(fā)生。
1 OpenStack云平臺(tái)概述
云計(jì)算作為一種新的計(jì)算模型,憑借其節(jié)省資源、降低成本、高可擴(kuò)展性等優(yōu)點(diǎn)得到了快速發(fā)展,在此過程中開源云計(jì)算架構(gòu)也得到不斷發(fā)展和完善。OpenStack具有以下幾個(gè)方面的優(yōu)點(diǎn):代碼架構(gòu)清晰,開發(fā)者可以根據(jù)自己的需要修改相應(yīng)的代碼;性能穩(wěn)定,提供了完善虛擬機(jī)管理功能;部署靈活,用戶可以根據(jù)自己的需要,進(jìn)行相應(yīng)地部署。
Opentstack主要有5大組件組成:Nova(計(jì)算服務(wù))、Swift(存儲(chǔ)服務(wù))、Glance(鏡像服務(wù))、Keystone(識(shí)別服務(wù))、Dashboard(用戶界面服務(wù))。Nova是整個(gè)平臺(tái)的核心,是云平臺(tái)的控制器,它提供管理虛擬機(jī)的所有功能,其中包括創(chuàng)建虛擬機(jī)實(shí)例、管理網(wǎng)絡(luò)、控制用戶等。Swift是一個(gè)具有容量大、擴(kuò)展性高,并具有冗余和容錯(cuò)機(jī)制的對(duì)象存儲(chǔ)系統(tǒng)。Glance是負(fù)責(zé)管理虛擬機(jī)鏡像image的,功能主要包括存放image、檢索image等功能,并向外提供接口,用戶可以根據(jù)自己的需求調(diào)用相應(yīng)的API請(qǐng)求檢索實(shí)際的鏡像和查詢VM元數(shù)據(jù)。Keystone主要負(fù)責(zé)管理和認(rèn)證OpenStack租戶、角色,并為Swift提供授權(quán)服務(wù)。Dashboard是提供給用戶訪問OpenStack云平臺(tái)Web前端界面,用戶可以使用它方便使用OpenStack云平臺(tái)的功能。
2 基于OpenStack的高可用系統(tǒng)插件設(shè)計(jì)
基于OpenStack云平臺(tái),構(gòu)架一個(gè)自動(dòng)檢測(cè)故障,并進(jìn)行恢復(fù)的云平臺(tái)的插件。該插件主要從三個(gè)層次檢測(cè)故障,第一,從物理主機(jī)層,檢測(cè)物理主機(jī)運(yùn)行時(shí)可能發(fā)生的故障;第二,從虛擬機(jī)層檢測(cè)虛擬機(jī)運(yùn)行時(shí)可能發(fā)生的故障;第三,從虛擬應(yīng)用層,檢測(cè)虛擬機(jī)中運(yùn)行的進(jìn)程發(fā)生的故障。該平臺(tái)主要的思路是借用現(xiàn)有的開源云平臺(tái)OpenStack的API,包括GUI層、Scheduler調(diào)度層、邏輯層和功能層層。按照該系統(tǒng)的工作機(jī)制,該系統(tǒng)從邏輯上化分為四個(gè)模塊:感知模塊、策略模塊、執(zhí)行模塊、GUI模塊。
GUI層:主要用來與用戶進(jìn)行交互,用戶可以通過該界面,獲得系統(tǒng)的運(yùn)行狀況,其中包括:虛擬機(jī)的運(yùn)行狀態(tài)、虛擬機(jī)的資源情況等,同時(shí)用戶可以通過界面控制虛擬機(jī)的運(yùn)行狀況(例如停止某臺(tái)虛擬機(jī)),也可以進(jìn)行一些系統(tǒng)的基本配置(比如掃描時(shí)間的設(shè)置),使得整個(gè)系統(tǒng)更靈活、更智能。
Scheduler調(diào)度層:主要是負(fù)責(zé)對(duì)事件隊(duì)列進(jìn)行操作,是整個(gè)系統(tǒng)的核心,該層能夠保證事件有條不紊地被執(zhí)行。此外,它需要對(duì)事件隊(duì)列滿、事件隊(duì)列空等各種異常進(jìn)行處理,同時(shí)保證進(jìn)程同步。
邏輯層:我們采取的是事件驅(qū)動(dòng)機(jī)制,每個(gè)事件都有相對(duì)應(yīng)的處理對(duì)象。我們的事件主要分為三種:感知事件、策略事件、執(zhí)行事件。感知模塊響應(yīng)感知事件,策略模塊響應(yīng)策略事件,執(zhí)行模塊響應(yīng)執(zhí)行事件。
功能層:主要是對(duì)LibvirtAPI和OpenStack API的封裝,用來與OpenStack和Libvirt進(jìn)行交互,是整個(gè)系統(tǒng)的底層,提供對(duì)上述幾層的支持。
該插件由三個(gè)模塊組成。
感知模塊:由感知層執(zhí)行類和感知層功能類組成,負(fù)責(zé)感知整個(gè)系統(tǒng)的運(yùn)行情況,感知功能類是最底層類的,提供對(duì)感知執(zhí)行類的支持。目前,從三個(gè)層次進(jìn)行感知,第一層是感知物理主機(jī),主要包括物理主機(jī)電源、主機(jī)網(wǎng)絡(luò)、物理主機(jī)CPU利用率、物理主機(jī)內(nèi)存使用率、物理主機(jī)硬盤的使用情況;第二層是感知虛擬機(jī),主要包括虛擬機(jī)狀態(tài)、虛擬機(jī)網(wǎng)絡(luò)、虛擬機(jī)CPU利用率、虛擬機(jī)內(nèi)存使用率、虛擬機(jī)磁盤的使用情況;第三層是感知虛擬應(yīng)用,主要包括虛擬應(yīng)用狀態(tài)、虛擬應(yīng)用CPU使用率、虛擬應(yīng)用內(nèi)存使用率、虛擬機(jī)應(yīng)用鏈接數(shù)、虛擬機(jī)應(yīng)用是否存在。
策略模塊:是由策略層執(zhí)行類和策略功能類組成。主要根據(jù)感知的結(jié)果進(jìn)行處理。若感知的結(jié)果是正常的,我們將什么都不處理,若感知的結(jié)果是異常的,我們就要進(jìn)行制定相應(yīng)的恢復(fù)策略。
執(zhí)行模塊:主要是由執(zhí)行層執(zhí)行類和執(zhí)行功能組成。其主要負(fù)載故障的恢復(fù),針對(duì)主機(jī),我們主要提供重啟主機(jī)、配置主機(jī)網(wǎng)絡(luò)、恢復(fù)主機(jī)上所有虛擬機(jī)、通知管理員等措施;針對(duì)虛擬機(jī),主要由刪除虛擬機(jī)、重啟虛擬機(jī)、遷移虛擬機(jī)、配置虛擬機(jī)網(wǎng)絡(luò)、通知管理員等措施;針對(duì)應(yīng)用層,我們主要是恢復(fù)應(yīng)用、關(guān)閉進(jìn)程等措施。
從上面的描述,該插件模塊執(zhí)行的邏輯關(guān)系是:感知模塊觸發(fā)策略模塊,策略模塊塊觸發(fā)執(zhí)行模塊。
參考文獻(xiàn)
[1]張倩楠.關(guān)于計(jì)算機(jī)軟件中的插件技術(shù)的探討[J].信息通信,2015,(4):112-112.
[2]王雪.計(jì)算機(jī)軟件中的插件技術(shù)研究[J].科學(xué)與財(cái)富,2015,(6):484-484.
[3]蔡廣松.關(guān)于計(jì)算機(jī)軟件中的插件技術(shù)的探討[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013,(15):304-304,306.
[4]蔡霖.插件技術(shù)在計(jì)算機(jī)軟件技術(shù)中的運(yùn)用[J].數(shù)字通信世界,2015,(10):52-52.
數(shù)字技術(shù)與應(yīng)用2016年9期