一種異構(gòu)混合云環(huán)境下提高映像管理效率的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計(jì)算及虛擬機(jī)映像管理領(lǐng)域,具體為一種異構(gòu)混合云環(huán)境下提高映像管理效率的方法。
【背景技術(shù)】
[0002]隨著公有云和私有云的發(fā)展與應(yīng)用,云計(jì)算技術(shù)的逐步成熟,混合云的概念應(yīng)運(yùn)而生?;旌显颇J绞且话阌蓛蓚€(gè)或兩個(gè)以上的云(可以為私有或公共云)組成。其核心優(yōu)勢(shì)在于,通過(guò)使用虛擬化技術(shù),使得用戶不需要預(yù)先支付巨大的資本開(kāi)銷就可以開(kāi)始運(yùn)營(yíng)業(yè)務(wù),并且隨著業(yè)務(wù)的發(fā)展可以彈性的改變IT基礎(chǔ)設(shè)施的規(guī)模大小,而不需要擔(dān)心設(shè)備過(guò)?;虿蛔恪.?dāng)面對(duì)突然爆發(fā)的峰值環(huán)境下的計(jì)算需求時(shí),可以相應(yīng)地為用戶提供必需的計(jì)算資源,而不需要增加額外的基礎(chǔ)設(shè)施。
[0003]云計(jì)算系統(tǒng)中映像管理主要用來(lái)為用戶提供注冊(cè)映像、刪除映像、查看映像詳情、更改映像屬性等一系列管理功能,以便于對(duì)云計(jì)算系統(tǒng)環(huán)境中的虛擬機(jī)映像進(jìn)行統(tǒng)一管理,把所有虛擬機(jī)映像構(gòu)建為一個(gè)映像庫(kù),在云計(jì)算系統(tǒng)環(huán)境中創(chuàng)建虛擬機(jī)時(shí)統(tǒng)一從映像庫(kù)中獲取映像。因此,虛擬機(jī)映像是云計(jì)算應(yīng)用運(yùn)行的平臺(tái),其執(zhí)行效率對(duì)整個(gè)云計(jì)算系統(tǒng)的運(yùn)行起到了至關(guān)重要的作用。
【發(fā)明內(nèi)容】
[0004]本發(fā)明為提高云環(huán)境下映像管理效率設(shè)計(jì)了一種虛擬機(jī)映像預(yù)取機(jī)制,該方法包含了運(yùn)行在用戶端的虛擬機(jī)管理器、預(yù)取客戶程序以及運(yùn)行在服務(wù)器端的預(yù)取服務(wù)程序。預(yù)取客戶程序運(yùn)行在用戶端,是實(shí)現(xiàn)預(yù)取的關(guān)鍵,它主要包含如下三個(gè)模塊:按需取塊模塊、預(yù)取模塊、預(yù)取策略模塊。預(yù)取服務(wù)程序接收來(lái)自預(yù)取客戶程序的取塊請(qǐng)求,從服務(wù)器端存儲(chǔ)的COW磁盤(pán)中讀取請(qǐng)求的磁盤(pán)塊,并發(fā)送給用戶端的預(yù)取客戶程序。虛擬機(jī)管理器的COW虛擬塊設(shè)備和預(yù)取客戶程序通過(guò)共享內(nèi)存的方式實(shí)現(xiàn)通信,它們?cè)谔摂M機(jī)運(yùn)行過(guò)程中會(huì)分別創(chuàng)建兩塊共享內(nèi)存區(qū):訪問(wèn)統(tǒng)計(jì)信息區(qū)和塊緩存區(qū)。虛擬機(jī)管理器和預(yù)取客戶程序通過(guò)某種同步機(jī)制來(lái)實(shí)現(xiàn)對(duì)共享內(nèi)存區(qū)的讀寫(xiě)互斥,如鎖、信號(hào)量等。
[0005]所述的按需取塊模塊執(zhí)行按需取塊過(guò)程,從服務(wù)器端獲取虛擬機(jī)請(qǐng)求但未在本地緩存的塊。
[0006]所述的預(yù)取模塊在按需取塊模塊空閑時(shí),預(yù)取模塊在預(yù)取策略模塊的配合下執(zhí)行預(yù)取過(guò)程,從服務(wù)器端存儲(chǔ)的COW磁盤(pán)中讀取塊并緩存到用戶端。
[0007]所述的預(yù)取策略模塊用于實(shí)現(xiàn)特定的預(yù)取策略和算法,以確定預(yù)取目標(biāo)、預(yù)取位置和預(yù)取量。
[0008]更進(jìn)一步的確定預(yù)取目標(biāo)就是確定需要預(yù)取的COW磁盤(pán),需要利用虛擬機(jī)管理器來(lái)實(shí)時(shí)地獲取虛擬機(jī)的磁盤(pán)訪問(wèn)信息,并利用這些信息來(lái)實(shí)時(shí)地識(shí)別用戶所使用軟件對(duì)應(yīng)的COW磁盤(pán)。預(yù)取目標(biāo)可以是一個(gè)或多個(gè)COW磁盤(pán),但為了提高預(yù)取的針對(duì)性,預(yù)取目標(biāo)的數(shù)量不宜過(guò)多。確定了預(yù)取目標(biāo)COW磁盤(pán)之后,還需要確定從預(yù)取目標(biāo)COW磁盤(pán)中何處開(kāi)始預(yù)取。
[0009]所述的預(yù)取服務(wù)程序采用的隊(duì)列調(diào)度策略,優(yōu)先服務(wù)按需取塊請(qǐng)求隊(duì)列中的取塊請(qǐng)求。只有按需取塊請(qǐng)求隊(duì)列為空時(shí),才服務(wù)預(yù)取請(qǐng)求隊(duì)列中的預(yù)取請(qǐng)求,以減小由于按需取塊給用戶端虛擬機(jī)性能造成的影響。對(duì)于每條隊(duì)列,預(yù)取服務(wù)程序按照先來(lái)先服務(wù)(FIFO)的策略來(lái)服務(wù)隊(duì)列中的取塊請(qǐng)求。
[0010]所述的訪問(wèn)統(tǒng)計(jì)信息區(qū)由虛擬機(jī)管理器層的COW虛擬塊設(shè)備驅(qū)動(dòng)在塊設(shè)備初始化時(shí)創(chuàng)建,用于記錄虛擬機(jī)管理器的COW磁盤(pán)訪問(wèn)統(tǒng)計(jì)信息,如COW磁盤(pán)訪問(wèn)計(jì)數(shù)值,按需取塊次數(shù)和歷史訪問(wèn)信息等。預(yù)取客戶程序的預(yù)取策略模塊利用訪問(wèn)統(tǒng)計(jì)信息區(qū)的信息來(lái)確定預(yù)取目標(biāo)。
[0011 ]所述的塊緩存區(qū)由預(yù)取客戶程序在程序啟動(dòng)時(shí)創(chuàng)建,用于緩存預(yù)取客戶程序從服務(wù)器端獲取的COW磁盤(pán)塊以提高預(yù)取客戶程序的取塊效率和虛擬機(jī)管理器的磁盤(pán)訪問(wèn)性能。按需取塊模塊和預(yù)取模塊都會(huì)將從服務(wù)器端獲取的塊保存到塊緩存區(qū)中。
[0012]更進(jìn)一步的如果虛擬機(jī)管理器發(fā)現(xiàn)要讀取的塊不在最新COW磁盤(pán)中,則會(huì)試圖從塊緩存區(qū)中讀取;塊緩存區(qū)命中的塊越多,越有利于提高虛擬機(jī)的磁盤(pán)訪問(wèn)性能。當(dāng)塊緩存區(qū)中的塊超過(guò)一定數(shù)量時(shí),預(yù)取客戶程序可以采用一些替換策略將部分磁盤(pán)塊寫(xiě)回對(duì)應(yīng)的影子COW磁盤(pán)。
[0013]本申請(qǐng)實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):利用該機(jī)制,用戶能夠從未緩存任何虛擬機(jī)映像的用戶端直接啟動(dòng)虛擬機(jī),不需要等待虛擬機(jī)映像從服務(wù)器端完全傳輸?shù)接脩舳耍煌瑫r(shí)該預(yù)取機(jī)制也能夠保證虛擬機(jī)在用戶端具有較好的運(yùn)行性能,提高了運(yùn)行效率。
【附圖說(shuō)明】
[0014]下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
[0015]圖1為本發(fā)明的系統(tǒng)框圖。
[0016]圖中:I為虛擬機(jī)管理器,2為影子COW磁盤(pán),3為塊緩存區(qū),4為訪問(wèn)統(tǒng)計(jì)信息區(qū),5為本地COW磁盤(pán),6為預(yù)取客戶程序,7為預(yù)取策略模塊,8為按需取塊模塊,9為預(yù)取模塊,10為預(yù)取服務(wù)程序,11為本地COW磁盤(pán)
【具體實(shí)施方式】
[0017]如圖1所示,本發(fā)明為一種異構(gòu)混合云環(huán)境下提高映像管理效率的方法,包括:虛擬機(jī)管理器1、預(yù)取客戶程序6以及預(yù)取服務(wù)程序10。預(yù)取客戶程序包含三個(gè)模塊:按需取塊模塊8、預(yù)取模塊9、預(yù)取策略模塊7。虛擬機(jī)運(yùn)行過(guò)程中會(huì)分別創(chuàng)建兩塊共享內(nèi)存區(qū):訪問(wèn)統(tǒng)計(jì)信息區(qū)4和塊緩存區(qū)3。本地用戶操作影子COW磁盤(pán)2、用戶本地COW磁盤(pán)5使用云服務(wù)。預(yù)取服務(wù)程序與其服務(wù)器端的本地COW磁盤(pán)11相連。
[0018]預(yù)取過(guò)程在后臺(tái)異步地進(jìn)行,對(duì)虛擬機(jī)管理器是透明的。預(yù)取過(guò)程的優(yōu)先級(jí)比其它取塊過(guò)程低。一旦虛擬機(jī)管理器有按需取塊請(qǐng)求,按需取塊過(guò)程將被優(yōu)先執(zhí)行。預(yù)取過(guò)程由預(yù)取客戶程序的預(yù)取模塊和預(yù)取服務(wù)程序程序?qū)崿F(xiàn),主要包含如下步驟:
[0019]1.預(yù)取策略模塊利用訪問(wèn)統(tǒng)計(jì)信息區(qū)的信息執(zhí)行特定的預(yù)取策略,以確定預(yù)取目標(biāo)(COW磁盤(pán))、預(yù)取位置(起始?jí)K號(hào))和預(yù)取量;
[0020]2.預(yù)取模塊根據(jù)預(yù)取策略模塊的執(zhí)行結(jié)果,向服務(wù)器端的預(yù)取服務(wù)程序發(fā)送取塊請(qǐng)求;
[0021 ] 3.服務(wù)器端的預(yù)取服務(wù)程序接收到請(qǐng)求后,首先將該請(qǐng)求插入預(yù)取請(qǐng)求隊(duì)列尾部。當(dāng)服務(wù)到該請(qǐng)求時(shí),預(yù)取服務(wù)程序從相應(yīng)的COW磁盤(pán)中讀取塊并發(fā)送給用戶端的預(yù)取模塊模塊,然后返回繼續(xù)處理或等待其它取塊請(qǐng)求;
[0022]4.用戶端的預(yù)取模塊模塊將接收到的塊寫(xiě)入塊緩存區(qū),然后繼續(xù)下一輪預(yù)取,SP執(zhí)行步驟1-4。
[0023]更進(jìn)一步的預(yù)取模塊沒(méi)有和虛擬機(jī)管理器直接交互,而是將預(yù)取的塊寫(xiě)入塊緩存區(qū)后繼續(xù)下一輪預(yù)取,不需要虛擬機(jī)管理器等待。由于塊緩存區(qū)命中的塊越多,越有利于提高虛擬機(jī)的磁盤(pán)訪問(wèn)性能,因此上述預(yù)取過(guò)程對(duì)于提高塊緩存命中率,進(jìn)而減少按需取塊次數(shù)和提高虛擬機(jī)的磁盤(pán)訪問(wèn)效率起著重要作用。
[0024]上述實(shí)施例,僅為對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)一步詳細(xì)說(shuō)明的具體個(gè)例,本發(fā)明并非限定于此。凡在本發(fā)明的公開(kāi)的范圍之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于:該方法包含了運(yùn)行在用戶端的虛擬機(jī)管理器、預(yù)取客戶程序以及運(yùn)行在服務(wù)器端的預(yù)取服務(wù)程序。2.按照權(quán)利要求1所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于,所述預(yù)取客戶程序運(yùn)行在用戶端,主要包含如下三個(gè)模塊:按需取塊模塊、預(yù)取模塊、預(yù)取策略豐旲塊。3.按照權(quán)利要求1所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于,所述預(yù)取服務(wù)程序接收來(lái)自預(yù)取客戶程序的取塊請(qǐng)求,從服務(wù)器端存儲(chǔ)的COW磁盤(pán)中讀取請(qǐng)求的磁盤(pán)塊,并發(fā)送給用戶端的預(yù)取客戶程序。4.按照權(quán)利要求1所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于,所述虛擬機(jī)管理器中的COW虛擬塊設(shè)備和預(yù)取客戶程序通過(guò)共享內(nèi)存的方式實(shí)現(xiàn)通信,它們?cè)谔摂M機(jī)運(yùn)行過(guò)程中會(huì)分別創(chuàng)建兩塊共享內(nèi)存區(qū):訪問(wèn)統(tǒng)計(jì)信息區(qū)和塊緩存區(qū)。5.按照權(quán)利要求2所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于:所述的預(yù)取模塊在按需取塊模塊空閑時(shí),預(yù)取模塊在預(yù)取策略模塊的配合下執(zhí)行預(yù)取過(guò)程,從服務(wù)器端存儲(chǔ)的COW磁盤(pán)中讀取塊并緩存到用戶端。6.按照權(quán)利要求2所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于:所述的預(yù)取策略模塊用于實(shí)現(xiàn)特定的預(yù)取策略和算法,以確定預(yù)取目標(biāo)、預(yù)取位置和預(yù)取量。7.按照權(quán)利要求3所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于:所述的預(yù)取服務(wù)程序采用的隊(duì)列調(diào)度策略,優(yōu)先服務(wù)按需取塊請(qǐng)求隊(duì)列中的取塊請(qǐng)求。只有按需取塊請(qǐng)求隊(duì)列為空時(shí),才服務(wù)預(yù)取請(qǐng)求隊(duì)列中的預(yù)取請(qǐng)求。8.按照權(quán)利要求4所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于:所述的訪問(wèn)統(tǒng)計(jì)信息區(qū)由虛擬機(jī)管理器層的COW虛擬塊設(shè)備驅(qū)動(dòng)在塊設(shè)備初始化時(shí)創(chuàng)建,用于記錄虛擬機(jī)管理器的COW磁盤(pán)訪問(wèn)統(tǒng)計(jì)信息。預(yù)取客戶程序的預(yù)取策略模塊利用訪問(wèn)統(tǒng)計(jì)信息區(qū)的信息來(lái)確定預(yù)取目標(biāo)。9.按照權(quán)利要求4所述的異構(gòu)混合云環(huán)境下提高映像管理效率方法,其特征在于:所述的塊緩存區(qū)由預(yù)取客戶程序在程序啟動(dòng)時(shí)創(chuàng)建,用于緩存預(yù)取客戶程序從服務(wù)器端獲取的COW磁盤(pán)塊以提高預(yù)取客戶程序的取塊效率和虛擬機(jī)管理器的磁盤(pán)訪問(wèn)性能。預(yù)取模塊都將從服務(wù)器端獲取的塊保存到塊緩存區(qū)中。
【專利摘要】本發(fā)明公開(kāi)了一種異構(gòu)混合云環(huán)境下提高映像管理效率的方法。該方法包含了運(yùn)行在用戶端的虛擬機(jī)管理器、預(yù)取客戶程序以及運(yùn)行在服務(wù)器端的預(yù)取服務(wù)程序。該方法主要通虛擬機(jī)映像預(yù)取的方式實(shí)現(xiàn),在用戶端虛擬機(jī)運(yùn)行過(guò)程中,通過(guò)預(yù)取客戶程序在后臺(tái)預(yù)取更多的磁盤(pán)塊到用戶端,以使得盡可能多的磁盤(pán)訪問(wèn)在本地進(jìn)行。預(yù)取客戶程序主要包含如下三個(gè)模塊:按需取塊模塊、預(yù)取模塊、預(yù)取策略模塊。一旦用戶所使用軟件對(duì)應(yīng)的底層磁盤(pán)塊通過(guò)按需取塊和預(yù)取過(guò)程完全緩存到本地,則用戶能夠獲得和軟件完全本地運(yùn)行相同的性能,其效率得到極大的提高。
【IPC分類】G06F3/06
【公開(kāi)號(hào)】CN105549913
【申請(qǐng)?zhí)枴緾N201510961349
【發(fā)明人】靜永健, 高靜
【申請(qǐng)人】?jī)?nèi)蒙古農(nóng)業(yè)大學(xué)
【公開(kāi)日】2016年5月4日
【申請(qǐng)日】2015年12月22日