匡華 譚麗麗 李梓萌 陳艷
在廣東移動(dòng)現(xiàn)有的桌面云基礎(chǔ)上,針對(duì)現(xiàn)有云計(jì)算平臺(tái)缺乏針對(duì)資源供應(yīng)量的自動(dòng)調(diào)整機(jī)制的問題,研究了云計(jì)算平臺(tái)中基礎(chǔ)設(shè)施資源供給的自適應(yīng)性問題。主動(dòng)監(jiān)控不同等級(jí)用戶的性能指標(biāo)和系統(tǒng)指標(biāo),并以此為依據(jù),提出了桌面云的智能自適應(yīng)性理論,統(tǒng)一調(diào)度管理不同資源。根據(jù)資源需求量對(duì)云服務(wù)的資源供給進(jìn)行調(diào)整,選擇恰當(dāng)?shù)奶摂M機(jī)組合為云服務(wù)提供足量且高利用率的資源。
云計(jì)算 桌面云 智能調(diào)度 自適應(yīng)性
1 云計(jì)算簡介
云計(jì)算(Cloud Computing)是一種近年興起的計(jì)算模式,與傳統(tǒng)計(jì)算模式相比較,云計(jì)算通過共享可配置計(jì)算資源,解決以往傳統(tǒng)計(jì)算環(huán)境中,由于硬件或問題復(fù)雜度帶來的限制。云計(jì)算具有以下基本特性:按需索取、廣泛的網(wǎng)絡(luò)訪問、資源池化管理和供應(yīng)、快速彈性伸縮和服務(wù)度量[1]。
依據(jù)服務(wù)模式分類,云計(jì)算可以分為軟件即服務(wù)(SaaS,Software as a Service)、平臺(tái)即服務(wù)(PaaS,Platform as a Service)和基礎(chǔ)設(shè)施即服務(wù)(IaaS,Infrastructure as a Service)。SaaS通過瀏覽器把程序傳給用戶,這個(gè)模式大大減少了用戶在軟件授權(quán)和開發(fā)商方面的開支,同時(shí)也實(shí)現(xiàn)了供應(yīng)商的效益最大化。Salesforce[2]是典型的SaaS應(yīng)用。PaaS則通過這種形式的云計(jì)算,把開發(fā)、部署環(huán)境作為服務(wù)來提供,如Google App Engine[3]。IaaS負(fù)責(zé)的是最底層的硬件支持,通過將CPU、內(nèi)存、網(wǎng)絡(luò)等計(jì)算機(jī)資源可計(jì)算化,向上層SaaS和PaaS提供硬件支持。典型的例子有亞馬遜的EC2[4]、VMware的vSphere[5]等。本文的研究對(duì)象主要面向IaaS云。
2 研究環(huán)境及相關(guān)方法
2.1 廣東移動(dòng)桌面云
2009年,廣東移動(dòng)通過將云計(jì)算應(yīng)用到辦公系統(tǒng)中,并且結(jié)合虛擬桌面技術(shù),讓新全球通移動(dòng)信息化大廈,實(shí)現(xiàn)員工的高效、安全、可控的移動(dòng)辦公。在2010年和2011年兩年的努力下,構(gòu)建了桌面虛擬化架構(gòu)(VDI)與應(yīng)用虛擬化結(jié)合的統(tǒng)一桌面云。云計(jì)算的核心就是整合資源,所以隨著桌面云的投入使用及用戶規(guī)模的不斷擴(kuò)大,需要精細(xì)化整合資源,智能自動(dòng)化調(diào)度管理資源,從而來構(gòu)建高魯棒性的桌面云,來提高桌面云的ROI投資收益率。
2.2 云計(jì)算平臺(tái)的規(guī)模自適應(yīng)性研究
私有云的主要目的之一是在云中設(shè)備及數(shù)據(jù)具有完全所有及控制權(quán)并滿足日常運(yùn)作需求的前提下,降低能源及維護(hù)成本,提高系統(tǒng)整體可靠性,為硬件平臺(tái)的平滑升級(jí)提供支持?;谝陨夏康?,私有云通常配備有足夠的硬件資源以保證高峰時(shí)期的資源供應(yīng)。同時(shí),私有云內(nèi)部運(yùn)行的虛擬機(jī)類型相對(duì)公有云比較少,資源的使用時(shí)間、數(shù)量有較強(qiáng)的規(guī)律性。本文所研究的云計(jì)算平臺(tái)的規(guī)模自適應(yīng)性問題即在此環(huán)境下,建立適合的模型。通過對(duì)業(yè)務(wù)需求的資源量進(jìn)行預(yù)測及必要的修正,自動(dòng)調(diào)度虛擬機(jī),以保證資源供給,支持應(yīng)用的正常運(yùn)行,合理分配資源,提高物理機(jī)的資源使用率,降低能耗。
云計(jì)算平臺(tái)的規(guī)模自適應(yīng)性可以分解為向上擴(kuò)展性(Scale-out)、向下擴(kuò)展性(Scale-down)和規(guī)模的自適應(yīng)性(Adaptive)三類。向上擴(kuò)展性主要指伴隨著計(jì)算資源需求的增長,平臺(tái)自身的資源擴(kuò)展性。向下擴(kuò)展性則是平臺(tái)滿足節(jié)約成本的資源供給。規(guī)模的自適應(yīng)性則是滿足用戶需求變化的資源供給。
3 系統(tǒng)設(shè)計(jì)
3.1 整體設(shè)計(jì)
不同等級(jí)的用戶有相應(yīng)規(guī)定的資源使用標(biāo)準(zhǔn),但用戶有時(shí)有些特別繁重的業(yè)務(wù)需要處理,需要臨時(shí)調(diào)大所需資源。通常的做法是用戶提出申請(qǐng),管理員經(jīng)過故障排查,當(dāng)發(fā)現(xiàn)由非系統(tǒng)故障引起時(shí),調(diào)整用戶虛擬機(jī)資源,交付用戶使用資源。用戶使用完后,管理員恢復(fù)用戶原有標(biāo)準(zhǔn)的資源,整個(gè)業(yè)務(wù)過程比較繁瑣,時(shí)間較長。
桌面云智能自動(dòng)優(yōu)化管理模型通過統(tǒng)一狀態(tài)監(jiān)控,主動(dòng)發(fā)現(xiàn)用戶的資源使用情況以及接近90%使用率等臨界狀態(tài),并且相應(yīng)系統(tǒng)資源有足夠的富裕資源。自動(dòng)化運(yùn)維模塊自動(dòng)調(diào)度統(tǒng)一資源管理模塊,動(dòng)態(tài)調(diào)整用戶資源,調(diào)整過程對(duì)用戶透明,滿足用戶的彈性需求。當(dāng)統(tǒng)一狀態(tài)監(jiān)控發(fā)現(xiàn)用戶資源已經(jīng)釋放,自動(dòng)化運(yùn)維模塊自動(dòng)調(diào)度統(tǒng)一資源管理模塊,動(dòng)態(tài)調(diào)整用戶資源恢復(fù)到原有標(biāo)準(zhǔn)。這種主動(dòng)智能動(dòng)態(tài)資源調(diào)整可以及時(shí)滿足用戶的彈性需求,提升用戶的使用體驗(yàn)。
主機(jī)資源占用率在80%~90%是合理經(jīng)濟(jì)的狀態(tài),主機(jī)資源占用率太低除了白白浪費(fèi)資源外主機(jī)還要耗電,所以在滿足用戶需求的情況下,要精細(xì)計(jì)算所需資源,并自動(dòng)將空閑資源進(jìn)行整合,實(shí)現(xiàn)ROI投資收益率最大化。
3.2 系統(tǒng)架構(gòu)
以自動(dòng)化運(yùn)維平臺(tái)為核心,通過統(tǒng)一監(jiān)控平臺(tái)主動(dòng)監(jiān)控用戶狀態(tài)和系統(tǒng)狀態(tài),智能統(tǒng)一地調(diào)度資源。系統(tǒng)架構(gòu)如圖1所示:
3.3 主要技術(shù)方案及關(guān)鍵技術(shù)
以自動(dòng)化運(yùn)維平臺(tái)為核心,通過統(tǒng)一監(jiān)控平臺(tái)主動(dòng)監(jiān)控用戶狀態(tài)和系統(tǒng)狀態(tài),智能統(tǒng)一地進(jìn)行調(diào)度管理。本文的模型主要包括三個(gè)部分,統(tǒng)一狀態(tài)監(jiān)控、自動(dòng)化運(yùn)維和統(tǒng)一資源調(diào)度。具體如下:
(1)統(tǒng)一狀態(tài)監(jiān)控
建立云性能指標(biāo)基線,包括用戶狀態(tài)性能指標(biāo)基線和系統(tǒng)狀態(tài)性能指標(biāo)基線。這里的難點(diǎn)在于,桌面云平臺(tái)具有多平臺(tái)和多用戶特點(diǎn)。所以,選擇了具有跨平臺(tái)和穩(wěn)定性兼具的Nagios監(jiān)控方案。通過Nagios服務(wù)器和用戶虛擬機(jī)探針,在用戶虛擬機(jī)上收集行為數(shù)據(jù)集。并且,通過Web前端進(jìn)行基線展示和優(yōu)化的自動(dòng)部署。具體如下:
用戶狀態(tài)監(jiān)控:側(cè)重在用戶使用體驗(yàn)監(jiān)控。根據(jù)不同用戶等級(jí)建立用戶狀態(tài)的性能指標(biāo)基線,包括VDI和應(yīng)用發(fā)布2個(gè)部分。
1)用戶信息:用戶名、登錄時(shí)間、使用時(shí)間、當(dāng)前狀態(tài);
2)用戶虛機(jī)的性能:總體CPU、內(nèi)存、磁盤I/O、網(wǎng)絡(luò)流量;
3)用戶虛機(jī)運(yùn)行的應(yīng)用性能:應(yīng)用CPU、內(nèi)存。
系統(tǒng)狀態(tài)監(jiān)控:統(tǒng)一監(jiān)控不同平臺(tái)和系統(tǒng)的狀態(tài),建立系統(tǒng)狀態(tài)的性能指標(biāo)。
1)VMware等虛擬化平臺(tái)性能監(jiān)控:CPU、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò);
2)Windows等應(yīng)用服務(wù)器性能監(jiān)控:CPU、內(nèi)存、磁盤I/O、網(wǎng)絡(luò)。
關(guān)鍵技術(shù):采用數(shù)據(jù)庫建立性能指標(biāo)基線,使用虛機(jī)性能監(jiān)控技術(shù)、虛擬化平臺(tái)性能監(jiān)控和Windows應(yīng)用服務(wù)器性能監(jiān)控技術(shù)。
(2)自動(dòng)化運(yùn)維
建立觸發(fā)條件(閥值),整合各種不同平臺(tái)和系統(tǒng)的接口。定時(shí)檢測用戶虛擬機(jī)狀態(tài),并且根據(jù)預(yù)設(shè)條件觸發(fā)自動(dòng)化運(yùn)維流程,統(tǒng)一調(diào)度不同資源,智能恢復(fù)可用資源。
1)建立不同等級(jí)用戶的資源調(diào)度模式和要求(遷移、中止會(huì)話、關(guān)機(jī)等);
2)流程模型;
3)整合各種不同平臺(tái)和系統(tǒng)的接口;
4)智能連接可用桌面;
5)統(tǒng)一管理混合虛擬化平臺(tái)。
對(duì)于智能連接可用桌面,其技術(shù)難點(diǎn)在于,如何讓SUNRAY瘦終端在VMware VC不可用或ESX服務(wù)器不可用情況下,自動(dòng)智能地連接到其他可用的桌面。探索和研究結(jié)果如下:
1)VMware VC不可用(VC或DB故障)
正常模式下,VDI通過VMware VC獲得用戶虛機(jī)的信息(包括虛機(jī)狀態(tài)、IP等),然后SUNRAY瘦終端通過該信息連接虛機(jī)。如果VMware VC不可用,VDI無法獲得虛機(jī)信息,SUNRAY瘦終端無法連接虛機(jī)。研究建立用戶虛機(jī)IP信息庫,讓SUNRAY瘦終端自動(dòng)直接連接用戶的虛機(jī)IP。
2)ESX服務(wù)器不可用(服務(wù)器硬件或系統(tǒng)故障,機(jī)籠交換機(jī)故障等導(dǎo)致大量虛機(jī)不可用),研究讓SUNRAY瘦終端自動(dòng)連接應(yīng)急虛機(jī)池的虛機(jī)或其他Windwos終端服務(wù)器。
通過采用多種虛擬化平臺(tái),包括VMware、Hyper-V、
Oracle VirtualBox、Citrix Xenserver等,統(tǒng)一管理,提高整體高可用性并形成差異化虛機(jī)平臺(tái),滿足各種用戶的需求。
關(guān)鍵技術(shù):使用流程管理產(chǎn)品,建立運(yùn)維模型,統(tǒng)一接口。
(3)統(tǒng)一資源調(diào)度
整合各種不同資源的接口,實(shí)現(xiàn)在用戶使用過程中動(dòng)態(tài)進(jìn)行資源調(diào)整,盡量對(duì)用戶透明無影響。同時(shí),在實(shí)際部署的過程中加入了虛擬機(jī)優(yōu)先級(jí),用以區(qū)分用戶群體,實(shí)現(xiàn)了對(duì)用戶虛擬機(jī)的自動(dòng)精細(xì)化管理。
1)虛機(jī)資源動(dòng)態(tài)調(diào)整;
2)虛機(jī)動(dòng)態(tài)遷移(主機(jī)遷移、存儲(chǔ)遷移);
3)用戶會(huì)話資源動(dòng)態(tài)調(diào)整;
4)災(zāi)難恢復(fù)。
關(guān)鍵技術(shù):使用虛擬化平臺(tái)管理工具和Windows終端會(huì)話管理功能。
4 核心算法
本研究的核心算法是云計(jì)算平臺(tái)的規(guī)模自適應(yīng)性方法。
4.1 符號(hào)表
算法符號(hào)定義表如表1所示。
4.2 最大并發(fā)請(qǐng)求數(shù)預(yù)測
虛擬機(jī)的應(yīng)用,根據(jù)用戶的行為習(xí)慣,每天都具有一定的規(guī)律性。如開發(fā)團(tuán)隊(duì)的群體,因?yàn)榻?jīng)常要測試程序,需要長時(shí)間占用大量內(nèi)存。而與之相比,銷售團(tuán)隊(duì)的虛擬機(jī)使用,一般集中在上班時(shí)間,并且一般為辦公軟件。最大并發(fā)請(qǐng)求數(shù)預(yù)測則是根據(jù)這些用戶的歷史行為習(xí)慣記錄,對(duì)接下來的一段時(shí)間內(nèi),用戶虛擬機(jī)的最大并發(fā)請(qǐng)求做出預(yù)測。然后,根據(jù)預(yù)測結(jié)果對(duì)虛擬機(jī)進(jìn)行資源的調(diào)度分配。本文采用一種基于歷史最大并發(fā)數(shù)的預(yù)測方法對(duì)即將到來時(shí)刻的最大并發(fā)數(shù)進(jìn)行預(yù)測。
首先,本文的模型應(yīng)用于大部分長期運(yùn)行的基礎(chǔ)設(shè)施,所以能夠提供足夠多的歷史數(shù)據(jù)。同時(shí)這種基礎(chǔ)設(shè)施性也決定了算法具有通用性。其次,本文通過時(shí)間序列預(yù)測算法,對(duì)下一個(gè)單位時(shí)間段的最大并發(fā)數(shù)進(jìn)行短期趨勢(shì)預(yù)測。所以,本文采用二次移動(dòng)平均法作為預(yù)測下階段時(shí)間的資源需求的預(yù)測算法。二次移動(dòng)平均法如公式(1)所示[7]:
為應(yīng)對(duì)實(shí)際生產(chǎn)環(huán)境中可能產(chǎn)生的故障及保證桌面云的高性能運(yùn)轉(zhuǎn),最理想的取時(shí)長度為15分鐘,從每個(gè)小時(shí)的第0分鐘開始至第15分鐘、第16分鐘開始至第30分鐘,如此類推。本文的算法使用了上一個(gè)月的歷史數(shù)據(jù),考慮到生產(chǎn)環(huán)境中季度業(yè)務(wù)更替等情況,因此具有其合理性。當(dāng)應(yīng)用到別的生產(chǎn)環(huán)境時(shí),可適當(dāng)進(jìn)行調(diào)整。詳細(xì)的數(shù)據(jù)記錄及分時(shí)段整理由云平臺(tái)接口完成,此處省略。
4.3 預(yù)測修正
本文的算法根據(jù)聚類的結(jié)果,預(yù)測出每個(gè)類別的最大并發(fā)請(qǐng)求數(shù)。為了保證桌面云系統(tǒng)的有序高效運(yùn)行。本文的模型根據(jù)當(dāng)前的預(yù)測值,對(duì)當(dāng)前的配置進(jìn)行更改,并且在下一個(gè)時(shí)間段對(duì)預(yù)測值和實(shí)際值進(jìn)行校檢。通過不斷計(jì)算誤差,可以得到預(yù)測的偏差值。然后根據(jù)偏差值,對(duì)下一次的預(yù)測做出修正。這里的偏差值是指經(jīng)本節(jié)預(yù)測修正后的預(yù)測值與實(shí)際值相比的不足量與實(shí)際值之比,這是對(duì)模型的優(yōu)化補(bǔ)充。
4.4 虛擬機(jī)選擇
本節(jié)將描述算法所構(gòu)建的虛擬機(jī)調(diào)度方案。本文定義應(yīng)用的最大并發(fā)請(qǐng)求req與所需資源rc間存在函數(shù)關(guān)系freq-rc,如公式(3)所示:
可以把實(shí)際的調(diào)度方案分為兩類:一類是開啟某類型的虛擬機(jī),另外一類是關(guān)閉某類型的虛擬機(jī)。根據(jù)公式(3),可以通過freq-rc將給定的并發(fā)請(qǐng)求數(shù)轉(zhuǎn)化為資源需求,對(duì)于此資源需求,云系統(tǒng)需適當(dāng)調(diào)度虛擬機(jī)以適應(yīng)之。當(dāng)給定的資源不足時(shí),開啟某類型的虛擬機(jī);反之當(dāng)給定的資源過多時(shí),關(guān)閉某類型的虛擬機(jī),從而達(dá)到節(jié)省資源和適應(yīng)用戶彈性需求的目的。通過聚類算法,閑置資源和虛擬機(jī)的資源差異甲醛向量模長為聚類距離。本文擴(kuò)展了向量模型,引入了不同維度的權(quán)值:
調(diào)度流程具體如下:
首先預(yù)測修正算法得出的最大并發(fā)請(qǐng)求數(shù)預(yù)測值及最大并發(fā)請(qǐng)求數(shù)與所需資源存在函數(shù)關(guān)系freq-rc作為輸入。然后根據(jù)模型計(jì)算出所需的資源量以及虛擬機(jī)之間能夠提供的資源量及其預(yù)測間的偏差。本文的算法通過不斷地尋找最小模場確定候選虛擬機(jī),并且對(duì)其進(jìn)行資源需求校檢。直到當(dāng)前的資源滿足預(yù)測值,算法才會(huì)停止。同時(shí),當(dāng)所有的虛擬機(jī)都進(jìn)行了校檢或無法找到候選虛擬機(jī)時(shí),算法也將停止。
5 結(jié)束語
本文從廣東移動(dòng)的實(shí)際需求出發(fā),進(jìn)行合理的數(shù)據(jù)建模。將團(tuán)隊(duì)自主研發(fā)的云計(jì)算平臺(tái)相關(guān)技術(shù)導(dǎo)入并完成有針對(duì)性的設(shè)計(jì)。通過科研實(shí)驗(yàn)和實(shí)際數(shù)據(jù)挖掘,獲取平臺(tái)調(diào)優(yōu)的參數(shù)。實(shí)現(xiàn)了統(tǒng)一狀態(tài)監(jiān)控、自動(dòng)化運(yùn)維及云資源的統(tǒng)一調(diào)度。本項(xiàng)目提高了運(yùn)維的自動(dòng)化能力,減少了日常維護(hù)工作及處理工單數(shù)量,集群總體資源利用率提升了20%,節(jié)省資源30%。在實(shí)際部署的過程中,在自動(dòng)化運(yùn)維中加入了虛擬機(jī)優(yōu)先級(jí),用以區(qū)分用戶群體,實(shí)現(xiàn)了對(duì)用戶虛擬機(jī)的自動(dòng)精細(xì)化管理。
參考文獻(xiàn):
[1] Peter Mell, Tim Grance . The NIST Definition of Cloud Computing[J]. Communications of the Acm, 2011,53(6): 50.
[2] Salesforce Enterprises. Salesforce[EB/OL]. [2015-12-10]. http://www.salesforce.com/.
[3] 維基百科. Google App Engine[EB/OL]. [2015-12-10]. http://en.wikipedia.org/wiki/Google_App_Engine.
[4] Amazon. Introduction of EC2[EB/OL]. [2015-12-10]. http://aws.amazon.com/ec2/.
[5] VMware. Introduction of vSphere[EB/OL]. [2015-12-10]. http://communities.vmware.com/community/vmtn/vsphere.
[6] 趙淦森,虞海,季統(tǒng)凱,等. 云計(jì)算平臺(tái)的自適應(yīng)資源供給[J]. 電信科學(xué), 2012(1): 31-37.
[7] 二次移動(dòng)平均法[EB/OL]. [2015-12-10]. http://course.cug.edu.cn/cugFirst/statistics/neirong/zhang194.htm.
[8] Nagios Enterprises. Nagios簡介[EB/OL]. [2015-12-10]. https://www.nagios.org/.
[9] frank2336. VDI虛擬桌面基礎(chǔ)架構(gòu)[EB/OL]. [2015-12-10]. http://blog.csdn.net/frank2336/article/details/7659506.
[10] VMware. Vmware ESXi[EB/OL]. [2015-12-10]. http://www.vmware.com/products/esxi-and-esx/overview.