通過在虛擬數(shù)據(jù)中心中最佳地放置vm而減少存儲器使用的系統(tǒng)和方法
【專利摘要】本發(fā)明的實(shí)施例提供一種用于基于存儲器共享可能性搭配VM的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在本發(fā)明的實(shí)施例中,已經(jīng)要求保護(hù)一種VM搭配方法。所述方法包括從不同VM中選擇VM用于服務(wù)器搭配。所述方法還包括關(guān)于所選擇的VM對于VM集合中的每一個計算單獨(dú)的共享存儲器系數(shù)。所述方法進(jìn)一步包括確定在集合中的VM中與最高的所計算共享存儲器系數(shù)相關(guān)聯(lián)的VM。最后,所述方法包括將在單個服務(wù)器中確定的VM和所選擇的VM搭配。
【專利說明】通過在虛擬數(shù)據(jù)中心中最佳地放置VM而減少存儲器使用的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬化,更具體地涉及一種在多個主機(jī)上的虛擬機(jī)。
【背景技術(shù)】
[0002]虛擬機(jī)(VM)或虛擬計算機(jī)是在計算機(jī)軟件內(nèi)實(shí)現(xiàn)的計算機(jī)的邏輯表示。在傳統(tǒng)物理計算機(jī)中,操作系統(tǒng)的一個實(shí)例支持一個或多個應(yīng)用程序。然而,在虛擬化環(huán)境中,單個物理計算機(jī)或物理計算機(jī)集群運(yùn)行抽象化物理計算機(jī)的資源的軟件,使得物理計算機(jī)的資源可以在多個虛擬機(jī)或VM之間共享。為此,每一個VM可以運(yùn)行與物理機(jī)上的全部其他虛擬機(jī)不同的操作系統(tǒng)。重要的是,在單個物理計算機(jī)中,由任何VM中產(chǎn)生的崩潰或其他程序錯誤不會影響全部其他VM。
[0003]存在不同類型的虛擬化,包括桌面虛擬化和服務(wù)器虛擬化。桌面虛擬化將操作系統(tǒng)及其支持的應(yīng)用從桌面計算機(jī)移動到在服務(wù)器上運(yùn)行的虛擬計算機(jī)。用戶可以仍然定制桌面環(huán)境。此外,與在傳統(tǒng)單個物理計算機(jī)上工作時不同,當(dāng)用戶移動到不同位置時,用戶的整個工作區(qū)出現(xiàn)在用戶當(dāng)前正在使用的任何工作站或設(shè)備上。如果工作站硬件故障,則用戶的整個工作區(qū)在網(wǎng)絡(luò)上的任何其他工作站上可用。
[0004]服務(wù)器虛擬化允許物理服務(wù)器被分配為運(yùn)行多個安全虛擬機(jī)(VM)或虛擬服務(wù)器。這創(chuàng)造了聯(lián)合物理服務(wù)器的機(jī)會。此外,隨著在VM中運(yùn)行的基于服務(wù)器的產(chǎn)品中的一個的資源需求增長,將VM移動到具有更多可用資源的不同物理服務(wù)器就像復(fù)制文件一樣簡單。通常,在多個服務(wù)器環(huán)境中,基于CPU利用率和存儲器使用的靜態(tài)分析,VM被放置在不同物理服務(wù)器上。
[0005]在單個服務(wù)器環(huán)境的情況下,虛擬化解決方案使用基于頁面共享的內(nèi)容以聯(lián)合服務(wù)器平臺中的存儲器資源。頁面共享允許跨VM共享相同頁面,其刪除冗余頁面并釋放存儲器資源。在操作中,管理程序針對掃描存儲器的重復(fù)頁面。在檢測到重復(fù)頁面時,管理程序刪除重復(fù)頁面中的一個,并且將虛擬存儲器改變?yōu)橹赶蚬蚕砀北?,但該方式限制于單個服務(wù)器上的VM。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實(shí)施例解決本領(lǐng)域關(guān)于在多個服務(wù)器環(huán)境中搭配VM的缺陷并提供一種用于基于存儲器共享可能性搭配VM的新穎的和非顯而易見的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在本發(fā)明的實(shí)施例中,要求保護(hù)一種VM搭配方法。所述方法包括從不同VM中選擇VM用于服務(wù)器搭配。所述方法還包括關(guān)于所選擇的VM對于VM集合中的每一個計算單獨(dú)的共享存儲器系數(shù)。所述方法進(jìn)一步包括確定在集合中的VM中與最高的所計算共享存儲器系數(shù)相關(guān)聯(lián)的VM。最后,所述方法包括在單個服務(wù)器中將確定的VM和所選擇的VM搭配。
[0007]在實(shí)施例的一方面中,可以通過對于集合中的VM中的每一個創(chuàng)建第一 Bloom過濾器并且隨后對于所選擇的VM創(chuàng)建第二 Bloom過濾器而計算單獨(dú)的共享存儲器系數(shù)。例如,Bloom過濾器可以是啟動Bloom過濾器類型,或當(dāng)前Bloom過濾器類型。其后,對于集合中的VM中的每一個可以組合第一和第二 Bloom過濾器以對于集合中的VM中的每一個產(chǎn)生單獨(dú)的共享存儲器系數(shù)。例如,組合第一和第二 Bloom過濾器可以包括對于VM中的每一個在第一 Bloom過濾器中的值和第二 Bloom過濾器中的對應(yīng)的值之間執(zhí)行邏輯“與”操作,并且對于VM中的每一個將“與”操作的結(jié)果的位相加,以對于VM中的對應(yīng)一個生成單獨(dú)的共享存儲器系數(shù)。
[0008]在本發(fā)明的另一實(shí)施例中,可以提供一種虛擬機(jī)搭配系統(tǒng)。所述系統(tǒng)可以包括服務(wù)器集群,每一個服務(wù)器具有至少一個處理器和存儲器。所述系統(tǒng)還可以包括在服務(wù)器集群中執(zhí)行的多個不同VM和在服務(wù)器中的一個的存儲器中執(zhí)行的管理程序。所述系統(tǒng)還可以包括耦接到管理程序的VM搭配模塊。所述模塊可以包括程序代碼,其使得能夠從VM中選擇VM用于服務(wù)器搭配,關(guān)于所選擇的VM對于多個VM的集合中的每一個計算單獨(dú)的共享存儲器系數(shù),確定在集合中的VM中與最高的所計算共享存儲器系數(shù)相關(guān)聯(lián)的VM,以及在集群中的單個服務(wù)器中將確定的VM和所選擇的VM搭配。
[0009]本發(fā)明的另外方面將在下文的描述中部分地闡述,并且根據(jù)所述描述將部分地變得清楚,或者可以通過本發(fā)明的實(shí)踐而習(xí)得。本發(fā)明的多個方面將通過在所附權(quán)利要求中具體指出的元件和組合實(shí)現(xiàn)和獲得。將理解上述一般說明和下列詳細(xì)描述兩者都僅是示例性的和解釋性的并且不限制如所要求保護(hù)的本發(fā)明。
【專利附圖】
【附圖說明】
[0010]合并在本說明書中并構(gòu)成本說明書的一部分的附圖示出本發(fā)明的實(shí)施例并且與【具體實(shí)施方式】一起用于解釋本發(fā)明的原理。本文示出的實(shí)施例是當(dāng)前優(yōu)選的,然而,應(yīng)理解本發(fā)明不限于示出的精確布置和手段。
[0011]圖1是用于在多服務(wù)器環(huán)境中搭配VM的過程的圖示說明;
[0012]圖2是VM搭配系統(tǒng)的示意性說明;以及
[0013]圖3是示出用于搭配VM的過程的流程圖。
【具體實(shí)施方式】
[0014]本發(fā)明的實(shí)施例用于在多服務(wù)器環(huán)境中搭配VM。在特定服務(wù)器中是否關(guān)于其他VM搭配所選擇的VM的決定可以基于關(guān)于其他VM確定所選擇的VM的存儲器共享系數(shù)。在該方面,存儲器共享系數(shù)可以根據(jù)Bloom過濾器(一種用于測試元素是否是集合成員的空間高效的概率數(shù)據(jù)結(jié)構(gòu),響應(yīng)于該集合成員所述測試返回“可能在集合內(nèi)”或“肯定不在集合內(nèi)”)確定。與所選擇的VM共享最高計算的存儲器共享系數(shù)的其他VM中的VM可以在相同服務(wù)器中搭配在一起。以該方式,關(guān)于特定服務(wù)器放置VM可以不僅基于處理器利用率和存儲器使用信息,還基于在不同VM之間的頁面而共享可能性。
[0015]在進(jìn)一步圖示中,圖1圖示地示出用于在多服務(wù)器環(huán)境中搭配VM的過程。如圖1中所示,多個服務(wù)器105可以具有多個虛擬機(jī)(VM)150A。(為了簡單,示出相同的多個VM150A用于兩個虛擬機(jī),雖然多個VM150A可以在每一個服務(wù)器105上,或在網(wǎng)絡(luò)中的任何服務(wù)器105上。)服務(wù)器105上的VM搭配邏輯140可以在啟動時對于全部頁面生成哈希值。然后,所述哈希值可以隨后用來索引Bloom過濾器130A(例如,“啟動"Bloom過濾器),并且隨后對應(yīng)的位可以被設(shè)置為I。當(dāng)VM150A的存儲器隨著連續(xù)的寫入而改變時,新的哈希值可以由VM搭配邏輯140計算,并且索引第二 Bloom過濾器130B(例如,“當(dāng)前”Bloom過濾器),其中對應(yīng)的位被設(shè)置為I。
[0016]當(dāng)需要放置新的VM(例如,VM150B)時,可以生成Bloom過濾器130A,例如用于新的VM150B的“啟動” Bloom過濾器。例如,通過執(zhí)行“與”操作可以比較現(xiàn)有VM(例如,VMl50A)的“啟動” Bloom過濾器130A值和新的VMl50B的“啟動” Bloom過濾器130A。將結(jié)果位相加以計算存儲器共享系數(shù)165。然后,VM150B可以與VM150B與之具有最高存儲器共享系數(shù)175的VMl50A搭配。
[0017]為了實(shí)時遷移,Bloom過濾器130B (例如“當(dāng)前”Bloom過濾器或“計數(shù)” Bloom過濾器)可以用于計算存儲器共享系數(shù)165。遷移VM150B的“當(dāng)前”Bloom過濾器130B與可能與其搭配的其他VM150A的“當(dāng)前” Bloom過濾器130B相比較。服務(wù)器105上的VM搭配邏輯140可以對Bloom過濾器130B、現(xiàn)有VM150A上的“當(dāng)前” Bloom過濾器和遷移VM150B上的“當(dāng)前”Bloom過濾器執(zhí)行“與”操作。在執(zhí)行“與”操作時,VM搭配邏輯140可以通過將“與”操作的結(jié)果位相加而計算存儲器共享系數(shù)165。然后,遷移VM(例如150B)可以被提供最大存儲器共享利益的VMl50A代替。
[0018]注意到,關(guān)于跨VM的相同和相似頁面的存儲器共享系數(shù)165的信息可以傳遞到管理程序(未示出),使得新的VM或遷移VM可以與在相同和相似頁面方面提供最大共享可能性的服務(wù)器105搭配。此外,管理程序可以接收關(guān)于相同頁面的信息并且刪除相同頁面的副本。以該方式,通過使用哈希函數(shù)和Bloom過濾器,在子粒度級別對相同和相似頁面兩者計算共享可能性。進(jìn)一步注意到,可以存儲相似頁面之間的不同。此外,可以減少計算開銷。
[0019]可以在VM搭配系統(tǒng)中實(shí)現(xiàn)結(jié)合圖1描述的過程。在進(jìn)一步的圖示中,圖2示意性示出VM搭配系統(tǒng)。所述系統(tǒng)可以包括至少一個服務(wù)器200。服務(wù)器200可以包括支持操作系統(tǒng)(0/S) 230的執(zhí)行的至少一個處理器220和存儲器210。0/S230轉(zhuǎn)而可以支持至少一個Bloom過濾器210、管理程序250、至少一個虛擬機(jī)240和VM搭配模塊300。注意到,服務(wù)器200可以經(jīng)由通信網(wǎng)絡(luò)250與其他服務(wù)器200通信。通信網(wǎng)絡(luò)可以包括因特網(wǎng)、無線通信、以太網(wǎng)、3G和4G。注意到,每一個服務(wù)器200可以包括存儲器210、至少一個處理器220、0/S230、至少一個Bloom過濾器260、管理程序250、至少一個虛擬機(jī)240和VM搭配模塊300,雖然為了簡單僅對一個服務(wù)器200示出上述每一個組件。
[0020]VM搭配模塊300可以包括程序代碼,所述程序代碼在由服務(wù)器200的至少一個處理器220執(zhí)行時創(chuàng)建用于服務(wù)器200上的每一個現(xiàn)有VM240的關(guān)于存儲器中的每一頁面內(nèi)的內(nèi)容的第一 Bloom過濾器。注意到,第一 Bloom過濾器可以是“啟動"Bloom過濾器或“當(dāng)前” Bloom過濾器。VM搭配模塊300可以進(jìn)一步包括響應(yīng)于接收到第二 VM的放置請求而在創(chuàng)建用于第二 VM的第二 Bloom過濾器時計算在每一個現(xiàn)有VM和第二 VM之間的存儲器共享系數(shù)的第二程序代碼。注意到,在一個實(shí)例中,通過在用于每一個現(xiàn)有VM的每一個第一 Bloom過濾器和用于第二 VM的第二 Bloom過濾器中的值之間執(zhí)行“與”操作并且將得到的“與”操作的位相加可以計算存儲器共享系數(shù)。進(jìn)一步注意到,第二 Bloom過濾器可以是“啟動”Bloom過濾器或“當(dāng)前”Bloom過濾器。模塊300可以進(jìn)一步包括在確定哪一個現(xiàn)有VM具有最高存儲器共享系數(shù)時將第二 VM與現(xiàn)有VM中的一個現(xiàn)有VM搭配的程序代碼。
[0021]在VM搭配模塊300的程序代碼的操作的再一進(jìn)一步圖示中,圖3是示出用于搭配VM的過程的流程圖。在步驟305中開始,可以在啟動時對于每一個現(xiàn)有VM的全部頁面生成哈希值。注意到,在一個實(shí)例中,可以創(chuàng)建用于大量64字節(jié)塊數(shù)據(jù)的哈希值。如在步驟310中所示,所述哈希值可以用來對于每一個現(xiàn)有VM索引第一 Bloom過濾器(例如“啟動”Bloom過濾器),并且如在步驟315中,對應(yīng)的位可以被設(shè)置為I。在步驟320中,在例如伴隨著連續(xù)寫入而檢測到現(xiàn)有VM中存儲器改變時,如在步驟325中指示的,可以對于每一個改變的VM計算新的哈希值。如在步驟330中,新的哈希值可以用來索引第二 Bloom過濾器,并且如在步驟335中,對應(yīng)的位可以被設(shè)置為I。
[0022]在步驟340中,可以關(guān)于是否需要放置新的VM或是否存在實(shí)時遷移作出確定。在確定需要放置新的VM時,如在步驟342中,可以對于新的VM生成哈希值。如在步驟344中所示,哈希值可以用來對新的VM索引第一 Bloom過濾器(例如“啟動”Bloom過濾器)。然后,如在步驟346中,對應(yīng)的位可以被設(shè)置為I。在步驟348中,可以比較現(xiàn)有VM和新的VM的第一 Bloom過濾器值,例如“啟動” Bloom過濾器值。在一個實(shí)例中,通過執(zhí)行“與”操作可以比較現(xiàn)有VM和新的VM的第一 Bloom過濾器值。如在步驟350中指示的,在比較Bloom過濾器中的值時,可以對于每一個現(xiàn)有VM和要放置的新的VM計算存儲器共享系數(shù)。注意至IJ,可以將“與”操作的結(jié)果位相加以計算存儲器共享系數(shù)。在步驟352中,可以確定最高存儲器共享系數(shù)。然后,如在步驟354中所示,新的VM可以與具有最高存儲器共享系數(shù)的現(xiàn)有VM搭配。
[0023]如果如在步驟340中確定的,存在實(shí)時遷移,則如在步驟357中指示的,可以對于遷移VM生成哈希值。在步驟360中,哈希值可以用來索引第二 Bloom過濾器(例如“當(dāng)前” Bloom過濾器),并且如在步驟363中所示,在用于遷移VM的第二 Bloom過濾器中對應(yīng)的位可以被設(shè)置I。如在步驟366中指示的,可以比較用于每一個現(xiàn)有VM和遷移VM的第二Bloom過濾器,使得如在步驟369中所示,可以對于每一個現(xiàn)有VM和遷移VM計算存儲器共享系數(shù)。注意到,通過在用于可能與其搭配的每一個現(xiàn)有VM的第二 Bloom過濾器和用于遷移VM的第二 Bloom過濾器之間執(zhí)行“與”操作并且將得到的“與”操作的位相加可以計算存儲器共享系數(shù)。然后,如在步驟372中,可以確定最高存儲器共享系數(shù)。然后,如在步驟375中所示,遷移VM可以與提供最大存儲器共享利益的VM搭配。
[0024]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個方面還可以實(shí)現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0025]可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0026]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0027]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨(dú)立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0028]上文參考根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的多個方面。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實(shí)施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實(shí)現(xiàn)。
[0029]還將理解可以通過計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或框圖中的每個方框以及流程圖和/或框圖中的方框的組合??梢韵蛲ㄓ糜嬎銠C(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器提供這些計算機(jī)程序指令以產(chǎn)生機(jī)器,使得經(jīng)由計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)在流程圖和/或框圖的一個或多個方框中指定的功能/動作。
[0030]這些計算機(jī)程序指令還可以存儲在計算機(jī)可讀介質(zhì)中,其可以指示計算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備以特定方式運(yùn)作,使得存儲在計算機(jī)可讀介質(zhì)產(chǎn)品中的指令產(chǎn)生包括實(shí)現(xiàn)在流程圖和/或框圖的一個或多個方框中指定的功能/動作的指令的制造品。計算機(jī)程序指令還可以載入到計算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備中,以使得在計算機(jī)、其他可編程裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實(shí)現(xiàn)的過程,使得在計算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的一個或多個方框中指定的功能/動作的過程。
[0031]最后,本文使用的術(shù)語僅用于描述具體實(shí)施例,并且不意圖限制本發(fā)明。除非上下文明確地另外指示,如本文所使用的,單數(shù)形式“一”、“一個”和“所述”還意圖包括復(fù)數(shù)形式。將進(jìn)一步理解,當(dāng)術(shù)語“包括”和/或“包含”在本說明書中使用時指示所聲明的特征、整體、步驟、操作、元件和/或組件的存在,而不排除一個或多個其他特征、整體、步驟、操作、元件、組件和/或其群組的存在。
[0032]權(quán)利要求中的全部方式或步驟加上功能元件的對應(yīng)結(jié)構(gòu)、材料、動作和等效物意圖包括如具體要求保護(hù)的用于與其他要求保護(hù)的元件相結(jié)合地執(zhí)行功能的任何結(jié)構(gòu)、材料或動作。本發(fā)明的描述是為了說明和描述的目的呈現(xiàn),并不意圖是窮舉的或以所公開的形式限制本發(fā)明。許多修改和變化對本領(lǐng)域普通技術(shù)人員是顯而易見的,而不背離本發(fā)明的范圍和精神。實(shí)施例被選擇和描述以最好地解釋本發(fā)明的原理和實(shí)踐應(yīng)用,并且使得其他本領(lǐng)域普通技術(shù)人員能夠理解本發(fā)明的適用于所計劃的特定用途的具有各種修改的各種實(shí)施例。
[0033]因此,在詳細(xì)地并參考其實(shí)施例地描述了本申請的發(fā)明之后,顯而易見的是修改和變化是可能的,而不背離本發(fā)明的范圍和精神。
【權(quán)利要求】
1.一種虛擬機(jī)(VM)搭配方法,包括: 從多個VM中選擇VM用于服務(wù)器搭配; 關(guān)于所選擇的VM對于多個VM的集合中的每一個計算單獨(dú)的共享存儲器系數(shù); 確定在集合中的VM中與最高的所計算共享存儲器系數(shù)相關(guān)聯(lián)的VM ; 在單個服務(wù)器中將確定的VM和所選擇的VM搭配。
2.如權(quán)利要求1所述的方法,其中計算單獨(dú)的共享存儲器系數(shù)包括: 對于集合中的VM中的每一個創(chuàng)建第一 Bloom過濾器; 對于所選擇的VM創(chuàng)建第二 Bloom過濾器;以及 對于集合中的VM中的每一個組合第一和第二 Bloom過濾器以對于集合中的VM中的每一個產(chǎn)生單獨(dú)的共享存儲器系數(shù)。
3.如權(quán)利要求2所述的方法,其中組合第一和第二Bloom過濾器,包括:對于VM中的每一個在第一 Bloom過濾器中的值和第二 Bloom過濾器中的對應(yīng)的值之間執(zhí)行邏輯“與”操作;以及 對于VM中的每一個將“與”操作的結(jié)果的位相加,以對于VM中的對應(yīng)一個生成單獨(dú)的共享存儲器系數(shù)。
4.如權(quán)利要求2所述的方法,其中第一Bloom過濾器是從由啟動Bloom過濾器和當(dāng)前Bloom過濾器組成的群組中選擇的Bloom過濾器。
5.如權(quán)利要求2所述的方法,其中第二Bloom過濾器是從由啟動Bloom過濾器和當(dāng)前Bloom過濾器組成的群組中選擇的Bloom過濾器。
6.如權(quán)利要求2所述的方法,其中第一和第二Bloom過濾器中的至少一個是計數(shù)Bloom過濾器。
7.一種虛擬機(jī)搭配系統(tǒng),包括: 服務(wù)器集群,每一個服務(wù)器具有至少一個處理器和存儲器; 在服務(wù)器集群中執(zhí)行的多個虛擬機(jī)(VM); 在服務(wù)器中的一個的存儲器中執(zhí)行的管理程序;以及 耦接到管理程序的VM搭配模塊,所述模塊包括程序代碼,其使得能夠從多個VM中選擇VM用于服務(wù)器搭配,關(guān)于所選擇的VM對于多個VM的集合中的每一個計算單獨(dú)的共享存儲器系數(shù),確定在集合中的VM中與最高的所計算共享存儲器系數(shù)相關(guān)聯(lián)的VM,以及在集群中的單個服務(wù)器中將確定的VM和所選擇的VM搭配。
8.如權(quán)利要求7所述的系統(tǒng),其中通過對于集合中的VM中的每一個創(chuàng)建第一Bloom過濾器,對于所選擇的VM創(chuàng)建第二 Bloom過濾器,以及通過對于集合中的VM中的每一個組合第一和第二 Bloom過濾器以對于集合中的VM中的每一個產(chǎn)生單獨(dú)的共享存儲器系數(shù),而計算單獨(dú)的共享存儲器系數(shù)。
9.如權(quán)利要求8所述的系統(tǒng),其中通過對于VM中的每一個在第一Bloom過濾器中的值和第二 Bloom過濾器中的對應(yīng)的值之間執(zhí)行邏輯“與”操作,以及對于VM中的每一個將“與”操作的結(jié)果的位相加,以對于VM中的對應(yīng)一個生成單獨(dú)的共享存儲器系數(shù),而組合第一和第二 Bloom過濾器。
10.如權(quán)利要求8所述的系統(tǒng),其中第一Bloom過濾器是從由啟動Bloom過濾器和當(dāng)前Bloom過濾器組成的群組中選擇的Bloom過濾器。
11.如權(quán)利要求8所述的系統(tǒng),其中第二Bloom過濾器是從由啟動Bloom過濾器和當(dāng)前Bloom過濾器組成的群組中選擇的Bloom過濾器。
12.如權(quán)利要求8所述的系統(tǒng),其中第一和第二Bloom過濾器中的至少一個是計數(shù)Bloom過濾器。
13.一種用于搭配虛擬機(jī)(VM)的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括: 具有嵌入在其中的計算機(jī)可讀程序代碼的計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀程序代碼包括: 用于從多個VM中選擇VM用于服務(wù)器搭配的計算機(jī)可讀程序代碼; 用于關(guān)于所選擇的VM對于多個VM的集合中的每一個計算單獨(dú)的共享存儲器系數(shù)的計算機(jī)可讀程序代碼; 用于確定在集合中的VM中與最高的所計算共享存儲器系數(shù)相關(guān)聯(lián)的VM的計算機(jī)可讀程序代碼; 用于在單個服務(wù) 器中將確定的VM和所選擇的VM搭配的計算機(jī)可讀程序代碼。
14.如權(quán)利要求13所述的計算機(jī)程序產(chǎn)品,其中用于計算單獨(dú)的共享存儲器系數(shù)的計算機(jī)可讀程序代碼包括: 用于對于集合中的VM中的每一個創(chuàng)建第一 Bloom過濾器的計算機(jī)可讀程序代碼; 用于對于所選擇的VM創(chuàng)建第二 Bloom過濾器的計算機(jī)可讀程序代碼;以及 用于對于集合中的VM中的每一個組合第一和第二 Bloom過濾器以對于集合中的VM中的每一個產(chǎn)生單獨(dú)的共享存儲器系數(shù)的計算機(jī)可讀程序代碼。
15.如權(quán)利要求14所述的計算機(jī)程序產(chǎn)品,其中用于組合第一和第二Bloom過濾器的計算機(jī)可讀程序代碼,包括: 用于對于VM中的每一個在第一 Bloom過濾器中的值和第二 Bloom過濾器中的對應(yīng)的值之間執(zhí)行邏輯“與”操作的計算機(jī)可讀程序代碼;以及 用于對于VM中的每一個將“與”操作的結(jié)果的位相加,以對于VM中的對應(yīng)一個生成單獨(dú)的共享存儲器系數(shù)的計算機(jī)可讀程序代碼。
16.如權(quán)利要求14所述的計算機(jī)程序產(chǎn)品,其中第一Bloom過濾器是從由啟動Bloom過濾器和當(dāng)前Bloom過濾器組成的群組中選擇的Bloom過濾器。
17.如權(quán)利要求14所述的計算機(jī)程序產(chǎn)品,其中第二Bloom過濾器是從由啟動Bloom過濾器和當(dāng)前Bloom過濾器組成的群組中選擇的Bloom過濾器。
18.如權(quán)利要求14所述的方法,其中第一和第二Bloom過濾器中的至少一個是計數(shù)Bloom過濾器。
【文檔編號】G06F12/00GK104081348SQ201380006288
【公開日】2014年10月1日 申請日期:2013年1月22日 優(yōu)先權(quán)日:2012年1月23日
【發(fā)明者】R.K.阿舒克, M.R.霍格斯特羅姆, T.薩羅, M.亞達(dá)夫 申請人:國際商業(yè)機(jī)器公司