虛擬機(jī)彈性伸縮方法及裝置制造方法
【專利摘要】本發(fā)明涉及一種虛擬機(jī)彈性伸縮方法及裝置,包括:當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī);其中,虛擬機(jī)實(shí)例緩沖模塊通過保存休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)休眠狀態(tài)虛擬機(jī),激活休眠狀態(tài)虛擬機(jī)包括將休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將休眠狀態(tài)虛擬機(jī)上電。根據(jù)本發(fā)明的虛擬機(jī)彈性伸縮方法及裝置,在擴(kuò)容虛擬機(jī)時(shí)能夠減少創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,與現(xiàn)有技術(shù)中數(shù)分鐘甚至一小時(shí)以上的擴(kuò)容時(shí)間相比,極大地提高了擴(kuò)容虛擬機(jī)的速度。
【專利說明】虛擬機(jī)彈性伸縮方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種虛擬機(jī)彈性伸縮方法及裝置。
【背景技術(shù)】
[0002]通信領(lǐng)域云計(jì)算彈性伸縮服務(wù)可以根據(jù)用戶定義的條件擴(kuò)展伸縮組中虛擬機(jī)(英文:Virtual Machine,縮寫:VM)的數(shù)量。伸縮組是一組功能相同的虛擬機(jī)集合,使用云計(jì)算彈性伸縮服務(wù),用戶可以確保伸縮組內(nèi)的虛擬機(jī)實(shí)例數(shù)量在需求峰值期實(shí)現(xiàn)無縫增長(zhǎng)以保持性能,也可以在需求平淡期自動(dòng)減少伸縮組內(nèi)的虛擬機(jī)實(shí)例數(shù)量,以最大程度降低成本。
[0003]現(xiàn)有云計(jì)算彈性伸縮服務(wù)包含兩個(gè)模塊:伸縮決策模塊和虛擬機(jī)管理模塊,伸縮決策模塊用于決策是否要擴(kuò)容或減容伸縮組內(nèi)的虛擬機(jī),并將伸縮決策發(fā)送給虛擬機(jī)管理模塊通知虛擬機(jī)管理模塊擴(kuò)容或減容虛擬機(jī),虛擬機(jī)管理模塊負(fù)責(zé)具體的創(chuàng)建、刪除虛擬機(jī),虛擬機(jī)上電、下電等操作。當(dāng)伸縮決策為擴(kuò)容虛擬機(jī)時(shí),需要涉及創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序步驟,擴(kuò)容一個(gè)虛擬機(jī)少則花費(fèi)數(shù)分鐘,多則花費(fèi)一個(gè)小時(shí)以上,導(dǎo)致虛擬機(jī)擴(kuò)容期間虛擬機(jī)超負(fù)載運(yùn)行,不能快速響應(yīng)業(yè)務(wù)需求。
【發(fā)明內(nèi)容】
[0004]摶術(shù)問是頁
[0005]有鑒于此,本發(fā)明要解決的技術(shù)問題是,現(xiàn)有技術(shù)中擴(kuò)容虛擬機(jī)需要的時(shí)間過長(zhǎng),導(dǎo)致虛擬機(jī)擴(kuò)容期間虛擬機(jī)超負(fù)載運(yùn)行,不能快速響應(yīng)業(yè)務(wù)需求的問題。
[0006]解決方案
[0007]為解決上述技術(shù)問題,根據(jù)本發(fā)明一實(shí)施例,在第一方面提供一種虛擬機(jī)彈性伸縮方法,包括:
[0008]當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活所述休眠狀態(tài)虛擬機(jī),以增加所述伸縮組中的虛擬機(jī);
[0009]其中,所述虛擬機(jī)實(shí)例緩沖模塊通過保存所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī),所述激活所述休眠狀態(tài)虛擬機(jī)包括將所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到所述休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將所述休眠狀態(tài)虛擬機(jī)上電。
[0010]在一種可能的實(shí)施方式中,所述方法還包括:
[0011 ] 創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊。
[0012]在一種可能的實(shí)施方式中,在所述創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊之后,還包括:
[0013]當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),啟動(dòng)虛擬機(jī),將啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述啟動(dòng)的虛擬機(jī)下電,以將所述啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
[0014]在一種可能的實(shí)施方式中,所述當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),在所述啟動(dòng)虛擬機(jī)之前,所述方法還包括:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的所述休眠狀態(tài)虛擬機(jī)的個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則執(zhí)行所述啟動(dòng)虛擬機(jī)的步驟。
[0015]在一種可能的實(shí)施方式中,在所述創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊之后,還包括:
[0016]當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述伸縮組中待減容的虛擬機(jī)下電,以將所述伸縮組中待減容的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
[0017]在一種可能的實(shí)施方式中,所述當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),在所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中之前,所述方法還包括:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于所述預(yù)設(shè)的上限,如果小于,則執(zhí)行所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中的步驟。
[0018]在一種可能的實(shí)施方式中,所述方法還包括:
[0019]對(duì)采集到的所述伸縮組中的虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理,得到所述伸縮組的伸縮數(shù)據(jù);
[0020]根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策。
[0021]在一種可能的實(shí)施方式中,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括:
[0022]當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)。
[0023]在一種可能的實(shí)施方式中,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括:
[0024]當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī)。
[0025]在一種可能的實(shí)施方式中,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括:
[0026]當(dāng)所述伸縮組的伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值時(shí),確定所述伸縮組的伸縮決策為所述減容虛擬機(jī)。
[0027]為解決上述技術(shù)問題,根據(jù)本發(fā)明一實(shí)施例,在第二方面提供一種虛擬機(jī)彈性伸縮裝置,包括:
[0028]虛擬機(jī)實(shí)例緩沖模塊,用于通過保存休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī);
[0029]擴(kuò)容模塊,與所述虛擬機(jī)實(shí)例緩沖模塊連接,用于當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從所述虛擬機(jī)實(shí)例緩沖模塊中激活所述休眠狀態(tài)虛擬機(jī),以增加所述伸縮組中的虛擬機(jī);
[0030]其中,所述激活所述休眠狀態(tài)虛擬機(jī)包括將所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到所述休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將所述休眠狀態(tài)虛擬機(jī)上電。
[0031]在一種可能的實(shí)施方式中,所述裝置還包括:
[0032]創(chuàng)建模塊,用于創(chuàng)建所述虛擬機(jī)實(shí)例緩沖模塊。[0033]在一種可能的實(shí)施方式中,所述裝置還包括:
[0034]休眠模塊,與所述虛擬機(jī)實(shí)例緩沖模塊連接,用于當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),啟動(dòng)虛擬機(jī),將啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述啟動(dòng)的虛擬機(jī)下電,以將所述啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
[0035]在一種可能的實(shí)施方式中,所述裝置還包括:
[0036]確定模塊,與所述休眠模塊連接,用于確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則所述休眠模塊執(zhí)行所述啟動(dòng)虛擬機(jī)的步驟。
[0037]在一種可能的實(shí)施方式中,所述裝置還包括:
[0038]減容模塊,與所述虛擬機(jī)實(shí)例緩沖模塊連接,用于當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述伸縮組中待減容的虛擬機(jī)下電,以將所述伸縮組中待減容的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
[0039]在一種可能的實(shí)施方式中,所述確定模塊還與所述減容模塊連接,并被配置為:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則所述減容模塊執(zhí)行所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中的步驟。
[0040]在一種可能的實(shí)施方式中,所述裝置還包括:
[0041]伸縮決策模塊,與所述擴(kuò)容模塊,所述休眠模塊及所述減容模塊連接,用于對(duì)采集到的所述伸縮組中的虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理,得到所述伸縮組的伸縮數(shù)據(jù);
[0042]根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策;并且
[0043]向所述擴(kuò)容模塊,所述休眠模塊或所述減容模塊發(fā)送包括所述伸縮組的伸縮決策的指令。
[0044]在一種可能的實(shí)施方式中,所述伸縮決策模塊被配置為:
[0045]當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī);并且
[0046]向所述休眠模塊發(fā)送包括所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)的指令。
[0047]在一種可能的實(shí)施方式中,所述伸縮決策模塊被配置為:
[0048]當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī);并且
[0049]向所述擴(kuò)容模塊發(fā)送包括所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī)的指令。
[0050]在一種可能的實(shí)施方式中,所述伸縮決策模塊被配置為:
[0051]當(dāng)所述伸縮組的伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值時(shí),確定所述伸縮組的伸縮決策為所述減容虛擬機(jī);并且
[0052]向所述減容模塊發(fā)送包括所述伸縮組的伸縮決策為所述減容虛擬機(jī)的指令。
[0053]有益.效果
[0054]根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)彈性伸縮方法,通過當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī),在擴(kuò)容虛擬機(jī)時(shí)能夠減少創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,與現(xiàn)有技術(shù)中數(shù)分鐘甚至一小時(shí)以上的擴(kuò)容時(shí)間相比,極大地提高了擴(kuò)容虛擬機(jī)的速度。
[0055]根據(jù)下面參考附圖對(duì)示例性實(shí)施例的詳細(xì)說明,本發(fā)明的其它特征及方面將變得清楚。
【專利附圖】
【附圖說明】
[0056]包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實(shí)施例、特征和方面,并且用于解釋本發(fā)明的原理。
[0057]圖1示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)彈性伸縮方法的流程圖;
[0058]圖2示出根據(jù)本發(fā)明另一實(shí)施例的虛擬機(jī)彈性伸縮方法的流程圖;
[0059]圖3示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)彈性伸縮方法的流程圖;
[0060]圖4示出根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)彈性伸縮裝置的結(jié)構(gòu)示意圖;
[0061]圖5示出根據(jù)本發(fā)明另一實(shí)施例的虛擬機(jī)彈性伸縮裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0062]以下將參考附圖詳細(xì)說明本發(fā)明的各種示例性實(shí)施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實(shí)施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
[0063]在這里專用的詞“示例性”意為“用作例子、實(shí)施例或說明性”。這里作為“示例性”所說明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。
[0064]另外,為了更好的說明本發(fā)明,在下文的【具體實(shí)施方式】中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒有某些具體細(xì)節(jié),本發(fā)明同樣可以實(shí)施。在一些實(shí)例中,對(duì)于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本發(fā)明的主旨。
[0065]如【背景技術(shù)】部分所述,由于擴(kuò)容虛擬機(jī)時(shí),需要涉及創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序步驟,擴(kuò)容一個(gè)虛擬機(jī)少則花費(fèi)數(shù)分鐘,多則花費(fèi)一個(gè)小時(shí)以上,導(dǎo)致虛擬機(jī)擴(kuò)容期間虛擬機(jī)超負(fù)載運(yùn)行,不能快速響應(yīng)業(yè)務(wù)需求。有鑒于此,本發(fā)明的發(fā)明人獨(dú)創(chuàng)性地提出,當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活所述休眠狀態(tài)虛擬機(jī),以增加所述伸縮組中的虛擬機(jī);其中,所述虛擬機(jī)實(shí)例緩沖模塊通過保存所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī),所述激活所述休眠狀態(tài)虛擬機(jī)包括將所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到所述休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將所述休眠狀態(tài)虛擬機(jī)上電。通過本發(fā)明實(shí)施例提供的虛擬機(jī)彈性伸縮方法及裝置在擴(kuò)容虛擬機(jī)時(shí)能夠減少創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,與現(xiàn)有技術(shù)中數(shù)分鐘甚至一小時(shí)以上的擴(kuò)容時(shí)間相比,極大地提高了擴(kuò)容虛擬機(jī)的速度。
[0066]以下將參照附圖詳細(xì)介紹本發(fā)明的上述發(fā)明構(gòu)思的各種具體實(shí)現(xiàn)。
[0067]實(shí)施例1
[0068]圖1示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)彈性伸縮方法的流程圖,如圖1所示,該方法包括:
[0069]步驟SlOl、創(chuàng)建虛擬機(jī)實(shí)例緩沖模塊。
[0070]虛擬機(jī)實(shí)例緩沖模塊通過保存休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)來存儲(chǔ)休眠狀態(tài)虛擬機(jī),具體包括將虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在虛擬機(jī)實(shí)例緩沖模塊中,然后將該虛擬機(jī)下電以使該虛擬機(jī)休眠。休眠狀態(tài)虛擬機(jī)只占用存儲(chǔ)空間,不占用計(jì)算及內(nèi)存資源。
[0071]步驟S102、當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī)。
[0072]其中,激活休眠狀態(tài)虛擬機(jī)包括將休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到該休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將該休眠狀態(tài)虛擬機(jī)上電,激活后的虛擬機(jī)被加入到伸縮組中以響應(yīng)業(yè)務(wù)需求。
[0073]這樣,通過當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī),在擴(kuò)容虛擬機(jī)時(shí)能夠減少創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,與現(xiàn)有技術(shù)中數(shù)分鐘甚至一小時(shí)以上的擴(kuò)容時(shí)間相比,極大地提高了擴(kuò)容虛擬機(jī)的速度。
[0074]實(shí)施例2
[0075]圖2示出根據(jù)本發(fā)明另一實(shí)施例的虛擬機(jī)彈性伸縮方法的流程圖。如圖2所示,該方法包括:
[0076]步驟S301、對(duì)伸縮組內(nèi)的虛擬機(jī)采集監(jiān)控?cái)?shù)據(jù),如CPU占用率,內(nèi)存占用率,磁盤輸入輸出1/0,網(wǎng)絡(luò)帶寬等。
[0077]步驟S302、對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行計(jì)算,得到伸縮數(shù)據(jù)。
[0078]例如可以根據(jù)伸縮組內(nèi)每一臺(tái)虛擬機(jī)的CPU占用率計(jì)算得到某個(gè)周期內(nèi)伸縮組內(nèi)虛擬機(jī)平均CPU占用率作為該伸縮數(shù)據(jù)或選用伸縮組內(nèi)虛擬機(jī)最大CPU占用率作為該伸縮數(shù)據(jù),可以根據(jù)伸縮組內(nèi)每一臺(tái)虛擬機(jī)的內(nèi)存占用率計(jì)算得到某個(gè)周期內(nèi)伸縮組中虛擬機(jī)的內(nèi)存平均占用率作為伸縮數(shù)據(jù)或選用最大內(nèi)存占用率作為伸縮數(shù)據(jù),也可以分別設(shè)置CPU占用率和內(nèi)存占用率的權(quán)重,根據(jù)權(quán)重比例計(jì)算得到某個(gè)周期內(nèi)的結(jié)合CPU占用率和內(nèi)存占用率的伸縮數(shù)據(jù)。
[0079]步驟S303、判斷伸縮數(shù)據(jù)是否大于休眠閾值,是則繼續(xù)執(zhí)行步驟S304,否則結(jié)束流程。
[0080]通過判斷伸縮數(shù)據(jù)是否大于休眠閾值,來判斷是否需要增加虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)的實(shí)例。
[0081]步驟S304、判斷伸縮數(shù)據(jù)是否大于擴(kuò)容閾值,是則繼續(xù)執(zhí)行步驟S306,否則執(zhí)行步驟S305。
[0082]通過判斷伸縮數(shù)據(jù)是否大于擴(kuò)容閾值,來判斷是否需要將虛擬機(jī)實(shí)例緩沖模塊中休眠狀態(tài)的虛擬機(jī)激活,并加入伸縮組以響應(yīng)業(yè)務(wù)需求。
[0083]步驟S305、判斷虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否大于預(yù)設(shè)的上限,如果否,則執(zhí)行步驟S3051-S3055。
[0084]本發(fā)明實(shí)施例為了避免虛擬機(jī)實(shí)例緩沖模塊對(duì)資源的過度消耗,配置虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)上限。[0085]當(dāng)伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),伸縮決策為增加虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī),并根據(jù)該伸縮數(shù)據(jù)確定增加的休眠狀態(tài)虛擬機(jī)的數(shù)量,且每次增加的休眠狀態(tài)虛擬機(jī)的個(gè)數(shù)可以預(yù)訂,具體步驟包括啟動(dòng)虛擬機(jī)之后,再休眠該虛擬機(jī)。其中,啟動(dòng)虛擬機(jī)的步驟包括:步驟S3051-S3054。
[0086]步驟S3051、根據(jù)虛擬機(jī)模板或者鏡像創(chuàng)建虛擬機(jī)。
[0087]步驟S3052、虛擬機(jī)創(chuàng)建成功后,給虛擬機(jī)上電。
[0088]步驟S3053、啟動(dòng)虛擬機(jī)操作系統(tǒng)。
[0089]步驟S3054、啟動(dòng)應(yīng)用程序。
[0090]步驟S3055、將步驟S3051-S3054啟動(dòng)的虛擬機(jī)休眠以存儲(chǔ)在虛擬機(jī)實(shí)例緩沖模塊中。
[0091]將步驟S3051-S3054啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在虛擬機(jī)實(shí)例緩沖模塊中,并將該啟動(dòng)的虛擬機(jī)下電,以將該啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在虛擬機(jī)實(shí)例緩沖模塊中,休眠虛擬機(jī)可以釋放服務(wù)器CPU及內(nèi)存資源。
[0092]在將虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在虛擬機(jī)實(shí)例緩沖模塊的過程中,需要為虛擬機(jī)的內(nèi)存數(shù)據(jù)選擇存儲(chǔ)介質(zhì),云環(huán)境中的存儲(chǔ)可以分為高速數(shù)據(jù)存儲(chǔ)和普通數(shù)據(jù)存儲(chǔ),高速數(shù)據(jù)存儲(chǔ)的磁盤介質(zhì)可以是價(jià)格高性能優(yōu)的固態(tài)硬盤(英文:Solid State Disk,縮寫:SSD),普通數(shù)據(jù)存儲(chǔ)的磁盤介質(zhì)可以是成本低性能一般的普通機(jī)械磁盤等。虛擬機(jī)內(nèi)存數(shù)據(jù)寫到數(shù)據(jù)存儲(chǔ)中的速度決定了休眠虛擬機(jī)所需的時(shí)間,從數(shù)據(jù)存儲(chǔ)中讀取內(nèi)存數(shù)據(jù)的速度決定了激活虛擬機(jī)所需的時(shí)間,本發(fā)明實(shí)施例可以選擇高性能數(shù)據(jù)存儲(chǔ)保存休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),以縮短該休眠步驟及實(shí)施例1中所述激活虛擬機(jī)的步驟所需的時(shí)間,或選擇選擇高性能數(shù)據(jù)存儲(chǔ)保存虛擬機(jī)休眠過程中產(chǎn)生的數(shù)據(jù)文件,并選擇普通數(shù)據(jù)存儲(chǔ)的磁盤介質(zhì)保存虛擬機(jī)的系統(tǒng)盤和數(shù)據(jù)盤,以節(jié)約成本。具體的保存步驟包括在所選的數(shù)據(jù)存儲(chǔ)上創(chuàng)建虛擬機(jī)的內(nèi)存數(shù)據(jù)文件,將虛擬機(jī)內(nèi)存數(shù)據(jù)寫到該內(nèi)存數(shù)據(jù)文件中,虛擬機(jī)內(nèi)存數(shù)據(jù)包括運(yùn)行中的應(yīng)用程序內(nèi)存和操作系統(tǒng)的內(nèi)核內(nèi)存,之后給該虛擬機(jī)下電以使該虛擬機(jī)休眠并存儲(chǔ)在虛擬機(jī)實(shí)例緩沖模塊中。通過上述方式在虛擬機(jī)實(shí)例緩沖模塊中增加休眠狀態(tài)虛擬機(jī),以備執(zhí)行擴(kuò)容虛擬機(jī)時(shí)使用。
[0093]步驟S306、判斷虛擬機(jī)實(shí)例緩沖模塊中是否有休眠狀態(tài)的虛擬機(jī),如果是,則執(zhí)行步驟S3061,否則執(zhí)行步驟S3062。
[0094]步驟S3061、激活休眠狀態(tài)的虛擬機(jī)。
[0095]伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值,伸縮決策為擴(kuò)容虛擬機(jī),并根據(jù)該伸縮數(shù)據(jù)可以確定需擴(kuò)容虛擬機(jī)的數(shù)量,從虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)的虛擬機(jī)。將虛擬機(jī)內(nèi)存數(shù)據(jù)文件恢復(fù)到服務(wù)器的內(nèi)存中以激活該虛擬機(jī)。激活過程不涉及虛擬機(jī)創(chuàng)建、操作系統(tǒng)啟動(dòng)和應(yīng)用程序啟動(dòng),所以激活一個(gè)虛擬機(jī)可以在數(shù)秒鐘內(nèi)完成。具體包括:給虛擬機(jī)上電;讀取虛擬機(jī)內(nèi)存數(shù)據(jù)文件,加載到服務(wù)器的內(nèi)存中,被加載的內(nèi)存數(shù)據(jù)包括操作系統(tǒng)內(nèi)核內(nèi)存和應(yīng)用程序內(nèi)存。
[0096]步驟S3062、根據(jù)虛擬機(jī)模板或者鏡像創(chuàng)建虛擬機(jī)。
[0097]步驟S3063、虛擬機(jī)創(chuàng)建成功后,給虛擬機(jī)上電。
[0098]步驟S3064、啟動(dòng)虛擬機(jī)操作系統(tǒng)。
[0099]步驟S3065、啟動(dòng)應(yīng)用程序。[0100]需要說明的是,本發(fā)明實(shí)施例中的伸縮組分別設(shè)置休眠閾值和擴(kuò)容閾值,休眠閾值比擴(kuò)容閾值小。當(dāng)伸縮數(shù)據(jù)大于休眠閾值而小于擴(kuò)容閾值時(shí),伸縮決策為增加虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī),當(dāng)伸縮數(shù)據(jù)大于擴(kuò)容閾值時(shí),伸縮決策為擴(kuò)容虛擬機(jī),即休眠閾值用于創(chuàng)建虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)的實(shí)例,擴(kuò)容閾值用于將虛擬機(jī)實(shí)例緩沖模塊中休眠狀態(tài)的虛擬機(jī)激活。
[0101]這樣,通過當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī),在擴(kuò)容虛擬機(jī)時(shí)能夠減少創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,與現(xiàn)有技術(shù)中數(shù)分鐘甚至一小時(shí)以上的擴(kuò)容時(shí)間相比,極大地提高了擴(kuò)容虛擬機(jī)的速度。
[0102]實(shí)施例3
[0103]圖3示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)彈性伸縮方法的流程圖。圖3中標(biāo)號(hào)與圖2相同的組件具有相同的功能,為簡(jiǎn)明起見,省略對(duì)這些組件的詳細(xì)說明。如圖3所示,圖3所示的虛擬機(jī)彈性伸縮方法與圖2所示虛擬機(jī)彈性伸縮方法的主要區(qū)別在于,在步驟S301-步驟S302之后還包括:
[0104]步驟S401、將伸縮數(shù)據(jù)與減容閾值比較,如果伸縮數(shù)據(jù)小于減容閾值,則執(zhí)行步驟S402,否則結(jié)束流程。
[0105]步驟S402、判斷虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)的個(gè)數(shù)是否已達(dá)到上限,如果是,則繼續(xù)執(zhí)行步驟S4021、否則執(zhí)行步驟S4022。
[0106]步驟S4021、刪除虛擬機(jī)。本發(fā)明實(shí)施例為了避免虛擬機(jī)實(shí)例緩沖模塊對(duì)資源的過度消耗,配置虛擬機(jī)實(shí)例緩沖模塊中休眠狀態(tài)的虛擬機(jī)的個(gè)數(shù)上限即虛擬機(jī)實(shí)例緩沖模塊的容量上限,當(dāng)虛擬機(jī)實(shí)例緩沖模塊中休眠狀態(tài)的虛擬機(jī)實(shí)例的個(gè)數(shù)已達(dá)到該上限時(shí),直接刪除需要被執(zhí)行減容的虛擬機(jī),而不再執(zhí)行休眠虛擬機(jī)的步驟。
[0107]步驟S4022、休眠虛擬機(jī),以增加虛擬機(jī)實(shí)例緩沖模塊中休眠狀態(tài)的虛擬機(jī)實(shí)例。具體步驟與實(shí)施例2中步驟S3055類似,在此不再贅述。伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值,伸縮決策為減容虛擬機(jī),并根據(jù)該伸縮數(shù)據(jù)可確定需減容的虛擬機(jī)數(shù)量,將需要被執(zhí)行減容的虛擬機(jī)休眠后保存到虛擬機(jī)實(shí)例緩沖模塊中,以備執(zhí)行擴(kuò)容虛擬機(jī)時(shí)使用,而不是將該虛擬機(jī)直接刪除。
[0108]這樣,通過伸縮決策為減容虛擬機(jī)時(shí),將虛擬機(jī)休眠后保存到虛擬機(jī)實(shí)例緩沖模塊中,當(dāng)伸縮決策為擴(kuò)容虛擬機(jī)時(shí)從該虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)彈性伸縮方法,在擴(kuò)容虛擬機(jī)時(shí)能夠減少了創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,達(dá)到快速擴(kuò)容虛擬機(jī)的效果。此外,通過配置虛擬機(jī)實(shí)例緩沖模塊中休眠狀態(tài)的虛擬機(jī)的個(gè)數(shù)上限,進(jìn)一步達(dá)到避免虛擬機(jī)實(shí)例緩沖模塊過度消耗資源的作用。
[0109]實(shí)施例4
[0110]圖4示出根據(jù)本發(fā)明實(shí)施例的一種虛擬機(jī)彈性伸縮裝置的結(jié)構(gòu)示意圖,如圖4所示,該裝置10包括:虛擬機(jī)實(shí)例緩沖模塊110,擴(kuò)容模塊120。
[0111]虛擬機(jī)實(shí)例緩沖模塊110,用于通過保存休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī)。[0112]擴(kuò)容模塊120,與虛擬機(jī)實(shí)例緩沖模塊110連接,用于當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從虛擬機(jī)實(shí)例緩沖模塊Iio中激活休眠狀態(tài)虛擬機(jī),以增加伸縮組中的虛擬機(jī);其中,激活休眠狀態(tài)虛擬機(jī)包括將休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將該休眠狀態(tài)虛擬機(jī)上電。具體步驟如實(shí)施例1中步驟S102所述,在此不再贅述。
[0113]在一種可能的實(shí)現(xiàn)方式中,該裝置10還包括:創(chuàng)建模塊160。
[0114]創(chuàng)建模塊160,用于創(chuàng)建虛擬機(jī)實(shí)例緩沖模塊,具體步驟如實(shí)施例1中步驟SlOl所述,在此不再贅述。
[0115]在一種可能的實(shí)現(xiàn)方式中,該裝置10還包括:休眠模塊130。
[0116]休眠模塊130,與虛擬機(jī)實(shí)例緩沖模塊110連接,用于當(dāng)伸縮組的伸縮決策為增加虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),啟動(dòng)虛擬機(jī),將啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在虛擬機(jī)實(shí)例緩沖模塊Iio中,并將該啟動(dòng)的虛擬機(jī)下電,以將該啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在虛擬機(jī)實(shí)例緩沖模塊Iio中,具體執(zhí)行步驟如實(shí)施例2中步驟S3051-S3055所述,在此不再贅述。
[0117]在一種可能的實(shí)現(xiàn)方式中,該裝置10還包括:確定模塊170。
[0118]確定模塊170,與休眠模塊130連接,用于確定虛擬機(jī)實(shí)例緩沖模塊110中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則休眠模塊130執(zhí)行啟動(dòng)虛擬機(jī)的步驟。
[0119]在一種可能的實(shí)現(xiàn)方式中,該裝置10還包括:減容模塊140。
[0120]減容模塊140,與虛擬機(jī)實(shí)例緩沖模塊110連接,用于當(dāng)伸縮組的伸縮決策為減容虛擬機(jī)時(shí),將伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在虛擬機(jī)實(shí)例緩沖模塊Iio中,并將伸縮組中待減容的虛擬機(jī)下電,以將伸縮組中待減容的虛擬機(jī)休眠并存儲(chǔ)在虛擬機(jī)實(shí)例緩沖模塊110中。具體步驟如實(shí)施例2中步驟S3055所述,在此不再贅述。
[0121]在一種可能的實(shí)現(xiàn)方式中,確定模塊170還與減容模塊140連接,并進(jìn)一步被配置為:確定虛擬機(jī)實(shí)例緩沖模塊110中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則減容模塊140執(zhí)行所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中的步驟。
[0122]在一種可能的實(shí)現(xiàn)方式中,該裝置10還包括:伸縮決策模塊150。
[0123]伸縮決策模塊150,與擴(kuò)容模塊120,休眠模塊130及減容模塊140連接,用于對(duì)采集到的伸縮組中的虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理,得到伸縮組的伸縮數(shù)據(jù);根據(jù)伸縮組的伸縮數(shù)據(jù),確定伸縮組的伸縮決策;并且向擴(kuò)容模塊120,休眠模塊130或減容模塊140發(fā)送包括該伸縮組的伸縮決策的指令,以使擴(kuò)容模塊120,休眠模塊130或減容模塊140執(zhí)行相應(yīng)操作。其中監(jiān)控?cái)?shù)據(jù)包括CPU的占用率,內(nèi)存占用率,磁盤輸入輸出1/0,網(wǎng)絡(luò)帶寬等,該伸縮數(shù)據(jù)可以為某個(gè)周期內(nèi)的虛擬機(jī)平均CPU占用率,內(nèi)存平均占用率,磁盤平均輸入輸出1/0,網(wǎng)絡(luò)平均帶寬等。
[0124]在一種可能的實(shí)現(xiàn)方式中,伸縮決策模塊150被配置為:當(dāng)伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī);并且向休眠模塊130發(fā)送包括所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)的指令,以使休眠模塊130執(zhí)行相應(yīng)操作,具體操作如實(shí)施例2中步驟S304-S3055所述,在此不再贅述。
[0125]在一種可能的實(shí)現(xiàn)方式中,伸縮決策模塊150被配置為:當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī),并且向所述擴(kuò)容模塊120發(fā)送包括伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)的指令,以使擴(kuò)容模塊120執(zhí)行相應(yīng)操作,具體操作如實(shí)施例2中步驟S306-S3061所述,在此不再贅述。
[0126]在一種可能的實(shí)現(xiàn)方式中,伸縮決策模塊150被配置為:當(dāng)所述伸縮組的伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值時(shí),確定所述伸縮組的伸縮決策為所述減容虛擬機(jī),并且向所述減容模塊140發(fā)送包括所述伸縮組的伸縮決策為所述減容虛擬機(jī)的指令。具體操作如實(shí)施例3中步驟S401-S4022所述,在此不再贅述。
[0127]這樣,通過虛擬機(jī)實(shí)例緩沖模塊存儲(chǔ)休眠狀態(tài)虛擬機(jī),當(dāng)伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從該虛擬機(jī)實(shí)例緩沖模塊中激活休眠狀態(tài)虛擬機(jī),根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)彈性伸縮裝置,在擴(kuò)容虛擬機(jī)時(shí)能夠減少了創(chuàng)建虛擬機(jī)、啟動(dòng)操作系統(tǒng)、啟動(dòng)應(yīng)用程序的時(shí)間,擴(kuò)容一臺(tái)虛擬機(jī)可以在數(shù)秒鐘之內(nèi)完成,達(dá)到快速擴(kuò)容虛擬機(jī)的效果。
[0128]實(shí)施例5
[0129]圖5示出了本發(fā)明的另一個(gè)實(shí)施例的一種虛擬機(jī)彈性伸縮裝置的結(jié)構(gòu)框圖。所述虛擬機(jī)彈性伸縮裝置1100可以是具備計(jì)算能力的主機(jī)服務(wù)器、個(gè)人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)或終端等。本發(fā)明具體實(shí)施例并不對(duì)計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
[0130]所述虛擬機(jī)彈性伸縮裝置1100包括處理器(processor) 1110、通信接口(Communications Interface) 1120、存儲(chǔ)器(memory) 1130 和總線 1140。其中,處理器 1110、通信接口 1120、以及存儲(chǔ)器1130通過總線1140完成相互間的通信。
[0131]通信接口 1120用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機(jī)管理中心、共享存儲(chǔ)等。
[0132]處理器1110用于執(zhí)行程序。處理器1110可能是一個(gè)中央處理器CPU,或者是專用集成電路ASIC (Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
[0133]存儲(chǔ)器1130用于存放文件。存儲(chǔ)器1130可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。存儲(chǔ)器1130也可以是存儲(chǔ)器陣列。存儲(chǔ)器1130還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
[0134]在一種可能的實(shí)施方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可用于:
[0135]當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活所述休眠狀態(tài)虛擬機(jī),以增加所述伸縮組中的虛擬機(jī);
[0136]其中,所述虛擬機(jī)實(shí)例緩沖模塊通過保存所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī),所述激活所述休眠狀態(tài)虛擬機(jī)包括將所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到所述休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將所述休眠狀態(tài)虛擬機(jī)上電。
[0137]在一種可能的實(shí)施方式中,該程序還用于:
[0138]創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊。
[0139]在一種可能的實(shí)施方式中,在所述創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊之后,該程序還用于:[0140]當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),啟動(dòng)虛擬機(jī),將啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述啟動(dòng)的虛擬機(jī)下電,以將所述啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
[0141]在一種可能的實(shí)施方式中,所述當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),在所述啟動(dòng)虛擬機(jī)之前,該程序還用于:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的所述休眠狀態(tài)虛擬機(jī)的個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則執(zhí)行所述啟動(dòng)虛擬機(jī)的步驟。
[0142]在一種可能的實(shí)施方式中,在所述創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊之后,該程序還用于:
[0143]當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述伸縮組中待減容的虛擬機(jī)下電,以將所述伸縮組中待減容的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
[0144]在一種可能的實(shí)施方式中,所述當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),在所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中之前,該程序還用于:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于所述預(yù)設(shè)的上限,如果小于,則執(zhí)行所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中的步驟。
[0145]在一種可能的實(shí)施方式中,該程序還用于:
[0146]對(duì)采集到的所述伸縮組中的虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理,得到所述伸縮組的伸縮數(shù)據(jù);
[0147]根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策。
[0148]在一種可能的實(shí)施方式中,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括:
[0149]當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)。
[0150]在一種可能的實(shí)施方式中,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括:
[0151]當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī)。
[0152]在一種可能的實(shí)施方式中,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括:
[0153]當(dāng)所述伸縮組的伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值時(shí),確定所述伸縮組的伸縮決策為所述減容虛擬機(jī)。
[0154]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,本文所描述的實(shí)施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以針對(duì)特定的應(yīng)用選擇不同的方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0155]如果以計(jì)算機(jī)軟件的形式來實(shí)現(xiàn)所述功能并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲(chǔ)在計(jì)算機(jī)可讀取的非易失性存儲(chǔ)介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)>磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0156]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種虛擬機(jī)彈性伸縮方法,其特征在于,包括: 當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊中激活所述休眠狀態(tài)虛擬機(jī),以增加所述伸縮組中的虛擬機(jī); 其中,所述虛擬機(jī)實(shí)例緩沖模塊通過保存所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī),所述激活所述休眠狀態(tài)虛擬機(jī)包括將所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到所述休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將所述休眠狀態(tài)虛擬機(jī)上電。
2.根據(jù)權(quán)利要求1所述的虛擬機(jī)彈性伸縮方法,其特征在于,所述方法還包括: 創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊。
3.根據(jù)權(quán)利要求2所述的虛擬機(jī)彈性伸縮方法,其特征在于,在所述創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊之后,還包括: 當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),啟動(dòng)虛擬機(jī),將啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述啟動(dòng)的虛擬機(jī)下電,以將所述啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
4.根據(jù)權(quán)利要求3所述的虛擬機(jī)彈性伸縮方法,其特征在于,所述當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),在所述啟動(dòng)虛擬機(jī)之前,所述方法還包括:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的所述休眠狀態(tài)虛擬機(jī)的個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則執(zhí)行所述啟動(dòng)虛擬機(jī)的步驟。
5.根據(jù)權(quán)利要求2 所述的虛擬機(jī)彈性伸縮方法,其特征在于,在所述創(chuàng)建所述用于存儲(chǔ)休眠狀態(tài)虛擬機(jī)的虛擬機(jī)實(shí)例緩沖模塊之后,還包括: 當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述伸縮組中待減容的虛擬機(jī)下電,以將所述伸縮組中待減容的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
6.根據(jù)權(quán)利要求5所述的虛擬機(jī)彈性伸縮方法,其特征在于,所述當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),在所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中之前,所述方法還包括:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于所述預(yù)設(shè)的上限,如果小于,則執(zhí)行所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中的步驟。
7.根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的虛擬機(jī)彈性伸縮方法,其特征在于,所述方法還包括: 對(duì)采集到的所述伸縮組中的虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理,得到所述伸縮組的伸縮數(shù)據(jù); 根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策。
8.根據(jù)權(quán)利要求7所述的虛擬機(jī)彈性伸縮方法,其特征在于,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括: 當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)。
9.根據(jù)權(quán)利要求7所述的虛擬機(jī)彈性伸縮方法,其特征在于,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括: 當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī)。
10.根據(jù)權(quán)利要求7所述的虛擬機(jī)彈性伸縮方法,其特征在于,根據(jù)所述伸縮組的伸縮數(shù)據(jù),確定所述伸縮組的伸縮決策包括: 當(dāng)所述伸縮組的伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值時(shí),確定所述伸縮組的伸縮決策為所述減容虛擬機(jī)。
11.一種虛擬機(jī)彈性伸縮裝置,其特征在于,包括: 虛擬機(jī)實(shí)例緩沖模塊,用于通過保存休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù),來存儲(chǔ)所述休眠狀態(tài)虛擬機(jī); 擴(kuò)容模塊,與所述虛擬機(jī)實(shí)例緩沖模塊連接,用于當(dāng)伸縮組的伸縮決策為擴(kuò)容虛擬機(jī)時(shí),從所述虛擬機(jī)實(shí)例緩沖模塊中激活所述休眠狀態(tài)虛擬機(jī),以增加所述伸縮組中的虛擬機(jī); 其中,所述激活所述休眠狀態(tài)虛擬機(jī)包括將所述休眠狀態(tài)虛擬機(jī)的內(nèi)存數(shù)據(jù)恢復(fù)到所述休眠狀態(tài)虛擬機(jī)所在服務(wù)器的內(nèi)存中,并將所述休眠狀態(tài)虛擬機(jī)上電。
12.根據(jù)權(quán)利要求11所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述裝置還包括: 創(chuàng)建模塊,用于創(chuàng)建所述虛擬機(jī)實(shí)例緩沖模塊。
13.根據(jù)權(quán)利要求12所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述裝置還包括: 休眠模塊,與所述虛擬機(jī)實(shí)例緩沖模塊連接,用于當(dāng)所述伸縮組的伸縮決策為增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)時(shí),啟動(dòng)虛擬機(jī),將啟動(dòng)的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述啟動(dòng)的虛擬機(jī)下電,以將所述啟動(dòng)的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
14.根據(jù)權(quán)利要求13所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述裝置還包括: 確定模塊,與所述休眠模塊連接,用于確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則所述休眠模塊執(zhí)行所述啟動(dòng)虛擬機(jī)的步驟。
15.根據(jù)權(quán)利要求14所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述裝置還包括: 減容模塊,與所述虛擬機(jī)實(shí)例緩沖模塊連接,用于當(dāng)所述伸縮組的伸縮決策為減容虛擬機(jī)時(shí),將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中,并將所述伸縮組中待減容的虛擬機(jī)下電,以將所述伸縮組中待減容的虛擬機(jī)休眠并存儲(chǔ)在所述虛擬機(jī)實(shí)例緩沖模塊中。
16.根據(jù)權(quán)利要求15所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述確定模塊還與所述減容模塊連接,并被配置為:確定所述虛擬機(jī)實(shí)例緩沖模塊中存儲(chǔ)的休眠狀態(tài)虛擬機(jī)個(gè)數(shù)是否小于預(yù)設(shè)的上限,如果小于,則所述減容模塊執(zhí)行所述將所述伸縮組中待減容的虛擬機(jī)的內(nèi)存數(shù)據(jù)保存在所述虛擬機(jī)實(shí)例緩沖模塊中的步驟。
17.根據(jù)權(quán)利要求16所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述裝置還包括: 伸縮決策模塊,與所述擴(kuò)容模塊,所述休眠模塊及所述減容模塊連接,用于對(duì)采集到的所述伸縮組中的虛擬機(jī)的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理,得到所述伸縮組的伸縮數(shù)據(jù); 根據(jù)所述伸縮組的伸縮數(shù) 據(jù),確定所述伸縮組的伸縮決策;并且 向所述擴(kuò)容模塊,所述休眠模塊或所述減容模塊發(fā)送包括所述伸縮組的伸縮決策的指令。
18.根據(jù)權(quán)利要求17所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述伸縮決策模塊被配置為: 當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的休眠閾值而小于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī);并且 向所述休眠模塊發(fā)送包括所述伸縮組的伸縮決策為所述增加所述虛擬機(jī)實(shí)例緩沖模塊中的休眠狀態(tài)虛擬機(jī)的指令。
19.根據(jù)權(quán)利要求17所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述伸縮決策模塊被配置為: 當(dāng)所述伸縮組的伸縮數(shù)據(jù)大于預(yù)設(shè)的擴(kuò)容閾值時(shí),確定所述伸縮組的伸縮決策為所述擴(kuò)各虛擬機(jī);并且 向所述擴(kuò)容模塊發(fā)送包括所述伸縮組的伸縮決策為所述擴(kuò)容虛擬機(jī)的指令。
20.根據(jù)權(quán)利要求17所述的虛擬機(jī)彈性伸縮裝置,其特征在于,所述伸縮決策模塊被配置為: 當(dāng)所述伸縮組的伸縮數(shù)據(jù)小于預(yù)設(shè)的減容閾值時(shí),確定所述伸縮組的伸縮決策為所述減各虛擬機(jī);并且 向所述減容模塊發(fā)送包括所述伸縮組的伸縮決策為所述減容虛擬機(jī)的指令。
【文檔編號(hào)】G06F9/455GK103810020SQ201410051843
【公開日】2014年5月21日 申請(qǐng)日期:2014年2月14日 優(yōu)先權(quán)日:2014年2月14日
【發(fā)明者】李新籠 申請(qǐng)人:華為技術(shù)有限公司