帶寬高效的虛擬機(jī)映像傳送的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種帶寬高效的虛擬機(jī)映像傳送的方法和系統(tǒng)。響應(yīng)于使用現(xiàn)有虛擬機(jī)映像(VMI)文件在節(jié)點(diǎn)中生成虛擬機(jī)(VM)的請求,標(biāo)識組成所述VMI文件的一組文件塊。通過建立用于以帶寬高效的方式取回所述一組文件塊的優(yōu)化計劃,從一組分布式節(jié)點(diǎn)中取回所述一組文件塊。響應(yīng)于從所述分布式節(jié)點(diǎn)中取回所述一組文件塊,將所述一組文件塊重新組裝成所述VMI文件以便生成所述VM。
【專利說明】帶寬高效的虛擬機(jī)映像傳送的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請一般地涉及改進(jìn)的數(shù)據(jù)處理裝置和方法,更具體地說,涉及用于帶寬高效的虛擬機(jī)映像傳送的機(jī)制。
【背景技術(shù)】
[0002]虛擬機(jī)(VM)是執(zhí)行程序的物理機(jī)之類的機(jī)器(即,計算機(jī))的軟件實(shí)現(xiàn)。根據(jù)虛擬機(jī)的用途以及與任何實(shí)際機(jī)器的對應(yīng)程度,將虛擬機(jī)分成兩個主要類別:
[0003]1.系統(tǒng)虛擬機(jī),其提供支持執(zhí)行完整操作系統(tǒng)的完整系統(tǒng)平臺。系統(tǒng)虛擬機(jī)通常仿真現(xiàn)有架構(gòu),并且其構(gòu)建目的如下:在實(shí)際硬件不可用的情況下提供平臺以便運(yùn)行程序,或者使虛擬機(jī)的多個實(shí)例導(dǎo)致在能源消耗和成本效率方面更有效地使用計算資源。
[0004]2.進(jìn)程虛擬機(jī),其旨在運(yùn)行單個程序,這意味著它支持單個進(jìn)程。這種進(jìn)程虛擬機(jī)通常非常適合于一種或多種程序設(shè)計語言,并且其構(gòu)建目的是提供程序可移植性和靈活性。進(jìn)程虛擬機(jī)的一個基本特征是內(nèi)部運(yùn)行的軟件限于虛擬機(jī)提供的資源和抽象,即,進(jìn)程不能脫離關(guān)聯(lián)的虛擬環(huán)境。
[0005]虛擬機(jī)映像(VMI)用于在主機(jī)系統(tǒng)上創(chuàng)建虛擬機(jī)(VM)。即,無需針對VM編寫代碼,用戶可以查找滿足用戶VM要求的現(xiàn)有VMI并且使用該標(biāo)識的VMI作為其VM的基礎(chǔ)。但是,VMI通常是大型文件(其大小范圍通常從數(shù)個GB到數(shù)百個GB),并且通常存在于數(shù)據(jù)中心領(lǐng)域中。數(shù)據(jù)中心中的主機(jī)(物理服務(wù)器)通常通過文件系統(tǒng)訪問VMI,其中文件系統(tǒng)安裝在本地磁盤上或者通過網(wǎng)絡(luò)協(xié)議訪問的遠(yuǎn)程磁盤上。VMI可以包括操作系統(tǒng)(OS)映像、中間件、應(yīng)用等。
【發(fā)明內(nèi)容】
[0006]在一個示例性實(shí)施例中,提供一種在數(shù)據(jù)處理系統(tǒng)中用于帶寬高效的虛擬機(jī)映像傳送的方法。所述示例性實(shí)施例響應(yīng)于使用現(xiàn)有虛擬機(jī)映像(VMI)文件在節(jié)點(diǎn)中生成虛擬機(jī)(VM)的請求,標(biāo)識組成VMI文件的一組文件塊。所述示例性實(shí)施例從一組分布式節(jié)點(diǎn)中取回所述一組文件塊。在所述示例性實(shí)施例中,通過建立用于以帶寬高效的方式取回所述一組文件塊的優(yōu)化計劃,執(zhí)行從所述分布式節(jié)點(diǎn)中取回所述一組文件塊。所述示例性實(shí)施例響應(yīng)于從所述分布式節(jié)點(diǎn)中取回所述一組文件塊,將所述一組文件塊重新組裝成所述VMI文件以便生成所述VM。
[0007]在其它示例性實(shí)施例中,提供一種計算機(jī)程序產(chǎn)品,其包括具有計算機(jī)可讀程序的計算機(jī)可用或可讀介質(zhì)。當(dāng)在計算設(shè)備上執(zhí)行時,所述計算機(jī)可讀程序?qū)е滤鲇嬎阍O(shè)備執(zhí)行上面針對所述方法示例性實(shí)施例概述的各種操作和操作組合。
[0008]在另一個示例性實(shí)施例中,提供一種系統(tǒng)/裝置。所述系統(tǒng)/裝置可以包括一個或多個處理器以及耦合到所述一個或多個處理器的存儲器。所述存儲器可以包括指令,當(dāng)由所述一個或多個處理器執(zhí)行時,所述指令導(dǎo)致所述一個或多個處理器執(zhí)行上面針對所述方法示例性實(shí)施例概述的各種操作和操作組合。
[0009]鑒于以下對本發(fā)明實(shí)例實(shí)施例的詳細(xì)描述,將描述本發(fā)明的這些和其它特性和優(yōu)點(diǎn),或者這些和其它特性和優(yōu)點(diǎn)對于所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說將變得顯而易見。
【專利附圖】
【附圖說明】
[0010]當(dāng)結(jié)合附圖閱讀時,通過參考以下對示例性實(shí)施例的詳細(xì)描述,將最佳地理解發(fā)明本身及其優(yōu)選使用方式、進(jìn)一步的目的和優(yōu)點(diǎn),這些附圖是:
[0011]圖1示出其中可以實(shí)現(xiàn)示例性實(shí)施例的各個方面的實(shí)例分布式數(shù)據(jù)處理系統(tǒng)的圖形表示;
[0012]圖2示出可以有利地使用示例性實(shí)施例的各個方面的數(shù)據(jù)處理系統(tǒng)的框圖;
[0013]圖3是其中可以實(shí)現(xiàn)示例性實(shí)施例的示例性方面的示例性虛擬化平臺的框圖;
[0014]圖4示出根據(jù)一個示例性實(shí)施例的提供帶寬高效的虛擬機(jī)映像傳送的虛擬機(jī)映像傳送機(jī)制;
[0015]圖5示出根據(jù)一個示例性實(shí)施例的虛擬機(jī)映像(VMI)傳送機(jī)制在創(chuàng)建和記錄VMI文件塊以實(shí)現(xiàn)帶寬高效的傳送時執(zhí)行的操作;以及
[0016]圖6示出根據(jù)一個示例性實(shí)施例的虛擬機(jī)映像(VMI)傳送機(jī)制在根據(jù)用于生成虛擬機(jī)(VM)的請求從多個VMI文件塊生成VMI文件時執(zhí)行的操作。
【具體實(shí)施方式】
[0017]再次地,虛擬機(jī)映像(VMI)用于在主機(jī)系統(tǒng)上創(chuàng)建虛擬機(jī)(VM)。S卩,無需針對VM編寫代碼,用戶可以查找滿足用戶VM要求的現(xiàn)有VMI并且使用該標(biāo)識的VMI作為其VM的基礎(chǔ)。但是,VMI通常是大型文件(其大小范圍通常從數(shù)個GB到數(shù)百個GB),并且通常存在于數(shù)據(jù)中心領(lǐng)域中。數(shù)據(jù)中心中的主機(jī)(物理服務(wù)器)通常通過文件系統(tǒng)訪問VMI,其中文件系統(tǒng)安裝在本地磁盤上或者通過網(wǎng)絡(luò)協(xié)議訪問的遠(yuǎn)程磁盤上。VMI可以包括操作系統(tǒng)
(OS)映像、中間件、應(yīng)用等。
[0018]隨著VM使用的增加,VMI開始出現(xiàn)在整個因特網(wǎng)領(lǐng)域中,即,跨數(shù)據(jù)中心、在本地入網(wǎng)點(diǎn)、在網(wǎng)絡(luò)(有線和無線)的邊緣,以及甚至在用戶端設(shè)備(例如,臺式計算機(jī)、膝上型計算機(jī)、智能電話等)處。在這些環(huán)境中,由于VMI的大小極大(比視頻文件大至少1-2個數(shù)量級),擴(kuò)展VMI的分布變得非常重要。如果跨這些網(wǎng)絡(luò)可用的帶寬有限,則示例性實(shí)施例通過一種機(jī)制提供VMI傳送,該機(jī)制將VMI分成具有塊元數(shù)據(jù)的文件塊,創(chuàng)建表以便跨分布式節(jié)點(diǎn)管理塊元數(shù)據(jù),并且在客戶端節(jié)點(diǎn)處智能地重新組裝VMI的文件塊。因此,各示例性實(shí)施例提供帶寬高效的虛擬機(jī)映像傳送。
[0019]因此,各示例性實(shí)施例可以用于許多不同類型的數(shù)據(jù)處理環(huán)境。為了針對特定元素的描述和示例性實(shí)施例的功能提供上下文,在下面圖1和2被提供為其中可以實(shí)現(xiàn)示例性實(shí)施例的各個方面的實(shí)例環(huán)境。應(yīng)該理解,圖1和2只是實(shí)例并且并非旨在斷言或暗示有關(guān)其中可以實(shí)現(xiàn)本發(fā)明的各個方面或?qū)嵤├沫h(huán)境的任何限制。在不偏離本發(fā)明的精神和范圍的情況下可以對所示環(huán)境做出許多修改。
[0020]圖1示出其中可以實(shí)現(xiàn)示例性實(shí)施例的各個方面的實(shí)例分布式數(shù)據(jù)處理系統(tǒng)的圖形表示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括其中可以實(shí)現(xiàn)示例性實(shí)施例的各個方面的計算機(jī)網(wǎng)絡(luò)。分布式數(shù)據(jù)處理系統(tǒng)100包含至少一個網(wǎng)絡(luò)102,其是用于在分布式數(shù)據(jù)處理系統(tǒng)100中連接在一起的各種設(shè)備和計算機(jī)之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包括連接,例如有線、無線通信鏈路或光纜。
[0021]在所示實(shí)例中,服務(wù)器104和服務(wù)器106以及存儲單元108連接到網(wǎng)絡(luò)102。此夕卜,客戶端110、112和114也連接到網(wǎng)絡(luò)102。這些客戶端110、112和114例如可以是個人計算機(jī)、網(wǎng)絡(luò)計算機(jī)等。在所示實(shí)例中,服務(wù)器104為客戶端110、112和114提供數(shù)據(jù),例如引導(dǎo)文件、操作系統(tǒng)映像和應(yīng)用。在所示實(shí)例中,客戶端110、112和114是服務(wù)器104的客戶端。分布式數(shù)據(jù)處理系統(tǒng)100可以包括其它服務(wù)器、客戶端和其它未示出的設(shè)備。
[0022]在所示實(shí)例中,分布式數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),同時網(wǎng)絡(luò)102代表全球范圍內(nèi)使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議集來相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的集合。在因特網(wǎng)的核心是主節(jié)點(diǎn)或主機(jī)之間的高速數(shù)據(jù)通信線路的主干,它包括數(shù)以千計的商業(yè)、政府、教育以及其它路由數(shù)據(jù)和消息的計算機(jī)系統(tǒng)。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100也可以實(shí)現(xiàn)為包括許多不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)等。如上所述,圖1旨在作為一個實(shí)例,并非旨在作為對本發(fā)明的不同實(shí)施例的體系架構(gòu)限制,因此,圖1中所示的特定元素不應(yīng)該被視為有關(guān)其中可以實(shí)現(xiàn)本發(fā)明的示例性實(shí)施例的環(huán)境的限制。
[0023]圖2示出可以有利地使用示例性實(shí)施例的各個方面的數(shù)據(jù)處理系統(tǒng)的框圖。如圖所示,數(shù)據(jù)處理系統(tǒng)200包括處理器卡211a-211n。每個處理器卡21 la_21 In包括處理器和高速緩沖存儲器。例如,處理器卡211a包含處理器212a和高速緩沖存儲器213a,處理器卡211η包含處理器212η和高速緩沖存儲器213η。
[0024]處理器卡211a_211n連接到主總線215。主總線215支持系統(tǒng)平面220,系統(tǒng)平面220包含處理器卡211a-211n和存儲卡223。系統(tǒng)平面還包含數(shù)據(jù)交換機(jī)221和存儲控制器/高速緩存222。存儲控制器/高速緩存222支持存儲卡223,存儲卡223包括具有多個雙列直插式存儲模塊(DIMM)的本地存儲器216。
[0025]數(shù)據(jù)交換機(jī)221連接到位于本機(jī)I/O (N1)平面224中的總線橋217和總線橋218。如圖所示,總線橋218通過系統(tǒng)總線219連接到外圍組件互連(PCI)橋225和226。PCI橋225通過PCI總線228連接到各種I/O設(shè)備。如圖所示,硬盤236可以通過小型計算機(jī)系統(tǒng)接口(SCSI)主機(jī)適配器230連接到PCI總線228。圖形適配器231可以直接或間接連接到PCI總線228。PCI橋226經(jīng)由PCI總線227通過網(wǎng)絡(luò)適配器234和適配器卡插槽235a-235n為外部數(shù)據(jù)流提供連接。
[0026]工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線229通過ISA橋232連接到PCI總線228。ISA橋232通過具有串行連接Seriall和Serial2的N1控制器233提供互連能力。N1控制器233提供軟盤驅(qū)動器連接、鍵盤連接和鼠標(biāo)連接,以便允許數(shù)據(jù)處理系統(tǒng)200通過對應(yīng)的輸入設(shè)備接受來自用戶的數(shù)據(jù)輸入。此外,非易失性RAM(NVRAM) 240提供非易失性存儲器,以便保留來自系統(tǒng)中斷或系統(tǒng)故障(例如電源問題)的某些類型數(shù)據(jù)。系統(tǒng)固件241也連接到ISA總線229,以便實(shí)現(xiàn)初始基本輸入/輸出系統(tǒng)(B1S)功能。服務(wù)處理器244連接到ISA總線229,以便提供用于系統(tǒng)診斷或系統(tǒng)服務(wù)的功能。
[0027]操作系統(tǒng)(OS)存儲在硬盤236上,硬盤236還可以為其它應(yīng)用軟件提供存儲以便由數(shù)據(jù)處理系統(tǒng)執(zhí)行。NVRAM240用于存儲系統(tǒng)變量和錯誤信息以進(jìn)行現(xiàn)場可更換單元(FRU)隔離。在系統(tǒng)啟動期間,引導(dǎo)程序加載操作系統(tǒng)并且啟動操作系統(tǒng)的執(zhí)行。為了加載操作系統(tǒng),引導(dǎo)程序首先從硬盤236查找操作系統(tǒng)內(nèi)核類型,將OS加載到存儲器中,并且跳轉(zhuǎn)到操作系統(tǒng)內(nèi)核提供的初始地址。通常,將操作系統(tǒng)加載到數(shù)據(jù)處理系統(tǒng)中的隨機(jī)存取存儲器(RAM)中。加載和初始化之后,操作系統(tǒng)控制程序的執(zhí)行,并且可以提供諸如資源分配、調(diào)度、輸入/輸出控制和數(shù)據(jù)管理之類的服務(wù)。
[0028]所述示例性實(shí)施例可以包含在各種數(shù)據(jù)處理系統(tǒng)中,這些數(shù)據(jù)處理系統(tǒng)使用多種不同的硬件配置和軟件(例如引導(dǎo)程序和操作系統(tǒng))。數(shù)據(jù)處理系統(tǒng)200例如可以是獨(dú)立的系統(tǒng),或者是諸如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)之類的網(wǎng)絡(luò)的一部分。
[0029]圖3是其中可以實(shí)現(xiàn)示例性實(shí)施例的示例性方面的示例性虛擬化平臺的框圖。虛擬化平臺300中的硬件例如可以實(shí)現(xiàn)為圖2中的數(shù)據(jù)處理系統(tǒng)200。虛擬化平臺300包括分區(qū)硬件330、操作系統(tǒng)302、304、306、308以及固件310。操作系統(tǒng)302,304,306和308可以是單個操作系統(tǒng)的多個副本,或者同時在平臺300上運(yùn)行的多個異構(gòu)操作系統(tǒng)。這些操作系統(tǒng)例如可以使用人1乂?操作系統(tǒng)、i5/0S?操作系統(tǒng)、Linux?操作系統(tǒng)等實(shí)現(xiàn),它們旨在與服務(wù)器固件對接。操作系統(tǒng)302、304、306和308位于虛擬機(jī)303、305、307和309中。
[0030]此外,虛擬機(jī)303、305、307和309還包括固件加載器311、313、315和317。固件加載器311、313、315和317可以使用IEEE-1275標(biāo)準(zhǔn)開放固件和運(yùn)行時抽象軟件(RTAS)實(shí)現(xiàn),RTAS可從國際商業(yè)機(jī)器公司獲得。當(dāng)實(shí)例化虛擬機(jī)303、305、307和309時,固件的虛擬化管理器將開放固件的副本加載到每個虛擬機(jī)中。然后將與虛擬機(jī)關(guān)聯(lián)或分配給虛擬機(jī)的處理器分派到虛擬機(jī)的存儲器,以便執(zhí)行虛擬化固件。
[0031]分區(qū)后的硬件330包括多個處理器332-338、多個系統(tǒng)存儲單元340-346、多個輸入/輸出(I/O)適配器348-362和存儲單元370。分區(qū)后的硬件330還包括服務(wù)處理器390,其可以用于提供各種服務(wù),例如處理虛擬機(jī)中的錯誤??梢詫⑻幚砥?32-338、存儲單元340-346、NVRAM存儲裝置398和I/O適配器348-362中的每一個分配給虛擬化平臺300中的多個虛擬機(jī)之一,每個虛擬機(jī)對應(yīng)于操作系統(tǒng)302、304、306和308之一。
[0032]固件310為虛擬機(jī)303、305、307和309執(zhí)行多種功能和服務(wù),以便創(chuàng)建和實(shí)施虛擬化平臺300的虛擬化。固件310是固件實(shí)現(xiàn)的虛擬機(jī),相當(dāng)于底層硬件。系統(tǒng)管理程序軟件是可從國際商業(yè)機(jī)器公司獲得的服務(wù)器固件的一個實(shí)例。固件是存儲在存儲芯片中的“軟件”,所述存儲芯片不需要電力而保存其內(nèi)容,例如只讀存儲器(ROM)、可編程ROM(PROM)、可擦式可編程ROM(EPROM)、電可擦式可編程ROM(EEPROM)和非易失性隨機(jī)存取存儲器(非易失性RAM)。因此,固件310通過對虛擬化平臺300的所有硬件資源進(jìn)行虛擬化,允許同時執(zhí)行獨(dú)立的操作系統(tǒng)映像302、304、306和308。虛擬化是采用對用戶屏蔽信息技術(shù)資源的物理性質(zhì)和邊界的方式,對這些資源進(jìn)行池化。
[0033]可以通過硬件管理控制臺(例如硬件管理控制臺380)控制不同虛擬機(jī)的操作。硬件管理控制臺380是單獨(dú)的數(shù)據(jù)處理系統(tǒng),系統(tǒng)管理員可以從中執(zhí)行各種功能,包括將資源重新分配給不同的虛擬機(jī)。備選地,虛擬分區(qū)管理器是i5/0S? V5R3操作系統(tǒng)的一個特性,其通過使用服務(wù)工具啟動控制臺會話,允許創(chuàng)建和管理操作系統(tǒng)邏輯虛擬機(jī)。
[0034]所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員應(yīng)該理解,圖1-3中的硬件可以根據(jù)實(shí)施方式而有所變化。除了圖1-3中所示的硬件之外或替代這些硬件,可以使用其它內(nèi)部硬件或外圍設(shè)備,例如閃存、等效的非易失性存儲器或光盤驅(qū)動器等。此外,可以將示例性實(shí)施例的過程應(yīng)用于前面提及的SMP系統(tǒng)之外的多處理器數(shù)據(jù)處理系統(tǒng),而不偏離本發(fā)明的精神和范圍。
[0035]為了生成虛擬機(jī)(例如圖3的虛擬機(jī)303、305、307和309),所述示例性實(shí)施例結(jié)合文件分塊和文件塊重新組裝,使用新元數(shù)據(jù)創(chuàng)建和更新機(jī)制,以便通過網(wǎng)絡(luò)實(shí)現(xiàn)帶寬高效的虛擬機(jī)映像(VMI)傳輸。當(dāng)VMI文件在分布式文件系統(tǒng)的節(jié)點(diǎn)中第一次出現(xiàn)時,對VMI文件進(jìn)行分塊并且創(chuàng)建清單,該清單包含有關(guān)VMI文件的文件塊的元數(shù)據(jù)。然后將每個VM文件元數(shù)據(jù)聚合到節(jié)點(diǎn)處的元數(shù)據(jù)表中,該表跨多個文件跟蹤塊級別信息。元數(shù)據(jù)表具有有關(guān)分布式文件系統(tǒng)中的文件的本地和全局信息??绶植际轿募到y(tǒng)中的所有節(jié)點(diǎn),在其它元數(shù)據(jù)表之間共享和定期更新元數(shù)據(jù)表中的信息。當(dāng)接收到生成新虛擬機(jī)(VM)的請求時,結(jié)合來自其它節(jié)點(diǎn)的優(yōu)化文件塊請求,使用VMI (從在生成該VM所在的節(jié)點(diǎn)處緩存的任何本地文件塊重新組裝而成)生成該VM。
[0036]圖4示出根據(jù)一個示例性實(shí)施例的提供帶寬高效的虛擬機(jī)映像傳送的虛擬機(jī)映像傳送機(jī)制。根據(jù)各示例性實(shí)施例,虛擬機(jī)映像(VMI)傳送機(jī)制(例如VMI傳送機(jī)制404)存在于可以在該處生成虛擬機(jī)(VM)的分布式文件系統(tǒng)400中的每個節(jié)點(diǎn)402處。VMI傳送機(jī)制404包括三個組件:文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406、文件塊元數(shù)據(jù)存儲和更新邏輯408,以及虛擬機(jī)映像重新組裝邏輯410。
[0037]當(dāng)在節(jié)點(diǎn)402中生成新VMI文件時,文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406處理VMI文件以便將VMI文件分成文件塊集合。文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406例如使用基于滾動散列的文件分塊、基于固定偏移的文件分塊等,針對VMI文件執(zhí)行文件分塊處理。當(dāng)文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406創(chuàng)建每個文件塊416時,文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406還創(chuàng)建標(biāo)識該文件塊416的屬性或特性的元數(shù)據(jù)418。將VMI文件分成具有關(guān)聯(lián)元數(shù)據(jù)422的文件塊420之后,文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406創(chuàng)建清單424,以便將VMI文件表示為文件塊420的元數(shù)據(jù)422的集合。每個文件塊416通過以下項(xiàng)中的一個或多個以其相應(yīng)的元數(shù)據(jù)表示:塊散列、大小、文件中的起始偏移、文件塊所屬的原始文件名稱等。注意,可以將也可以不將原始VMI文件實(shí)際分成文件塊,但文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406針對VMI文件創(chuàng)建文件塊420的集合,并且創(chuàng)建清單424以便根據(jù)元數(shù)據(jù)422將VMI文件表示為文件塊420的集合。文件分塊和元數(shù)據(jù)創(chuàng)建邏輯406然后將具有關(guān)聯(lián)元數(shù)據(jù)422的文件塊420的集合以及清單文件424存儲在本地高速緩存412中。
[0038]因?yàn)樾耉MI文件的文件分塊過程可以在分布式文件系統(tǒng)400中的任何節(jié)點(diǎn)402中發(fā)生,所以每個其它節(jié)點(diǎn)402中的文件塊元數(shù)據(jù)存儲和更新邏輯408將存儲在本地高速緩存412中與文件塊關(guān)聯(lián)的元數(shù)據(jù)422以及清單424聚合到元數(shù)據(jù)表414中。此外,文件塊元數(shù)據(jù)存儲和更新邏輯408還通過網(wǎng)絡(luò)426與其它節(jié)點(diǎn)402中的其它文件塊元數(shù)據(jù)存儲和更新邏輯408通信,以便將存儲在其本地高速緩存412中并且在其它元數(shù)據(jù)表414中標(biāo)識的文件塊元數(shù)據(jù)和清單文件聚合到元數(shù)據(jù)表414中,從而跨分布式文件系統(tǒng)400中的所有VMI文件跟蹤文件塊級別信息和清單。對于文件塊級別信息,元數(shù)據(jù)表414包括以下項(xiàng)中的一個或多個:塊散列、大小、文件塊416所屬的VMI文件名稱列表、VMI文件中的起始偏移、文件塊416在分布式文件系統(tǒng)400中的位置等。因此,每個節(jié)點(diǎn)402包括它自己的元數(shù)據(jù)表414以及文件塊元數(shù)據(jù)存儲和更新邏輯408,文件塊元數(shù)據(jù)存儲和更新邏輯408將VMI文件的文件塊420的本地元數(shù)據(jù)422和VMI文件的清單424聚合到元數(shù)據(jù)表414中,以及聚合存在于特定節(jié)點(diǎn)402中的其它VMI文件和來自其它節(jié)點(diǎn)402的其它元數(shù)據(jù)表414的VMI文件的信息,從而獲得有關(guān)全局文件塊級別元數(shù)據(jù)和清單的當(dāng)前信息。文件塊元數(shù)據(jù)存儲和更新邏輯408可以使用輪詢、成對信息交換、集中協(xié)調(diào)的交換等,執(zhí)行此級別的聚合。
[0039]當(dāng)請求使用分布式文件系統(tǒng)400中的現(xiàn)有VMI文件生成虛擬機(jī)時,虛擬機(jī)映像重新組裝邏輯410首先分析與該VMI文件關(guān)聯(lián)的清單文件(從元數(shù)據(jù)表414標(biāo)識該清單文件)。此外,文件塊元數(shù)據(jù)存儲和更新邏輯408已聚合與分布式數(shù)據(jù)處理系統(tǒng)400中的所有VMI文件相關(guān)的所有清單和元數(shù)據(jù)。因此,虛擬機(jī)映像重新組裝邏輯410能夠通過從元數(shù)據(jù)表414標(biāo)識關(guān)聯(lián)的清單文件,分析與該VMI文件關(guān)聯(lián)的清單文件。虛擬機(jī)映像重新組裝邏輯410查看文件清單,以便標(biāo)識組成該VMI文件的一組文件塊。虛擬機(jī)映像重新組裝邏輯410搜索其本地高速緩存412,以便標(biāo)識一個或多個文件塊是否存在于本地高速緩存412中。
[0040]如所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員應(yīng)該理解的,盡管VM可以在整體組成方面有所不同,但一組VM中的一個或多個文件塊可能是通用的。例如,盡管三個不同的VM可以分別使用AIX?操作系統(tǒng)、i5/0S?操作系統(tǒng)和Linux?操作系統(tǒng),但所有三個VM可以使用相同的中間件或應(yīng)用編程接口(API)。因此,可以從本地高速緩存412獲得被請求VMI的API的文件塊,而該VMI的操作系統(tǒng)的文件塊可能不存在于本地高速緩存412中。對于被請求VMI的不存在于本地高速緩存412中的那些文件塊,虛擬機(jī)映像重新組裝邏輯410基于關(guān)聯(lián)元數(shù)據(jù)表414中的元數(shù)據(jù)標(biāo)識所需文件塊的位置。在標(biāo)識所需文件塊的位置時,虛擬機(jī)映像重新組裝邏輯410可以標(biāo)識一個或多個所需文件塊存在于其它節(jié)點(diǎn)402的一個以上的其它本地高速緩存412中。
[0041]如果一個或多個文件塊存在于多個其它本地高速緩存412中,則虛擬機(jī)映像重新組裝邏輯410創(chuàng)建用于收集存在于多個其它本地高速緩存412中的一個或多個塊的優(yōu)化計劃。即,如果所需文件塊僅存在于一個其它本地高速緩存412中,則虛擬機(jī)映像重新組裝邏輯410必須僅從該其它本地高速緩存412取回文件塊。但是,如果文件塊存在于多個其它本地高速緩存412中,則虛擬機(jī)映像重新組裝邏輯410創(chuàng)建優(yōu)化計劃以便以帶寬高效的方式從另一本地高速緩存412取回所需文件塊。因此,對于一個或多個文件塊中存在于多個其它本地高速緩存412中的每個文件塊,虛擬機(jī)映像重新組裝邏輯410基于一個或多個準(zhǔn)則選擇要從中取回該文件塊的其它本地高速緩存412。該準(zhǔn)則可以包括到其它本地高速緩存412的帶寬接入、與訪問其它本地高速緩存412關(guān)聯(lián)的歷史數(shù)據(jù)、訪問其它本地高速緩存412的優(yōu)先級、該文件塊與要從同一個其它本地高速緩存412中取回的其它文件塊的分組、該文件塊如何與其它文件塊一起存儲在其它本地高速緩存412中的串行基礎(chǔ)、用于訪問其它本地高速緩存412的訪問控制策略等。
[0042]基于對這些準(zhǔn)則的分析,虛擬機(jī)映像重新組裝邏輯410標(biāo)識要從中取回特定文件塊的最佳其它本地高速緩存412。針對一個或多個文件塊中存在于多個其它本地高速緩存412中的每個文件塊選擇最佳計劃之后,虛擬機(jī)映像重新組裝邏輯410按照優(yōu)化計劃,從它自己的本地高速緩存412和其它本地高速緩存412中取回文件塊。取回所有文件塊之后,虛擬機(jī)映像重新組裝邏輯410基于所取回的文件塊而重新組裝VMI文件。此外,虛擬機(jī)映像重新組裝邏輯410與塊元數(shù)據(jù)存儲和更新邏輯408交互,以便可選地將取回的文件塊存儲在本地高速緩存412中,以及更新元數(shù)據(jù)表414以指示現(xiàn)在將文件塊存儲在本地高速緩存412中。
[0043]所屬【技術(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)”。此外,本發(fā)明的各個方面還可以實(shí)現(xiàn)為在任意一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可用的程序代碼。
[0044]可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置、器件,或者上述的任意合適的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CDROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0045]計算機(jī)可讀的信號介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一但不限于一電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0046]計算機(jī)可讀介質(zhì)上包含的計算機(jī)代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、射頻(RF)等等,或者上述的任意合適的組合。
[0047]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明的各個方面的操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java?、Smalltalk?、C++等,還包括常規(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)連接)。
[0048]下面將參照根據(jù)本發(fā)明示例性實(shí)施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各個方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實(shí)現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0049]也可以把這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)。
[0050]也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實(shí)現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的過程。
[0051]圖5示出根據(jù)一個示例性實(shí)施例的虛擬機(jī)映像(VMI)傳送機(jī)制在創(chuàng)建和記錄VMI文件塊以實(shí)現(xiàn)帶寬高效的傳送時執(zhí)行的操作。當(dāng)操作開始時,VMI傳送機(jī)制接收生成新VMI文件的指示(步驟502)。VMI傳送機(jī)制處理VMI文件以便將VMI文件分成文件塊集合(步驟504)。當(dāng)VMI傳送機(jī)制創(chuàng)建每個文件塊時,VMI傳送機(jī)制創(chuàng)建標(biāo)識該文件塊的屬性或特性的元數(shù)據(jù)(步驟506)。在VMI傳送機(jī)制將VMI文件分成具有關(guān)聯(lián)元數(shù)據(jù)的文件塊之后,VMI傳送機(jī)制創(chuàng)建清單以便將VMI文件表示為文件塊的元數(shù)據(jù)集合(步驟508)。VMI傳送機(jī)制然后將具有關(guān)聯(lián)元數(shù)據(jù)的文件塊集合以及清單文件存儲在本地高速緩存中(步驟510)。VMI傳送機(jī)制然后將文件塊元數(shù)據(jù)以及清單聚合到元數(shù)據(jù)表中(步驟512)。VMI傳送機(jī)制然后與其它節(jié)點(diǎn)通信以便提供對元數(shù)據(jù)表進(jìn)行的更改,以及收集其它節(jié)點(diǎn)對其元數(shù)據(jù)表進(jìn)行的更新(步驟514),此后操作結(jié)束。盡管步驟514被示為在創(chuàng)建和記錄VMI文件塊以實(shí)現(xiàn)帶寬高效的傳送的過程結(jié)束時發(fā)生,但步驟514還可以在其它時間發(fā)生,例如按照周期性時間間隔、預(yù)定時間間隔等。
[0052]圖6示出根據(jù)一個示例性實(shí)施例的虛擬機(jī)映像(VMI)傳送機(jī)制在根據(jù)用于生成虛擬機(jī)(VM)的請求從多個VMI文件塊生成VMI文件時執(zhí)行的操作。當(dāng)操作開始時,VMI傳送機(jī)制接收使用全部或部分存在于分布式文件系統(tǒng)中的某個位置的現(xiàn)有VMI文件生成虛擬機(jī)的請求(步驟602)。VMI傳送機(jī)制分析與VMI文件關(guān)聯(lián)的清單文件(從元數(shù)據(jù)表標(biāo)識該清單文件)(步驟604)。VMI傳送機(jī)制標(biāo)識組成VMI文件的一組文件塊(步驟606)。對于每個標(biāo)識的文件塊,VMI傳送機(jī)制搜索其本地高速緩存以便標(biāo)識本地高速緩存中是否存在一個或多個文件塊(步驟608)。
[0053]如果在步驟608,文件塊存在于它自己的本地高速緩存中,則VMI傳送機(jī)制從它自己的本地高速緩存中取回文件塊(步驟610)。如果在步驟608,文件塊未存在于它自己的本地高速緩存中,則VMI傳送機(jī)制基于關(guān)聯(lián)元數(shù)據(jù)表中的元數(shù)據(jù),標(biāo)識所需文件塊的位置(步驟612)。在標(biāo)識存在于其它節(jié)點(diǎn)的其它本地高速緩存中的所有所需文件塊的位置后,VMI傳送機(jī)制創(chuàng)建用于收集存在于其它本地高速緩存中的一個或多個塊的優(yōu)化計劃(步驟614)。即,針對未存在于它自己的本地高速緩存中的每個所需文件塊,VMI傳送機(jī)制基于一個或多個準(zhǔn)則,選擇要從中取回每個所需文件塊的其它本地高速緩存(步驟616)。所述準(zhǔn)則包括到其它本地高速緩存的帶寬接入、與訪問其它本地高速緩存關(guān)聯(lián)的歷史數(shù)據(jù)、訪問其它本地高速緩存的優(yōu)先級、該文件塊與要從同一個其它本地高速緩存中取回的其它文件塊的分組、該文件塊如何與其它文件塊一起存儲在其它本地高速緩存中的串行基礎(chǔ)、訪問其它本地高速緩存的訪問控制策略等。基于對這些準(zhǔn)則的分析,VMI傳送機(jī)制標(biāo)識要從中取回每個文件塊的最佳其它本地高速緩存。
[0054]針對一個或多個文件塊中存在于其它本地高速緩存中的每個文件塊選擇最佳計劃之后,VMI傳送機(jī)制按照優(yōu)化計劃,從其它本地高速緩存中取回文件塊(步驟618)。從步驟618或步驟610取回所有的文件塊之后,VMI傳送機(jī)制基于所取回的文件塊重新組裝VMI文件(步驟620)。此外,VMI傳送機(jī)制將取回的文件塊存儲在其本地高速緩存中,以及更新其元數(shù)據(jù)表以指示現(xiàn)在將文件塊存儲在其本地高速緩存中(步驟622),此后操作結(jié)束。
[0055]附圖中的流程圖和框圖顯示了根據(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)。
[0056]因此,各示例性實(shí)施例提供帶寬高效的虛擬機(jī)映像傳送機(jī)制。當(dāng)VMI文件在分布式文件系統(tǒng)的節(jié)點(diǎn)中第一次出現(xiàn)時,對該VMI文件進(jìn)行分塊并且創(chuàng)建清單,該清單包含有關(guān)該VMI文件的文件塊的元數(shù)據(jù)。然后將每個VM文件元數(shù)據(jù)聚合到節(jié)點(diǎn)處的元數(shù)據(jù)表中,該表跨多個文件跟蹤塊級別信息。元數(shù)據(jù)表具有有關(guān)分布式文件系統(tǒng)中的文件的本地和全局信息。跨分布式文件系統(tǒng)中的所有節(jié)點(diǎn),在其它元數(shù)據(jù)表之間共享和定期更新元數(shù)據(jù)表中的信息。當(dāng)接收到生成新虛擬機(jī)(VM)的請求時,結(jié)合來自其它節(jié)點(diǎn)的優(yōu)化文件塊請求,使用VMI (從在生成該VM所在的節(jié)點(diǎn)處緩存的任何本地文件塊重新組裝而成)生成該VM。
[0057]如上所述,應(yīng)該理解,各示例性實(shí)施例可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或包含硬件和軟件元素的實(shí)施例的形式。在一個實(shí)例實(shí)施例中,各示例性實(shí)施例的機(jī)制以軟件或程序代碼實(shí)現(xiàn),該軟件或程序代碼包括但不限于固件、駐留軟件、微代碼等。
[0058]適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個通過系統(tǒng)總線直接或間接連接到存儲元件的處理器。存儲元件可以包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲器、大容量存儲裝置以及提供至少某些程序代碼的臨時存儲以減少必須在執(zhí)行期間從大容量存儲裝置取回代碼的次數(shù)的高速緩沖存儲器。
[0059]輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點(diǎn)設(shè)備等)可以直接或通過中間I/O控制器與系統(tǒng)相連。網(wǎng)絡(luò)適配器也可以被連接到系統(tǒng)以使所述數(shù)據(jù)處理系統(tǒng)能夠通過中間專用或公共網(wǎng)絡(luò)變得與其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲器件相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是當(dāng)前可用的網(wǎng)絡(luò)適配器類型中的少數(shù)幾種。
[0060]出于示例和說明目的給出了對本發(fā)明的描述,并且所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的形式。對于所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,許多修改和變化都將是顯而易見的。實(shí)施例的選擇和描述是為了最佳地解釋本發(fā)明的原理、實(shí)際應(yīng)用,并且當(dāng)適合于所構(gòu)想的特定使用時,使得所屬【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能夠理解本發(fā)明的具有各種修改的各種實(shí)施例。
【權(quán)利要求】
1.一種在一組分布式節(jié)點(diǎn)中用于帶寬高效的虛擬機(jī)映像傳送的方法,所述方法包括: 響應(yīng)于使用現(xiàn)有虛擬機(jī)映像VMI文件在節(jié)點(diǎn)中生成虛擬機(jī)VM的請求,標(biāo)識組成所述VMI文件的一組文件塊; 從所述一組分布式節(jié)點(diǎn)內(nèi)取回所述一組文件塊,其中從所述一組分布式節(jié)點(diǎn)內(nèi)取回所述一組文件塊包括建立用于以帶寬高效的方式取回所述一組文件塊的優(yōu)化計劃;以及響應(yīng)于從所述一組分布式節(jié)點(diǎn)內(nèi)取回所述一組文件塊,將所述一組文件塊重新組裝成所述VMI文件以便生成所述VM。
2.根據(jù)權(quán)利要求1的方法,其中通過所述方法建立所述優(yōu)化計劃包括: 針對所述一組文件塊中的每個文件塊,判定該文件塊是否存在于本地存儲設(shè)備中; 響應(yīng)于該文件塊存在于所述本地存儲設(shè)備中,從所述本地存儲設(shè)備中取回該文件塊;以及 響應(yīng)于該文件塊未存在于所述本地存儲設(shè)備中: 標(biāo)識該文件塊在所述一組分布式節(jié)點(diǎn)內(nèi)的一個或多個其它節(jié)點(diǎn)中的一個或多個位置; 響應(yīng)于該文件塊存在于所述一個或多個其它節(jié)點(diǎn)中的一個以上的其它節(jié)點(diǎn)中,基于與所述一個以上的其它節(jié)點(diǎn)中的每個節(jié)點(diǎn)關(guān)聯(lián)的一組準(zhǔn)則中的一個或多個準(zhǔn)則,選擇要從中取回該文件塊的最佳節(jié)點(diǎn);以及 響應(yīng)于標(biāo)識最佳節(jié)點(diǎn),從與所述最佳節(jié)點(diǎn)關(guān)聯(lián)的存儲設(shè)備取回該文件塊。
3.根據(jù)權(quán)利要求2的方法,其中所述一組準(zhǔn)則包括以下項(xiàng)中的一個或多個:到所述節(jié)點(diǎn)的帶寬接入、與訪問所述節(jié)點(diǎn)關(guān)聯(lián)的歷史數(shù)據(jù)、訪問所述節(jié)點(diǎn)的優(yōu)先級、該文件塊與要從所述節(jié)點(diǎn)中取回的其它文件塊的分組、該文件塊如何與其它文件塊一起存儲在所述節(jié)點(diǎn)中,或者與訪問所述一個或多個其它節(jié)點(diǎn)中的文件塊關(guān)聯(lián)的訪問控制策略。
4.根據(jù)權(quán)利要求2的方法,其中從元數(shù)據(jù)表中標(biāo)識未存在于所述本地存儲設(shè)備中的每個文件塊的位置,其中所述元數(shù)據(jù)表包括有關(guān)每個文件塊的信息,并且其中所述信息包括以下項(xiàng)中的一個或多個:塊散列、大小、所述VMI文件中的起始偏移,或者該文件塊所屬的原始文件名稱。
5.根據(jù)權(quán)利要求2的方法,其中從來自所述一個或多個其它節(jié)點(diǎn)的被聚合到所述元數(shù)據(jù)表中的元數(shù)據(jù)來標(biāo)識未存在于所述本地存儲設(shè)備中的每個文件塊的位置。
6.根據(jù)權(quán)利要求5的方法,其中當(dāng)生成新VMI文件時、按照周期性間隔或者按照預(yù)定間隔,將所述元數(shù)據(jù)聚合到所述元數(shù)據(jù)表中。
7.根據(jù)權(quán)利要求1的方法,其中從與所述VMI文件關(guān)聯(lián)的清單文件來標(biāo)識組成所述VMI文件的所述一組文件塊。
8.根據(jù)權(quán)利要求7的方法,其中在在該處生成所述VM的節(jié)點(diǎn)中的至少一個節(jié)點(diǎn)中或者在所述一個或多個其它節(jié)點(diǎn)中的另一節(jié)點(diǎn)中生成所述清單文件,并且其中響應(yīng)于在所述一個或多個其它節(jié)點(diǎn)中的所述另一節(jié)點(diǎn)中生成所述清單文件,將所述清單文件聚合到在該處生成所述VM的所述節(jié)點(diǎn)中。
9.一種裝置,包括: 處理器;以及 存儲器,其耦合到所述處理器,其中所述存儲器包括指令,當(dāng)由所述處理器執(zhí)行時,所述指令導(dǎo)致所述處理器: 響應(yīng)于使用現(xiàn)有虛擬機(jī)映像VMI文件在節(jié)點(diǎn)中生成虛擬機(jī)VM的請求,標(biāo)識組成所述VMI文件的一組文件塊; 從一組分布式節(jié)點(diǎn)內(nèi)取回所述一組文件塊,其中從所述一組分布式節(jié)點(diǎn)內(nèi)取回所述一組文件塊包括建立用于以帶寬高效的方式取回所述一組文件塊的優(yōu)化計劃;以及 響應(yīng)于從所述一組分布式節(jié)點(diǎn)內(nèi)取回所述一組文件塊,將所述一組文件塊重新組裝成所述VMI文件以便生成所述VM。
10.根據(jù)權(quán)利要求9的裝置,其中通過所述指令建立所述優(yōu)化計劃進(jìn)一步導(dǎo)致所述處理器: 針對所述一組文件塊中的每個文件塊,判定該文件塊是否存在于本地存儲設(shè)備中; 響應(yīng)于該文件塊存在于所述本地存儲設(shè)備中,從所述本地存儲設(shè)備中取回該文件塊;以及 響應(yīng)于該文件塊未存在于所述本地存儲設(shè)備中: 標(biāo)識該文件塊在所述一組分布式節(jié)點(diǎn)內(nèi)的一個或多個其它節(jié)點(diǎn)中的一個或多個位置; 響應(yīng)于該文件塊存在于所述一個或多個其它節(jié)點(diǎn)中的一個以上的其它節(jié)點(diǎn)中,基于與所述一個以上的其它節(jié)點(diǎn)中的每個節(jié)點(diǎn)關(guān)聯(lián)的一組準(zhǔn)則中的一個或多個準(zhǔn)則,選擇要從中取回該文件塊的最佳節(jié)點(diǎn);以及 響應(yīng)于標(biāo)識最佳節(jié)點(diǎn),從與所述最佳節(jié)點(diǎn)關(guān)聯(lián)的存儲設(shè)備取回該文件塊。
11.根據(jù)權(quán)利要求10的裝置,其中所述一組準(zhǔn)則包括以下項(xiàng)中的一個或多個:到所述節(jié)點(diǎn)的帶寬接入、與訪問所述節(jié)點(diǎn)關(guān)聯(lián)的歷史數(shù)據(jù)、訪問所述節(jié)點(diǎn)的優(yōu)先級、該文件塊與要從所述節(jié)點(diǎn)中取回的其它文件塊的分組、該文件塊如何與其它文件塊一起存儲在所述節(jié)點(diǎn)中,或者與訪問所述一個或多個其它節(jié)點(diǎn)中的文件塊關(guān)聯(lián)的訪問控制策略。
12.根據(jù)權(quán)利要求10的裝置,其中從元數(shù)據(jù)表中標(biāo)識未存在于所述本地存儲設(shè)備中的每個文件塊的位置,其中所述元數(shù)據(jù)表包括有關(guān)每個文件塊的信息,并且其中所述信息包括以下項(xiàng)中的一個或多個:塊散列、大小、所述VMI文件中的起始偏移,或者該文件塊所屬的原始文件名稱。
13.根據(jù)權(quán)利要求10的裝置,其中從來自所述一個或多個其它節(jié)點(diǎn)的被聚合到所述元數(shù)據(jù)表中的元數(shù)據(jù)來標(biāo)識未存在于所述本地存儲設(shè)備中的每個文件塊的位置。
14.根據(jù)權(quán)利要求13的裝置,其中當(dāng)生成新VMI文件時、按照周期性間隔或者按照預(yù)定間隔,將所述元數(shù)據(jù)聚合到所述元數(shù)據(jù)表中。
【文檔編號】G06F17/30GK104133718SQ201410169332
【公開日】2014年11月5日 申請日期:2014年4月25日 優(yōu)先權(quán)日:2013年4月30日
【發(fā)明者】D·M·弗賴穆特, 王浩然, M·扎菲爾 申請人:國際商業(yè)機(jī)器公司