本發(fā)明屬于虛擬機(jī)資源分配領(lǐng)域,具體來說,涉及一種云計(jì)算環(huán)境中虛擬機(jī)擴(kuò)縮容方法及擴(kuò)縮容系統(tǒng)。
背景技術(shù):
當(dāng)前,虛擬化環(huán)境下,很多應(yīng)用運(yùn)行在集群環(huán)境中,當(dāng)集群負(fù)載過高時(shí),需要增加機(jī)器到集群環(huán)境中;當(dāng)集群比較空閑時(shí),需要?jiǎng)h除掉一些虛擬機(jī),以便空閑出更多的資源,提高資源的使用效率。在此方面,已經(jīng)有如下一些實(shí)現(xiàn):
公開號(hào)為CN103810020A、專利名稱為:虛擬機(jī)彈性伸縮方法及裝置的中國(guó)專利實(shí)現(xiàn)了虛擬機(jī)彈性伸縮,主要實(shí)現(xiàn)方式為:當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī)。 由于虛擬機(jī)實(shí)例緩沖模塊中已經(jīng)預(yù)存了一些事先分配好的虛機(jī)實(shí)例,只是狀態(tài)為暫停狀態(tài),所以優(yōu)點(diǎn)是在擴(kuò)容虛擬機(jī)時(shí)能夠減少創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成。但它的缺點(diǎn)也比較明顯:需要事先分配好虛擬機(jī),雖然處于暫停狀態(tài),但是也需要占用計(jì)算和存儲(chǔ)等資源,資源使用效率比較低;無法動(dòng)態(tài)的增加虛擬機(jī),需要人工參與決策;新增的虛擬機(jī)啟動(dòng)后應(yīng)用程序無法自動(dòng)的安裝及配置。又例如,申請(qǐng)?zhí)枮?01410050050.0、專利名稱為:基于虛擬機(jī)模版的hadoop集群自動(dòng)化部署技術(shù)的中國(guó)專利,實(shí)現(xiàn)了hadoop集群虛機(jī)的自動(dòng)化分配及Hadoop的自動(dòng)化安裝及配置。它僅僅是實(shí)現(xiàn)了自動(dòng)化的分配、安裝和配置,沒有集群的動(dòng)態(tài)擴(kuò)展。在公開號(hào)為CN102654841A、專利名稱為:細(xì)粒度分配虛擬機(jī)計(jì)算資源的方法和設(shè)備的中國(guó)專利公開了:讓虛擬機(jī)運(yùn)行時(shí)間周期t;檢查在時(shí)間周期t內(nèi)虛擬機(jī)對(duì)CPU資源的占用率a;判斷虛擬機(jī)對(duì)CPU資源的占用率a是否小于等于虛擬機(jī)對(duì)CPU資源的占用率的上限b,如果是,則虛擬機(jī)繼續(xù)運(yùn)行下一個(gè)時(shí)間周期,否則,讓虛擬機(jī)暫停。雖然該專利實(shí)現(xiàn)了根據(jù)cpu資源的使用率做出相應(yīng)的決策的方法,但是決策很簡(jiǎn)單,監(jiān)測(cè)指標(biāo)也單一,更沒有實(shí)現(xiàn)指標(biāo)數(shù)據(jù)與動(dòng)態(tài)擴(kuò)縮的關(guān)聯(lián)以及自動(dòng)化分配、安裝及配置。
技術(shù)實(shí)現(xiàn)要素:
技術(shù)問題:本發(fā)明所要解決的技術(shù)問題是:提供一種云計(jì)算環(huán)境中虛擬機(jī)擴(kuò)縮容方法及擴(kuò)縮容系統(tǒng),實(shí)現(xiàn)根據(jù)應(yīng)用壓力,動(dòng)態(tài)的擴(kuò)縮在另一云平臺(tái)中運(yùn)行的虛擬機(jī),從而實(shí)現(xiàn)擴(kuò)充應(yīng)用虛擬機(jī)的規(guī)模,或者消減應(yīng)用虛擬機(jī)的規(guī)模。
技術(shù)方案:為解決上述技術(shù)問題,一方面,本實(shí)施例提供一種云計(jì)算環(huán)境中虛擬機(jī)擴(kuò)縮容方法,該方法包括:
S10采集云平臺(tái)中的虛擬機(jī)數(shù)據(jù);
S20將虛擬機(jī)數(shù)據(jù)與虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容,如果是,則進(jìn)入步驟S30;如果否,則返回步驟S10;
S30在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
作為一種實(shí)施例,所述的步驟S10進(jìn)一步包括:虛擬機(jī)中的代理周期性的采集虛擬機(jī)數(shù)據(jù),并將虛擬機(jī)數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。
作為一種實(shí)施例,所述的虛擬機(jī)數(shù)據(jù)包括CPU使用率、內(nèi)存使用率、IOPS、網(wǎng)絡(luò)吞吐量和業(yè)務(wù)請(qǐng)求數(shù)中的一種或任意組合。
作為一種實(shí)施例,所述的步驟S20進(jìn)一步包括:從數(shù)據(jù)庫中提取虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的虛擬機(jī)性能參數(shù),并從數(shù)據(jù)庫中提取該性能參數(shù)對(duì)應(yīng)的虛擬機(jī)數(shù)據(jù),和虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的參數(shù)閾值進(jìn)行比較,結(jié)合虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的冷卻時(shí)間參數(shù),如果虛擬機(jī)數(shù)據(jù)大于參數(shù)閾值,且距離上一次擴(kuò)縮容的時(shí)間超過冷卻時(shí)間參數(shù),則進(jìn)行虛擬機(jī)的擴(kuò)縮容,進(jìn)入步驟S30,否則返回步驟S10。
作為一種實(shí)施例,所述的步驟S30進(jìn)一步包括:從預(yù)先設(shè)定的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中提取擴(kuò)縮數(shù)量,在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
另一方面,本實(shí)施例提供一種云計(jì)算環(huán)境中虛擬機(jī)擴(kuò)縮容系統(tǒng),該系統(tǒng)包括:云平臺(tái),其中運(yùn)行虛擬機(jī),虛擬機(jī)中的代理采集虛擬機(jī)數(shù)據(jù),并發(fā)送給采集模塊;所述的云平臺(tái)至少為2個(gè);采集模塊,用于接收虛擬機(jī)數(shù)據(jù),并發(fā)送給數(shù)據(jù)庫;數(shù)據(jù)庫,用于接收并存儲(chǔ)采集模塊發(fā)送的虛擬機(jī)數(shù)據(jù),還用于存儲(chǔ)虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn);判斷模塊,用于將虛擬機(jī)數(shù)據(jù)與虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容;擴(kuò)縮模塊,用于在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
作為一種實(shí)施例,所述的判斷模塊包括:提取子模塊,用于從數(shù)據(jù)庫中提取虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的虛擬機(jī)性能參數(shù)、參數(shù)閾值和冷卻時(shí)間,并從數(shù)據(jù)庫中提取該性能參數(shù)對(duì)應(yīng)的虛擬機(jī)數(shù)據(jù);比較子模塊,用于結(jié)合冷卻時(shí)間,比較參數(shù)閾值和虛擬機(jī)數(shù)據(jù),判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容。
作為一種實(shí)施例,所述的擴(kuò)縮模塊包括: 指令子模塊:用于接收判斷模塊發(fā)出的進(jìn)行擴(kuò)縮容信息,并從虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中提取擴(kuò)縮容數(shù)量,將該擴(kuò)縮容數(shù)量發(fā)送給環(huán)境和配置子模塊;環(huán)境和配置子模塊:用于根據(jù)擴(kuò)縮容數(shù)量,在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
作為一種實(shí)施例,所述的環(huán)境和配置子模塊包括:基礎(chǔ)環(huán)境創(chuàng)建單元,用于設(shè)置待創(chuàng)虛擬機(jī)的操作系統(tǒng)、CPU數(shù)量、內(nèi)存大小、磁盤大小、網(wǎng)絡(luò)和所屬域;配置單元:用于設(shè)置待創(chuàng)虛擬機(jī)的應(yīng)用程序及配置、應(yīng)用程序的安裝、云平臺(tái)內(nèi)虛擬機(jī)的IP,向管理節(jié)點(diǎn)注冊(cè)虛擬機(jī)的IP域名。
作為一種實(shí)施例,所述的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)包含虛擬機(jī)性能參數(shù)、參數(shù)閾值和冷卻時(shí)間參數(shù)。
作為一種實(shí)施例,所述的環(huán)境和配置子模塊存儲(chǔ)在數(shù)據(jù)庫中。
作為一種實(shí)施例,所述的數(shù)據(jù)庫中存儲(chǔ)的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)為n個(gè),每個(gè)云平臺(tái)對(duì)應(yīng)一個(gè)虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)。
有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有在不同云平臺(tái)中自動(dòng)擴(kuò)縮虛擬機(jī)的優(yōu)點(diǎn)。通過將采集的虛擬機(jī)數(shù)據(jù)與虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容,如果是,則根據(jù)虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中設(shè)定的擴(kuò)縮數(shù)量,以及待創(chuàng)建虛擬機(jī)的環(huán)境配置,自動(dòng)在其他云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。如果否,則不進(jìn)行虛擬機(jī)的擴(kuò)縮。這實(shí)現(xiàn)了跨平臺(tái)的自動(dòng)擴(kuò)縮虛擬機(jī),從而提高資源使用效率。
附圖說明
圖1是本發(fā)明實(shí)施例的流程框圖。
圖2是本發(fā)明一實(shí)施例的結(jié)構(gòu)框圖。
圖3是本發(fā)明另一實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行詳細(xì)的論述。
在云計(jì)算領(lǐng)域中,云平臺(tái)中設(shè)有虛擬機(jī)。本文中云平臺(tái)可以是異構(gòu)云平臺(tái),還可以是同構(gòu)云平臺(tái)。本發(fā)明實(shí)施例均可應(yīng)用于前述云平臺(tái)中。
本發(fā)明提供一實(shí)施例,該實(shí)施例涉及一種云計(jì)算環(huán)境中虛擬機(jī)擴(kuò)縮容方法,包括:
S10采集云平臺(tái)中虛擬機(jī)數(shù)據(jù);
S20將虛擬機(jī)數(shù)據(jù)與虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容,如果是,則進(jìn)入步驟S30;如果否,則返回步驟S10;
S30在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
該實(shí)施例的方法中,利用采集的虛擬機(jī)數(shù)據(jù),與虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,從而判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容。
該實(shí)施例的方法可以實(shí)現(xiàn)應(yīng)用虛擬機(jī)在異構(gòu)云平臺(tái)上共存。這樣可以兼顧兩種云平臺(tái)的優(yōu)點(diǎn),通過統(tǒng)一云計(jì)算管理平臺(tái)去管理異構(gòu)云平臺(tái),應(yīng)用通過統(tǒng)一云計(jì)算管理平臺(tái)去申請(qǐng)新環(huán)境或者在已有部分應(yīng)用虛擬機(jī)的情況下,增加應(yīng)用集群的自動(dòng)擴(kuò)縮功能。
該實(shí)施例的方法中,虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)預(yù)先設(shè)定,可以自定義度量指標(biāo),增加與業(yè)務(wù)的關(guān)聯(lián),使得采集指標(biāo)更能反映業(yè)務(wù)場(chǎng)景,減少誤判率,從而能更好的根據(jù)業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)自動(dòng)擴(kuò)縮。通過用戶自定義度量指標(biāo),從而能獲得最佳的擴(kuò)縮容時(shí)機(jī)。
上述實(shí)施例中,為確保采集數(shù)據(jù)的實(shí)時(shí)性,優(yōu)選以下方法:利用虛擬機(jī)中的代理周期性的采集虛擬機(jī)數(shù)據(jù),并將虛擬機(jī)數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。這樣,利用云平臺(tái)中每個(gè)虛擬機(jī)中的代理,實(shí)時(shí)的周期性采用虛擬機(jī)數(shù)據(jù),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的虛擬機(jī)數(shù)據(jù)的實(shí)時(shí)更新,為后續(xù)步驟S20的比較提供了更準(zhǔn)確的數(shù)據(jù),有利于提高判斷的準(zhǔn)確性。該采集數(shù)據(jù)的過程可與第三方監(jiān)控軟件集成實(shí)現(xiàn)。一方面通過將第三方監(jiān)控軟件部署到鏡像模板中,相比在虛擬機(jī)外部通過libvirt接口采集指標(biāo)數(shù)據(jù),在虛擬機(jī)內(nèi)部采集指標(biāo)數(shù)據(jù)大大增加了采集指標(biāo)數(shù)據(jù)的準(zhǔn)確性;另一方面,可以結(jié)合應(yīng)用自身的特點(diǎn),定制用于自動(dòng)擴(kuò)縮的采集指標(biāo),實(shí)現(xiàn)應(yīng)用差異化對(duì)待。
與在自身平臺(tái)中實(shí)現(xiàn)擴(kuò)縮相比,跨平臺(tái)實(shí)現(xiàn)擴(kuò)縮具有如下技術(shù)優(yōu)點(diǎn):一是無須遷移已運(yùn)行的應(yīng)用到另一種平臺(tái)中,而能實(shí)現(xiàn)規(guī)模的水平擴(kuò)展;二是可以兼顧多個(gè)平臺(tái)的優(yōu)點(diǎn),把應(yīng)用部署到最適合應(yīng)用運(yùn)行的云平臺(tái)中。
步驟S20的比較,除了數(shù)據(jù)的實(shí)時(shí)周期性更新外,還涉及比較的參數(shù)。通過對(duì)鏡像模板的定制,可以實(shí)現(xiàn)虛擬機(jī)內(nèi)監(jiān)控代理采集數(shù)據(jù)指標(biāo)的自由擴(kuò)展,可以是系統(tǒng)層面的一些采集指標(biāo),例如:當(dāng)前系統(tǒng)進(jìn)程總數(shù)、每個(gè)磁盤的IOPS、進(jìn)程占用內(nèi)存情況,也可以是應(yīng)用層面的采集指標(biāo),例如:應(yīng)用所用消息隊(duì)列消息積壓情況、應(yīng)用的http請(qǐng)求數(shù)、應(yīng)用的平均響應(yīng)時(shí)間,而應(yīng)用有各自用于衡量擴(kuò)縮條件的指標(biāo)。作為一種優(yōu)選方案,虛擬機(jī)數(shù)據(jù)包括CPU使用率、內(nèi)存使用率、IOPS、網(wǎng)絡(luò)吞吐量和業(yè)務(wù)請(qǐng)求數(shù)中的一種或任意組合。該方案選擇的參數(shù)涉及虛擬機(jī)的主要性能參數(shù)。性能參數(shù)設(shè)置過多,不利于提高后續(xù)步驟的判斷效率。性能參數(shù)設(shè)置過少,不利于提高后續(xù)步驟的判斷準(zhǔn)確性。
上述實(shí)施例中,步驟S20采用的判斷方法可有多種。作為一種優(yōu)選,采用以下方法:從數(shù)據(jù)庫中提取虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的虛擬機(jī)性能參數(shù),并從數(shù)據(jù)庫中提取該性能參數(shù)對(duì)應(yīng)的虛擬機(jī)數(shù)據(jù),和虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的參數(shù)閾值進(jìn)行比較,結(jié)合虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的冷卻時(shí)間參數(shù),如果虛擬機(jī)數(shù)據(jù)大于參數(shù)閾值,且距離上一次擴(kuò)縮容的時(shí)間超過冷卻時(shí)間參數(shù),則進(jìn)行虛擬機(jī)的擴(kuò)縮容,進(jìn)入步驟S30,否則返回步驟S10。在該方案中,不僅僅考慮采集的虛擬機(jī)數(shù)據(jù)和參數(shù)閾值之間的比較,還考慮冷卻時(shí)間。由于從開始擴(kuò)縮到新增的虛擬機(jī)能真正的進(jìn)行服務(wù)有一段時(shí)間間隔,所以增加了冷卻時(shí)間參數(shù)。在該冷卻時(shí)間內(nèi),新的擴(kuò)縮請(qǐng)求不再受理,從而防止集群規(guī)模迅速膨脹。
舉例來說,采集的虛擬機(jī)數(shù)據(jù)包括CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)吞吐量和業(yè)務(wù)請(qǐng)求數(shù)四種參數(shù)。具體數(shù)據(jù)如表1所示。
從上表可以看出,樣本1符合在另一云平臺(tái)中進(jìn)行縮減1個(gè)虛擬機(jī)的要求。樣本3符合在另一云平臺(tái)中進(jìn)行擴(kuò)充4個(gè)虛擬機(jī)的要求。樣本2不符合虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中進(jìn)行擴(kuò)充或縮減虛擬機(jī)的要求。
在上述步驟S20判斷需要進(jìn)行虛擬機(jī)擴(kuò)縮容時(shí),為提高配置效率,可以預(yù)先設(shè)定待創(chuàng)建的虛擬機(jī)的環(huán)境配置參數(shù),以及待創(chuàng)建的數(shù)量。從預(yù)先設(shè)定的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中提取擴(kuò)縮數(shù)量,在云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。如表1所示,樣本1符合在云平臺(tái)中進(jìn)行縮減虛擬機(jī)的要求。根據(jù)該度量標(biāo)準(zhǔn),需要縮減1個(gè)虛擬機(jī)。樣本3符合在另一云平臺(tái)中進(jìn)行擴(kuò)充虛擬機(jī)的要求。根據(jù)該度量標(biāo)準(zhǔn),需要擴(kuò)充2個(gè)虛擬機(jī)。表1中,擴(kuò)容標(biāo)準(zhǔn)僅僅例舉了兩個(gè),縮容的標(biāo)準(zhǔn)僅僅例舉了一個(gè)。在一個(gè)虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中,擴(kuò)容標(biāo)準(zhǔn)可以為多個(gè),縮容標(biāo)準(zhǔn)可以為多個(gè)。
如圖2所示,本發(fā)明提供另一個(gè)實(shí)施例,一種云計(jì)算環(huán)境中虛擬機(jī)擴(kuò)縮容系統(tǒng),包括:
云平臺(tái),其中運(yùn)行虛擬機(jī),虛擬機(jī)中的代理采集虛擬機(jī)數(shù)據(jù),并發(fā)送給采集模塊;所述的云平臺(tái)至少為2個(gè);
采集模塊,用于接收虛擬機(jī)數(shù)據(jù),并發(fā)送給數(shù)據(jù)庫;
數(shù)據(jù)庫,用于接收并存儲(chǔ)采集模塊發(fā)送的虛擬機(jī)數(shù)據(jù),還用于存儲(chǔ)虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn);
判斷模塊,用于將虛擬機(jī)數(shù)據(jù)與虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容;
擴(kuò)縮模塊,用于在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
該實(shí)施例的系統(tǒng)中,采集模塊接收虛擬機(jī)代理發(fā)送的虛擬機(jī)數(shù)據(jù),判斷模塊將虛擬機(jī)數(shù)據(jù)與數(shù)據(jù)庫中存儲(chǔ)的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的數(shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容。如果需要進(jìn)行擴(kuò)縮容,則擴(kuò)縮模塊在云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
該實(shí)施例的系統(tǒng)能夠?qū)崿F(xiàn)虛擬機(jī)的自動(dòng)擴(kuò)縮。在業(yè)務(wù)壓力增大時(shí),往往需要擴(kuò)充云平臺(tái)中虛擬機(jī)的數(shù)目。以往的方法是根據(jù)經(jīng)驗(yàn)預(yù)知未來某段時(shí)間會(huì)有較大的壓力,提前將虛擬機(jī)組擴(kuò)充好,以應(yīng)對(duì)業(yè)務(wù)壓力。但是這種方法只是根據(jù)經(jīng)驗(yàn)值來預(yù)測(cè),未來的業(yè)務(wù)壓力到底有多大,沒有一個(gè)準(zhǔn)確定量的值。因此面臨著擴(kuò)充多少的問題。本實(shí)施例能根據(jù)實(shí)時(shí)的業(yè)務(wù)請(qǐng)求壓力,定義一些指標(biāo)上限及下限,以及幾種指標(biāo)的組合,動(dòng)態(tài)的自動(dòng)的擴(kuò)充云平臺(tái)中虛擬機(jī)的數(shù)目。采集模塊周期性的(周期時(shí)長(zhǎng)可配置)采集指標(biāo)值到數(shù)據(jù)庫中,判斷模塊周期性的(周期時(shí)長(zhǎng)可配置)去評(píng)估定義的一些指標(biāo)值是否超過閾值,如果超過,則發(fā)起擴(kuò)縮命令給擴(kuò)縮模塊,擴(kuò)縮模塊進(jìn)行擴(kuò)縮處理。
在該實(shí)施例中,虛擬機(jī)中的代理采集的虛擬機(jī)數(shù)據(jù)可以為多種。虛擬機(jī)數(shù)據(jù)包括CPU使用率、內(nèi)存使用率、IOPS、網(wǎng)絡(luò)吞吐量和業(yè)務(wù)請(qǐng)求數(shù)中的一種或任意組合。該方案選擇的參數(shù)涉及虛擬機(jī)的主要性能參數(shù)。性能參數(shù)設(shè)置過多,不利于提高后續(xù)步驟的判斷效率。性能參數(shù)設(shè)置過少,不利于提高后續(xù)步驟的判斷準(zhǔn)確性。
在該實(shí)施例中,判斷模塊用于判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容。作為一種優(yōu)選方案,判斷模塊包括提取子模塊和比較子模塊。
提取子模塊,用于從數(shù)據(jù)庫中提取虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中的虛擬機(jī)性能參數(shù)、參數(shù)閾值和冷卻時(shí)間,并從數(shù)據(jù)庫中提取該性能參數(shù)對(duì)應(yīng)的虛擬機(jī)數(shù)據(jù)。
比較子模塊,用于結(jié)合冷卻時(shí)間,比較參數(shù)閾值和虛擬機(jī)數(shù)據(jù),判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容。
該實(shí)施例中,作為一種優(yōu)選方案,虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)包含虛擬機(jī)性能參數(shù)、參數(shù)閾值和冷卻時(shí)間參數(shù)。虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)為預(yù)先設(shè)定,并存儲(chǔ)在數(shù)據(jù)庫中。提取子模塊提取兩個(gè)部分的數(shù)據(jù),一部分?jǐn)?shù)據(jù)為虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中對(duì)應(yīng)的數(shù)據(jù),另一部分?jǐn)?shù)據(jù)為存儲(chǔ)在數(shù)據(jù)庫中,由虛擬機(jī)代理實(shí)時(shí)采集的虛擬機(jī)數(shù)據(jù)。比較子模塊,用于將上述兩部分?jǐn)?shù)據(jù)進(jìn)行比較,判斷是否需要進(jìn)行虛擬機(jī)的擴(kuò)縮容。
在該實(shí)施例中,擴(kuò)縮模塊用于在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。作為一種優(yōu)選方案,所述的擴(kuò)縮模塊包括指令子模塊,以及環(huán)境和配置子模塊。
指令子模塊:用于接收判斷模塊發(fā)出的進(jìn)行擴(kuò)縮容信息,并從虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中提取擴(kuò)縮容數(shù)量,將該擴(kuò)縮容數(shù)量發(fā)送給環(huán)境和配置子模塊;
環(huán)境和配置子模塊:用于根據(jù)擴(kuò)縮容數(shù)量,在另一云平臺(tái)中進(jìn)行虛擬機(jī)的擴(kuò)縮。
在該擴(kuò)縮模塊中,當(dāng)指令子模塊接收到需要進(jìn)行擴(kuò)縮容信息時(shí),從虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)中提取擴(kuò)縮容數(shù)量,并發(fā)送給環(huán)境和配置子模塊。作為一種優(yōu)選方案,環(huán)境和配置子模塊包括基礎(chǔ)環(huán)境創(chuàng)建單元和配置單元?;A(chǔ)環(huán)境創(chuàng)建單元,用于設(shè)置待創(chuàng)虛擬機(jī)的操作系統(tǒng)、CPU數(shù)量、內(nèi)存大小、磁盤大小、網(wǎng)絡(luò)和所屬域。配置單元:用于設(shè)置待創(chuàng)虛擬機(jī)的應(yīng)用程序及配置、應(yīng)用程序的安裝、云平臺(tái)內(nèi)虛擬機(jī)的IP,向管理節(jié)點(diǎn)注冊(cè)虛擬機(jī)的IP域名。環(huán)境和配置子模塊存儲(chǔ)在數(shù)據(jù)庫中。環(huán)境和配置子模塊是預(yù)先設(shè)定的。基礎(chǔ)環(huán)境創(chuàng)建單元用于設(shè)置待創(chuàng)虛擬機(jī)的基礎(chǔ)環(huán)境,例如,操作系統(tǒng)、CPU數(shù)量、內(nèi)存大小、磁盤大小、網(wǎng)絡(luò)和所屬域。配置單元用于配置待創(chuàng)虛擬機(jī)的應(yīng)用環(huán)境。當(dāng)需要進(jìn)行擴(kuò)容時(shí),直接利用基礎(chǔ)環(huán)境創(chuàng)建單元和基礎(chǔ)環(huán)境設(shè)置待創(chuàng)虛擬機(jī)的環(huán)境,而不必臨時(shí)設(shè)置。這有利于提高配置效率。
在云平臺(tái)出現(xiàn)空閑時(shí),通過減少虛擬機(jī),可以提高系統(tǒng)的使用率,減少資源占用,合理分配資源。通過這種方法,可以將計(jì)算和存儲(chǔ)等資源歸還到資源池中,一方面可以減少計(jì)算節(jié)點(diǎn)的運(yùn)行開銷,比如降低cpu使用率,降低磁盤和網(wǎng)絡(luò)的吞吐,達(dá)到省電和延遲硬件的使用壽命目的,同時(shí)也能減少虛擬機(jī)之間的資源競(jìng)爭(zhēng),提高虛機(jī)的運(yùn)行性能;另一方面,歸還到資源池中的資源可以供其他申請(qǐng)者使用,從而達(dá)到資源共享、提高資源使用效率的目的。
當(dāng)設(shè)置有兩個(gè)以上的云平臺(tái)時(shí),每個(gè)云平臺(tái)都對(duì)應(yīng)一個(gè)位于數(shù)據(jù)庫中的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)。當(dāng)然如果不同的云平臺(tái)對(duì)應(yīng)的虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)相同時(shí),也可以一個(gè)虛擬機(jī)組擴(kuò)縮度量標(biāo)準(zhǔn)對(duì)應(yīng)多個(gè)云平臺(tái)。
該系統(tǒng)可以實(shí)現(xiàn)應(yīng)用虛擬機(jī)在異構(gòu)云平臺(tái)上共存。這樣可以兼顧兩種云平臺(tái)的優(yōu)點(diǎn),通過統(tǒng)一云計(jì)算管理平臺(tái)去管理異構(gòu)云平臺(tái),應(yīng)用通過統(tǒng)一云計(jì)算管理平臺(tái)去申請(qǐng)新環(huán)境或者在已有部分應(yīng)用虛擬機(jī)的情況下,增加應(yīng)用集群的自動(dòng)擴(kuò)縮功能。
例舉一實(shí)例,以JBOSS +Apache+Mysql以及其上的應(yīng)用持續(xù)交付平臺(tái)(SNCD)為例進(jìn)行說明。如圖2所示,當(dāng)前有兩種異構(gòu)云平臺(tái)1和云平臺(tái)2,通過統(tǒng)一云計(jì)算管理平臺(tái)管理。SNCD應(yīng)用對(duì)應(yīng)一個(gè)環(huán)境號(hào)M,云平臺(tái)1中已經(jīng)有N臺(tái)JBOSS host虛擬機(jī)在運(yùn)行,并且其上運(yùn)行了SNCD應(yīng)用。
在統(tǒng)一云計(jì)算管理平臺(tái)上選擇JBOSS應(yīng)用服務(wù)器自動(dòng)擴(kuò)縮套餐,填入應(yīng)用服務(wù)器主機(jī)(JBOSS host)集群最大、最小及初始數(shù)目(初始數(shù)目可以為0, 意味著暫時(shí)維持云平臺(tái)1中的JBOSS應(yīng)用服務(wù)器集群規(guī)模),勾選單獨(dú)指標(biāo)或者幾種指標(biāo)的組合并填入指標(biāo)的上限及下限值,并設(shè)置擴(kuò)縮規(guī)模和刪除實(shí)例策略。確認(rèn)無誤后,開始運(yùn)行。
云平臺(tái)1及云平臺(tái)2中運(yùn)行SNCD應(yīng)用的JBOSS host虛擬機(jī)的監(jiān)控代理實(shí)時(shí)采集指標(biāo)數(shù)據(jù)并發(fā)送給數(shù)據(jù)文檔中。
當(dāng)判斷模塊判斷出指標(biāo)數(shù)據(jù)值達(dá)到設(shè)定的閾值上限時(shí),根據(jù)擴(kuò)縮規(guī)模的設(shè)定自動(dòng)的在云平臺(tái)2中創(chuàng)建相應(yīng)數(shù)目或相應(yīng)容量的虛機(jī),并自動(dòng)部署JBOSS組件及配置,并給JBOSS domain server注冊(cè),JBOSS domain server檢測(cè)到有新的主機(jī)(host)加入到集群中,會(huì)自動(dòng)的將SNCD應(yīng)用分發(fā)到新增加的host上,并且同時(shí)將新增的JBOSS host更新到前端的apache server,這樣當(dāng)SNCD應(yīng)用部署完成后,新增的host就能對(duì)外提供服務(wù)了。
當(dāng)判斷模塊判斷出指標(biāo)數(shù)據(jù)值達(dá)到設(shè)定的閾值下限時(shí),根據(jù)刪除策略及JBOSS host集群最小數(shù)目,刪除掉一批虛機(jī)。在刪除虛機(jī)之前,需要更新下前端的apache server配置,使得流量不再導(dǎo)入到刪除的JBOSS host上,并自動(dòng)實(shí)現(xiàn)刪除的虛機(jī)從JBOSS domain server中注銷。應(yīng)用請(qǐng)求將不會(huì)再分發(fā)到這些刪除的虛機(jī)上。
該實(shí)例中,在兩種異構(gòu)云平臺(tái)環(huán)境中,其中一異構(gòu)云平臺(tái)無須對(duì)位于其中運(yùn)行的應(yīng)用虛擬機(jī)進(jìn)行跨平臺(tái)遷移,而可根據(jù)應(yīng)用壓力動(dòng)態(tài)的擴(kuò)縮在另一種異構(gòu)云平臺(tái)中運(yùn)行的虛擬機(jī),從而實(shí)現(xiàn)擴(kuò)充應(yīng)用虛擬機(jī)的規(guī)模,也能根據(jù)應(yīng)用壓力適當(dāng)?shù)南麥p應(yīng)用虛擬機(jī)的規(guī)模。
該實(shí)例中,一個(gè)環(huán)境對(duì)應(yīng)于一個(gè)應(yīng)用系統(tǒng),環(huán)境1中有部分虛機(jī)在云平臺(tái)1中運(yùn)行,對(duì)環(huán)境1的擴(kuò)縮是在云平臺(tái)2中進(jìn)行的,環(huán)境1的虛擬機(jī)不動(dòng)態(tài)調(diào)整。當(dāng)需要擴(kuò)充環(huán)境1的虛擬機(jī)數(shù)時(shí),就在云平臺(tái)2中生成虛擬機(jī),從而達(dá)到擴(kuò)充環(huán)境1的虛擬機(jī)規(guī)模的目的。同樣,如圖3所示,對(duì)于環(huán)境2有部分虛機(jī)在云平臺(tái)1中運(yùn)行,對(duì)環(huán)境2的擴(kuò)縮是在云平臺(tái)2中進(jìn)行的,環(huán)境2的虛擬機(jī)不動(dòng)態(tài)調(diào)整。當(dāng)需要擴(kuò)充環(huán)境2的虛擬機(jī)數(shù)時(shí),就在云平臺(tái)2中生成虛擬機(jī),從而達(dá)到擴(kuò)充環(huán)境2的虛擬機(jī)規(guī)模的目的。
本領(lǐng)域技術(shù)人員應(yīng)該知曉,實(shí)現(xiàn)上述實(shí)施例的方法或者系統(tǒng),可以通過計(jì)算機(jī)程序指令來實(shí)現(xiàn)。該計(jì)算機(jī)程序指令裝載到可編程數(shù)據(jù)處理設(shè)備上,例如計(jì)算機(jī),從而在可編程數(shù)據(jù)處理設(shè)備上執(zhí)行相應(yīng)的指令,用于實(shí)現(xiàn)上述實(shí)施例的方法或者系統(tǒng)實(shí)現(xiàn)的功能。
本領(lǐng)域技術(shù)人員依據(jù)上述實(shí)施例,可以對(duì)本申請(qǐng)進(jìn)行非創(chuàng)造性的技術(shù)改進(jìn),而不脫離本發(fā)明的精神實(shí)質(zhì)。這些改進(jìn)仍應(yīng)視為在本申請(qǐng)權(quán)利要求的保護(hù)范圍之內(nèi)。