楊暘++陳奇
【摘 要】云平臺(tái)的誕生,大幅降低了計(jì)算成本。目前,企業(yè)通過搭建各類應(yīng)用云為企業(yè)內(nèi)部員工和外部客戶提供大量具有彈性的計(jì)算資源。虛擬化技術(shù)則是云平臺(tái)的核心和基礎(chǔ)技術(shù)要點(diǎn)。將不同的物理計(jì)算設(shè)備集中形成云平臺(tái)中單個(gè)的虛擬主機(jī),這樣能夠有效發(fā)揮硬件平臺(tái)計(jì)算能力。不過,隨著用戶對各類計(jì)算資源需求的增加,導(dǎo)致了云平臺(tái)中的虛擬主機(jī)數(shù)量日益龐大,如何高效合理地對這些虛擬主機(jī)資源進(jìn)行分配,成為云平臺(tái)管理員亟待解決的問題。本文從對預(yù)測模型研究入手,結(jié)合云平臺(tái)虛擬主機(jī)的特點(diǎn),提出一種基于預(yù)測模型面向庫存管理的虛擬主機(jī)調(diào)度算法。
【關(guān)鍵詞】虛擬主機(jī)資源調(diào)度 預(yù)測 云計(jì)算平臺(tái)
【Abstract】 The birth of the cloud computing takes a significant reduction in the cost of computing. At present, the enterprise can provide a large number of flexible computing resources for internal employees and external customers by cloud computing platform. Virtualization technology is the core and basic technical points of the cloud platform. It can enhance computing ability of hardware to focus different physical devices on the formation of a single cloud platform. However, with the increase of all kinds of computing demands, it cause a large number of virtual hosts being created on cloud platform, and it also become a problem that needs to be solved urgently in the cloud platform by administrator to how to distribute virtual hosts efficiently and reasonably. In this paper, we will give a virtual hosts schedule strategy on cloud platform based on prediction model.
【Keywords】 Virtual Host Resource Schedule; Prediction ; Cloud Computing Platform
1 引論
隨著云平臺(tái)的推廣和應(yīng)用,目前國內(nèi)很多企事業(yè)單位都通過搭建IaaS平臺(tái)[1][2]和虛擬主機(jī)平臺(tái)實(shí)現(xiàn)對計(jì)算資源的擴(kuò)容,從而起到集中化管理和降低硬件采購成本的目的。特別在一些員工數(shù)量龐大的大型企業(yè)里,業(yè)務(wù)和組織結(jié)構(gòu)十分復(fù)雜,通過平臺(tái)能夠有效降低企業(yè)信息化基礎(chǔ)設(shè)施建設(shè)和管理成本。
但是,云平臺(tái)虛擬主機(jī)也給企業(yè)信息基礎(chǔ)設(shè)施管理帶來新的問題。由于每個(gè)企業(yè)的云平臺(tái)中運(yùn)行著各種各樣不同類型、不同業(yè)務(wù)用途的虛擬主機(jī),這些虛擬主機(jī)數(shù)目龐大;同時(shí),業(yè)務(wù)部門根據(jù)自身業(yè)務(wù)發(fā)展要求,不斷發(fā)起新的計(jì)算資源使用請求。這就導(dǎo)致了企業(yè)內(nèi)部云平臺(tái)中出現(xiàn)大量不同層次不同種類的虛擬主機(jī),因此對于這些虛擬主機(jī)自動(dòng)調(diào)度和計(jì)算資源優(yōu)化分配是十分有必要的。
本文利用自回歸移動(dòng)平均預(yù)測模型[3](Auto-Regressive and Moving Average Model,ARMA),通過用戶對虛擬主機(jī)訪問使用量的預(yù)測,從而建立起虛擬主機(jī)池,來應(yīng)對用戶對虛擬主機(jī)訪問的需求,進(jìn)而形成對云平臺(tái)虛擬主機(jī)的自動(dòng)化調(diào)度和分配。
2 問題描述
假設(shè)某一云平臺(tái)在某一時(shí)間段里的對某一類型的虛擬主機(jī)調(diào)用訪問請求量為集合,并對集合Q中的元素進(jìn)行檢驗(yàn),發(fā)現(xiàn)集合Q中的元素在時(shí)間序列中是平穩(wěn)的,且元素兩兩之間不具有相關(guān)性,因此可以認(rèn)為集合Q中的元素滿足泊松分布的條件。平臺(tái)中可用的某種虛擬主機(jī)資源數(shù)量為S,用戶平均占用平臺(tái)虛擬主機(jī)進(jìn)行業(yè)務(wù)計(jì)算的時(shí)間花費(fèi)為T,該問題就可描述成一個(gè)單請求隊(duì)列多服務(wù)臺(tái)的排隊(duì)系統(tǒng)(M/M/S)。另外,在整個(gè)計(jì)算資源匹配過程中,我們以先發(fā)起請求的用戶先享受計(jì)算服務(wù),這樣該問題便可描述為一個(gè)單請求隊(duì)列多服務(wù)臺(tái)按先到先服務(wù)的隨機(jī)隊(duì)列系統(tǒng)(M/M/S/)。對于一個(gè)隨機(jī)的排隊(duì)系統(tǒng)而言,其目的就是用有限的資源獲得最佳的服務(wù)體驗(yàn),因此能夠給出云平臺(tái)上虛擬主機(jī)調(diào)度數(shù)學(xué)期望,即讓用戶在該等待隊(duì)列系統(tǒng)中,獲得最小的等待時(shí)間。
3 問題分析
根據(jù)排隊(duì)理論基本特性,在評估某一個(gè)排隊(duì)系統(tǒng)最優(yōu)等待方案過程中,必須先獲取該排隊(duì)系統(tǒng)的隊(duì)長、等待隊(duì)長、等待時(shí)間、服務(wù)時(shí)間、服務(wù)臺(tái)數(shù)等基本參數(shù)。在這些參數(shù)中,等待時(shí)間是該系統(tǒng)的數(shù)學(xué)期望,而服務(wù)臺(tái)數(shù)則是系統(tǒng)的自變量。因此,云平臺(tái)虛擬主機(jī)的調(diào)度問題可用函數(shù)。為了對該函數(shù)問題求解,我們先對歷史數(shù)據(jù)進(jìn)行了考察,根據(jù)統(tǒng)計(jì)能夠計(jì)算得到云平臺(tái)系統(tǒng)中用戶的平均等待時(shí)間和平均服務(wù)時(shí)間,而等待隊(duì)長能夠在云平臺(tái)隊(duì)列中進(jìn)行設(shè)定,因此僅需對訪問云平臺(tái)隊(duì)長進(jìn)行監(jiān)測。關(guān)于隊(duì)列隊(duì)長,目前能夠得到云平臺(tái)的歷史訪問請求數(shù)據(jù),對歷史數(shù)據(jù)進(jìn)行觀測和統(tǒng)計(jì)測算后發(fā)現(xiàn)用戶對云平臺(tái)中虛擬主機(jī)請求訪問滿足隨機(jī)泊松分布條件,故我們引入了自回歸移動(dòng)平均預(yù)測模型,通過該模型對未來預(yù)期的云平臺(tái)虛擬主機(jī)訪問請求量進(jìn)行預(yù)測,從而判斷該排隊(duì)系統(tǒng)隊(duì)列長度,并且利用該預(yù)測結(jié)果,適度對云平臺(tái)中某一類虛擬主機(jī)數(shù)量進(jìn)行調(diào)整,以滿足用戶隨機(jī)并發(fā)的訪問需求。
4 自回歸移動(dòng)平均模型
自回歸移動(dòng)平均預(yù)測模型[3](Auto-Regressive and Moving Average Model,ARMA)是一種被廣泛應(yīng)用的短期預(yù)測模型,該模型具有收斂速度快,同時(shí)滿足因果關(guān)系和時(shí)間序列兩個(gè)特征,在當(dāng)數(shù)據(jù)積累并不充分時(shí),該模型也能夠提供較為準(zhǔn)確的預(yù)測結(jié)果。
在使用自回歸移動(dòng)平均模型進(jìn)行云平臺(tái)虛擬主機(jī)請求訪問量預(yù)測前,首先要對該類型虛擬主機(jī)歷史訪問請求的數(shù)據(jù)作時(shí)間序列上的平穩(wěn)性檢驗(yàn)。該檢驗(yàn)?zāi)康氖菫榱舜_認(rèn)歷史訪問請求量在既定的時(shí)間序列上是完全隨機(jī)的。這里采用增廣迪基-富勒檢驗(yàn)法(ADFTest)[4]來對歷史數(shù)據(jù)在時(shí)間序列中的平穩(wěn)性進(jìn)行檢測。
首先隨機(jī)選取某一設(shè)備資源15期的請求訪問量,這里樣本要求是處于某段時(shí)間序列的中段位,這樣能夠排除檢測過程中數(shù)據(jù)首尾對整體檢測結(jié)果的影響。對選出的數(shù)據(jù)集合按時(shí)間序列進(jìn)行順序排序,得到結(jié)果數(shù)據(jù)集[4,7,7,8,6,10,12,15,11,9,13,15,13,14,5],隨后對該段數(shù)據(jù)進(jìn)行ADF檢驗(yàn),我們使用了Matlab工具對其進(jìn)行檢驗(yàn),得出結(jié)果為不符合時(shí)間序列平穩(wěn)性要求。按照自回歸移動(dòng)平均模型對預(yù)測數(shù)據(jù)時(shí)間序列的平穩(wěn)性要求,根據(jù)富勒檢驗(yàn)結(jié)果,該段樣本數(shù)據(jù)集并不能夠直接滿足預(yù)測模型對樣本數(shù)據(jù)的要求,故需要對該段非平穩(wěn)時(shí)間序列數(shù)據(jù)進(jìn)行平穩(wěn)性訓(xùn)練。這里采用一階差分法[5]計(jì)算公式對選取的樣本數(shù)據(jù)進(jìn)行時(shí)間序列平穩(wěn)性訓(xùn)練。經(jīng)訓(xùn)練后得到新的樣本數(shù)據(jù)集合為[3,0,1,-2,4,2,3,-4,-2,4,2,-2,1,-9]。這里需要再次對結(jié)果數(shù)據(jù)進(jìn)行時(shí)間序列檢驗(yàn),根據(jù)富勒檢驗(yàn)法檢驗(yàn)結(jié)果,經(jīng)過一階差分處理后的歷史樣本數(shù)據(jù)集合滿足時(shí)間序列平穩(wěn)性要求。因此,可以使用它來建立自回歸移動(dòng)平均預(yù)測模型。
在自回歸移動(dòng)平均模型中,首先對自回歸部分參數(shù)展開計(jì)算。這里,我們采取了普通最小二乘法[6]對自回歸移動(dòng)平均模型中的自回歸部分參數(shù)進(jìn)行估計(jì),并采用訓(xùn)練后的樣本數(shù)據(jù)進(jìn)行自回歸部分計(jì)算。通過Eviews軟件的計(jì)算模擬,得到該訓(xùn)練后的時(shí)間序列數(shù)據(jù)滿足一階回歸方程。因此,利用普通最小二乘法計(jì)對一階自回歸模型參數(shù)進(jìn)行計(jì)算,得到結(jié)果為0.121。該值即為自回歸移動(dòng)平均模型中自回歸部分參數(shù)。其次,對移動(dòng)平均模型部分的參數(shù)展開計(jì)算。在估參前首先需要確定一階移動(dòng)平均模型的自相關(guān)系數(shù)。自相關(guān)系數(shù)反映了時(shí)間序列數(shù)據(jù)中過去的數(shù)據(jù)對現(xiàn)在數(shù)據(jù)的相關(guān)程度,換而言之,在資源調(diào)度模型中就是度量過去的請求量對現(xiàn)在的訪問量的影響。在得到自相關(guān)系數(shù)結(jié)果后,利用移動(dòng)平均模型中參數(shù)和自相關(guān)系數(shù)的數(shù)學(xué)關(guān)系,計(jì)算得到移動(dòng)平均模型中的參數(shù)估計(jì)值,其按樣本數(shù)據(jù)估計(jì)得到的結(jié)果值約為0.932。
至此,對于自回歸移動(dòng)平均模型中的自回歸模型部分和移動(dòng)平均模型部分的參數(shù)估計(jì)已經(jīng)完成,最后將兩部分模型相加合并,得到一個(gè)一階的自回歸移動(dòng)平均預(yù)測模型Y(t)=0.121*Y(t-1)+0.932*E(t-1),并可利用該模型對樣本數(shù)據(jù)的下一期進(jìn)行模型預(yù)測。
5 基于預(yù)測模型的云平臺(tái)虛擬主機(jī)調(diào)度流程設(shè)計(jì)
根據(jù)上述對自回歸移動(dòng)平均預(yù)測模型計(jì)算的分析結(jié)果,結(jié)合排隊(duì)論相關(guān)理論,對基于預(yù)測模型的云平臺(tái)虛擬主機(jī)調(diào)度流程給出調(diào)度設(shè)計(jì)方案,其具體流程如圖1所示。
圖1展示了基于自回歸移動(dòng)平均預(yù)測模型的調(diào)度流程。在該流程中,首先需要建立一個(gè)排隊(duì)隊(duì)列,把對平臺(tái)中的各類資源設(shè)備訪問的請求,按照時(shí)間序列遞增順序存進(jìn)隊(duì)列中。在該隊(duì)列中,根據(jù)先到先服務(wù)(First In First Service,F(xiàn)IFS)的規(guī)則把隊(duì)列靠前的訪問請求,優(yōu)先進(jìn)行虛擬主機(jī)設(shè)備的分配。調(diào)度系統(tǒng)在進(jìn)行分配時(shí),首先會(huì)根據(jù)請求虛擬主機(jī)的類型對云平臺(tái)中所有虛擬主機(jī)的狀態(tài)進(jìn)行查詢,搜索狀態(tài)為空閑的資源設(shè)備,如存在,則將返回該空閑虛擬主機(jī)的網(wǎng)絡(luò)地址,供用戶使用;如該類型下的所有虛擬主機(jī)集合狀態(tài)均為忙碌,則將該次操作請求暫行掛起,反饋等待消息給用戶。同時(shí)系統(tǒng)為了最大限度減少用戶等待時(shí)間,對虛擬主機(jī)進(jìn)行創(chuàng)建工作。在創(chuàng)建過程中,首先找到該虛擬主機(jī)資源對應(yīng)的模板集合,根據(jù)數(shù)據(jù)配置模板,進(jìn)行克隆和創(chuàng)建,最后,將創(chuàng)建完畢的虛擬資源添加到該類型下的資源設(shè)備數(shù)據(jù)列表中,同時(shí)將創(chuàng)建結(jié)果和網(wǎng)絡(luò)地址反饋給用戶。當(dāng)用戶完成對該虛擬資源使用訪問之后,將用戶產(chǎn)生的數(shù)據(jù)進(jìn)行保存并對該虛擬資源進(jìn)行釋放,以供后續(xù)用戶的使用,同時(shí)將此次請求訪問記錄保存在數(shù)據(jù)庫中,為之后的預(yù)測部分提供數(shù)據(jù)依據(jù)。在既定的時(shí)間序列之后,調(diào)度程序?qū)ζ脚_(tái)上的虛擬主機(jī)資源進(jìn)行整理并對未來的請求量進(jìn)行預(yù)測,將預(yù)測結(jié)果與實(shí)際的設(shè)備數(shù)量進(jìn)行對比,對于實(shí)際資源數(shù)量小于預(yù)測結(jié)果的資源種類進(jìn)行差量創(chuàng)建,對實(shí)際資源數(shù)量大于預(yù)測結(jié)果的,則暫不進(jìn)行處理,連續(xù)5次的預(yù)測數(shù)量均小于實(shí)際數(shù)量后,才將平臺(tái)中的多余資源進(jìn)行刪除,以釋放足夠的存儲(chǔ)空間。
6 基于預(yù)測模型的云平臺(tái)虛擬主機(jī)調(diào)度流程實(shí)現(xiàn)
6.1 調(diào)度流程的實(shí)現(xiàn)
在調(diào)度流程中,主要實(shí)現(xiàn)對虛擬主機(jī)資源的獲取、類型判別、訪問、動(dòng)態(tài)創(chuàng)建和刪除。在對調(diào)度流程實(shí)現(xiàn)過程中,需要調(diào)用上述對虛擬主機(jī)操作方法。圖2為調(diào)度系統(tǒng)程序執(zhí)行的流程圖。
在圖2中,調(diào)度程序首先建立一個(gè)全局空隊(duì)列,將到達(dá)的請求裝進(jìn)隊(duì)列中,根據(jù)隊(duì)列先到先出的特性,在隊(duì)列中排在隊(duì)列前面的請求往往會(huì)被優(yōu)先得到滿足,后到的操作請求則會(huì)放在隊(duì)尾。之后調(diào)度程序?qū)﹃?duì)列進(jìn)行讀取,讀取隊(duì)首的請求獲得其請求的設(shè)備類型。接著調(diào)度程序?qū)︶槍υO(shè)備資源類型對虛擬設(shè)備資源數(shù)據(jù)庫進(jìn)行查詢,找到設(shè)備狀態(tài)為空閑的第一個(gè)滿足條件的虛擬設(shè)備資源,讀取該設(shè)備資源的名稱和地址訪問信息,并將結(jié)果反饋給用戶,供用戶選擇使用。如果在該設(shè)備資源類型下所有的設(shè)備均處于忙碌狀態(tài)則對該類型資源進(jìn)行創(chuàng)建,調(diào)度程序會(huì)讀取該類型資源保存的配置模板文件就,隨后進(jìn)行創(chuàng)建,隨后將創(chuàng)建成功的設(shè)備登記在該類型資源下的設(shè)備集合中,同時(shí)也將創(chuàng)建后的資源設(shè)備地址反饋給用戶,供用戶使用。在成功完成向用戶調(diào)度設(shè)備操作之后,調(diào)度程序會(huì)在最后向日志數(shù)據(jù)庫中保存本次設(shè)備資源請求結(jié)果。
6.2 預(yù)測流程的實(shí)現(xiàn)
預(yù)測流程部分主要利用自回歸移動(dòng)平均預(yù)測模型對云平臺(tái)訪問的歷史數(shù)據(jù)進(jìn)行估計(jì),得出預(yù)測模型,并利用該模型對未來遠(yuǎn)期云平臺(tái)的訪問量進(jìn)行預(yù)測。根據(jù)上述對自回歸移動(dòng)平均預(yù)測模型的樣本檢驗(yàn)和估參計(jì)算公式,給出部分核心算法及程序偽代碼。圖3則為一階差分法核心偽代碼。
上述圖示中包括了對自相關(guān)系數(shù)、殘差平方和的計(jì)算。同時(shí)在程序中也包含了自回歸移動(dòng)平均模型的參數(shù)估計(jì)。
7 結(jié)論
本文對自回歸移動(dòng)平均預(yù)測模型進(jìn)行了結(jié)果分析,對上述樣本數(shù)據(jù)進(jìn)行了預(yù)測結(jié)果和實(shí)際結(jié)果的比較,如圖5所示。
在上圖對比中,選取了云平臺(tái)中某種確定類型的虛擬主機(jī)在特定的時(shí)間序列中歷史訪問量的數(shù)據(jù)集合,藍(lán)色部分為實(shí)際結(jié)果,橙色部分為預(yù)測結(jié)果是利用自回歸移動(dòng)平均模型計(jì)算得到的結(jié)果,為了顯示更加直觀,不再對前期條件數(shù)據(jù)進(jìn)行羅列。分析對比結(jié)果能夠發(fā)現(xiàn)預(yù)測趨勢基本與實(shí)際趨勢一致,不過預(yù)測模型普遍都存在滯后性,因此最后一期預(yù)測結(jié)果與實(shí)際結(jié)果相差過大,該誤差會(huì)在后一期的預(yù)測過程中進(jìn)行逐步收斂。
8 未來展望
本文對云平臺(tái)虛擬主機(jī)調(diào)度遇到的問題和應(yīng)用前景進(jìn)行了闡述,利用自回歸移動(dòng)平均預(yù)測模型,結(jié)合排隊(duì)系統(tǒng)相關(guān)理論知識(shí),對云平臺(tái)虛擬主機(jī)訪問調(diào)度過程進(jìn)行調(diào)度策略的設(shè)計(jì),對預(yù)測模型中的核心計(jì)算功能給出了程序?qū)崿F(xiàn)的部分偽代碼。
本文力求將該調(diào)度策略成為一種對云平臺(tái)虛擬主機(jī)訪問調(diào)度通用的調(diào)度策略,以滿足用戶的訪問需求,不過對于目前云平臺(tái)虛擬主機(jī)調(diào)度過程中,仍具有以下問題以待解決:
(1)云平臺(tái)硬件限制。
在云平臺(tái)中,雖然所有的IT基礎(chǔ)設(shè)施成為了共同訪問的虛擬資源,但是受到云平臺(tái)自身硬件限制,如處理器性能、磁盤存儲(chǔ)空間等。這些限制會(huì)影響到平臺(tái)中虛擬主機(jī)資源的創(chuàng)建和調(diào)度管理,本文提出的虛擬主機(jī)調(diào)度方案,是基于排除云平臺(tái)硬件設(shè)施的情況下進(jìn)行的研究。
(2)預(yù)測調(diào)度的智能化。
云平臺(tái)中的調(diào)度系統(tǒng)除了需要滿足性能上的調(diào)度需求之外,還應(yīng)該按照企業(yè)具體的業(yè)務(wù)需求進(jìn)行調(diào)度。作為對企業(yè)IT基礎(chǔ)設(shè)施的支撐,云平臺(tái)中的虛擬主機(jī)資源應(yīng)該能夠符合業(yè)務(wù)發(fā)展的需要。但不同行業(yè)擁有不同業(yè)務(wù)特性,因此在滿足業(yè)務(wù)需求的前提下,對云平臺(tái)進(jìn)行智能化的虛擬主機(jī)資源調(diào)度是今后發(fā)展的趨勢。
參考文獻(xiàn):
[1]Mitigating Multi-Tenancy Risks in IaaS Cloud Through Constraints-Driven Virtual Resource Scheduling, SACMAT '15: Proceedings of the 20th ACM Symposium on Access Control Models and Technologies[C],Jun 2015.
[2]岳冬利,劉海濤,孫傲冰 IaaS公有云平臺(tái)調(diào)度模型研究[J].計(jì)算機(jī)工程與設(shè)計(jì)2011,V01.32,No.6.
[3]鄒伯賢,劉強(qiáng).基于ARMA模型的網(wǎng)絡(luò)流量預(yù)測[J].計(jì)算機(jī)研究與發(fā)展,Vol.39,No.12Dec.2002 P1645-1647.
[4]林慧君,徐榮聰.組合ARMA與SVR模型的時(shí)間序列預(yù)測[J].-計(jì)算機(jī)與現(xiàn)代化 2009(8).
[5]閔潔,李瀟.基于最小二乘支持向量機(jī)的網(wǎng)絡(luò)流量預(yù)測[J].-九江學(xué)院學(xué)報(bào)(自然科學(xué)版) 2010(1).