用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的方法和系統(tǒng)的制作方法
【專利摘要】示例性實施例包括一種用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的方法、系統(tǒng)和計算機程序產(chǎn)品。標識將用于創(chuàng)建虛擬機的模板,模板包括可用來在數(shù)據(jù)處理系統(tǒng)上創(chuàng)建虛擬機的數(shù)據(jù)。在變異模板中選擇數(shù)據(jù)塊以用于從變異模板重構(gòu)模板。該數(shù)據(jù)塊被包括在變異模板中與變異模板關(guān)聯(lián)的清單中所指定的位置處。用該數(shù)據(jù)塊填充模板的數(shù)據(jù)結(jié)構(gòu),從而數(shù)據(jù)塊占用模板中的預(yù)定位置,由此從變異模板重構(gòu)模板。使用該模板在數(shù)據(jù)處理系統(tǒng)上創(chuàng)建虛擬機。
【專利說明】用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要涉及一種用于安裝或者調(diào)配(provision)虛擬機的方法、系統(tǒng)和計算機程序產(chǎn)品。具體而言,本發(fā)明涉及一種使用預(yù)調(diào)配的變異(mutated)模板以用于在計算節(jié)點上安裝多種虛擬機(VM)配置的方法、系統(tǒng)和計算機程序產(chǎn)品。
【背景技術(shù)】
[0002]某些數(shù)據(jù)處理系統(tǒng)被配置用于同時處理若干工作量。例如在單個主機數(shù)據(jù)處理系統(tǒng)上配置的多個獨立的虛擬數(shù)據(jù)處理系統(tǒng),諸如獨立的VM,經(jīng)常處理針對不同客戶端或者應(yīng)用的獨立的工作量。主機數(shù)據(jù)處理系統(tǒng)也稱為計算節(jié)點。
[0003]在大規(guī)模數(shù)據(jù)處理環(huán)境中,諸如在數(shù)據(jù)中心中,數(shù)以千計的VM可以在任何給定時間在主機上操作,并且即使不以千計也以百計的這樣的主機可以同時在數(shù)據(jù)中心中操作。虛擬化的數(shù)據(jù)處理環(huán)境,諸如所描述的數(shù)據(jù)中心,常被稱為“云”,其按需向若干客戶端提供計算資源和計算服務(wù)。
[0004]在計算節(jié)點上按需安裝或創(chuàng)建VM以用于處理工作量、滿足服務(wù)水平要求以及許多其他原因。另外,出于不同目的可能需要不同的VM配置。例如在僅為了向用戶提供通用計算平臺而創(chuàng)建VM時,該VM可以創(chuàng)建成僅具有基本操作系統(tǒng)而沒有應(yīng)用。在另一示例中,當(dāng)新VM必須提供應(yīng)用服務(wù)時,該VM可以創(chuàng)建成具有操作系統(tǒng)和在其上配置的應(yīng)用服務(wù)器。類似地,可以預(yù)先配置許多不同的VM配置作為模板映像(模板)。當(dāng)必須在計算節(jié)點上創(chuàng)建具有特定預(yù)先確定的配置的VM時,從模板存儲裝置,諸如數(shù)據(jù)庫或者文件系統(tǒng),選擇合適的模板并將其安裝在計算節(jié)點上以創(chuàng)建具有期望配置的VM。
【發(fā)明內(nèi)容】
[0005]示例性實施例提供一種用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的方法、系統(tǒng)和計算機程序產(chǎn)品。在至少一個實施例中,提供一種用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的方法。該方法包括使用處理器和存儲器來標識將用于創(chuàng)建虛擬機的模板,模板包括可用來在數(shù)據(jù)處理系統(tǒng)上創(chuàng)建虛擬機的數(shù)據(jù)。該方法還包括選擇變異模板中的數(shù)據(jù)塊以用于從變異模板來重構(gòu)模板,其中該數(shù)據(jù)塊被包括在變異模板中與變異模板關(guān)聯(lián)的清單中所指定的位置處。該方法還包括用數(shù)據(jù)塊填充模板的數(shù)據(jù)結(jié)構(gòu),從而數(shù)據(jù)塊占用模板中的預(yù)定位置,由此從變異模板來重構(gòu)模板。該方法還包括使用模板在數(shù)據(jù)處理系統(tǒng)上創(chuàng)建虛擬機。
[0006]在另一實施例中,該方法還包括標識將包括在模板中以用于重構(gòu)的第二數(shù)據(jù)塊。該方法還包括確定變異模板未包括第二數(shù)據(jù)塊。該方法還包括從源接收第二數(shù)據(jù)塊。該方法還包括用第二數(shù)據(jù)塊填充模板的數(shù)據(jù)結(jié)構(gòu),從而第二數(shù)據(jù)塊占用模板中的第二預(yù)定位置。
[0007]在另一實施例中,該方法還包括在清單中找出對源的參考。該方法還包括使用該參考來訪問源并且接收第二數(shù)據(jù)塊。
[0008]在另一實施例中,該源已知用于提供第二數(shù)據(jù)塊。[0009]在另一實施例中,該方法還包括接收描述模板的結(jié)構(gòu)的信息。該方法還包括標識數(shù)據(jù)塊作為模板的結(jié)構(gòu)的一部分。該方法還包括使用結(jié)構(gòu)進一步標識模板中的用于數(shù)據(jù)塊的位置。
[0010]在另一實施例中,數(shù)據(jù)塊在模板中的位置不同于在與變異模板關(guān)聯(lián)的清單中所指定的數(shù)據(jù)塊的位置。
[0011]在另一實施例中,清單指定將包括在模板中的多個數(shù)據(jù)塊,該多個數(shù)據(jù)塊包括所述數(shù)據(jù)塊,其中清單還指定模板中的用于數(shù)據(jù)塊的第一位置。該方法還包括使用清單來標識數(shù)據(jù)塊在變異模板中的位置。該方法還包括將數(shù)據(jù)塊從變異模板中的位置移動到模板中的位置。
[0012]在另一實施例中,該方法還包括修改變異模板的數(shù)據(jù)結(jié)構(gòu)以將變異模板的數(shù)據(jù)結(jié)構(gòu)變換成模板的數(shù)據(jù)結(jié)構(gòu),并且其中移動是修改的一部分。
[0013]在另一實施例中,該方法還包括接收用于創(chuàng)建虛擬機的請求,其中標識模板響應(yīng)于接收請求。
[0014]在另一實施例中,清單對應(yīng)于模板。
[0015]在另一實施例中,清單對應(yīng)于變異模板。
【專利附圖】
【附圖說明】
[0016]在所附權(quán)利要求中闡述被認為是本發(fā)明的特點的新穎特征。然而將通過參照在結(jié)合附圖閱讀時的對示例實施例的以下具體描述來最好地理解本發(fā)明本身,包括其優(yōu)選實施方式、進一步的目的和優(yōu)點,在附圖中:
[0017]圖1描繪其中可以實施示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖;
[0018]圖2描繪其中可以實施示例性實施例的在邏輯上分區(qū)的示例平臺的框圖;
[0019]圖3描繪根據(jù)一個示例性實施例的用于創(chuàng)建變異模板以供預(yù)調(diào)配的示例配置的框圖;
[0020]圖4描繪根據(jù)一個示例性實施例的調(diào)配的模板構(gòu)造應(yīng)用的示例配置的框圖;
[0021]圖5描繪根據(jù)一個示例性實施例的用于使用變異模板來預(yù)調(diào)配計算節(jié)點的示例配置的框圖;
[0022]圖6描繪根據(jù)一個示例性實施例的用于創(chuàng)建清單的配置以及示例清單的框圖;
[0023]圖7描繪根據(jù)一個示例性實施例的另一示例清單的框圖;
[0024]圖8描繪根據(jù)一個示例性實施例的用于在計算節(jié)點處使用預(yù)調(diào)配的變異模板的示例配置的框圖;
[0025]圖9描繪根據(jù)一個示例性實施例的模板構(gòu)造應(yīng)用的示例配置的框圖;
[0026]圖10描繪根據(jù)一個示例性實施例的模板構(gòu)造應(yīng)用的示例配置的框圖;
[0027]圖11描繪根據(jù)一個示例性實施例的為預(yù)調(diào)配構(gòu)造變異模板的示例過程的流程圖;
[0028]圖12描繪根據(jù)一個示例性實施例的用于構(gòu)造與變異模板對應(yīng)的清單的示例過程的流程圖;
[0029]圖13描繪根據(jù)一個示例性實施例的創(chuàng)建與變異模板對應(yīng)的模板特定清單的另一示例過程的流程圖;[0030]圖14描繪根據(jù)一個示例性實施例的從預(yù)調(diào)配的變異模板重構(gòu)模板的示例過程的流程圖;以及
[0031]圖15描繪根據(jù)一個示例性實施例的從預(yù)調(diào)配的變異模板重構(gòu)模板的另一示例過程的流程圖。
【具體實施方式】
[0032]一個實施例可與任何大小的模板一起使用而無限制。當(dāng)前,典型模板的大小是吉比特(GB)量級。典型的虛擬化的數(shù)據(jù)處理環(huán)境可以運用數(shù)以百計或者甚至數(shù)以千計的不同VM配置。因而,這樣的環(huán)境可以存儲與那些VM配置對應(yīng)的數(shù)以百計或者數(shù)以千計的模板。
[0033]一般而言,當(dāng)計算節(jié)點必須安裝具有特定配置的VM時,計算節(jié)點通過數(shù)據(jù)網(wǎng)絡(luò)從模板貯存庫傳送對應(yīng)模板。在一些虛擬化的數(shù)據(jù)處理環(huán)境中,在某些計算節(jié)點上存儲或者預(yù)調(diào)配某些模板的副本,從而當(dāng)需要對應(yīng)的VM時,該VM可以迅速被創(chuàng)建而無需通過數(shù)據(jù)網(wǎng)絡(luò)傳送模板。
[0034]示例性實施例認識到實際計算節(jié)點具有有限的可供其存儲模板的本地或者遠程存儲空間。因而,僅能在計算節(jié)點上預(yù)調(diào)配有限數(shù)目的模板,并且當(dāng)必須在計算節(jié)點上創(chuàng)建與未在計算節(jié)點上預(yù)調(diào)配的模板對應(yīng)的VM時,必須從模板存儲裝置傳送該模板。
[0035]示例性實施例還認識到通過數(shù)據(jù)網(wǎng)絡(luò)傳送模板給數(shù)據(jù)網(wǎng)絡(luò)增添了顯著的數(shù)據(jù)流量。示例性實施例也認識到即使在計算節(jié)點處本地存儲某些模板,計算節(jié)點仍然必須在需要非本地存儲的模板時通過數(shù)據(jù)網(wǎng)絡(luò)傳送那些非本地存儲的模板。
[0036]示例性實施例認識到,當(dāng)前模板或者在計算節(jié)點處完全本地可用,或者必須從模板存儲系統(tǒng)完全傳送模板。另外,示例性實施例認識到虛擬化的數(shù)據(jù)處理環(huán)境是動態(tài)環(huán)境,因為現(xiàn)有模板被改變并且隨著時間新模板被創(chuàng)建以解決新的或者不同的需求。當(dāng)某些工作量或者需求不再存在于環(huán)境中時,現(xiàn)有模板可以被刪除以恢復(fù)用于新的或者改變的模板的存儲空間。因此,當(dāng)前模板數(shù)據(jù)仍然構(gòu)成虛擬化的數(shù)據(jù)處理環(huán)境中的數(shù)據(jù)流量的顯著部分。
[0037]用來描述本發(fā)明的示例性實施例主要解決和化解以上描述的問題以及與預(yù)調(diào)配模板有關(guān)的其他問題。示例性實施例提供一種用于使用預(yù)調(diào)配的變異模板的方法、系統(tǒng)和計算機程序產(chǎn)品。
[0038]一般而言,本發(fā)明的一個實施例從可用于調(diào)配的模板集合有選擇地組合模板子集的全部或者部分。例如可以將模板的數(shù)據(jù)劃分成具有相同或者不同大小的塊。一個實施例使用子集中的模板的所有或者一些塊來創(chuàng)建變異模板。
[0039]一個實施例基于多種標準來選擇將包括在變異模板中的塊。例如在一個實施例中,基于模板子集之中的共同塊的降序來選擇塊。在另一實施例中,基于策略而將一些塊包括在變異模板中或者從變異模板中排除。另一實施例使用預(yù)測技術(shù)來選擇模板子集、選擇子集內(nèi)的塊或者其組合。
[0040]一個實施例還創(chuàng)建與變異模板對應(yīng)的一個或者多個清單。例如一個實施例創(chuàng)建如下清單,該清單描述包括在變異模板中的塊的性質(zhì)和位置。使用這樣的清單,另一實施例可以重構(gòu)特定模板的全部或者部分,該特定模板是用來創(chuàng)建變異模板的子集的成員。
[0041]另一實施例創(chuàng)建與變異模板對應(yīng)的清單集合。在清單集合中的清單通知另一實施例如何從該變異模板重構(gòu)特定模板。一個實施例可以創(chuàng)建任何數(shù)目的變異模板以及一個或者多個清單的集合。
[0042]一個實施例向另一實施例發(fā)送變異模板和對應(yīng)清單的集合。該另一實施例使用此變異模板和清單集合中的一個或者多個清單來重構(gòu)模板的全部或者部分。
[0043]在某些境況之下,所創(chuàng)建的變異模板的大小可以受限于閾值大小或者策略。因而,一個實施例可以僅將模板的一些塊包括在變異模板中。當(dāng)模板的塊未包括在變異模板中(未包括的塊)時,一個實施例在清單中包括對從變異模板省略的塊的未包括參考。未包括參考是對可以從其獲得該未包括的塊的源的參考。一個實施例可以使用此未包括參考以從該源獲得該塊。
[0044]在另一實施例中,與變異模板對應(yīng)的清單不包括對未包括的塊的參考。使用清單來重構(gòu)模板的一個實施例使用可用于該實施例的其他知識或者信息來獲得該未包括的塊。
[0045]針對某些設(shè)計、模板和清單、僅作為示例描述了示例性實施例。這樣的描述不旨在于限制本發(fā)明。
[0046]另外,可以針對任何類型的數(shù)據(jù)、數(shù)據(jù)源或者通過數(shù)據(jù)網(wǎng)絡(luò)對數(shù)據(jù)源的訪問來實施示例性實施例。在本發(fā)明的范圍內(nèi),任何類型的數(shù)據(jù)應(yīng)用或者存儲設(shè)備可以在數(shù)據(jù)處理系統(tǒng)本地或者通過數(shù)據(jù)網(wǎng)絡(luò)向本發(fā)明的一個實施例提供數(shù)據(jù),諸如用于部署或者配置應(yīng)用的數(shù)據(jù)。
[0047]可以針對任何類型的應(yīng)用,例如所供應(yīng)的應(yīng)用、任何類型的服務(wù)器應(yīng)用的實例、平臺應(yīng)用、單機應(yīng)用、監(jiān)管應(yīng)用或者其組合來實施本發(fā)明的實施例。應(yīng)用——包括實施一個實施例的全部或者部分的應(yīng)用一還可以包括數(shù)據(jù)處理環(huán)境中可用的數(shù)據(jù)對象、代碼對象、封裝的指令、應(yīng)用片段、服務(wù)和其他類型的資源。例如,Java對象、Enterprise Java Bean(企業(yè)Java組件EJB)、小服務(wù)或者小應(yīng)用可以是本發(fā)明可以針對其實施的應(yīng)用的表現(xiàn)形式(Java和所有基于Java的商標和標志是Oracle和/或其子公司的商標或者注冊商標)。
[0048]可以在硬件、軟件或者其組合中實施示例性實施例。還可以針對可以在給定數(shù)據(jù)處理系統(tǒng)配置中可用的任何類型的數(shù)據(jù)存儲源,諸如物理或者虛擬數(shù)據(jù)存儲設(shè)備,來實施本發(fā)明的示例性實施例。
[0049]在本公開內(nèi)容中的示例僅用于描述清楚而不用于限制示例性實施例。根據(jù)本公開內(nèi)容可以設(shè)想附加數(shù)據(jù)、操作、動作、任務(wù)、活動和操縱,并且這些都在示例性實施例的范圍內(nèi)。
[0050]這里列舉的任何優(yōu)點僅為示例而不旨在于限制示例性實施例。特定示例性實施例可以實現(xiàn)附加的或者不同的優(yōu)點。另外,一個具體示例性實施例可以具有以上列舉的優(yōu)點中的一些或者所有或者沒有這些優(yōu)點。
[0051]參照附圖并且具體參照圖1和圖2,這些圖是可以實施示例性實施例的數(shù)據(jù)處理環(huán)境的示例圖。圖1和2僅為示例而不旨在于斷言或者暗示關(guān)于可以實施不同實施例的環(huán)境的任何限制。具體實現(xiàn)方式可以基于以下描述對描繪的環(huán)境進行多種修改。
[0052]參照圖1,該圖描繪其中可以實施示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)100可以是對稱多處理器(SMP)系統(tǒng),該SMP系統(tǒng)包括連接到系統(tǒng)總線106的多個處理器101、102、103和104。例如,數(shù)據(jù)處理系統(tǒng)100可以是在網(wǎng)絡(luò)內(nèi)實施為服務(wù)器的IBM
Power System? JPower System是國際商業(yè)機器公司在美國和其他國家的產(chǎn)品和商標)。備選地,可以采用單處理器系統(tǒng),并且處理器101、102、103和104可以是單處理器芯片中的核。備選地,數(shù)據(jù)處理系統(tǒng)100可以以處理器和核的任何組合而包括處理器101、102、103、104。
[0053]也連接到系統(tǒng)總線106的是存儲器控制器/高速緩存108,其提供與多個本地存儲器160-163的接口。I/O總線橋接器110連接到系統(tǒng)總線106并且提供與I/O總線112的接口??梢匀缑枥L的那樣集成存儲器控制器/高速緩存108和I/O總線橋接器110。
[0054]數(shù)據(jù)處理系統(tǒng)100是邏輯上分區(qū)的數(shù)據(jù)處理系統(tǒng)。因此,數(shù)據(jù)處理系統(tǒng)100可以具有同時運行的多個異構(gòu)操作系統(tǒng)(或者單個操作系統(tǒng)的多個實例)。這些多個操作系統(tǒng)中的每個操作系統(tǒng)可以具有在其內(nèi)執(zhí)行的任意數(shù)目的軟件程序。數(shù)據(jù)處理系統(tǒng)100被從邏輯上分區(qū),從而可以向不同的邏輯分區(qū)分配不同的PCI I/O適配器120-121、128-129和136、圖形適配器148以及硬盤適配器149。在這一情況下,圖形適配器148連接到顯示設(shè)備(未示出),而硬盤適配器149連接到并且控制硬盤150。
[0055]因此,例如假設(shè)將數(shù)據(jù)處理系統(tǒng)100劃分成三個邏輯分區(qū)P1、P2和P3。向三個分區(qū)之一分配PCI I/O適配器120-121、128-129、136中的每個PCI I/O適配器、圖形適配器148、硬盤適配器149、主機處理器101-104中的每個主機處理器以及本地存儲器160-163中的存儲器。在這些示例中,存儲器160-163可以采用雙列直插式存儲模塊(DIMM)的形式。DIMM通常不按每個DIMM的基礎(chǔ)被分配給分區(qū)。取而代之,分區(qū)將獲得整個存儲器中的為平臺所見的部分。例如,可以向邏輯分區(qū)Pl分配處理器101、本地存儲器160-163中的存儲器的某一部分以及I/O適配器120、128和129 ;可以向分區(qū)P2分配處理器102-103、本地存儲器160-163中的存儲器的某一部分以及PCI I/O適配器121和136 ;并且可以向邏輯分區(qū)P3分配處理器104、本地存儲器160-163中的存儲器的某一部分、圖像適配器148和硬盤適配器149。
[0056]在數(shù)據(jù)處理系統(tǒng)100內(nèi)執(zhí)行的每個操作系統(tǒng)被分配給不同的邏輯分區(qū)。因此,在數(shù)據(jù)處理系統(tǒng)100內(nèi)執(zhí)行的每個操作系統(tǒng)僅可以訪問在其邏輯分區(qū)內(nèi)的那些I/O單元。因此例如Advanced Interactive Executive ( ΑΙΧ? )操作系統(tǒng)的一個實例可以在分
區(qū)Pi內(nèi)執(zhí)行,Aix操作系統(tǒng)的第二實例(映像)可以在分區(qū)P2內(nèi)執(zhí)行,并且Linitx?.或者
iBM-1?.操作系統(tǒng)可以在邏輯分區(qū)P3內(nèi)運行。(AIX和IBM-1是國際商業(yè)機器公司在美國和其他國家的商標。Linux是Linus Torvalds在美國和其他國家的商標)。
[0057]連接到I/O總線112的外圍部件互連(PCI)主機橋接器114提供與PCI本地總線的接口。多個PCI輸入/輸出適配器120-121通過PCI到PCI橋接器116、PCI總線118、PCI總線119、I/O槽170和I/O槽171連接到PCI本地總線115。PCI到PCI橋接器116提供與PCI總線118和PCI總線119的接口。PCI I/O適配器120和121被分別放置在I/O槽170和I/O槽171中。典型的PCI總線實現(xiàn)方式支持四到八個的I/O適配器(即用于插入連接器的擴展槽)。每個PCI I/O適配器120-121提供在數(shù)據(jù)處理系統(tǒng)100與輸入/輸出設(shè)備之間的接口,輸入/輸出設(shè)備例如為其他網(wǎng)絡(luò)計算機,這些網(wǎng)絡(luò)計算機是數(shù)據(jù)處理系統(tǒng)100的客戶端。
[0058]附加PCI主機橋接器122提供用于附加PCI本地總線123的接口。PCI本地總線123連接到多個PCI I/O適配器128-129。PCI I/O適配器128-129通過PCI到PCI橋接器124,PCI總線126,PCI總線127、I/O槽172和I/O槽173連接到PC本地總線123。PCI到PCI橋接器124提供與PCI總線126和PCI總線127的接口。PCI I/O適配器128和129被分別放置在I/O槽172和173中。以這一方式,可以通過PCI I/O適配器128和129中的每個PCI I/O適配器來支持附加I/O設(shè)備,例如調(diào)制解調(diào)器或者網(wǎng)絡(luò)適配器。因而,數(shù)據(jù)處理系統(tǒng)100允許與多個網(wǎng)絡(luò)計算機的連接。
[0059]存儲器映射圖形適配器148被插入到I/O槽174中并且通過PCI總線144、PCI到PCI橋接器142、PCI本地總線141和PCI主機橋接器140連接到I/O總線112。硬盤適配器149可以被放置在連接到PCI總線145的I/O槽175中。PCI總線145繼而連接到PCI到PCI橋接器142,該PCI到PCI橋接器142通過PCI本地總線141連接到PCI主機橋接器140。
[0060]PCI主機橋接器130提供用于PCI本地總線131連接到I/O總線112的接口。PCII/O適配器136連接到I/O槽176,該I/O槽176通過PCI總線133連接到PCI到PCI橋接器132。PCI到PCI橋接器132連接到PCI本地總線131。PCI本地總線131也將PCI主機橋接器130連接到服務(wù)處理器郵箱接口和ISA總線訪問直通邏輯194以及PCI到PCI橋接器 132。
[0061]服務(wù)處理器郵箱接口和ISA總線訪問直通邏輯194轉(zhuǎn)發(fā)去往PCI/ISA橋接器193的PCI訪問。NVRAM存儲裝置192連接到ISA總線196。服務(wù)處理器135通過其本地PCI總線195連接到服務(wù)處理器郵箱接口和ISA總線訪問直通邏輯194。服務(wù)處理器135也經(jīng)由多個JTAG/I2C總線134連接到處理器101-104。JTAG/I2C總線134是JTAG/掃描總線(見 IEEEl 149.1)和 Phillips I2C 總線的組合。
[0062]然而備選地,JTAG/I2C總線134可以由僅Phillips I2C總線或者僅JTAG/掃描總線所取代。主機處理器101、102、103和104的所有SP-ATTN信號一起連接到服務(wù)處理器135的中斷輸入信號。服務(wù)處理器135具有其自己的本地存儲器191并且具有對硬件OP-面板190的訪問。
[0063]當(dāng)數(shù)據(jù)處理系統(tǒng)100初次上電時,服務(wù)處理器135使用JTAG/I2C總線134以輪詢系統(tǒng)(主機)處理器101-104、存儲器控制器/高速緩存108和I/O橋接器110。在完成這一步驟時,服務(wù)處理器135對數(shù)據(jù)處理系統(tǒng)100的庫存和拓撲有所了解。服務(wù)處理器135也對通過輪詢主機處理器101-104、存儲器控制器/高速緩存108和I/O橋接器110而發(fā)現(xiàn)的所有單元執(zhí)行內(nèi)嵌自測試(BIST)、基本保證測試(BAT)和存儲器測試。服務(wù)處理器135收集和報告針對在BIST、BAT和存儲器測試期間檢測到的故障的任何錯誤信息。
[0064]如果系統(tǒng)資源的有意義/有效配置在取出在BIST、BAT和存儲器測試期間發(fā)現(xiàn)故障的單元之后仍然可行,則允許數(shù)據(jù)處理系統(tǒng)100繼續(xù)向本地(主機)存儲器160-163中加載可執(zhí)行代碼。服務(wù)處理器135然后釋放主機處理器101-104以用于執(zhí)行向本地存儲器160-163中加載的代碼。在主機處理器101-104執(zhí)行數(shù)據(jù)處理系統(tǒng)100內(nèi)的相應(yīng)操作系統(tǒng)的代碼時,服務(wù)處理器135進入監(jiān)視和報告錯誤的模式。服務(wù)處理器135監(jiān)視如下項目類型,例如包括冷卻風(fēng)扇速度和操作、熱傳感器、電源調(diào)節(jié)器以及處理器101-104、本地存儲器160-163和I/O適配器110報告的可恢復(fù)和不可恢復(fù)錯誤。
[0065]服務(wù)處理器135保存和報告與數(shù)據(jù)處理系統(tǒng)100中的所有監(jiān)視的項目有關(guān)的錯誤信息。服務(wù)處理器135也基于錯誤類型和定義的閾值來采取動作。例如服務(wù)處理器135可能注意到處理器的高速緩存存儲器上的過多可恢復(fù)錯誤,并且判決出這預(yù)示硬件故障。基于這一確定,服務(wù)處理器135可以標記該資源以在當(dāng)前運行會話和將來初始程序加載(IPL)期間退出配置。IPL有時也稱為“引導(dǎo)”或者“啟動”。
[0066]可以使用各種商業(yè)可用計算機系統(tǒng)來實施數(shù)據(jù)處理系統(tǒng)100。例如可以使用從國際商業(yè)機器公司可用的IBM Power Systems來實施數(shù)據(jù)處理系統(tǒng)100。這樣的系統(tǒng)可以支持使用同樣從國際商業(yè)機器公司可用的AIX操作系統(tǒng)的邏輯分區(qū)。
[0067]本領(lǐng)域普通技術(shù)人員將理解,圖1中描繪的硬件可以變化。例如除了描繪的硬件之外或者取代描繪的硬件也可以使用其他外圍設(shè)備,諸如光盤驅(qū)動等。描繪的示例不是為了暗示關(guān)于示例實施例的架構(gòu)限制。
[0068]參照圖2,該圖描繪其中可以實施示例性實施例的在邏輯上分區(qū)的平臺的框圖。邏輯上分區(qū)的平臺200中的硬件例如可以實施為圖1中的數(shù)據(jù)處理系統(tǒng)100中描繪的對應(yīng)部件。
[0069]邏輯上分區(qū)的平臺200包括分區(qū)的硬件230、操作系統(tǒng)202、204、206、208和平臺固件210。諸如平臺固件210之類的平臺固件也稱為分區(qū)管理固件。操作系統(tǒng)202、204、206和208可以是在邏輯分區(qū)的平臺200上同時運行的單個操作系統(tǒng)的多個副本或者多個異構(gòu)操作系統(tǒng)。這些操作系統(tǒng)可以使用IBM-1來實施,IBM-1被設(shè)計用于與諸如Hypervisor(管理程序)的分區(qū)管理固件對接。IBM-1僅用作這些示例性實施例的示例。當(dāng)然,可以根據(jù)具體實現(xiàn)方式使用其他類型的操作系統(tǒng),諸如AIX和Linux。操作系統(tǒng)202、204、206和208分別位于分區(qū)203,205,207和209中。
[0070]Hypervisor軟件是可以用來實施分區(qū)管理固件210的軟件示例并且其可以從國際商業(yè)機器公司獲得。固件是存儲在存儲器芯片中的“軟件”,該存儲器芯片在無電力時保持其內(nèi)容,例如只讀存儲器(ROM)、可編程ROM (PR0M)、可擦除可編程ROM (EPR0M)、電可擦除可編程ROM (EEPROM)和非易失性隨機存取存儲器(非易失性RAM)。
[0071]此外,分區(qū)203、205、207和209也分別包括分區(qū)固件211、213、215和217。分區(qū)固件211、213、215和217可以使用初始引導(dǎo)代碼、IEEE-1275標準開放固件和可從國際商業(yè)機器公司獲得的運行時抽象軟件(RTAS)來實施。在實例化分區(qū)203、205、207和209時,平臺固件210向分區(qū)203、205、207和209上加載引導(dǎo)代碼的副本。隨后,控制被傳遞給引導(dǎo)代碼,利用該引導(dǎo)代碼然后加載開放固件和RTAS。關(guān)聯(lián)的或分配給分區(qū)的處理器繼而被分派給分區(qū)的存儲器以執(zhí)行分區(qū)固件。
[0072]分區(qū)203是計算節(jié)點的示例并且包括示例VM212和214。根據(jù)一個實施例,分區(qū)203中的模板構(gòu)造應(yīng)用216從變異模板重構(gòu)模板。模板構(gòu)造應(yīng)用216包括用于執(zhí)行各種實施例中的任何實施例的過程的程序指令。類似地,根據(jù)各種實施例中的任何實施例,分區(qū)205可以視為包括創(chuàng)建變異模板的變異模板構(gòu)造應(yīng)用218的另一數(shù)據(jù)處理系統(tǒng)。變異模板構(gòu)造應(yīng)用218也包括用于執(zhí)行各種實施例中的任何實施例的過程的程序指令。程序指令可以存儲在一個或者多個計算機可讀有形存儲設(shè)備中的至少一個計算機可讀有形存儲設(shè)備(例如硬盤150、NVRAM192或者與圖1中的I/O總線112耦合的緊致盤設(shè)備)上,以用于經(jīng)由一個或者多個計算機可讀存儲器中的至少一個計算機可讀存儲器(例如圖1中的本地存儲器160-163中的任何本地存儲器)而由一個或者多個處理器中的至少一個處理器(例如圖1中的處理器101-104)執(zhí)行。可以用任何形式來實施模板構(gòu)造應(yīng)用216,該形式包括但不限于適合于作為服務(wù)執(zhí)行的形式、使用硬件和軟件實施的形式,或者適合于集成到用于虛擬環(huán)境管理的另一應(yīng)用中的形式。
[0073]分區(qū)的硬件230包括多個處理器232-238、多個系統(tǒng)存儲器單元240-246、多個輸入/輸出(I/O)適配器248-262和存儲單元270。處理器232-238、存儲器單元240-246、NVRAM存儲裝置298和I/O適配器248-262中的每個可以被分配邏輯上分區(qū)的平臺200內(nèi)的分區(qū)203、205、205和209之一,這些分區(qū)203、205、207和209中的每個分區(qū)對應(yīng)于操作系統(tǒng) 202,204,206 和 208 之一。
[0074]分區(qū)管理固件210執(zhí)行用于分區(qū)203、205、207和209的多個功能和服務(wù)以創(chuàng)建和實施對邏輯上分區(qū)的平臺200的分區(qū)。分區(qū)管理固件210是與下層硬件相同的、固件實施的虛擬機器。因此,分區(qū)管理固件210允許通過虛擬化邏輯上分區(qū)的平臺200的所有硬件資源來同時執(zhí)行獨立的OS映像202、204、206和208。
[0075]服務(wù)處理器290可以用來提供各種服務(wù),諸如處理分區(qū)中的平臺錯誤。這些服務(wù)也可以充當(dāng)用于向廠商,諸如國際商業(yè)機器公司,回報錯誤的服務(wù)代理??梢酝ㄟ^硬件管理控制臺,諸如硬件管理控制臺280,來控制分區(qū)203、205、207和209的操作。硬件管理控制臺280是單獨的數(shù)據(jù)處理系統(tǒng),系統(tǒng)管理員可以從該單獨的數(shù)據(jù)處理系統(tǒng)執(zhí)行各種功能,包括向不同的分區(qū)重新分配資源。
[0076]圖1-圖2中的硬件可以根據(jù)實現(xiàn)方式而變化。除了圖1-2中描繪的某些硬件之外或者取代圖1-2中描繪的某些硬件,還可以使用其他內(nèi)部硬件或者外圍設(shè)備,諸如閃存、等效非易失性存儲器或者光盤驅(qū)動等。示例性實施例的實現(xiàn)方式也可以使用用于管理分區(qū)的備選架構(gòu)而未脫離本發(fā)明的范圍。
[0077]參照圖3,該圖描繪根據(jù)一個示例性實施例的用于創(chuàng)建變異模板以供預(yù)調(diào)配的示例配置的框圖。變異模板構(gòu)造應(yīng)用302與圖2中的變異模板構(gòu)造應(yīng)用218類似。
[0078]模板貯存庫304是適合于存儲模板的任何類型的數(shù)據(jù)貯存庫,該數(shù)據(jù)貯存庫包括但不限于數(shù)據(jù)庫、文件系統(tǒng)或者存儲網(wǎng)絡(luò)。注意,并非在模板貯存庫304中存在的所有模板都可以用于調(diào)配給計算節(jié)點以供創(chuàng)建對應(yīng)的VM。例如,模板貯存庫304中的模板可能僅用于測試目的,而不能被調(diào)配給計算機節(jié)點以用于實際創(chuàng)建對應(yīng)VM。
[0079]請求日志306是在一個時段內(nèi)從在虛擬化的數(shù)據(jù)處理環(huán)境中操作的各種計算節(jié)點接收的任何適當(dāng)?shù)哪0逭埱蟮挠涗?。例如,模板貯存庫304可以包括可以從在給定環(huán)境中操作的計算節(jié)點1、2、3和4中的任何計算節(jié)點請求的模板X、Y和Z。在一個實施例中,請求日志306包括與如下請求對應(yīng)的條目:在時間Tl來自計算節(jié)點I的針對模板X的請求、在時間Tl來自計算節(jié)點I的針對模板X的請求、在時間T2來自計算節(jié)點2的針對模板Y的請求、在時間T3來自計算節(jié)點I的針對模板Y的請求、在時間T4來自計算節(jié)點3的針對模板X的請求、在時間T5來自計算節(jié)點3的針對模板Y的請求以及在時間T6來自計算節(jié)點I的針對模板X的請求。請求日志306或者另一日志(未示出)也可以包括與如下時間對應(yīng)的條目:刪除或者改變現(xiàn)有模板(諸如模板X)的時間和向模板貯存庫304添加新模板(諸如模板A)的時間。
[0080]使用來自請求日志306的信息和模板貯存庫304中的可用于預(yù)調(diào)配的模板的子集,變異模板構(gòu)造應(yīng)用302構(gòu)造變異模板308。變異模板構(gòu)造應(yīng)用302還構(gòu)造與變異模板308對應(yīng)的清單310。根據(jù)這里描述的各種實施例中的任何實施例,清單310是一個或者多個清單的集合并且包括清單數(shù)據(jù)。
[0081]參照圖4,該圖描繪根據(jù)一個示例性實施例的變異模板構(gòu)造應(yīng)用的示例配置的框圖。變異模板構(gòu)造應(yīng)用402可以用作圖3中的變異模板構(gòu)造應(yīng)用302。
[0082]在所描繪的示例配置中,變異模板構(gòu)造應(yīng)用402包括模板分組部件404、請求日志提取部件406、需求預(yù)測器部件408、用于創(chuàng)建遺漏模板塊記錄的部件410、變異部件412和清單創(chuàng)建部件414。變異模板構(gòu)造應(yīng)用402向預(yù)調(diào)配引擎420輸出變異模板416和一個或者多個清單418的集合。預(yù)調(diào)配引擎420向一個或者多個計算節(jié)點(未示出)預(yù)調(diào)配模板子集,諸如圖3中的模板貯存庫304中的可用于調(diào)配的并且完全或者部分地組合(變異)到變異模板416中的模板的子集。
[0083]模板分組部件404選擇模板貯存庫中可用于調(diào)配的模板的子集。模板分組部件404還確定組合該選擇的子集中的模板的一些或者所有塊的方式。
[0084]例如在一個實施例中,請求日志提取部件406讀取針對在一個時段內(nèi)從給定環(huán)境中的計算節(jié)點接收的模板請求的請求日志,諸如圖3中的請求日志306。請求日志提取部件406標識在該時段內(nèi)請求的模板。所標識的模板形成模板子集。在一個實施例中,只有那些在前述時段內(nèi)被請求的次數(shù)多于閾值次數(shù)的模板被包括在該子集中。
[0085]在一個實施例中,模板分組部件404還按照針對子集中的模板的請求的降序來排列那些模板。例如,假設(shè)根據(jù)請求日志提取部件406,在該時段內(nèi)模板A被請求三次、模板B被請求2次并且模板C被請求一次。模板分組部件404形成模板A和B的子集并且根據(jù)它們的需求按照順序(A,B)排列模板A和B。
[0086]在一個實施例中,模板分組部件404還使用需求預(yù)測器部件408以選擇和組織子集。例如請求日志記錄可以表明在時間Tl添加了新模板D,該新模板D在時段T2期間被請求一次,在時段T3期間被請求5次并且在時段T4期間被請求20次。因而,需求預(yù)測器部件408可以確定,即使針對模板D的需求在給定時段內(nèi)尚未達到將模板D包括在子集中的閾值需求水平,但是針對模板D的需求的趨勢表明針對模板D的需求很可能在另一時段中增加并且超過閾值。因而,需求預(yù)測器部件408建議在子集中包括模板D,并且模板分組部件404將模板D包括并組織到子集中。
[0087]如在模板分組部件404中執(zhí)行的,對模板的組織可以采用任何適當(dāng)形式。例如在一個實施例中,將模板的子集簡單地分組在一起而無特定組織。在另一實施例中,按照針對模板的需求的順序來排列模板。
[0088]在另一實施例中,按照分級順序排列子集中的模板。例如,模板分組部件404可以發(fā)現(xiàn)或者接收關(guān)于某些模板之間的母子關(guān)系的信息。例如,模板B可以包括模板A的塊中的所有塊和附加的塊集合。分級順序也可以依賴于可以通過向A安裝或者從A卸載一個或者多個軟件來從模板A導(dǎo)出模板B這樣的事實?;谶@一分級,如果考慮A和B的塊,則B可以包括A的塊中的一個或者多個塊以及附加的塊集合。
[0089]在示例性實施例的范圍內(nèi),可以用適合于實現(xiàn)方式的任何方式來斷定塊是否為兩個或者更多模板所共用。例如在一個實施例中,如果兩個數(shù)據(jù)塊使用相同哈希算法所計算的哈希值匹配,則這兩個數(shù)據(jù)塊視為在兩個模板中相同或者為這兩個模板所共用。檢測到重復(fù)或者相同塊使得能夠在變異模板中僅包括該塊的一個副本,其中兩個模板都可以從該變異模板重構(gòu),并且該塊的單個副本可用于構(gòu)造這兩個模板中的任一模板。[0090]類似地,模板分組部件404可以發(fā)現(xiàn)模板C可以包括模板A的塊中的所有塊以及不同的附加塊集合。模板D可以包括模板B的塊中的所有塊和第三不同附加塊集合。因而,模板分組部件404形成模板A、B、C和D的子集的分級組織,從而模板B和C是母模板A的不同子模板,并且模板D是模板B的子模板。
[0091]變異部件412使用選擇的模板子集的組織以從該子集中的模板中選擇塊中的所有塊或者一些塊。在一個實施例中,變異部件412可以通過優(yōu)化成本函數(shù)來計算哪些塊要包括以及不包括在具有給定大小的變異模板中,其中成本函數(shù)可以包括在該變異模板內(nèi)具有或者不具有給定塊的成本。
[0092]例如在一個實施例中,成本可以描述為在需要未包括在變異模板中的塊時向數(shù)據(jù)網(wǎng)絡(luò)添加的數(shù)據(jù)流量。模板的未包括的塊將被請求與使用變異模板來請求或者需求的模板一樣多的次數(shù)。另外,如果未包括的塊在請求的模板內(nèi)多次出現(xiàn),則針對未包括的塊的請求將與塊在模板內(nèi)出現(xiàn)的次數(shù)進一步相乘。針對給定的未包括的塊的有效請求率將是跨越變異模板中包括的所有模板針對該塊的個體需求之和。由于這一個塊而在網(wǎng)絡(luò)上造成的數(shù)據(jù)流量是針對這一個塊的請求率與塊的大小的乘積。
[0093]根據(jù)一個實施例,優(yōu)化是O-1Knapsack (背包)問題,其選擇必須包括在具有給定大小的變異模板中的塊以便最小化網(wǎng)絡(luò)上的流量。所選擇的塊可以按照任何順序包括在變異模板416中。用于記錄遺漏模板塊的部件410記錄如下塊,這些塊是子集中的模板的一部分并且未包含于變異模板416中。在一個實施例中,部件410的操作是可選的。
[0094]可以根據(jù)實現(xiàn)方式以任何適當(dāng)方式執(zhí)行變異模板416中的塊的排序。例如,如果子集中的兩個模板按照母子關(guān)系進行組織,則一個實施例在變異模板416中將母模板的塊排列在子模板的塊之前。
[0095]另一實施例按如下對塊排序——跨越用于構(gòu)造變異模板的所有模板針對給定的塊位置的最頻繁請求(但是選擇)的塊如果早先尚未包括在內(nèi),則該塊被保持在該位置中。否則,基于類似邏輯,該實施例嘗試將下一個最多請求(但是選擇)的塊放置在該位置處。實施例繼續(xù)按照針對塊的請求頻率的降序來選擇那些塊,并且使用上述邏輯來放置它們。如果無塊可用于放置,則實施例選擇針對比當(dāng)前塊位置更早的某一塊位置的、但是目前為止不能放置在任何位置中的最頻繁請求(但是選擇)的塊。因此,重復(fù)塊未出現(xiàn)在變異模板中。根據(jù)一個實施例,這一排序方式的優(yōu)點在于當(dāng)變異模板被用來創(chuàng)建所包括的模板之一時,能夠最小化對塊位置的預(yù)計改變。
[0096]清單創(chuàng)建部件414創(chuàng)建一個或者多個清單418的集合。如在本公開內(nèi)容中別處描述的那樣,一個實施例創(chuàng)建清單418,從而清單418描述包括在變異模板416中的塊的性質(zhì)和位置。使用清單418的這樣的形式,另一實施例可以重構(gòu)特定模板的全部或者部分,該特定模板是用來創(chuàng)建變異模板416的子集的成員。另一實施例創(chuàng)建清單418,從而清單418包括與變異模板416對應(yīng)的清單的集合。這一形式的清單418通知另一實施例如何從變異模板416來重構(gòu)特定模板。例如在后一種形式中,一個實施例的清單418包括用于用戶可以請求的模板X的清單418x (未示出)。清單418x可以預(yù)調(diào)配有變異模板416,或者備選地,可以在針對模板X的用戶請求被路由到包含變異模板416的預(yù)調(diào)配實例的節(jié)點時,通過網(wǎng)絡(luò)傳送清單418x。
[0097]參照圖5,該圖描繪根據(jù)一個示例性實施例的用于使用變異模板來預(yù)調(diào)配計算節(jié)點的示例配置的框圖。模板存儲系統(tǒng)502可以是圖2中的分區(qū)205的一個實施例。模板存儲系統(tǒng)502包括模板貯存庫504或者具有對模板貯存庫504的訪問。模板貯存庫504與圖3中的模板貯存庫304類似。
[0098]模板存儲系統(tǒng)502還包括與圖4中的變異模板構(gòu)造應(yīng)用402類似的變異模板構(gòu)造應(yīng)用506。模板存儲系統(tǒng)502包括與圖3中的請求日志306類似的請求日志508或者具有對請求日志508的訪問。預(yù)調(diào)配引擎510在模板存儲系統(tǒng)502中執(zhí)行或者從模板存儲系統(tǒng)502可訪問。
[0099]策略512可以存儲在模板存儲系統(tǒng)502可訪問的貯存庫中。例如,策略512可以存儲在模板存儲系統(tǒng)502通過數(shù)據(jù)網(wǎng)絡(luò)可訪問的數(shù)據(jù)庫中。策略512中的一個示例策略可以使得模板包括在變異模板中而無論針對該模板的需求如何。策略512中的另一示例策略可以使得特定子模板的塊中的所有塊或者一些塊包括在變異模板中,即使對應(yīng)母模板的所有塊沒有都包括在變異模板中。示例策略512可以指定可以在給定環(huán)境中適用的待使用的各種塊大小、待使用的哈希化算法、變異模板大小閾值、請求日志提取周期、需求閾值和任何其他邏輯、參數(shù)或者約束。
[0100]根據(jù)一個實施例,模板存儲系統(tǒng)502創(chuàng)建一個或者多個變異模板和對應(yīng)清單。模板存儲系統(tǒng)502在計算節(jié)點518中預(yù)調(diào)配變異模板514、清單516。模板存儲系統(tǒng)502在計算節(jié)點524中預(yù)調(diào)配變異模板520、清單522。預(yù)調(diào)配通過數(shù)據(jù)網(wǎng)絡(luò)526發(fā)生。變異模板514和清單516可以分別不同于變異模板520和清單522。在另一實施例中,清單516或522可以不被預(yù)調(diào)配,但是在針對對應(yīng)模板的請求被路由到節(jié)點518或者524時,其分別被傳送到節(jié)點518或者524。
[0101]參照圖6,該圖描繪根據(jù)一個示例性實施例的用于創(chuàng)建清單的配置和示例清單的框圖。變異模板構(gòu)造應(yīng)用602與圖5中的變異模板構(gòu)造應(yīng)用506相似。清單創(chuàng)建部件604與圖4中的清單創(chuàng)建部件414相似。
[0102]僅作為示例而不暗示對其的任何限制,清單創(chuàng)建部件604包括用于標識重復(fù)塊的部件606。例如在一個實施例中,在組裝變異模板以包括重復(fù)塊的一個副本之前,可以使用部件606來標識選擇的模板子集中的兩個或者更多模板中的重復(fù)或者相同塊。
[0103]部件608確定變異模板中的塊的排序。如在本公開內(nèi)容中別處描述的那樣,可以用適合于給定實現(xiàn)方式的任何方式對包括在變異模板中的塊排序。在一個實施例中,在變異模板中母模板的塊比該母模板的子模板所特有的塊更早地被定位。部件610可選地創(chuàng)建對未包括的塊的參考。
[0104]根據(jù)一個實施例,清單612是與變異模板對應(yīng)的示例清單。清單612可以用作圖4中的清單418。
[0105]清單612包括一個或者多個條目614的集合。條目614中的一個示例條目包括所包括的塊的參考標識符616、塊在變異模板中出現(xiàn)的索引618和塊在變異模板的數(shù)據(jù)中開始的偏移620。如果塊的大小可變,則條目中稱為“大小”的提供該塊的大小的附加元素(未示出)也可以存在于清單612中。當(dāng)然,條目614的結(jié)構(gòu)不旨在于局限于示例性實施例。本領(lǐng)域普通技術(shù)人員將能夠根據(jù)這一公開內(nèi)容構(gòu)造用于條目614的其他結(jié)構(gòu),并且這些其他結(jié)構(gòu)也在示例實施例的范圍內(nèi)。
[0106]可選地,清單612也可以包括一個或者多個條目622的集合。條目622中的示例條目包括未包括的塊的參考標識符622和對可以從其獲得未包括的塊的源的未包括參考626。在一個實施例中,未包括參考626指向文件系統(tǒng)中的文件或者其一部分。
[0107]參照圖7,該圖描繪根據(jù)一個示例性實施例的另一示例清單的框圖。清單702可以使用圖6中的清單構(gòu)造部件604從變異模板構(gòu)造應(yīng)用602來生成。清單702可以用作圖4中的清單418。
[0108]如描繪的那樣,清單702包括多個清單,即清單704和714。在一個實施例中,該多個清單未包括在清單702內(nèi),事實上,作為實體的清單702不存在,并且僅該多個清單伴隨并對應(yīng)于變異模板。
[0109]清單704是用于從對應(yīng)的變異模板構(gòu)造(或重構(gòu))模板X的清單。例如清單704包括一個或者多個條目706的集合。條目706中的一個示例條目可以用于重構(gòu)模板X的塊1,即“塊XI”。根據(jù)條目706,塊Xl可以使用塊參考708來構(gòu)造,該塊參考708參考變異模板的塊5 (塊Mut5),變異模板的塊5在變異模板中出現(xiàn)于索引710處并且可以在變異模板的數(shù)據(jù)中從偏移712處讀取。可以使用條目706中的信息以相似方式構(gòu)造其他塊,諸如模板X的塊X2和Xn。
[0110]清單714是用于從對應(yīng)的變異模板構(gòu)造(或重構(gòu))模板Z的清單。例如清單714包括一個或者多個條目716的集合。條目716中的一個示例條目可以用于重構(gòu)模板Z的塊1,即“塊Z1”。根據(jù)條目716,塊Zl可以使用塊參考718來構(gòu)造,該塊參考718參考變異模板的塊I (塊Mutl),變異模板的塊I在變異模板中出現(xiàn)于索引720處并且可以在變異模板的數(shù)據(jù)中從偏移722處讀取。可以使用條目716中的信息以相似方式構(gòu)造其他塊,諸如模板Z的塊Z2和Zk。
[0111]可選地,清單702中的一些或者所有清單可以包括用于獲得未包括的塊的參考。例如清單704包括條目724,該條目724向一個實施例——諸如實施圖2中的模板構(gòu)造應(yīng)用216的實施例——通知何處或者如何找到用于模板X的所參考的未包括的塊3 0^X3)。例如未包括參考A726可以指向其中存儲有塊X3的文件或者其一部分。
`[0112]類似地,清單714包括條目728,該條目向一個實施例——諸如實施圖2中的模板構(gòu)造應(yīng)用216的實施例——通知何處或者如何找到用于模板Z的所參考的未包括的塊3(塊Z3)。例如未包括參考B730可以援引可以從其下載塊Z3的數(shù)據(jù)庫記錄或者統(tǒng)一資源定位符(URL)。
[0113]如別處針對一個實施例描述的那樣,這些清單不是必須被預(yù)調(diào)配有變異模板,而是在請求模板時通過數(shù)據(jù)網(wǎng)絡(luò)被傳送到節(jié)點。例如,如果在節(jié)點處請求模板X,則可以向該節(jié)點傳送清單704。類似地,如果節(jié)點接收針對模板Z的請求,則一個實施例向該節(jié)點傳送清單714。
[0114]參照圖8,該圖描繪根據(jù)一個示例性實施例的用于在計算節(jié)點處使用預(yù)調(diào)配的變異模板的示例配置的框圖。計算節(jié)點802與圖2中的分區(qū)203類似。模板構(gòu)造應(yīng)用804與圖2中的模板構(gòu)造應(yīng)用216類似。
[0115]預(yù)調(diào)配的模板806是已經(jīng)在計算節(jié)點802上預(yù)調(diào)配的模板的匯集。例如預(yù)調(diào)配的模板806可以是預(yù)調(diào)配的模板的本地貯存庫,該貯存庫與計算節(jié)點802關(guān)聯(lián)或者從計算節(jié)點802可訪問。預(yù)調(diào)配的模板806包括變異模板808和對應(yīng)清單810。變異模板808和清單810對應(yīng)于圖4中的變異模板416和清單418。清單810可以采用圖6中的清單612或者圖7中的清單702或者圖7中的清單704的形式。
[0116]在某一操作點處,計算節(jié)點802接收用于根據(jù)模板X創(chuàng)建VM的請求812。假設(shè)模板X被包括在變異模板808中并且可以從該變異模板808重構(gòu)。模板構(gòu)造應(yīng)用804響應(yīng)于該請求,使用清單810從變異模板808重構(gòu)模板X。
[0117]如在別處針對一個實施例描述的那樣,如果清單810在節(jié)點802上存在,則針對可以在節(jié)點802上多次預(yù)調(diào)配的變異模板808,該清單810僅存儲一次。在另一實施例中,如果當(dāng)在節(jié)點802上請求模板X時,用于從變異模板808構(gòu)造模板X的清單810未存在于節(jié)點802上,則可以通過數(shù)據(jù)網(wǎng)絡(luò),諸如圖5中的數(shù)據(jù)網(wǎng)絡(luò)526,來傳送清單810。
[0118]在一個實施例中,模板X的所有塊可能已經(jīng)包括在變異模板808中。因此,請求812可以被服務(wù)而無需從貯存庫傳送模板X以及向數(shù)據(jù)網(wǎng)絡(luò)添加數(shù)據(jù)流量。在另一實施例中,模板X的一些但不是所有塊可能已經(jīng)包括在變異模板808中。因此,通過從貯存庫僅傳送模板X的未包括的塊并且減少由于傳送而在數(shù)據(jù)網(wǎng)絡(luò)上產(chǎn)生的數(shù)據(jù)流量來服務(wù)請求812。
[0119]參照圖9,該圖描繪根據(jù)一個示例性實施例的模板構(gòu)造應(yīng)用的示例配置的框圖。模板構(gòu)造應(yīng)用902可以用作圖8中的模板構(gòu)造應(yīng)用804。
[0120]在這一示例配置中,模板構(gòu)造應(yīng)用902使用圖8的變異模板808和清單810、根據(jù)圖8的請求812來構(gòu)造模板X,其中圖8的清單810采用圖6中的清單612的形式。為了從變異模板808構(gòu)造模板X,模板構(gòu)造應(yīng)用902使用關(guān)于模板X的結(jié)構(gòu)的信息904。信息904描述作為模板X的一部分的塊、它們的順序以及關(guān)于模板X的任何其他相似的可用信息。
[0121]使用清單810和信息904,模板構(gòu)造應(yīng)用902執(zhí)行匹配操作906,該匹配操作將來自信息904的模板X的塊與在變異模板808的清單810中描述的塊進行匹配。使用來自清單810的未包括參考或者通過使用模板數(shù)據(jù)源的其他可用知識,接收操作908接收模板X的未包括在變異模板808中的塊。
[0122]使用來自匹配操作906和接收操作908的塊,模板構(gòu)造應(yīng)用902執(zhí)行重構(gòu)操作910。模板構(gòu)造應(yīng)用902輸出模板X912。在一個實施例中,模板構(gòu)造應(yīng)用902從“就位”的變異模板808的實例來構(gòu)造模板X912,即通過原樣保持第i個塊或者通過用來自變異模板808的另一部分的被復(fù)制到第i個塊位置中的另一個塊或者在從貯存庫接收到這樣的塊時用其取代第i個塊來變換變異模板808。
[0123]有利地,根據(jù)一個實施例,變異模板允許在計算節(jié)點處預(yù)調(diào)配若干模板,同時減少預(yù)調(diào)配數(shù)據(jù)大小。即使,在一個或者多個變異模板中未容納所有模板的所有塊,一個實施例通過在需要一些模板時僅傳送這些模板的未包括的塊,仍然減少了數(shù)據(jù)網(wǎng)絡(luò)上的數(shù)據(jù)流量。一個實施例將已知壓縮技術(shù)應(yīng)用于一個實施例的變異模板并且進一步減少在預(yù)調(diào)配中傳送的數(shù)據(jù)量。模板構(gòu)造應(yīng)用,諸如模板構(gòu)造應(yīng)用902,在執(zhí)行以上描述的操作之前解壓縮變異模板。
[0124]參照圖10,該圖描繪根據(jù)一個示例性實施例的模板構(gòu)造應(yīng)用的示例配置的框圖。模板構(gòu)造應(yīng)用1002可以用作圖8中的模板構(gòu)造應(yīng)用804。
[0125]在這一示例配置中,模板構(gòu)造應(yīng)用1002使用圖8的變異模板808和清單810、根據(jù)圖8的請求812來構(gòu)造模板X,其中圖8的清單810采用圖7中的清單704或者714的形式。為了從變異模板808構(gòu)造模板X,模板構(gòu)造應(yīng)用1002選擇1004被配置用于從圖8中的變異模板808重構(gòu)模板X的清單,諸如圖7中的清單704。[0126]使用清單810以及針對模板X從清單810選擇的清單,模板構(gòu)造應(yīng)用1002根據(jù)清單810中的條目從變異模板808中復(fù)制或者取回模板X中需要的那些塊。使用來自清單810的未包括參考或者通過使用模板數(shù)據(jù)源的其他可用知識,接收操作1006接收模板X的未包括在變異模板808中的塊。
[0127]使用從變異模板808選擇的塊以及作為接收操作1006的結(jié)果而接收的塊,模板構(gòu)造應(yīng)用1002執(zhí)行重構(gòu)操作1008。模板構(gòu)造應(yīng)用1002輸出模板X1010。
[0128]參照圖11,該圖描繪根據(jù)一個示例性實施例的構(gòu)造變異模板以供預(yù)調(diào)配的示例過程的流程圖??梢栽趫D6中的變異模板構(gòu)造應(yīng)用602中實施過程1100。
[0129]過程1100開始于分析在一個時段內(nèi)針對模板的請求的模式(步驟1102)。過程1100預(yù)測在另一時段內(nèi)針對某些模板的需求(步驟1104)。
[0130]過程1100從可用于預(yù)調(diào)配的模板集合中選擇模板子集(步驟1106)。過程1100分析該模板子集以標識子集中的兩個或者更多模板共用的塊(步驟1108)。過程1100對子集中的模板的塊——包括在步驟1108中標識的共用塊的單個副本——區(qū)分優(yōu)先級以供包括在變異模板中(步驟1110)。
[0131]例如在一個實施例中,過程1100根據(jù)模板子集中的塊的重復(fù)程度對用于包括的塊區(qū)分優(yōu)先級。例如,如果塊BI在子集中的4個模板之中的3個中出現(xiàn)并且塊B2在這4個模板之中的2個模板中出現(xiàn),則該實施例將塊BI的一個副本排序在塊B2的一個副本之前以供包括在變異模板中。
[0132]在另一示例實施例中,過程1100根據(jù)策略對塊區(qū)分優(yōu)先級以供包括在變異模板中。例如在給定的虛擬化數(shù)據(jù)處理環(huán)境中的策略可以指定某些塊必須首先包括在變異模板中,無論這些塊在選擇的模板子集中如何重復(fù)或者出現(xiàn)。因而,該實施例在按照任何其他適當(dāng)方式區(qū)分優(yōu)先級的任何其他塊之前包括那些塊。
[0133]在另一實施例中,在步驟1110,過程1100可以求解優(yōu)化問題,該優(yōu)化問題包括根據(jù)在所考慮的不同模板中包括或者排除塊而最小化成本函數(shù)。另外,優(yōu)化問題可以使用對所構(gòu)造的變異模板的大小的約束。例如而非暗示其限制,成本函數(shù)可以用在本公開內(nèi)容中別處描述的方式來最小化預(yù)計網(wǎng)絡(luò)數(shù)據(jù)流量。這樣的優(yōu)化步驟的輸出是從模板選擇的應(yīng)當(dāng)包括在變異模板中的塊的列表。
[0134]然而這樣的優(yōu)化步驟未提供與變異模板中的選擇的塊對應(yīng)的位置信息。在變異模板中的某個塊位置處放置選擇的塊在一個實施例中涉及求解另一問題——嘗試在變異模板的位置i處放置選擇的塊中跨越所有考慮的模板在該位置i處具有最高需求并且早先尚未放置在變異模板中的那一個塊。如果不存在這樣的選擇的塊,則該實施例從那些針對低于i的位置又可以放置在位置i處的那些選擇的塊中進行選擇并且選擇在選擇的塊之中具有最大需求的塊。否則,該實施例標記位置i為可用并且繼續(xù)填充下一位置。該實施例的這一放置過程繼續(xù)進行直至該實施例到達變異模板的最后一個塊。
[0135]返回到圖11的描述,過程1100確定變異模板中是否存在可用于添加具有優(yōu)先級的塊(步驟1112)。例如,如在本公開內(nèi)容中別處描述的那樣,策略或者另一因素可以限制變異模板的大小,由此限制可以包括在變異模板中的數(shù)據(jù)量或者塊數(shù)目。如果變異模板中存在可用空間(步驟1112的“是”路徑),則過程1100向變異模板添加最高優(yōu)先級的剩余塊(步驟 1114)。[0136]過程1100確定是否留有更多具有優(yōu)先級的塊(步驟1116)。如果更多具有優(yōu)先級的塊留待向變異模板添加(步驟1116的“是”路徑),則過程1100返回到步驟1112。如果沒有更多具有優(yōu)先級的留待被包括在變異模板中(步驟1116的“否”路徑),則過程1100構(gòu)造針對該變異模板的清單(步驟1118)。
[0137]返回到步驟1112,如果過程1100確定變異模板中沒有更多空間可用于包括具有優(yōu)先級的塊(步驟1112的“否”路徑),則過程1100可選地向變異模板添加對剩余具有優(yōu)先級的塊的未包括參考(步驟1120)。過程1100隨后繼續(xù)到步驟1122。備選地,省略步驟1120,過程1100可以從步驟1112的“否”路徑前進到步驟1122,其中過程1100省略子集中的模板的未包括的塊(步驟1122)。過程1100隨后繼續(xù)到步驟1118。
[0138]從步驟1118繼續(xù),過程1100確定是否必須以相似方式創(chuàng)建更多變異模板(步驟1124)。如果必須以相似方式構(gòu)造更多變異模板(步驟1124的“是”路徑),則過程1100返回到步驟1102。
[0139]如果不用創(chuàng)建更多變異模板(步驟1124的“否”路徑),則過程1100確定是否必須改變先前構(gòu)造的變異模板中的一個或者多個模板(步驟1126)。例如在先前構(gòu)造的變異模板中包括的模板可能由于管理員重新配置存儲子系統(tǒng)、策略、更新模板中包括的VM部件或者若干其他可能原因中的任何原因?qū)е碌慕Y(jié)果而已經(jīng)改變。如果必須改變先前構(gòu)造的變異模板(步驟1126的“是”路徑),則過程1100返回到步驟1102。
[0140]如果無需修改先前構(gòu)造的變異模板(步驟1126的“否”路徑),則過程1100發(fā)送構(gòu)造的變異模板及其對應(yīng)清單以供預(yù)調(diào)配(步驟1128)。過程1100隨后結(jié)束。
[0141]參照圖12,該圖描繪根據(jù)一個示例性實施例的用于構(gòu)造與變異模板對應(yīng)的清單的示例過程的流程圖。可以在圖6的變異模板構(gòu)造應(yīng)用602中結(jié)合圖11的過程1100來實施過程1200。
[0142]過程1200開始于針對給定的模板子集,諸如在圖11中的過程1100的步驟1106中選擇的子集,標識將被包括在對應(yīng)的變異模板中的塊(步驟1202)。過程1200標識每個包括的塊的位置、大小、偏移、索引或者其組合(步驟1204)。
[0143]過程1200標識模板子集的諸如由于變異模板的大小閾值而不會被包括在變異模板中的塊(步驟1206)。過程1200可選地創(chuàng)建對未包括的塊中的一些或者所有塊的未包括參考(步驟1208)。過程1200向變異模板的清單添加位置、大小、偏移、索引、未包括參考或者其組合(步驟1210)。過程1200輸出清單(步驟1212)。過程1200隨后結(jié)束。
[0144]在一個實施例中,過程1200可以適于輸出與圖6中的清單612對應(yīng)的清單。在另一實施例中,過程1200可以適于輸出與圖7中的清單702對應(yīng)的清單。在另一實施例中,過程1200可以適于輸出與圖7中的清單704或者清單714對應(yīng)的清單。
[0145]參照圖13,該圖描繪根據(jù)一個示例性實施例的創(chuàng)建與變異模板對應(yīng)的模板特定清單的另一示例過程的流程圖。可以在圖6的變異模板構(gòu)造應(yīng)用602中實施過程1300,并且過程1300可以用來輸出模板特定清單,諸如圖7中的清單704。
[0146]過程1300開始于針對選擇的模板子集中的給定模板和對應(yīng)的變異模板,標識模板中的塊(步驟1302)。過程1300確定該塊是否包括在變異模板中(步驟1304)。如果該塊包括在變異模板中(步驟1304的“是”路徑),則過程1300向特定于該模板的清單添加該塊在變異模板中的位置(步驟1306)。過程1300隨后繼續(xù)到步驟1310。如果該塊未包括在變異模板中(步驟1304的“否”路徑),則過程1300可選地在特定于該模板的清單中添加對該塊的未包括參考(步驟1308)。過程1300隨后繼續(xù)到步驟1310。
[0147]過程1300確定是否更多塊留在模板中(步驟1310)。如果更多塊留在模板中(步驟1310的“是”路徑),則過程1300返回到步驟1302并且選擇另一個塊。
[0148]過程1300確定是否必須以這一方式處理子集中的另一模板以用于創(chuàng)建另一模板特定清單(步驟1312)。如果將處理另一模板(步驟1312的“是”路徑),則過程1300從子集選擇另一模板(步驟1314)。過程1300隨后返回到步驟1302。
[0149]如果沒有更多模板要處理(步驟1312的“否”路徑),則過程1300輸出與子集中的模板對應(yīng)的模板特定清單的匯集(步驟1316)。過程1300隨后結(jié)束。
[0150]參照圖14,該圖描繪根據(jù)一個示例性實施例的從預(yù)調(diào)配的變異模板重構(gòu)模板的示例過程的流程圖??梢栽谀0鍢?gòu)造應(yīng)用、諸如圖8中的模板構(gòu)造應(yīng)用804中實施過程1400。
[0151]過程1400開始于接收變異模板(步驟1402)。在步驟1402中還接收與變異模板關(guān)聯(lián)的清單。出于過程1400的目的,清單可用于定位包括在變異模板中的塊。例如可以在步驟1402中接收圖6中的清單612這一形式的清單并且該清單以這一方式可用。
[0152]過程1400還接收關(guān)于必須從變異模板重構(gòu)的模板的結(jié)構(gòu)的信息(步驟1404)。另一過程,諸如圖15中的過程1500,也可以經(jīng)由標記為“A”的進入點在步驟1404進入過程1400。在一個實施例中,過程1400可以響應(yīng)于接收針對模板的請求來獲得在步驟1404中接收的結(jié)構(gòu)(未示出)。
[0153]過程1400選擇在結(jié)構(gòu)中標識的塊,諸如塊i,以用于使用與變異模板關(guān)聯(lián)的清單來執(zhí)行后續(xù)步驟(步驟1406)。過程1400確定模板的塊i是否包括在變異模板中(步驟1408)。
[0154]如果塊i包括在變異模板中(步驟1408的“是”路徑),則過程1400進一步確定塊i是否處于變異模板中的期望位置(步驟1410)。例如塊i可能必須處于模板中的位置I處,但是可能出現(xiàn)在變異模板中的位置12處。
[0155]如果該塊未在變異模板中的期望位置中(步驟1410的“否”路徑),則過程1400從塊在變異模板中的位置處提取塊的內(nèi)容并且將該內(nèi)容放置在期望位置處(步驟1412)。過程1400繼續(xù)到步驟1414。如果該塊出現(xiàn)在變異模板中的期望位置(步驟1410的“是”路徑),則過程1400繼續(xù)到步驟1422。
[0156]例如在一個實施例中,模板構(gòu)造應(yīng)用可以不創(chuàng)建單獨的模板數(shù)據(jù)結(jié)構(gòu)而是修改變異模板的數(shù)據(jù)結(jié)構(gòu)以將該變異模板變換成模板。在這樣的實施例中,塊i的內(nèi)容被從塊i在變異模板中的原始位置移動到變異模板中的期望位置。在另一實施例中,模板構(gòu)造應(yīng)用可以通過將各種塊的數(shù)據(jù)從變異模板的數(shù)據(jù)結(jié)構(gòu)復(fù)制到模板的數(shù)據(jù)結(jié)構(gòu)來將模板構(gòu)造為單獨的數(shù)據(jù)結(jié)構(gòu)。
[0157]返回到步驟1408,如果該塊一±夾i—未包括在變異模板中(步驟1408的“否”路徑),則過程1400確定在變異模板中是否存在可用于塊i的未包括參考(步驟1416)。如果未包括參考可用(步驟1416的“是”路徑),則過程1400使用該未包括參考從源接收塊i(步驟1418)。如果未包括參考不可用于塊i (步驟1416的“否”路徑),則過程1400從已知位置接收塊i的內(nèi)容(步驟1420)。
[0158]從步驟1414繼續(xù),過程1400確定根據(jù)結(jié)構(gòu)是否要放置更多塊以重構(gòu)模板(步驟1422)。如果要放置更多的塊(步驟1422的“是”路徑),則過程1400返回到步驟1406并且選擇在結(jié)構(gòu)中標識的另一個塊,諸如塊j。
[0159]如果根據(jù)結(jié)構(gòu)沒有更多塊要放置(步驟1422的“否”路徑),則過程1400輸出模板(步驟1424)。過程1400隨后結(jié)束。
[0160]參照圖15,該圖描繪根據(jù)一個示例性實施例的從預(yù)調(diào)配的變異模板重構(gòu)模板的另一示例過程的流程圖??梢栽谀0鍢?gòu)造應(yīng)用、諸如圖8中的模板構(gòu)造應(yīng)用804中實施過程1500。
[0161]過程1500接收針對模板,例如模板X的請求(步驟1502)。過程1500確定針對模板X的清單是否與預(yù)調(diào)配的變異模板關(guān)聯(lián)(步驟1504)。如果針對模板X的模板特定清單不與預(yù)調(diào)配的變異模板關(guān)聯(lián)(步驟1504的“否”路徑),則過程1500在標記為A的退出點退出并且經(jīng)由標注為“A”的對應(yīng)進入點進入另一過程,諸如過程1400。
[0162]如果針對模板X的模板特定清單結(jié)合預(yù)調(diào)配的變異模板可用(步驟1504的“是”路徑),則過程1500選擇與模板X對應(yīng)的模板特定清單(步驟1506)。過程1500標識屬于模板X的塊(步驟1508)。例如過程1500可以使用模板特定清單或者模板X的其他已知結(jié)構(gòu)來選擇塊。
[0163]過程1500確定該塊是否包括在變異模板中(步驟1510)。如果該塊包括在變異模板中(步驟1510的“是”路徑),則過程1500諸如通過使用清單中的索引或者偏移信息來標識該塊在變異模板中的位置(步驟1512)。過程1500確定該塊是否在變異模板的期望位置中(步驟1511)。如果該塊未在期望位置中(步驟1511的“否”路徑),則過程1500諸如通過使用清單中的索引或者偏移信息來標識該塊在變異模板中的位置(步驟1512)。如果該塊在期望位置中(步驟1511的“是”路徑),則過程1500繼續(xù)到步驟1516。
[0164]如果該塊未包括在變異模板中(步驟1510的“否”路徑),則過程1500從外部源接收塊(步驟1514)。例如過程1500可以使用來自清單的對該塊的未包括參考或者使用塊的另一已知源以獲得塊。
[0165]跟隨步驟1512或者1514,過程1500將塊的內(nèi)容放置在模板X中的指定位置中(步驟1516)。例如在一個實施例中,過程1500可以修改變異模板的數(shù)據(jù)結(jié)構(gòu)以創(chuàng)建模板X的數(shù)據(jù)結(jié)構(gòu)。在這樣的實施例中,塊的內(nèi)容被從塊在變異模板中的原始位置移動到變異模板中的期望位置。在另一實施例中,可以通過將各種塊的數(shù)據(jù)從變異模板的數(shù)據(jù)結(jié)構(gòu)復(fù)制到模板X的數(shù)據(jù)結(jié)構(gòu)來將模板X構(gòu)造為單獨的數(shù)據(jù)結(jié)構(gòu)。
[0166]過程1500確定是否必須以這一方式組裝模板X的更多塊(步驟1518)。如果將組裝模板X的更多塊(步驟1518的“是”路徑),則過程1500返回到步驟1508并且標識屬于模板X的另一個塊。如果不用組裝模板X的更多塊(步驟1518的“否”路徑),則過程1500輸出模板X (步驟1520)。過程1500隨后結(jié)束。
[0167]附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0168]因此,示例性實施例提供一種用于使用預(yù)調(diào)配的變異模板的方法、系統(tǒng)和計算機程序產(chǎn)品。一個實施例使得能夠向計算節(jié)點預(yù)調(diào)配可調(diào)配的模板的子集而無需完全預(yù)調(diào)配子集中的每個模板。一個實施例預(yù)調(diào)配變異模板以取代子集。變異模板包括跨越子集中的若干模板重復(fù)的那些塊的單個副本,并且按照允許從變異模板高效重構(gòu)模板的優(yōu)先級順序來包括塊。與變異模板對應(yīng)的清單指導(dǎo)模板構(gòu)造應(yīng)用從變異模板重構(gòu)模板。可以從其他源,諸如通過數(shù)據(jù)網(wǎng)絡(luò)從數(shù)據(jù)源獲得從變異模板中省略的塊。因此,一個實施例可以通過從變異模板完全或者部分地重構(gòu)模板并且通過數(shù)據(jù)網(wǎng)絡(luò)僅訪問未包括的塊來減少模板調(diào)配所產(chǎn)生的數(shù)據(jù)流量。
[0169]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的諸方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的諸方面可以采用以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的諸方面還可以實現(xiàn)為在一個或多個計算機可讀存儲設(shè)備或計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀存儲設(shè)備或計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0170]可以采用一個或多個計算機可讀存儲設(shè)備或計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0171]計算機可讀存儲設(shè)備或計算機可讀介質(zhì)上實施的程序代碼可以使用任何合適的介質(zhì)進行傳輸,包括但不限于無線、有線、光纖線纜、RF等,或前述任何合適的組合。
[0172]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或移動自組織網(wǎng)絡(luò)(MANET)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0173]本文參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的諸方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給一個或多個通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的一個或多個處理器,從而生產(chǎn)出一種機器,使得這些指令通過計算機或其他可編程數(shù)據(jù)處理裝置的一個或多個處理器執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0174]也可以把這些計算機程序指令存儲在能弓I導(dǎo)一個或多個計算機、一個或多個其他可編程數(shù)據(jù)處理裝置或一個或多個其他設(shè)備以特定方式工作的一個或多個計算機可讀存儲設(shè)備或計算機可讀介質(zhì)中,這樣,存儲在一個或多個計算機可讀存儲設(shè)備或計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令的制造品(manufacture)。
[0175]也可以把計算機程序指令加載到一個或多個計算機、一個或多個其他可編程數(shù)據(jù)處理裝置、或一個或多個其他設(shè)備上,使得在該一個或多個計算機、一個或多個其他可編程數(shù)據(jù)處理裝置或一個或多個其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在該一個或多個計算機、一個或多個其他可編程裝置或一個或多個其他設(shè)備上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0176]這里所用術(shù)語僅用于描述具體實施例這樣的目的而并非旨在于限制本發(fā)明。如這里所用,除非上下文另有明示,否則單數(shù)形式“一(個)”和“該(所述)”旨在于也包括復(fù)數(shù)形式。如這里所用,除非上下文另有明示,集合包括一個或者多個成員。還將理解,術(shù)語“包括”在使用于本說明書中時指定存在陳述的特征、整件、步驟、操作、單元和/或部件、但是未排除存在或者添加一個或者多個其他特征、整件、步驟、操作、單元、部件和/或其組合。
[0177]在所附權(quán)利要求中的所有裝置或者步驟加上功能單元的對應(yīng)結(jié)構(gòu)、材料、動作和等效物旨在于包括如具體要求保護的用于與其他要求保護的單元組合執(zhí)行功能的任何結(jié)構(gòu)、材料或者動作。本發(fā)明的描述已經(jīng)出于示例和描述的目的而加以呈現(xiàn)、但是未旨在于窮舉本發(fā)明或者使本發(fā)明限于公開的形式。許多修改和變化將為本領(lǐng)域普通技術(shù)人員所清楚而未脫離本發(fā)明的范圍和精神實質(zhì)。選擇和描述實施例以便最好地說明本發(fā)明的原理和實際應(yīng)用并且使本領(lǐng)域其他普通技術(shù)人員能夠針對具有如與設(shè)想的特定使用相適合的各種修改的各種實施例理解本發(fā)明。
【權(quán)利要求】
1.一種用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的方法,所述方法包括: 使用處理器和存儲器來標識將用于創(chuàng)建所述虛擬機的模板,模板包括可用來在數(shù)據(jù)處理系統(tǒng)上創(chuàng)建所述虛擬機的數(shù)據(jù); 選擇所述變異模板中的數(shù)據(jù)塊以用于從所述變異模板來重構(gòu)所述模板,其中所述數(shù)據(jù)塊被包括在所述變異模板中的、與所述變異模板關(guān)聯(lián)的清單中所指定的位置處; 用所述數(shù)據(jù)塊填充所述模板的數(shù)據(jù)結(jié)構(gòu),使得所述數(shù)據(jù)塊占用所述模板中的預(yù)定位置,由此從所述變異模板來重構(gòu)所述模板;以及 使用所述模板在所述數(shù)據(jù)處理系統(tǒng)上創(chuàng)建所述虛擬機。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 標識將被包括在所述模板中以用于所述重構(gòu)的第二數(shù)據(jù)塊; 確定所述變異模板未包括所述第二數(shù)據(jù)塊; 從源接收所述第二數(shù)據(jù)塊;以及 用所述第二數(shù)據(jù)塊填充所述模板的所述數(shù)據(jù)結(jié)構(gòu),使得所述第二數(shù)據(jù)塊占用所述模板中的第二預(yù)定位置。
3.根據(jù)權(quán)利要求2所述的方法,還包括: 在所述清單中找出對所述源的參考;以及 使用所述參考來訪問所述源并且接收所述第二數(shù)據(jù)塊。
4.根據(jù)權(quán)利要求2所述的方法,其中所述源被已知用來提供所述第二數(shù)據(jù)塊。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 接收描述所述模板的結(jié)構(gòu)的信息; 將所述數(shù)據(jù)塊標識為所述模板的所述結(jié)構(gòu)的一部分;以及 使用所述結(jié)構(gòu)進一步標識所述模板中的用于所述數(shù)據(jù)塊的所述位置。
6.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)塊在所述模板中的所述位置不同于在與所述變異模板關(guān)聯(lián)的所述清單中所指定的所述數(shù)據(jù)塊的所述位置。
7.根據(jù)權(quán)利要求1所述的方法,其中所述清單指定將被包括在所述模板中的多個數(shù)據(jù)塊,所述多個數(shù)據(jù)塊包括所述數(shù)據(jù)塊,其中所述清單還指定所述模板中的用于所述數(shù)據(jù)塊的第一位置,還包括: 使用所述清單來標識所述數(shù)據(jù)塊在所述變異模板中的位置;以及 將所述數(shù)據(jù)塊從所述變異模板中的所述位置移動到所述模板中的所述位置。
8.根據(jù)權(quán)利要求1所述的方法,還包括: 修改所述變異模板的數(shù)據(jù)結(jié)構(gòu)以將所述變異模板的所述數(shù)據(jù)結(jié)構(gòu)變換成所述模板的所述數(shù)據(jù)結(jié)構(gòu),并且其中所述移動是所述修改的一部分。
9.根據(jù)權(quán)利要求1所述的方法,還包括: 接收用于創(chuàng)建所述虛擬機的請求,其中所述標識所述模板響應(yīng)于接收所述請求。
10.根據(jù)權(quán)利要求1所述的方法,其中所述清單對應(yīng)于所述模板。
11.根據(jù)權(quán)利要求1所述的方法,其中所述清單對應(yīng)于所述變異模板。
12.一種用于使用預(yù)調(diào)配的變異模板來創(chuàng)建虛擬機的系統(tǒng),包括: 用于使用處理器和存儲器來標識將用于創(chuàng)建所述虛擬機的模板的裝置,模板包括可用來在數(shù)據(jù)處理系統(tǒng)上創(chuàng)建所述虛擬機的數(shù)據(jù);用于選擇所述變異模板中的數(shù)據(jù)塊以用于從所述變異模板來重構(gòu)所述模板的裝置,其中所述數(shù)據(jù)塊被包括在所述變異模板中的、與所述變異模板關(guān)聯(lián)的清單中所指定的位置處; 用于用所述數(shù)據(jù)塊填充所述模板的數(shù)據(jù)結(jié)構(gòu)、使得所述數(shù)據(jù)塊占用所述模板中的預(yù)定位置、由此從所述變異模板來重構(gòu)所述模板的裝置;以及 用于使用所述模板在所述數(shù)據(jù)處理系統(tǒng)上創(chuàng)建所述虛擬機的裝置。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括: 用于標識將被包括在所述模板中以用于所述重構(gòu)的第二數(shù)據(jù)塊的裝置; 用于確定所述變異模板未包括所述第二數(shù)據(jù)塊的裝置; 用于從源接收所述第二數(shù)據(jù)塊的裝置;以及 用于用所述第二數(shù)據(jù)塊填充所述模板的所述數(shù)據(jù)結(jié)構(gòu)、使得所述第二數(shù)據(jù)塊占用所述模板中的第二預(yù)定位置的裝置。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),還包括: 用于在所述清單中找出對所述源的參考的裝置;以及 用于使用所述參考來訪問所述源并且接收所述第二數(shù)據(jù)塊的裝置。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述源被已知用于提供所述第二數(shù)據(jù)塊。
16.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括: 用于接收描述所述模板的結(jié)構(gòu)的`信息的裝置; 用于將所述數(shù)據(jù)塊標識為所述模板的所述結(jié)構(gòu)的一部分的裝置;以及 用于使用所述結(jié)構(gòu)進一步標識所述模板中的用于所述數(shù)據(jù)塊的所述位置的裝置。
17.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述數(shù)據(jù)塊在所述模板中的所述位置不同于在與所述變異模板關(guān)聯(lián)的所述清單中所指定的所述數(shù)據(jù)塊的所述位置。
18.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述清單指定將被包括在所述模板中的多個數(shù)據(jù)塊,所述多個數(shù)據(jù)塊包括所述數(shù)據(jù)塊,其中所述清單還指定所述模板中的用于所述數(shù)據(jù)塊的第一位置,還包括: 用于使用所述清單來標識所述數(shù)據(jù)塊在所述變異模板中的位置的裝置;以及 用于將所述數(shù)據(jù)塊從所述變異模板中的所述位置移動到所述模板中的所述位置的裝置。
19.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括: 用于修改所述變異模板的數(shù)據(jù)結(jié)構(gòu)以將所述變異模板的所述數(shù)據(jù)結(jié)構(gòu)變換成所述模板的所述數(shù)據(jù)結(jié)構(gòu)的裝置,并且其中所述移動是所述修改的一部分。
20.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括: 用于接收用于創(chuàng)建所述虛擬機的請求的裝置,其中所述標識所述模板響應(yīng)于接收所述請求。
21.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述清單對應(yīng)于所述模板。
22.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述清單對應(yīng)于所述變異模板。
【文檔編號】G06F9/455GK103631635SQ201310351304
【公開日】2014年3月12日 申請日期:2013年8月13日 優(yōu)先權(quán)日:2012年8月23日
【發(fā)明者】M·古普塔 申請人:國際商業(yè)機器公司