專(zhuān)利名稱(chēng):從服務(wù)器到主機(jī)的流虛擬機(jī)技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬機(jī),尤其是從服務(wù)器到主機(jī)的流虛擬機(jī)。
背景技術(shù):
虛擬機(jī)平臺(tái)通過(guò)在每一操作系統(tǒng)自己的虛擬機(jī)內(nèi)運(yùn)行該操作系統(tǒng)來(lái)允許多個(gè)客操作系統(tǒng)在物理機(jī)上的同時(shí)執(zhí)行??梢栽谔摂M機(jī)中提供的一個(gè)示例性服務(wù)是虛擬桌面會(huì)話。虛擬桌面會(huì)話在本質(zhì)上是在虛擬機(jī)內(nèi)運(yùn)行的將其用戶界面發(fā)送到遠(yuǎn)程計(jì)算機(jī)的個(gè)人計(jì)算機(jī)環(huán)境。為了虛擬化桌面,操作系統(tǒng)以及用戶的程序和數(shù)據(jù)的全部被封裝在虛擬硬盤(pán)文件(VHD)中,該虛擬硬盤(pán)文件隨后由虛擬機(jī)中的虛擬處理器執(zhí)行并由遠(yuǎn)程客戶機(jī)設(shè)備訪問(wèn)。這一體系結(jié)構(gòu)類(lèi)似于遠(yuǎn)程桌面環(huán)境,但不是使多個(gè)用戶同時(shí)連接到操作系統(tǒng),而是每個(gè)用戶能夠訪問(wèn)在虛擬桌面環(huán)境里的虛擬機(jī)中執(zhí)行的他們自己的操作系統(tǒng)。當(dāng)在數(shù)據(jù)中心中部署虛擬桌面時(shí),通常在諸如存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)目標(biāo)的集中式存儲(chǔ)服務(wù)器上部署虛擬硬盤(pán)文件,并且虛擬主機(jī)從SAN目標(biāo)中讀取虛擬硬盤(pán)文件。該部署允許虛擬桌面在數(shù)據(jù)中心的任意虛擬主機(jī)上被動(dòng)態(tài)地實(shí)例化。SAN目標(biāo)使諸如磁盤(pán)的邏輯單元號(hào)(LUN)通過(guò)高速網(wǎng)絡(luò)對(duì)虛擬主機(jī)可用,并且與網(wǎng)絡(luò)附連存儲(chǔ)不同,SAN目標(biāo)不作為對(duì)虛擬主機(jī)的遠(yuǎn)程存儲(chǔ)出現(xiàn)。但是,SAN目標(biāo)是昂貴的,并且如果可以使用(帶有低價(jià)的集中存儲(chǔ)的)商用服務(wù)器來(lái)集中地部署虛擬硬盤(pán)文件將是有益的。
發(fā)明內(nèi)容
示例性實(shí)施例描述了用于將虛擬硬盤(pán)驅(qū)動(dòng)器部署到虛擬機(jī)主機(jī)的系統(tǒng)。在所示實(shí)施例中,系統(tǒng)可包括但不限于第一服務(wù)器,該第一服務(wù)器被配置為執(zhí)行存儲(chǔ)在第二服務(wù)器上的虛擬硬盤(pán)文件集合的客操作系統(tǒng);在執(zhí)行虛擬硬盤(pán)文件集合的客操作系統(tǒng)的同時(shí),將虛擬硬盤(pán)文件集合的已接收副本存儲(chǔ)到附連于第一服務(wù)器的存儲(chǔ)設(shè)備中;并且響應(yīng)于確定虛擬硬盤(pán)文件集合的副本存儲(chǔ)在附連于第一服務(wù)器的存儲(chǔ)設(shè)備中,執(zhí)行虛擬硬盤(pán)文件集合的客操作系統(tǒng)。除以上之外,權(quán)利要求書(shū)具體實(shí)施方式
和附圖中描述了其他技術(shù)。除計(jì)算機(jī)系統(tǒng)以外,示例性實(shí)施例提供了將虛擬硬盤(pán)驅(qū)動(dòng)器部署到虛擬機(jī)主機(jī)的操作過(guò)程。示例性操作過(guò)程包括但不限于,從存儲(chǔ)在第二服務(wù)器中的機(jī)器差異虛擬硬盤(pán)文件和存儲(chǔ)在附連于第一服務(wù)器的存儲(chǔ)設(shè)備中的主虛擬硬盤(pán)文件引導(dǎo)客操作系統(tǒng),其中主虛擬硬盤(pán)文件包括操作系統(tǒng)的副本,并且機(jī)器差異虛擬硬盤(pán)文件包括用于為用戶定制操作系統(tǒng)的副本的機(jī)器識(shí)別信息;在同時(shí)引導(dǎo)客操作系統(tǒng)時(shí),從第二服務(wù)器下載機(jī)器差異虛擬硬盤(pán)文件的副本;并且,響應(yīng)于確定機(jī)器差異虛擬硬盤(pán)文件的副本已被下載,從機(jī)器差異虛擬硬盤(pán)文件的副本和主虛擬硬盤(pán)文件執(zhí)行客操作系統(tǒng)。除以上之外,權(quán)利要求書(shū)具體實(shí)施方式
和附圖中描述了其他技術(shù)。在另一個(gè)示例中,包括可用于將虛擬硬盤(pán)驅(qū)動(dòng)器部署到虛擬機(jī)主機(jī)的可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。示例性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括在執(zhí)行時(shí)使虛擬主機(jī)執(zhí)行以下動(dòng)作的指令將客操作系統(tǒng)從虛擬硬盤(pán)文件集合引導(dǎo)到虛擬機(jī),其中集合的第一部分被存儲(chǔ)到附連于第一服務(wù)器的存儲(chǔ)設(shè)備上,第二部分被存儲(chǔ)到第二服務(wù)器上;在引導(dǎo)客操作系統(tǒng)時(shí),下載集合第二部分的至少子部分;并且響應(yīng)于確定集合第二部分的至少子部分被下載到附連于第一服務(wù)器的存儲(chǔ)設(shè)備,執(zhí)行附連于第一服務(wù)器的存儲(chǔ)設(shè)備上的客操作系統(tǒng)。除以上之外,權(quán)利要求書(shū)具體實(shí)施方式
和附圖中描述了其他技術(shù)。本領(lǐng)域技術(shù)人員將理解,此處所描述的一個(gè)或多個(gè)方面可包括但不限于用于實(shí)現(xiàn)此處所引用的方面的線路和/或編程;該線路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所述方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說(shuō)明性的并且決不旨在是限制性的。
圖1描述了示例計(jì)算機(jī)系統(tǒng)。
圖2描繪了描述示例性虛擬平臺(tái)的操作環(huán)境。
圖3描繪了描述示例性虛擬平臺(tái)的操作環(huán)境。
圖4描繪了數(shù)據(jù)中心的高級(jí)框圖。
圖5描繪了虛擬主機(jī)和VHD存儲(chǔ)服務(wù)器的高級(jí)框圖。
圖6描繪了虛擬主機(jī)和VHD存儲(chǔ)服務(wù)器的高級(jí)框圖。
圖7描繪了虛擬主機(jī)和VHD存儲(chǔ)服務(wù)器的高級(jí)框圖。
圖8描繪了虛擬主機(jī)和VHD存儲(chǔ)服務(wù)器的高級(jí)框圖。
圖9描繪了兩個(gè)虛擬主機(jī)和VHD存儲(chǔ)服務(wù)器的高級(jí)框圖。
圖10描繪了操作過(guò)程。
圖11描繪了圖10的操作過(guò)程的替換實(shí)施例。
圖12描繪了操作過(guò)程。
圖13描繪了圖12的操作過(guò)程的替換實(shí)施例。
圖14描繪了操作過(guò)程。
圖15描繪了圖14的操作過(guò)程的替換實(shí)施例。
具體實(shí)施例方式本發(fā)明可使用一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)。圖1及以下討論旨在提供可在其中實(shí)現(xiàn)所公開(kāi)的主題的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。貫穿本說(shuō)明書(shū)使用的術(shù)語(yǔ)線路可包括諸如硬件中斷控制器、硬盤(pán)驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器等硬件組件,以及用于操作這些硬件的固件。術(shù)語(yǔ)線路還可包括由固件和/或軟件來(lái)配置的微處理器、應(yīng)用程序?qū)S眉删€路、以及處理器,例如多核通用處理單元的核(被配置為讀取并執(zhí)行指令的單元)。處理器可由從例如RAM、R0M、固件和/或大容量存儲(chǔ)等存儲(chǔ)器加載的指令來(lái)配置,從而具體化可用于配置處理器來(lái)執(zhí)行功能的邏輯。在其中線路包括硬件和軟件的組合的示例實(shí)施例中,實(shí)現(xiàn)者可以編寫(xiě)具體化邏輯的源代碼,該源代碼隨后被編譯成可由硬件執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件實(shí)現(xiàn)的功能或軟件實(shí)現(xiàn)的功能之間幾乎沒(méi)有差別的地步,因而選擇硬件還是軟件來(lái)實(shí)現(xiàn)此處描述的功能只是一個(gè)設(shè)計(jì)選擇。換言之,由于本領(lǐng)域的技術(shù)人員可以理解軟件進(jìn)程可被變換成等效的硬件結(jié)構(gòu),且硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程,因此選擇硬件實(shí)現(xiàn)或是軟件實(shí)現(xiàn)留給了實(shí)現(xiàn)者。現(xiàn)在參考圖1,描繪了示例性計(jì)算系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100可包括處理器102, 例如,執(zhí)行核。盡管示出了一個(gè)處理器102,但在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)100可具有多個(gè)邏輯處理器,例如每一處理器襯底有多個(gè)執(zhí)行核,和/或各自可具有多個(gè)執(zhí)行核的多個(gè)處理器襯底。如圖1所示,各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可由一個(gè)或多個(gè)系統(tǒng)總線互連, 系統(tǒng)總線將各種系統(tǒng)組件耦合到處理器102。系統(tǒng)總線可以是幾種類(lèi)型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。在示例實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以包括例如隨機(jī)存取存儲(chǔ)器 (RAM) 104、存儲(chǔ)設(shè)備106(例如電機(jī)硬盤(pán)驅(qū)動(dòng)器、固態(tài)硬盤(pán)驅(qū)動(dòng)器等)、固件108(例如閃速 RAM或ROM)、以及可移動(dòng)存儲(chǔ)設(shè)備118 (例如CD-ROM、軟盤(pán)、DVD、閃速驅(qū)動(dòng)器、外部存儲(chǔ)設(shè)備等)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可使用其他類(lèi)型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如磁帶盒、閃存卡、和/或數(shù)字視頻盤(pán)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可提供對(duì)計(jì)算機(jī)100的處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性和易失性存儲(chǔ)?;据斎?輸出系統(tǒng)(BIOS) 120可被存儲(chǔ)在固件108中,它包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)系統(tǒng)100內(nèi)的各元件之間拷貝信息的基本例程。包括操作系統(tǒng)和/或應(yīng)用程序的多個(gè)程序可被存儲(chǔ)在固件108、存儲(chǔ)設(shè)備 106、RAM 104和/或可移動(dòng)存儲(chǔ)設(shè)備118上,并且可由處理器102來(lái)執(zhí)行。命令和信息可由計(jì)算機(jī)100通過(guò)輸入設(shè)備116來(lái)接收,輸入設(shè)備可包括但不限于鍵盤(pán)和指向設(shè)備。其他輸入設(shè)備可以包括話筒、操縱桿、游戲墊、掃描儀等等。這些和其他輸入設(shè)備常通過(guò)耦合到系統(tǒng)總線的串行端口接口連接到處理器102,但也可通過(guò)其他接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器或其他類(lèi)型的顯示設(shè)備也可經(jīng)由諸如視頻適配器等可以是圖形處理單元112的一部分或可連接到圖形處理器單元112的接口來(lái)連接到系統(tǒng)總線。除顯示器之外,計(jì)算機(jī)通常包括其他外圍輸出設(shè)備,如揚(yáng)聲器和打印機(jī)(未示出)。圖1的示例性系統(tǒng)還可包括主適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線和連接到SCSI總線的外部存儲(chǔ)設(shè)備。計(jì)算機(jī)系統(tǒng)100可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括上面關(guān)于計(jì)算機(jī)系統(tǒng)100所述的許多或全部元件。當(dāng)在LAN或WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)系統(tǒng)100可通過(guò)網(wǎng)絡(luò)接口卡114連接至LAN或WAN。NIC 114可以是內(nèi)置或外置的,其可以連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)系統(tǒng)100所描述的程序模塊或其部分可被儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。可以理解,所描述的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。 雖然可構(gòu)想本發(fā)明的許多實(shí)施例尤其適用于計(jì)算機(jī)化的系統(tǒng),然而在本說(shuō)明中不意味著將本發(fā)明限于那些實(shí)施例。轉(zhuǎn)向圖2,示出了可被用來(lái)生成虛擬機(jī)的示例性虛擬平臺(tái)。在該實(shí)施例中,系統(tǒng)管理程序微內(nèi)核202可被配置成控制并仲裁對(duì)計(jì)算機(jī)系統(tǒng)200的硬件的訪問(wèn)。系統(tǒng)管理程序微內(nèi)核202可以隔離一個(gè)分區(qū)中的進(jìn)程,使其不能訪問(wèn)另一分區(qū)的資源。例如,系統(tǒng)管理程序微內(nèi)核202可以生成稱(chēng)為分區(qū)的執(zhí)行環(huán)境,如子分區(qū)1到子分區(qū)N(其中N是大于1的整數(shù))。在該實(shí)施例中,子分區(qū)是系統(tǒng)管理程序微內(nèi)核202支持的基本隔離單元。每一子分區(qū)可被映射到在系統(tǒng)管理程序微內(nèi)核202控制之下的一組硬件資源,例如,存儲(chǔ)器、設(shè)備、處理器周期等。在各實(shí)施例中,系統(tǒng)管理程序微內(nèi)核202可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件中、專(zhuān)用集成線路、或其組合。系統(tǒng)管理程序微內(nèi)核202可以通過(guò)限制物理計(jì)算機(jī)系統(tǒng)中的客操作系統(tǒng)的存儲(chǔ)器視圖來(lái)實(shí)施分區(qū)劃分。當(dāng)系統(tǒng)管理程序微內(nèi)核202實(shí)例化一虛擬機(jī)時(shí),它可以將系統(tǒng)物理存儲(chǔ)器(SPM)的頁(yè)(例如,具有開(kāi)始和結(jié)束地址的固定長(zhǎng)度存儲(chǔ)器塊)分配給虛擬機(jī)作為客物理存儲(chǔ)器(GPM)。在該實(shí)施例中,客機(jī)的受限的系統(tǒng)存儲(chǔ)器視圖受系統(tǒng)管理程序微內(nèi)核202控制。術(shù)語(yǔ)客物理存儲(chǔ)器是從虛擬機(jī)的視點(diǎn)描述存儲(chǔ)器頁(yè)的簡(jiǎn)寫(xiě)方式,且術(shù)語(yǔ)系統(tǒng)物理存儲(chǔ)器是從物理系統(tǒng)的觀點(diǎn)描述存儲(chǔ)器頁(yè)的簡(jiǎn)寫(xiě)方式。因此,被分配給虛擬機(jī)的存儲(chǔ)器頁(yè)會(huì)有客物理地址(虛擬機(jī)所使用的地址)和系統(tǒng)物理地址(頁(yè)的實(shí)際地址)??筒僮飨到y(tǒng)可以虛擬化客物理存儲(chǔ)器。虛擬存儲(chǔ)器是一種管理技術(shù),其允許操作系統(tǒng)過(guò)度提交存儲(chǔ)器,并且給予應(yīng)用程序?qū)B續(xù)工作存儲(chǔ)器的唯一訪問(wèn)。在虛擬化環(huán)境中,客操作系統(tǒng)可以使用一個(gè)或多個(gè)頁(yè)表來(lái)將已知為虛擬客地址的虛擬地址轉(zhuǎn)換成客物理地址。在該示例中,存儲(chǔ)器地址可以具有客虛擬地址、客物理地址以及系統(tǒng)物理地址。在所描繪的示例中,父分區(qū)組件也可被認(rèn)為是類(lèi)似于Xen的開(kāi)源系統(tǒng)管理程序的域0,父分區(qū)組件可以包括主機(jī)204。主機(jī)204可以是操作系統(tǒng)(或一組配置實(shí)用程序),并且主機(jī)204可以被配置成通過(guò)使用虛擬服務(wù)提供者228 (VSP)向在子分區(qū)1_N中執(zhí)行的客操作系統(tǒng)提供資源。VPS 228(—般在開(kāi)源社區(qū)中被稱(chēng)為后端驅(qū)動(dòng)程序)可用來(lái)通過(guò)虛擬服務(wù)客戶機(jī)(VSC)(在開(kāi)源社區(qū)或類(lèi)虛擬化設(shè)備中一般稱(chēng)為前端驅(qū)動(dòng)程序)對(duì)到硬件資源的接口進(jìn)行多路復(fù)用。如圖所示,虛擬服務(wù)客戶機(jī)可以在客操作系統(tǒng)的上下文中執(zhí)行。然而,這些驅(qū)動(dòng)程序不同于客機(jī)中的其余驅(qū)動(dòng)程序,因?yàn)橄蛩鼈兲峁┝讼到y(tǒng)管理程序而非客機(jī)。在一示例性實(shí)施例中,虛擬服務(wù)提供者2 與虛擬服務(wù)客戶機(jī)216和218通信所使用的路徑可以被視為虛擬路徑。如圖所示,仿真器234(例如虛擬化IDE設(shè)備、虛擬化視頻適配器、虛擬化NIC等)可被配置成在主機(jī)204中運(yùn)行并被附連到可供客操作系統(tǒng)220和222使用的資源。例如,當(dāng)客操作系統(tǒng)接觸(被映射到設(shè)備的寄存器所處的)存儲(chǔ)器位置或被映射到設(shè)備的存儲(chǔ)器時(shí),微內(nèi)核系統(tǒng)管理程序202可截取該請(qǐng)求并將客機(jī)試圖的值傳遞給相關(guān)聯(lián)的仿真器。在該示例中,資源可被認(rèn)為是虛擬設(shè)備所處的位置。該例中仿真器的使用可以被視為仿真路徑。仿真路徑與虛擬路徑相比是低效的,因?yàn)榕c在VSP和VSC之間傳遞消息相比,它需要更多的CPU資源來(lái)仿真設(shè)備。例如,可以將經(jīng)由仿真路徑把值寫(xiě)入盤(pán)所需的、被映射至寄存器的存儲(chǔ)器上的幾百個(gè)動(dòng)作減少為一個(gè)消息,該消息在虛擬路徑中從VSC被傳遞至VSP。每一子分區(qū)可包括一個(gè)或多個(gè)虛擬處理器Q30和23 ,客操作系統(tǒng)Q20和222)可管理并調(diào)度線程以便在這些虛擬處理器上執(zhí)行。一般而言,虛擬處理器是提供具有特定架構(gòu)的物理處理器的表示的可執(zhí)行指令以及相關(guān)聯(lián)的狀態(tài)信息。例如,一個(gè)虛擬機(jī)可具有帶有英特爾x86處理器特性的虛擬處理器,而另一虛擬處理器可具有PowerPC處理器的特性。本例中的虛擬處理器可被映射到計(jì)算機(jī)系統(tǒng)的邏輯處理器,使得實(shí)現(xiàn)虛擬處理器的指令將受到邏輯處理器的支持。由此,在包括多個(gè)邏輯處理器的實(shí)施例中,在例如其他邏輯處理器執(zhí)行系統(tǒng)管理程序指令時(shí),虛擬處理器可以由邏輯處理器同時(shí)執(zhí)行。分區(qū)中虛擬處理CN 102387197 A
說(shuō)明書(shū)
5/17 頁(yè) 器和存儲(chǔ)器的組合可被認(rèn)為是虛擬機(jī)??筒僮飨到y(tǒng)Q20和222)可以是任何操作系統(tǒng),如來(lái)自微軟 、蘋(píng)果 、開(kāi)源社區(qū)等的操作系統(tǒng)??筒僮飨到y(tǒng)可包括用戶/內(nèi)核操作模式,并且可具有能包括調(diào)度器、存儲(chǔ)器管理器等的內(nèi)核。一般而言,內(nèi)核模式可包括處理器中的執(zhí)行模式,該執(zhí)行模式授予至少對(duì)特權(quán)處理器指令的訪問(wèn)。每一客操作系統(tǒng)可具有相關(guān)聯(lián)的文件系統(tǒng),該文件系統(tǒng)上存儲(chǔ)有諸如終端服務(wù)器、電子商務(wù)服務(wù)器、電子郵件服務(wù)器等應(yīng)用程序以及客操作系統(tǒng)本身。客操作系統(tǒng)可調(diào)度線程來(lái)在虛擬處理器上執(zhí)行,并且可實(shí)現(xiàn)此類(lèi)應(yīng)用程序的實(shí)例。現(xiàn)在參考圖3,示出了上述圖2中的替換虛擬平臺(tái)。圖3描繪了與圖2的組件相類(lèi)似的組件;然而,在該示例實(shí)施例中,系統(tǒng)管理程序302可包括微內(nèi)核組件以及和圖2的主機(jī)204中的組件(如虛擬服務(wù)提供者2 和設(shè)備驅(qū)動(dòng)程序224)相類(lèi)似的組件,而管理操作系統(tǒng)304可包含例如用于配置系統(tǒng)管理程序302的配置實(shí)用程序。在該體系結(jié)構(gòu)中,系統(tǒng)管理程序302可以執(zhí)行與圖2的系統(tǒng)管理程序微內(nèi)核202相同或相似的功能;然而,在該體系結(jié)構(gòu)中,系統(tǒng)管理程序302可被配置成向在子分區(qū)中執(zhí)行的客操作系統(tǒng)提供資源。圖3 的系統(tǒng)管理程序302可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件內(nèi),或者系統(tǒng)管理程序302的一部分可以由專(zhuān)用集成線路來(lái)實(shí)現(xiàn)。現(xiàn)在轉(zhuǎn)向圖4,它示出了示例性數(shù)據(jù)中心的高級(jí)框圖。圖4 一般地示出了將虛擬桌面部署到客戶機(jī)的環(huán)境。簡(jiǎn)言之,圖4中示出的某些元件是用虛線指示的,其指示了認(rèn)為它們?cè)谄渌疚恢脙?nèi)可選地放置和/或可以以分布式的方式來(lái)實(shí)現(xiàn)它們。因此,存儲(chǔ)傳送引擎似4可位于管理員服務(wù)器408和/或VHD存儲(chǔ)服務(wù)器410上。以下描述將調(diào)用如何以及何處實(shí)現(xiàn)存儲(chǔ)傳送引擎424的具體示例,然而,本發(fā)明不限于這些具體的樣例。在所示示例中,數(shù)據(jù)中心可以包括內(nèi)部網(wǎng)絡(luò),其將多個(gè)虛擬主機(jī)012和414)耦合到管理員服務(wù)器408和虛擬硬盤(pán)驅(qū)動(dòng)器(VHD)存儲(chǔ)服務(wù)器410,虛擬主機(jī)可包括類(lèi)似于圖 2或3所示組件的組件。本領(lǐng)域的技術(shù)人員可以理解,盡管示出了兩個(gè)虛擬主機(jī),但數(shù)據(jù)中心可具有更多個(gè)虛擬主機(jī)。同時(shí),盡管每個(gè)虛擬主機(jī)G12和414)被示為運(yùn)行一個(gè)虛擬機(jī) G16和418),但是每個(gè)虛擬主機(jī)可以同時(shí)主存更多的虛擬機(jī)?;蛘邠Q言之,數(shù)據(jù)中心可以有M個(gè)虛擬主機(jī)(其中M是大于1的整數(shù)),并且M個(gè)虛擬主機(jī)中的每一個(gè)可以主存N個(gè)虛擬機(jī)(其中N也是大于1的整數(shù))。虛擬平臺(tái)402和404是如上在圖2和圖3中所述的虛擬基礎(chǔ)結(jié)構(gòu)組件的邏輯抽象。在以下章節(jié)中被描述為在虛擬平臺(tái)402或404 “以?xún)?nèi)”的功能可以在圖2和圖3所述的一個(gè)或多個(gè)元件中實(shí)現(xiàn)??砂?lèi)似于圖1的計(jì)算機(jī)系統(tǒng)100的組件的管理員服務(wù)器408還可包括用于連接中介426的線路,例如由從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)載入的指令來(lái)配置的處理器。連接中介 426可從客戶機(jī)接收虛擬桌面請(qǐng)求,并可選擇主機(jī)來(lái)運(yùn)行用戶的虛擬機(jī)。管理員服務(wù)器408 可將用戶的配置文件發(fā)送到虛擬主機(jī)412。虛擬主機(jī)412可包括在虛擬平臺(tái)402內(nèi)實(shí)現(xiàn)的虛擬機(jī)引擎(未示出),該虛擬機(jī)引擎可根據(jù)配置文件中的信息執(zhí)行并實(shí)例化虛擬機(jī)416。 作為實(shí)例化過(guò)程的一部分及如以下段落中詳細(xì)描述的,虛擬平臺(tái)402可被配置為,為虛擬機(jī)416確定虛擬硬盤(pán)文件的位置,以便引導(dǎo)存儲(chǔ)其上的客操作系統(tǒng)。VHD存儲(chǔ)服務(wù)器410可包括類(lèi)似于圖1的計(jì)算機(jī)系統(tǒng)100的組件。在示例性實(shí)施例中,可從諸如通用處理單元、1或100GB網(wǎng)絡(luò)適配器、串行高級(jí)技術(shù)附件(SATA)硬盤(pán)、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)硬盤(pán)的商用部件來(lái)構(gòu)建VHD存儲(chǔ)服務(wù)器410,而不是在昂貴的SAN上實(shí)現(xiàn)。VHD存儲(chǔ)服務(wù)器410可載入可控制計(jì)算機(jī)系統(tǒng)的硬件的例如Windows Server 2008 的商用操作系統(tǒng)。在此示例中,操作系統(tǒng)可執(zhí)行用于實(shí)現(xiàn)應(yīng)用層網(wǎng)絡(luò)協(xié)議的指令,應(yīng)用層網(wǎng)絡(luò)協(xié)議提供對(duì)存儲(chǔ)在由操作系統(tǒng)控制的文件系統(tǒng)中的文件的共享訪問(wèn)。VHD存儲(chǔ)服務(wù)器410在內(nèi)部網(wǎng)絡(luò)上共享其文件系統(tǒng)428,而不像SAN那樣展示LUN。這樣,在該示例性實(shí)施例中,虛擬主機(jī)可將VHD存儲(chǔ)服務(wù)器410作為聯(lián)網(wǎng)存儲(chǔ)設(shè)備來(lái)檢測(cè)。操作中,虛擬主機(jī)發(fā)送讀取VHD存儲(chǔ)服務(wù)器的文件系統(tǒng)中的文件的請(qǐng)求,并且VHD存儲(chǔ)服務(wù)器410上運(yùn)行的操作系統(tǒng)檢索所期望的數(shù)據(jù)。VHD存儲(chǔ)服務(wù)器410可在其文件系統(tǒng)428中存儲(chǔ)多個(gè)虛擬硬盤(pán)文件。簡(jiǎn)言之,虛擬硬盤(pán)文件是物理硬盤(pán)的虛擬表示并且存儲(chǔ)數(shù)據(jù)塊,例如,表示諸如客操作系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)在客機(jī)的文件系統(tǒng)(文件、文件夾等)中的數(shù)據(jù)的字節(jié)或位序列。虛擬平臺(tái)可接收已從客機(jī)發(fā)出的輸入/輸出(IO)任務(wù),并代表客機(jī)來(lái)執(zhí)行它們。但是,從VHD存儲(chǔ)服務(wù)器410引導(dǎo)和運(yùn)行客OS可能導(dǎo)致嚴(yán)重的等待時(shí)間問(wèn)題,因?yàn)槲瘁槍?duì)該部署優(yōu)化VHD存儲(chǔ)服務(wù)器410。例如,當(dāng)虛擬平臺(tái)402必須讀取VHD存儲(chǔ)服務(wù)器410的VHD字節(jié)時(shí),引導(dǎo)客機(jī)可能需要超過(guò)一分鐘,例如從引導(dǎo)加載器開(kāi)始到其退出的時(shí)間所測(cè)量的。如果多個(gè)用戶試圖同時(shí)登錄到他們的虛擬桌面時(shí),該操作將需要明顯更長(zhǎng)的時(shí)間。為了加速該過(guò)程,在示例性實(shí)施例中,每個(gè)VHD可被分解為多個(gè)差異VHD文件,并且存儲(chǔ)傳送引擎似4可將不同的文件(或其部分)選擇性地高速緩存到數(shù)據(jù)中心的各位置中。在示例性實(shí)施例中,表示虛擬硬盤(pán)的數(shù)據(jù)可被分解為多個(gè)文件,并且數(shù)據(jù)的組合構(gòu)成包括客操作系統(tǒng)的虛擬硬盤(pán)。差異虛擬硬盤(pán)文件將虛擬硬盤(pán)的當(dāng)前狀態(tài)表示為與父圖像相比一組已修改的塊。父圖像可以是另一個(gè)差異虛擬硬盤(pán)文件或者基礎(chǔ)虛擬硬盤(pán)文件。由于這一點(diǎn),每個(gè)差異虛擬硬盤(pán)文件可包括唯一的標(biāo)識(shí)符、其父的標(biāo)識(shí)符和標(biāo)識(shí)其父的位置的值。每個(gè)差異VHD文件可被鏈接在一起,并且鏈接鏈可指向基礎(chǔ)虛擬硬盤(pán)文件的位置。在示例性實(shí)施例中,每個(gè)虛擬硬盤(pán)可被分解為三個(gè)虛擬硬盤(pán)文件。盡管示出了三個(gè)虛擬硬盤(pán)文件,但本發(fā)明并不限于此配置,并且虛擬硬盤(pán)可被分解為兩個(gè)虛擬硬盤(pán)文件或更多個(gè)。在示例性實(shí)施例中,可從主VHD文件、機(jī)器差異VHD文件和用戶差異VHD文件中生成虛擬硬盤(pán)文件。主VHD文件可包括類(lèi)似于在OS安裝DVD上找到且出售給消費(fèi)者的操作系統(tǒng)的副本。主VHD文件還可包括數(shù)據(jù)中心中由用戶使用的程序。例如,如果正向需要這樣的軟件的用戶提供數(shù)據(jù)中心,則主VHD文件可與辦公室生產(chǎn)性軟件在一起。在另一個(gè)示例中,如果所預(yù)期的用戶是web設(shè)計(jì)者,則主VHD文件可包括web設(shè)計(jì)軟件。機(jī)器差異VHD文件可被鏈接到主VHD文件。實(shí)際上,機(jī)器差異VHD文件可包括向特定用戶提供主VHD文件的數(shù)據(jù)塊。例如,機(jī)器差異VHD文件可包括將一個(gè)用戶的計(jì)算環(huán)境與另一個(gè)相區(qū)分的數(shù)據(jù),諸如機(jī)器標(biāo)識(shí)符、活動(dòng)目錄標(biāo)識(shí)符等。在示例性實(shí)施例中,數(shù)據(jù)中心中可存在用于每個(gè)唯一的用戶賬戶的機(jī)器差異VHD文件。在相同或另一個(gè)實(shí)施例中,每個(gè)主VHD文件可被鏈接到相同的主VHD文件。在另一個(gè)示例性實(shí)施例中,可以可選地使用用戶差異VHD文件。在使用用戶差異VHD文件的示例實(shí)施例中,它可被鏈接到主VHD文件并用于存儲(chǔ)在會(huì)話期間被寫(xiě)到磁盤(pán)的數(shù)據(jù)塊。例如,當(dāng)用戶與虛擬桌面交互時(shí),客操作系統(tǒng)將信息寫(xiě)到磁盤(pán)。在示例性實(shí)施例中,這些數(shù)據(jù)塊可被存儲(chǔ)到用戶差異VHD文件中。在相同或另一個(gè)實(shí)施例中,在快照期間寫(xiě)入磁盤(pán)的數(shù)據(jù)可被存儲(chǔ)到用戶差異VHD文件中。這樣,用戶差異VHD文件可以是可寫(xiě)的,而機(jī)器差異VHD文件和主VHD文件被設(shè)為只讀。在該示例性配置中,當(dāng)虛擬機(jī)運(yùn)行時(shí)僅有用戶差異VHD文件中的數(shù)據(jù)改變。在示例性配置中,鏈中最后的虛擬硬盤(pán)文件的位置可被存儲(chǔ)到虛擬機(jī)的配置文件中。當(dāng)虛擬平臺(tái)接收請(qǐng)求以實(shí)例化虛擬機(jī)時(shí),虛擬平臺(tái)可讀取配置文件以發(fā)現(xiàn)鏈中最后鏈接的位置。虛擬平臺(tái)可隨后發(fā)現(xiàn)其父的位置并打開(kāi)父。虛擬平臺(tái)可繼續(xù)發(fā)現(xiàn)鏈中的虛擬硬盤(pán)文件直到它發(fā)現(xiàn)基礎(chǔ)虛擬硬盤(pán)文件的位置并將其打開(kāi)。在另一個(gè)示例性實(shí)施例中,鏈中最后的只讀虛擬硬盤(pán)文件的位置可被存儲(chǔ)到配置文件中,例如,機(jī)器差異VHD文件。在該示例中,當(dāng)引導(dǎo)虛擬機(jī)時(shí)可動(dòng)態(tài)地創(chuàng)建用戶差異VHD 文件。例如,響應(yīng)于檢測(cè)到指示只讀文件的父位置值,例如虛擬機(jī)引擎的虛擬平臺(tái)402中的處理可創(chuàng)建用戶差異VHD文件。在該示例中,虛擬機(jī)引擎可創(chuàng)建用戶差異VHD文件并將其動(dòng)態(tài)地鏈接到只讀文件。虛擬平臺(tái)可使用位圖和預(yù)先配置的操作次序來(lái)讀取并寫(xiě)入虛擬硬盤(pán)文件集合。例如,每個(gè)虛擬硬盤(pán)文件可包括位圖和數(shù)據(jù)。位圖指示哪些數(shù)據(jù)塊位于差異磁盤(pán)(1)中而哪些數(shù)據(jù)塊沒(méi)有(0)。在該示例性實(shí)施例中,當(dāng)虛擬平臺(tái)(即,虛擬平臺(tái)中運(yùn)行的存儲(chǔ)服務(wù)) 試圖從文件集合進(jìn)行讀取時(shí),它可被配置為首先試圖從用戶差異虛擬硬盤(pán)文件中讀取,并且如果塊不存在,則它可拷貝到機(jī)器差異虛擬硬盤(pán)文件。在任一文件中都沒(méi)有該塊的情況下,則虛擬平臺(tái)402可被配置為從主虛擬硬盤(pán)文件中讀取該塊。對(duì)于寫(xiě)操作,虛擬平臺(tái)402 可被配置為寫(xiě)入鏈中的第一個(gè)鏈接(例如,用戶差異VHD文件)并將文件位圖中的對(duì)應(yīng)塊標(biāo)記為1。對(duì)該數(shù)據(jù)塊的此后的讀IO任務(wù)可被定向到用戶差異VHD文件。轉(zhuǎn)回到圖4,在示例性實(shí)施例中,存儲(chǔ)傳送引擎4 可被配置為當(dāng)虛擬機(jī)在運(yùn)行時(shí)選擇性地將VHD文件下載到虛擬主機(jī)本地存儲(chǔ)。在虛擬硬盤(pán)文件被下載后,例如圖2的微內(nèi)核系統(tǒng)管理程序202的虛擬平臺(tái)可使用“ktparent (設(shè)定父)”命令來(lái)重新配置每個(gè)VHD 文件和/或配置文件中的父位置值以指向文件的本地副本。通過(guò)選擇性地下載VHD文件, 發(fā)生在VHD存儲(chǔ)服務(wù)器410上的磁盤(pán)操作的數(shù)量被最小化并且處理用于M個(gè)虛擬機(jī)的存儲(chǔ)操作的壓力被消除。在用戶退出之后,對(duì)用戶差異VHD文件的寫(xiě)可被丟棄(在匯合部署中)或與例如機(jī)器差異VHD文件進(jìn)行合并(在個(gè)人虛擬機(jī)部署中)。合并操作可在數(shù)據(jù)中心的多個(gè)位置之一進(jìn)行。在第一個(gè)實(shí)施例中,可在虛擬主機(jī)上合并兩個(gè)文件的本地副本。在第二個(gè)實(shí)施例中,可在VHD存儲(chǔ)服務(wù)器410上合并兩個(gè)文件的本地副本。在第三個(gè)實(shí)施例中,運(yùn)行在虛擬主機(jī)上的存儲(chǔ)傳送引擎似4將本地存儲(chǔ)420中的用戶差異VHD文件的副本與存儲(chǔ)在VHD 存儲(chǔ)服務(wù)器410中的機(jī)器差異VHD文件相合并。在第四個(gè)實(shí)施例中,運(yùn)行在VHD存儲(chǔ)服務(wù)器410上的存儲(chǔ)傳送引擎似4可將本地存儲(chǔ)420中的用戶差異VHD文件的副本與存儲(chǔ)在 VHD存儲(chǔ)服務(wù)器410中的機(jī)器差異VHD文件相合并。合并操作的位置可由服務(wù)器管理員來(lái)選擇。無(wú)論拷貝操作在何處進(jìn)行,存儲(chǔ)傳送引擎4M可通過(guò)將用戶差異VHD文件中的數(shù)據(jù)塊拷貝到機(jī)器差異VHD文件的對(duì)應(yīng)塊中來(lái)合并存儲(chǔ)在用戶差異VHD文件中的差異與機(jī)器差異VHD文件。VHD存儲(chǔ)服務(wù)器410可接收已修改的機(jī)器差異VHD文件的副本,并使用已修改的版本來(lái)重寫(xiě)文件的副本。在此處,例如虛擬主機(jī)412的虛擬主機(jī)可刪除其副本或在例如本地存儲(chǔ)420的本地存儲(chǔ)中繼續(xù)對(duì)其進(jìn)行存儲(chǔ)。在將其存儲(chǔ)在本地存儲(chǔ)420的實(shí)例中,
1可向管理員服務(wù)器408發(fā)送指示機(jī)器差異VHD文件的副本的時(shí)戳的信號(hào)。在用戶再次登陸的情況下,連接中介4 可將存儲(chǔ)在本地存儲(chǔ)420中的機(jī)器差異VHD文件的時(shí)戳與VHD存儲(chǔ)410中對(duì)應(yīng)文件的時(shí)戳進(jìn)行比較。在時(shí)戳相匹配的情況下,連接中介似6可被配置為試圖在虛擬主機(jī)412上而非數(shù)據(jù)中心的不同主機(jī)上實(shí)例化虛擬機(jī)416。圖5-8示出不同的部署配置。接著要實(shí)現(xiàn)對(duì)部署配置的選擇,但是,可通過(guò)考慮內(nèi)部網(wǎng)絡(luò)的可用帶寬以及將VHD存儲(chǔ)服務(wù)410的處理器連接到物理存儲(chǔ)設(shè)備(例如,內(nèi)部SATA總線帶寬)的內(nèi)部總線的可用帶寬來(lái)進(jìn)行選擇。例如,網(wǎng)絡(luò)管理員可測(cè)試他或她的數(shù)據(jù)中心以觀察從存儲(chǔ)有全部VHD文件的VHD存儲(chǔ)服務(wù)器410引導(dǎo)操作系統(tǒng)所需的時(shí)間。如果(基于偏好)所用時(shí)間過(guò)長(zhǎng),則管理員可使用此處描述的不同的部署配置中的一個(gè)。在管理員希望最大化性能的實(shí)例中,他或她可使用最小化必須通過(guò)內(nèi)部網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量的部署ο在相同或另一個(gè)實(shí)施例中,存儲(chǔ)傳送引擎4M可被配置為基于算法選擇性地拷貝某些文件,該算法最小化用于拷貝VHD文件的可用帶寬量。在相同或另一個(gè)實(shí)施例中,算法可被配置為檢測(cè)哪個(gè)文件處理最多的IO任務(wù)并拷貝該文件。轉(zhuǎn)向圖5,它示出了示例性部署。在所示實(shí)施例中,在由圖4的連接中介4 作出在虛擬主機(jī)412上實(shí)例化虛擬機(jī)416的決定之后,存儲(chǔ)傳送引擎424已被配置為將主VHD文件504、機(jī)器差異VHD文件506和用戶差異VHD文件508拷貝到本地存儲(chǔ)420。此圖及以下各圖中的虛線示出主VHD文件504、機(jī)器差異VHD文件506和用戶差異VHD文件508的副本可從VHD存儲(chǔ)服務(wù)器410拷貝到虛擬主機(jī)412。在示例性實(shí)施例中,拷貝操作可在引導(dǎo)之前開(kāi)始。例如,虛擬平臺(tái)402—確定文件集合的位置操作就可開(kāi)始。在另一個(gè)實(shí)施例中,當(dāng)VHD存儲(chǔ)服務(wù)器410上的存儲(chǔ)傳送引擎4 接收請(qǐng)求以從虛擬平臺(tái)402打開(kāi)文件集合時(shí),拷貝操作可開(kāi)始。在兩種情形中,虛擬平臺(tái)402可響應(yīng)于接收配置文件來(lái)開(kāi)始該過(guò)程。虛擬平臺(tái)402可打開(kāi)文件并讀取可包括例如用戶差異VHD文件508的網(wǎng)絡(luò)路徑的VHD位置字段,可以是\\VHDstorageserver\share\. · · \userXXXuserdiff. vhd。虛擬平臺(tái) 402 可向 VHD 存儲(chǔ)服務(wù)器410發(fā)送打開(kāi)該文件的請(qǐng)求,并且VHD存儲(chǔ)服務(wù)器410可處理該請(qǐng)求。虛擬平臺(tái)402隨后可讀取指示用戶差異VHD文件的父的位置的值,可以是\\VHDstorageserver\share\. . . \userXXXmachinediff. vhd。類(lèi)似地,虛擬平臺(tái)402隨后可發(fā)現(xiàn)機(jī)器差異VHD文件的父位于\\VHDstorageserver\share\. . . \master. vhd。在圖中這些鏈接中的每一個(gè)被示為箭頭。在替換的實(shí)施例中,配置文件可包括機(jī)器差異VHD文件506的VHD位置值,即\\VHDstorageserver\share\. . . \userXXXmachinediff. vhd。在該示例中,虛擬平臺(tái) 402 可確定機(jī)器差異VHD文件506是只讀的并且生成用戶差異VHD文件508。虛擬平臺(tái)402可將新生成的用戶差異VHD文件的父位置設(shè)為指向機(jī)器差異VHD文件506,并修改配置文件以指向新生成的用戶差異VHD文件的位置。在文件被打開(kāi)后,虛擬平臺(tái)可讀取位圖并啟用虛擬機(jī)416中的虛擬處理器。虛擬機(jī)416中的OS引導(dǎo)加載器程序可發(fā)出對(duì)于第一塊的IO任務(wù),需要讀取該第一塊以便引導(dǎo)客操作系統(tǒng)。虛擬平臺(tái)402可使用位圖來(lái)確定哪個(gè)磁盤(pán)包括所請(qǐng)求的字節(jié),從VHD存儲(chǔ)服務(wù)器410上打開(kāi)的文件取回字節(jié),并將字節(jié)返回給引導(dǎo)加載器。在VHD鏈被存儲(chǔ)到本地存儲(chǔ)420之后,可以向虛擬平臺(tái)402發(fā)送信號(hào)以重置存儲(chǔ)在VHD文件中的鏈接和配置文件。當(dāng)虛擬機(jī)416運(yùn)行時(shí),虛擬平臺(tái)402可修改配置文件中的父位置以指向已下載的副本,例如本地用戶差異VHD文件514,并且存儲(chǔ)在機(jī)器差異VHD文件512的本地副本中的父位置信息可被重置為指向本地主VHD文件510。例如, 如微內(nèi)核系統(tǒng)管理程序202的虛擬平臺(tái)402可包括存儲(chǔ)傳送引擎似4可以訪問(wèn)以便修改父位置信息的接口。在特定的示例中,可以訪問(wèn)接口并且配置文件中的父位置信息可從 \\VHDstorageserver\share\. . . \userXXXuserdiff. vhd 變?yōu)?C:\ProgramData\. . . \ Virtual Machines\userXXXuserdiff. vhd。在此處,存儲(chǔ)傳送引擎424可關(guān)閉到VHD存儲(chǔ)服務(wù)器410的連接,并且將之后的IO任務(wù)發(fā)送到VHD文件的本地副本而不是存儲(chǔ)在VHD存儲(chǔ)服務(wù)器410上的副本。例如,當(dāng)由虛擬平臺(tái)402接收讀IO任務(wù)時(shí),已更新的位置信息可被讀取并使虛擬平臺(tái)402發(fā)送任務(wù)到本地存儲(chǔ)420由于鏈中的VHD文件可能非常大,例如主VHD文件504單獨(dú)可有7或8GB,在示例性實(shí)施例中,可使用快速文件拷貝技術(shù)來(lái)減少拷貝時(shí)間。例如,可以在虛擬主機(jī)412和/或 VHD存儲(chǔ)服務(wù)器410上執(zhí)行后臺(tái)智能傳送服務(wù)(BITS)。BITS可使用空閑的網(wǎng)絡(luò)帶寬來(lái)拷貝文件并在后臺(tái)拷貝數(shù)據(jù)。在操作中,BITS程序可以監(jiān)控VHD存儲(chǔ)服務(wù)器410上的網(wǎng)絡(luò)通信并扼制其自己的拷貝以確保其他下載獲得所需的帶寬。在相同或另一個(gè)實(shí)施例中,VHD存儲(chǔ)服務(wù)器410可被配置為將特定的字節(jié)塊預(yù)先高速緩存到RAM中從而加速拷貝操作。例如,引導(dǎo)加載器通常需要來(lái)自主VHD文件504的相同的數(shù)據(jù)塊以執(zhí)行登錄操作,在示例性實(shí)施例中,這些數(shù)據(jù)塊可在VHD存儲(chǔ)服務(wù)器410引導(dǎo)時(shí)被高速緩存到RAM中,以便VHD存儲(chǔ)服務(wù)器410不必首先從大容量存儲(chǔ)中取回字節(jié)。在另一個(gè)示例實(shí)施例中,在VHD存儲(chǔ)服務(wù)器410具有足夠RAM的實(shí)例中,可以預(yù)先高速緩存整個(gè)主VHD文件504。在示例性實(shí)施例中,主VHD文件504和機(jī)器差異VHD文件506可被標(biāo)記為只讀。這樣,這些文件可以被拷貝到虛擬主機(jī)406而沒(méi)有問(wèn)題。但是,用戶差異VHD文件508是讀/ 寫(xiě)并且需要以確保用戶數(shù)據(jù)不會(huì)丟失的方式來(lái)拷貝。在示例性實(shí)施例中,用戶差異VHD文件508起始于0字節(jié)(引導(dǎo)時(shí)文件為空)并且大小快速增長(zhǎng)。在該示例中,當(dāng)存儲(chǔ)傳送引擎似4啟動(dòng)拷貝操作時(shí),可創(chuàng)建本地用戶差異VHD文件514,并且虛擬平臺(tái)402可被配置為向用戶差異VHD文件508和本地用戶差異VHD文件514兩者發(fā)送寫(xiě)IO任務(wù)。存儲(chǔ)傳送引擎4M可存儲(chǔ)指示塊拷貝行的值,并且可以串行地開(kāi)始向本地用戶差異VHD文件514拷貝塊,從用戶差異VHD文件508的起始到結(jié)尾,而客操作系統(tǒng)向兩個(gè)副本寫(xiě)入。在向本地存儲(chǔ) 510拷貝一塊后,該值被遞增。當(dāng)該值到達(dá)用戶差異VHD文件508的結(jié)尾時(shí),兩個(gè)文件已被同步,并且存儲(chǔ)傳送引擎似4可以停止鏡像對(duì)用戶差異VHD文件508的寫(xiě)入。轉(zhuǎn)向圖6,它示出主VHD文件的副本被預(yù)先高速緩存到虛擬主機(jī)412的替換實(shí)現(xiàn)。 在此部署中,數(shù)據(jù)中心的每個(gè)虛擬主機(jī)可以使本地主VHD文件510被預(yù)先高速緩存,從而不必從VHD存儲(chǔ)服務(wù)器410拷貝該文件。在此部署中,VHD存儲(chǔ)服務(wù)器410可以具有或可以不具有主VHD文件的副本,但是,它可包括副本使得被加至數(shù)據(jù)中心的虛擬主機(jī)可以下載副本。在此示例性配置中,機(jī)器差異VHD文件506可包括指向主VHD文件的本地副本的位置信息,從而消除了必須通過(guò)內(nèi)部網(wǎng)絡(luò)發(fā)送對(duì)主VHD文件的讀操作的情況。與上面類(lèi)似的, 在VHD鏈被存儲(chǔ)到本地存儲(chǔ)420之后,可以向虛擬平臺(tái)402發(fā)送信號(hào)以調(diào)整存儲(chǔ)在VHD文件中的父位置信息和配置文件。
轉(zhuǎn)向圖7,它示出了另一個(gè)替換的部署。在此示例性實(shí)施例中,配置文件可指向機(jī)器差異VHD文件506和主VHD文件504。在另一個(gè)配置中,配置文件可指向本地用戶差異VHD文件514。在引導(dǎo)期間,下載主VHD文件504的副本和機(jī)器差異VHD文件506時(shí),寫(xiě)可以被立即發(fā)送給本地用戶差異VHD文件514。與上面類(lèi)似的,在VHD鏈被存儲(chǔ)到本地存儲(chǔ)420之后,可以向虛擬平臺(tái)402發(fā)送信號(hào)以調(diào)整存儲(chǔ)在VHD文件中的父位置信息和配置文件。圖8示出了另一個(gè)替換的部署。根據(jù)該示例性實(shí)施例,本地存儲(chǔ)420可包括本地用戶差異VHD文件514和本地主VHD文件510,并且VHD存儲(chǔ)服務(wù)器410可包括機(jī)器差異VHD文件506。在此示例中,虛擬機(jī)416的配置文件可包括用戶差異VHD文件514的本地副本的位置。本地用戶差異VHD文件514可指向VHD存儲(chǔ)服務(wù)器410上的機(jī)器差異VHD文件506,該機(jī)器差異VHD文件可指向本地主VHD文件510。與上述操作類(lèi)似的,當(dāng)虛擬機(jī)416正在運(yùn)行時(shí),可將機(jī)器差異VHD文件506的副本下載到虛擬主機(jī)406并將其存儲(chǔ)為本地機(jī)器差異VHD文件512。與上面類(lèi)似的,在本地機(jī)器差異VHD文件512被存儲(chǔ)到本地存儲(chǔ)420之后,可向虛擬平臺(tái)402發(fā)送信號(hào)以調(diào)整存儲(chǔ)在本地用戶差異VHD文件中的鏈接,以指向本地機(jī)器差異VHD文件512的文件系統(tǒng)位置?,F(xiàn)在轉(zhuǎn)向圖9,它示出將虛擬機(jī)416從虛擬主機(jī)412遷移到虛擬主機(jī)414的操作環(huán)境。在所示實(shí)施例中,假設(shè)當(dāng)拷貝操作開(kāi)始時(shí),虛擬硬盤(pán)A的VHD文件鏈已被下載到虛擬主機(jī)406。但是,情況可能并非如此,并且當(dāng)啟動(dòng)實(shí)況遷移操作時(shí),虛擬主機(jī)412可能具有VHD文件的任意組合。當(dāng)啟動(dòng)存儲(chǔ)傳送引擎424時(shí),例如,虛擬主機(jī)412可以開(kāi)始拷貝確保將VHD A拷貝到虛擬主機(jī)414所必需的VHD文件。在特定的示例中,這可以?xún)H包括將本地用戶差異VHD文件514拷貝到VHD存儲(chǔ)服務(wù)器410,并且可以使用此處描述的鏡像技術(shù)來(lái)拷貝文件。在需要被拷貝的文件被上載到VHD存儲(chǔ)服務(wù)器410之后,對(duì)VHD A的控制可從虛擬主機(jī)412切換到虛擬主機(jī)414,并且虛擬平臺(tái)404可以開(kāi)始將其需要的文件下載到本地存儲(chǔ)422。例如,虛擬主機(jī)414可能已經(jīng)包括本地主VHD文件802和/或本地機(jī)器差異VHD文件804。這樣,在此示例中,用戶差異VHD文件508可被拷貝到虛擬主機(jī)414并被存儲(chǔ)為本地用戶差異VHD文件806。類(lèi)似地,虛擬主機(jī)404可被配置為在下載結(jié)束后重置任意鏈接,從而將讀和寫(xiě)定向到VHD文件的本地副本而非VHD存儲(chǔ)服務(wù)器410上的副本。以下是描繪操作過(guò)程的一系列流程圖。為便于理解,流程圖被組織成使得初始流程圖通過(guò)總體“大圖”視點(diǎn)來(lái)演示各實(shí)現(xiàn),并且后續(xù)的流程圖提供以虛線示出的進(jìn)一步的附加物和/或細(xì)節(jié)。此外,本領(lǐng)域的技術(shù)人員可以理解,虛線所描繪的操作過(guò)程被認(rèn)為是任選的?,F(xiàn)在轉(zhuǎn)向圖10,它示出始于操作1000的操作過(guò)程,并且操作1002示出包括用于執(zhí)行存儲(chǔ)在第二服務(wù)器上的虛擬硬盤(pán)文件集合的客操作系統(tǒng)的線路的虛擬主機(jī)412。例如,虛擬平臺(tái)402之前可能已經(jīng)打開(kāi)了集合,例如存儲(chǔ)在第二服務(wù)器上的一個(gè)或多個(gè)VHD文件,例如存儲(chǔ)在VHD存儲(chǔ)服務(wù)器410的文件系統(tǒng)428中。虛擬平臺(tái)402(例如可執(zhí)行指令)可以調(diào)度指示處理器上的虛擬處理器的線程,并且處理器可以執(zhí)行客操作系統(tǒng),該客操作系統(tǒng)向存儲(chǔ)在文件系統(tǒng)428中的VHD文件集合發(fā)出IO任務(wù)。示例IO任務(wù)可以是讀。在此示例中,虛擬平臺(tái)402可接收IO任務(wù)并且通過(guò)內(nèi)部網(wǎng)絡(luò)從VHD文件讀取所請(qǐng)求的數(shù)據(jù)塊并將字節(jié)發(fā)送回到客OS。繼續(xù)對(duì)圖10的描述,操作1004示出在實(shí)施例中,虛擬主機(jī)可包括用于當(dāng)同時(shí)執(zhí)行
14虛擬硬盤(pán)文件集合的客操作系統(tǒng)時(shí),存儲(chǔ)附連于第一服務(wù)器的存儲(chǔ)設(shè)備中的虛擬硬盤(pán)文件集合的已接收的副本的線路。例如,轉(zhuǎn)回到圖4,虛擬主機(jī)412可以接收指示來(lái)自VHD存儲(chǔ)服務(wù)器410的虛擬硬盤(pán)文件集合的副本的一個(gè)或多個(gè)信息分組。此示例中的集合可包括但不限于用戶差異虛擬硬盤(pán)文件、機(jī)器差異虛擬硬盤(pán)文件,和/或主虛擬硬盤(pán)文件。在此示例中,當(dāng)客操作系統(tǒng)正在運(yùn)行時(shí),VHD存儲(chǔ)服務(wù)器410可以同時(shí)地將集合拷貝到本地存儲(chǔ)420。 即,在下載集合的副本時(shí),虛擬機(jī)416可以執(zhí)行存儲(chǔ)在VHD存儲(chǔ)服務(wù)410中的集合的客操作系統(tǒng)。轉(zhuǎn)回到圖10,操作1006示出在實(shí)施例中,虛擬主機(jī)可包括響應(yīng)于確定虛擬硬盤(pán)文件集合的副本已被存儲(chǔ)到附連于第一服務(wù)器的存儲(chǔ)設(shè)備中,執(zhí)行虛擬硬盤(pán)文件集合的副本的客操作系統(tǒng)的線路。轉(zhuǎn)回到圖4,在示例性實(shí)施例中,虛擬硬盤(pán)文件集合可由虛擬主機(jī) 412成功地接收并存儲(chǔ)在本地存儲(chǔ)420中。在此示例中,虛擬平臺(tái)402可接收指示存儲(chǔ)操作已結(jié)束的信號(hào),并且設(shè)定配置文件和/或虛擬硬盤(pán)文件中的父位置信息,以便位置信息指向集合的本地副本。在修改父位置信息之后,虛擬平臺(tái)402可以使用已更新的位置信息向集合的本地副本發(fā)出IO任務(wù)。因此,由于虛擬平臺(tái)402不再需要通過(guò)內(nèi)部網(wǎng)絡(luò)從VHD存儲(chǔ)服務(wù)410讀取數(shù)據(jù),因此減輕了 VHD存儲(chǔ)服務(wù)410的處理壓力以及對(duì)帶寬的需求。參照?qǐng)D11,其示出圖10的操作過(guò)程的替換實(shí)施例,包括操作1108-1122。轉(zhuǎn)向操作1108,它示出在實(shí)施例中,虛擬主機(jī)412可包括用于從虛擬硬盤(pán)文件集合中引導(dǎo)客操作系統(tǒng)的線路,其中虛擬硬盤(pán)文件集合包括主虛擬硬盤(pán)文件、機(jī)器差異虛擬硬盤(pán)文件和用戶差異虛擬硬盤(pán)文件。例如,轉(zhuǎn)向圖5,在此示例性實(shí)施例中,虛擬主機(jī)412可以從VHD存儲(chǔ)服務(wù)器410引導(dǎo)客操作系統(tǒng)。在此示例中,存儲(chǔ)其上的VHD文件集合可包括主VHD文件504、 機(jī)器差異VHD文件506和用戶差異VHD文件,主VHD文件可包括操作系統(tǒng)的副本,機(jī)器差異 VHD文件可包括為諸如機(jī)器標(biāo)識(shí)符等的特定用戶定制操作系統(tǒng)的信息,用戶差異VHD文件可包括在會(huì)話期間已被寫(xiě)到磁盤(pán)的數(shù)據(jù)。在包括操作1108的示例性實(shí)施例中,用于VHD文件集合的拷貝操作可在引導(dǎo)客操作系統(tǒng)之前已經(jīng)開(kāi)始,并且可以在客操作系統(tǒng)開(kāi)始執(zhí)行之后結(jié)束,即,在引導(dǎo)加載器退出并將對(duì)虛擬機(jī)416的控制轉(zhuǎn)移給客OS之后。當(dāng)虛擬平臺(tái)402接收請(qǐng)求以引導(dǎo)客OS時(shí),VHD A 的全部文件已被存儲(chǔ)到VHD存儲(chǔ)服務(wù)器410中,并且虛擬平臺(tái)402可從配置文件確定用戶差異VHD文件508的位置。虛擬平臺(tái)402可以使用用戶差異VHD文件508中的信息來(lái)確定機(jī)器差異VHD文件506的位置,并使用機(jī)器差異VHD文件506中的位置信息來(lái)確定主VHD 文件504的位置。在下載集合之后,虛擬平臺(tái)402可以將配置文件中的位置設(shè)為指向本地用戶差異VHD文件514的位置,將本地用戶差異VHD文件514中的父位置信息設(shè)為指向本地機(jī)器差異VHD文件512,并將本地機(jī)器差異VHD文件512中的父信息設(shè)為指向本地主VHD 文件510。在此處,虛擬平臺(tái)402將使用VHD文件的本地副本用于10。繼續(xù)對(duì)圖11的描述,操作1110示出在實(shí)施例中,虛擬主機(jī)412可包括用于從虛擬硬盤(pán)文件集合以及存儲(chǔ)在附連于第一服務(wù)器的存儲(chǔ)設(shè)備中的主虛擬硬盤(pán)文件的預(yù)先高速緩存的副本引導(dǎo)客操作系統(tǒng)的線路。例如,轉(zhuǎn)向圖6,在示例性實(shí)施例中,集合可包括機(jī)器差異VHD文件506和用戶差異VHD文件508。主VHD文件504的副本可以作為本地主VHD文件510被預(yù)先高速緩存到本地存儲(chǔ)420中。在此示例中,可以在數(shù)據(jù)中心中使用存儲(chǔ)在本地存儲(chǔ)420的本地主VHD文件510來(lái)部署虛擬主機(jī)412,或者當(dāng)開(kāi)啟虛擬主機(jī)412時(shí),虛擬主機(jī)可以預(yù)先拷貝主VHD文件504。在此配置中,消除了由遷移主VHD文件504引起的可達(dá) 8GB的網(wǎng)絡(luò)通信。此外,可以本地處理定向到主VHD文件中的塊的任意讀IO任務(wù)。繼續(xù)對(duì)圖11的描述,操作1112示出在實(shí)施例中,虛擬主機(jī)412可包括用于從虛擬硬盤(pán)文件集合以及存儲(chǔ)在附連于第一服務(wù)器的存儲(chǔ)設(shè)備中的用戶差異虛擬硬盤(pán)文件引導(dǎo)客操作系統(tǒng)的線路。在此示例性實(shí)施例中,轉(zhuǎn)向圖7,集合可包括主VHD文件504和機(jī)器差異VHD文件506。當(dāng)客操作系統(tǒng)正在引導(dǎo)時(shí),即引導(dǎo)加載器控制虛擬機(jī)416時(shí),虛擬平臺(tái)402 可通過(guò)從本地用戶差異VHD文件514讀和寫(xiě)來(lái)處理某些IO任務(wù),并且通過(guò)從存儲(chǔ)在VHD存儲(chǔ)服務(wù)器410的集合中讀取來(lái)處理其他任務(wù)。在此示例中,在引導(dǎo)之前本地用戶差異VHD 文件514可以為空,或者,當(dāng)虛擬平臺(tái)402接收請(qǐng)求以實(shí)例化虛擬機(jī)416時(shí)可以動(dòng)態(tài)地創(chuàng)建本地用戶差異VHD文件。在第一種情形中,配置文件可包括空的本地用戶差異VHD文件514 的位置。在第二種中,配置文件可包括機(jī)器差異VHD文件506的位置,并且虛擬平臺(tái)402可以動(dòng)態(tài)地生成本地用戶差異VHD文件514并將其鏈接到機(jī)器差異VHD文件506。在任一情形中,可以確定機(jī)器差異VHD文件506和主VHD文件504的位置,并且存儲(chǔ)傳送引擎似4可以開(kāi)始將其拷貝到本地存儲(chǔ)420,從而存儲(chǔ)本地機(jī)器差異VHD文件512和本地主VHD文件510。在下載集合之后,虛擬平臺(tái)402可以修改本地用戶差異VHD文件514 中的父位置字段以指向本地機(jī)器差異VHD文件512的位置,并且修改本地機(jī)器差異VHD文件512中的父位置字段以指向本地主VHD文件510的位置。在此處,虛擬平臺(tái)402將使用 VHD文件的本地副本用于10。繼續(xù)對(duì)圖11的描述,操作1114示出在實(shí)施例中,虛擬主機(jī)412可包括被配置為將用戶差異虛擬硬盤(pán)文件合并到機(jī)器差異虛擬硬盤(pán)文件中并將機(jī)器差異虛擬硬盤(pán)文件發(fā)送到第二服務(wù)器的線路。在退出后持久存儲(chǔ)用戶數(shù)據(jù)的部署中,虛擬平臺(tái)402可被配置為將本地用戶差異文件514中的數(shù)據(jù)與本地機(jī)器差異VHD文件512中的數(shù)據(jù)相合并,并將已修改的機(jī)器差異VHD文件發(fā)送回到VHD存儲(chǔ)服務(wù)器410。例如,虛擬平臺(tái)402可以通過(guò)將本地用戶差異文件514中的每個(gè)數(shù)據(jù)塊拷貝到本地機(jī)器差異VHD文件512的對(duì)應(yīng)塊中來(lái)合并兩個(gè)文件。在VHD存儲(chǔ)服務(wù)器410接收本地機(jī)器差異VHD文件512的已修改的副本之后,VHD 存儲(chǔ)服務(wù)器將其存儲(chǔ)為機(jī)器差異VHD文件506。在已修改的版本被設(shè)為機(jī)器差異VHD文件506之后,虛擬平臺(tái)402可以可選地刪除本地用戶差異VHD文件514和本地機(jī)器差異VHD文件512。例如,虛擬平臺(tái)402可被配置為在限制本地存儲(chǔ)420的存儲(chǔ)容量的實(shí)例中刪除這些文件。在虛擬主機(jī)412將機(jī)器差異 VHD文件的已合并副本作為本地機(jī)器差異VHD文件512持久存儲(chǔ)在本地存儲(chǔ)420的實(shí)例中, 虛擬主機(jī)412可以發(fā)送信號(hào)到管理員服務(wù)器408以通知它,當(dāng)客戶機(jī)406下次連接時(shí),虛擬主機(jī)412應(yīng)當(dāng)托管虛擬機(jī)416。繼續(xù)對(duì)圖11的描述,操作1116示出在實(shí)施例中,存儲(chǔ)服務(wù)器410可包括用于將從第一服務(wù)器接收的用戶差異虛擬硬盤(pán)文件合并到存儲(chǔ)在第二服務(wù)器的機(jī)器差異虛擬硬盤(pán)文件中的線路。在此示例性實(shí)施例中,當(dāng)用戶退出后,虛擬平臺(tái)402可以將本地用戶差異文件514發(fā)送回到VHD存儲(chǔ)服務(wù)器410并且指示存儲(chǔ)傳送引擎似4合并本地用戶差異文件 514與機(jī)器差異VHD文件506。VHD存儲(chǔ)服務(wù)器410隨后可以將已修改的機(jī)器差異VHD文件存儲(chǔ)為機(jī)器差異VHD文件506。繼續(xù)對(duì)圖11的描述,操作1118示出在實(shí)施例中,存儲(chǔ)服務(wù)器可被配置為從第一服
16務(wù)器接收至少用戶差異虛擬硬盤(pán)文件;并且將至少用戶差異虛擬硬盤(pán)文件發(fā)送到第三服務(wù)器。例如,轉(zhuǎn)向圖9,在示例性實(shí)施例中,實(shí)況遷移操作可用于當(dāng)虛擬機(jī)416正在運(yùn)行時(shí)將虛擬機(jī)416從虛擬主機(jī)412遷移到虛擬主機(jī)414。例如,存儲(chǔ)傳送引擎似4可以接收指示虛擬機(jī)416將要從虛擬主機(jī)412遷移到虛擬主機(jī)414的信號(hào)。作為響應(yīng),存儲(chǔ)傳送引擎似4可以確定需要拷貝哪些虛擬硬盤(pán)文件以在虛擬主機(jī)414上運(yùn)行虛擬機(jī)416。在此示例中,存儲(chǔ)傳送引擎4 可以確定需要拷貝至少本地用戶差異VHD文件514。在此示例中,可以使用此處描述的鏡像技術(shù)將本地用戶差異VHD文件514發(fā)送到VHD存儲(chǔ)服務(wù)410。發(fā)送存儲(chǔ)在用戶差異VHD文件508中的至少信息的操作與將虛擬機(jī)416的狀態(tài) (例如,RAM的內(nèi)容和虛擬設(shè)備的狀態(tài))從虛擬主機(jī)412拷貝到虛擬主機(jī)414的操作可以并行進(jìn)行。在另一個(gè)配置中,可在實(shí)況遷移操作開(kāi)始之前進(jìn)行存儲(chǔ)拷貝操作。在任一情形中, 可以將只讀文件拷貝到VHD存儲(chǔ)服務(wù)器410并且可以鏡像讀/寫(xiě)文件。例如,運(yùn)行在虛擬主機(jī)412上的存儲(chǔ)傳送引擎似4可以順序地將來(lái)自本地用戶差異VHD文件514的數(shù)據(jù)塊拷貝到VHD存儲(chǔ)服務(wù)器410,而將寫(xiě)發(fā)送到本地用戶差異VHD文件514和用戶差異VHD文件 508 二者。當(dāng)拷貝操作結(jié)束時(shí),虛擬平臺(tái)402可以修改配置文件以將位置信息設(shè)為指向用戶差異VHD文件508的位置,從而將寫(xiě)發(fā)送到VHD存儲(chǔ)服務(wù)器410。當(dāng)對(duì)虛擬機(jī)416的控制從虛擬平臺(tái)402切換到虛擬平臺(tái)404之后,虛擬平臺(tái)404可以通過(guò)內(nèi)部網(wǎng)絡(luò)從VHD存儲(chǔ)服務(wù)器410讀取數(shù)據(jù)塊。在此處,存儲(chǔ)傳送引擎4M可被配置為將至少用戶差異VHD文件 508拷貝到虛擬主機(jī)414。繼續(xù)對(duì)圖11的描述,操作1120示出在實(shí)施例中,存儲(chǔ)服務(wù)器410可包括用于將虛擬硬盤(pán)文件集合的至少部分預(yù)先高速緩存到第二服務(wù)器的隨機(jī)訪問(wèn)存儲(chǔ)器中的線路。例如,轉(zhuǎn)回到圖5,在示例性實(shí)施例中,作出關(guān)于在一種類(lèi)型的操作系統(tǒng)的引導(dǎo)操作期間通常讀取什么字節(jié)的判斷。例如,可以通過(guò)連續(xù)的引導(dǎo)操作跟蹤由虛擬平臺(tái)402發(fā)出的讀IO任務(wù),并且確定通常讀取的一組字節(jié)。在此示例中,VHD存儲(chǔ)服務(wù)器410可被配置為在其引導(dǎo)時(shí)將這些字節(jié)預(yù)先高速緩存到RAM中,以便具有用于引導(dǎo)虛擬機(jī)的可用字節(jié)。這可以加快虛擬機(jī)的引導(dǎo)操作。例如,用于存儲(chǔ)虛擬硬盤(pán)驅(qū)動(dòng)器的持久存儲(chǔ)可以是商用硬件,例如現(xiàn)貨供應(yīng)的SATA驅(qū)動(dòng)器,并且使VHD存儲(chǔ)服務(wù)器410讀取這種類(lèi)型的硬件的字節(jié)帶來(lái)可由通過(guò)將這些字節(jié)預(yù)先高速緩存到RAM消除的另一層等待時(shí)間。繼續(xù)對(duì)圖11的描述,操作1122示出在實(shí)施例中,管理員服務(wù)器可包括用于響應(yīng)于確定第一服務(wù)器包括機(jī)器差異虛擬硬盤(pán)文件的當(dāng)前副本,指示客戶機(jī)計(jì)算機(jī)系統(tǒng)連接到第一服務(wù)器的線路。例如,轉(zhuǎn)回到圖4,在實(shí)施例中,管理員服務(wù)器408可以包括線路,例如,由指示連接中介426的可執(zhí)行指令配置的處理器。在此示例中,指令可以配置處理器以管理信息表,該信息表標(biāo)識(shí)哪個(gè)虛擬主機(jī)具有帶有指示其上一次修改時(shí)間的時(shí)戳的VHD文件。 響應(yīng)于從客戶機(jī)406接收連接到虛擬機(jī)416的連接請(qǐng)求,管理員服務(wù)器408可以執(zhí)行程序, 該程序檢查VHD存儲(chǔ)服務(wù)器410中虛擬硬盤(pán)A的VHD文件集合的時(shí)戳,并將該時(shí)戳與表中的時(shí)戳進(jìn)行比較。在存在匹配的實(shí)例中,例如,虛擬主機(jī)412包括具有與存儲(chǔ)在VHD存儲(chǔ)服務(wù)器410中的與機(jī)器差異虛擬硬盤(pán)文件相關(guān)聯(lián)的時(shí)戳相同的時(shí)戳的機(jī)器差異虛擬硬盤(pán)文件, 管理員服務(wù)器408可以試圖將虛擬機(jī)416加載到虛擬主機(jī)412上。這將消除必須將VHD文件中的至少某些拷貝到虛擬主機(jī)412。在大多數(shù)情形中,如果虛擬主機(jī)412包括機(jī)器差異 VHD文件的當(dāng)前副本,則它還包括主VHD文件的當(dāng)前副本。如果情況如此,則不必從VHD存儲(chǔ)服務(wù)器410下載任何文件。轉(zhuǎn)向操作1124,它示出響應(yīng)于確定第一服務(wù)器上的負(fù)載為低,指示客戶機(jī)計(jì)算機(jī)系統(tǒng)連接到第一服務(wù)器。例如,在實(shí)施例中,管理員服務(wù)器408可以包括線路,例如,由指示連接中介426的可執(zhí)行指令配置的處理器。在此示例中,該指令可以配置處理器以管理信息表,該信息表標(biāo)識(shí)每個(gè)虛擬服務(wù)器當(dāng)前所處的當(dāng)前負(fù)載。例如,負(fù)載信息可指示分配給虛擬機(jī)的RAM的數(shù)量以及每個(gè)虛擬服務(wù)器具有的RAM的總量。響應(yīng)于從客戶機(jī)406接收連接到虛擬桌面會(huì)話的連接請(qǐng)求,管理員服務(wù)器408可以執(zhí)行程序,該程序檢查每個(gè)服務(wù)器上的負(fù)載并選擇最少負(fù)載的服務(wù)器來(lái)托管虛擬桌面會(huì)話。在執(zhí)行操作1122和IlM 二者的示例實(shí)施例中,管理員服務(wù)器408可被配置為標(biāo)識(shí)其上具有低負(fù)載的服務(wù)器,并隨后檢查VHD存儲(chǔ)服務(wù)器410中虛擬硬盤(pán)A的VHD文件集合的時(shí)戳,并且將該時(shí)戳與表中的時(shí)戳進(jìn)行比較。在存在匹配的實(shí)例中,例如,虛擬主機(jī)412 包括具有與存儲(chǔ)在VHD存儲(chǔ)服務(wù)器410中的與機(jī)器差異虛擬硬盤(pán)文件相關(guān)聯(lián)的時(shí)戳相同的時(shí)戳的機(jī)器差異虛擬硬盤(pán)文件,管理員服務(wù)器408可以試圖將虛擬機(jī)416加載到虛擬主機(jī) 412 上。現(xiàn)在轉(zhuǎn)向圖12,它示出用于描述涉及從聯(lián)網(wǎng)存儲(chǔ)執(zhí)行虛擬機(jī)的操作的示例性實(shí)施例。操作1200開(kāi)始操作過(guò)程,并且操作1202示出操作,從存儲(chǔ)在第二服務(wù)器中的機(jī)器差異虛擬硬盤(pán)文件和存儲(chǔ)在附連于第一服務(wù)器的存儲(chǔ)設(shè)備中的主虛擬硬盤(pán)文件引導(dǎo)操作系統(tǒng), 其中主虛擬硬盤(pán)文件包括操作系統(tǒng)的副本,并且機(jī)器差異虛擬硬盤(pán)文件包括用于為用戶定制操作系統(tǒng)的副本的機(jī)器標(biāo)識(shí)信息。例如,參考圖6或8,在示例性實(shí)施例中,虛擬主機(jī)412 可包括本地主VHD文件510。例如,本地主VHD文件510可以之前已經(jīng)被下載,或者可以使用副本來(lái)部署虛擬主機(jī)412。在任一情形中,虛擬平臺(tái)402可從本地主VHD文件510中的信息的組合和機(jī)器差異VHD文件506來(lái)引導(dǎo)客操作系統(tǒng)。虛擬平臺(tái)402可以響應(yīng)于從圖4的管理員服務(wù)器408接收的請(qǐng)求來(lái)啟動(dòng)引導(dǎo)操作。虛擬平臺(tái)402可以接收與經(jīng)由圖4的客戶機(jī)406登錄的用戶的用戶賬戶相關(guān)聯(lián)的配置文件。虛擬平臺(tái)402可以訪問(wèn)配置文件,并且存儲(chǔ)其中的字段可包括例如用戶差異VHD磁盤(pán)文件的位置,用戶差異VHD磁盤(pán)文件可被存儲(chǔ)到本地存儲(chǔ)420或VHD存儲(chǔ)服務(wù)器410。根據(jù)用戶差異VHD磁盤(pán)文件及其父的位置,可以發(fā)現(xiàn)機(jī)器差異VHD文件506。在此示例中,機(jī)器差異VHD文件506可位于VHD存儲(chǔ)服務(wù)器410的存儲(chǔ)中,并且其父可以是本地主VHD文件510。在打開(kāi)構(gòu)成VHD A的VHD文件之后,虛擬平臺(tái)402可以通過(guò)將由機(jī)器差異VHD文件 506處理的讀IO請(qǐng)求發(fā)送到VHD存儲(chǔ)服務(wù)器410并將由本地主VHD文件510處理的讀IO 請(qǐng)求發(fā)送到本地存儲(chǔ)420來(lái)開(kāi)始引導(dǎo)客操作系統(tǒng)。繼續(xù)對(duì)圖12的描述,操作1204示出了用于在同時(shí)引導(dǎo)客操作系統(tǒng)時(shí),從第二服務(wù)器下載機(jī)器差異虛擬硬盤(pán)文件的副本的操作。例如,轉(zhuǎn)向圖6或8,虛擬主機(jī)412可從VHD 存儲(chǔ)服務(wù)器410接收指示機(jī)器差異VHD文件506的副本的一個(gè)或多個(gè)信息分組,并且將副本存儲(chǔ)為本地機(jī)器差異VHD文件512。在此示例中,VHD存儲(chǔ)服務(wù)器410可以在引導(dǎo)操作期間同時(shí)地將機(jī)器差異VHD文件506拷貝到本地存儲(chǔ)420。S卩,當(dāng)虛擬機(jī)416從組合進(jìn)行引導(dǎo)時(shí),拷貝正同時(shí)地被下載。再次轉(zhuǎn)回到圖12,操作1206示出用于響應(yīng)于確定機(jī)器差異虛擬硬盤(pán)文件已被下載,從機(jī)器差異虛擬硬盤(pán)文件的副本和主虛擬硬盤(pán)文件執(zhí)行客操作系統(tǒng)的操作。轉(zhuǎn)回到圖6或8,在示例性實(shí)施例中,本地機(jī)器差異VHD文件512可被成功地存儲(chǔ)到虛擬主機(jī)412的文件系統(tǒng)中。在此示例中,虛擬平臺(tái)402可接收指示存儲(chǔ)操作已結(jié)束的信號(hào),并且將用戶差異VHD文件的父位置字段中的父位置信息設(shè)為指向本地機(jī)器差異VHD文件512的位置。在修改位置之后,虛擬平臺(tái)402可以使用已更新的位置信息來(lái)執(zhí)行對(duì)于本地副本的IO操作?,F(xiàn)在轉(zhuǎn)向圖13,其示出圖12所描繪的操作過(guò)程的替換實(shí)施例,包括操作 1308-1320。如操作1308所示,在實(shí)施例中,虛擬主機(jī)412可包括用于從第二服務(wù)器下載用戶差異虛擬硬盤(pán)文件的線路,用戶差異虛擬硬盤(pán)文件存儲(chǔ)在會(huì)話期間寫(xiě)到虛擬硬盤(pán)的數(shù)據(jù)塊。轉(zhuǎn)向圖6,在此實(shí)施例中,用戶差異VHD磁盤(pán)508可從VHD存儲(chǔ)服務(wù)器410拷貝到虛擬主機(jī)412,并被存儲(chǔ)為本地用戶差異VHD磁盤(pán)514。如圖所示,在此示例中,虛擬平臺(tái)402可以接收包括父位置字段的配置文件,該父位置字段包括用戶差異VHD文件508的位置。用戶差異VHD文件508中的父位置字段可包括機(jī)器差異VHD文件506的位置,并且其父字段可包括本地主VHD文件510的位置。存儲(chǔ)傳送引擎4M可以順序地將來(lái)自用戶差異VHD文件508的數(shù)據(jù)塊拷貝到本地用戶差異VHD文件514。當(dāng)數(shù)據(jù)塊被拷貝時(shí),虛擬平臺(tái)402可向本地用戶差異VHD文件514和用戶差異VHD文件518 二者發(fā)送寫(xiě),直到用戶差異VHD文件 508的最后一塊被拷貝。在此處,虛擬平臺(tái)402可被配置為停止向用戶差異VHD文件508寫(xiě)入,并可修改配置文件中的位置字段以指向本地用戶差異VHD文件514的位置而非用戶差異VHD文件508。在此處,虛擬平臺(tái)402將使用用戶差異VHD文件514的本地副本用于相關(guān)聯(lián)的IO操作。繼續(xù)對(duì)圖13的描述,它示出了操作1310,該操作是用于將數(shù)據(jù)塊寫(xiě)入被預(yù)先高速緩存到附連于第一服務(wù)器的存儲(chǔ)設(shè)備中的用戶差異虛擬硬盤(pán)文件的操作。例如,轉(zhuǎn)向圖8, 在此示例性實(shí)施例中,本地存儲(chǔ)420可包括本地用戶差異VHD文件514。在此示例性實(shí)施例中,用戶差異VHD文件514可被預(yù)先高速緩存到本地存儲(chǔ)420,從而不必跨網(wǎng)絡(luò)對(duì)其進(jìn)行拷貝。例如,當(dāng)虛擬平臺(tái)402引導(dǎo)虛擬機(jī)416時(shí),其可被配置為生成空的本地用戶差異VHD 文件514。虛擬處理器向VHD A寫(xiě)入時(shí),該寫(xiě)可被存儲(chǔ)到本地用戶差異VHD文件514的塊中,并且可以從0字節(jié)增長(zhǎng)。在此示例性實(shí)施例中,每次虛擬平臺(tái)402向虛擬平臺(tái)402寫(xiě)入時(shí),它可以在位圖中設(shè)置一位。當(dāng)由虛擬平臺(tái)402接收讀IO任務(wù)時(shí),其可被配置為檢查位圖以查看是否為該塊設(shè)置了位。若是,則虛擬平臺(tái)402從本地用戶差異VHD文件514讀取存儲(chǔ)在塊中的字節(jié)。在未設(shè)置位的情況下,虛擬平臺(tái)402可被配置為檢查用于本地機(jī)器差異VHD文件512的位圖。如果用于本地機(jī)器差異VHD文件512的位圖未被設(shè)置,則虛擬平臺(tái)402可從本地主VHD文件510讀取塊。操作1312示出在實(shí)施例中,虛擬主機(jī)412可包括用于將用戶差異虛擬硬盤(pán)文件與機(jī)器差異虛擬硬盤(pán)文件的副本進(jìn)行合并,并將機(jī)器差異虛擬硬盤(pán)文件的副本發(fā)送到第二服務(wù)器的線路。在持久存儲(chǔ)用戶數(shù)據(jù)的部署中,虛擬平臺(tái)402可被配置為將本地用戶差異文件514中的數(shù)據(jù)與本地機(jī)器差異VHD文件512中的數(shù)據(jù)進(jìn)行合并,并將已修改的機(jī)器差異 VHD文件發(fā)送回到VHD存儲(chǔ)服務(wù)器410。例如,虛擬平臺(tái)402可以通過(guò)將本地用戶差異文件 514中的每個(gè)數(shù)據(jù)塊拷貝到本地機(jī)器差異VHD文件512的對(duì)應(yīng)塊中來(lái)合并兩個(gè)文件。在VHD 存儲(chǔ)服務(wù)器410接收本地機(jī)器差異VHD文件512的已修改的副本之后,VHD存儲(chǔ)服務(wù)器將其存儲(chǔ)為機(jī)器差異VHD文件506。操作1314示出在實(shí)施例中,虛擬主機(jī)412可包括用于將用戶差異虛擬硬盤(pán)文件發(fā)送到第二服務(wù)器的線路。在此示例性實(shí)施例中,當(dāng)用戶退出后,虛擬平臺(tái)402可以將本地用戶差異文件514發(fā)送回到VHD存儲(chǔ)服務(wù)器410并且指示存儲(chǔ)傳送引擎424合并本地用戶差異文件514與機(jī)器差異VHD文件506。VHD存儲(chǔ)服務(wù)器410隨后可以將已修改的機(jī)器差異 VHD文件存儲(chǔ)為機(jī)器差異VHD文件506。操作1316示出在實(shí)施例中,虛擬主機(jī)412可包括用于將存儲(chǔ)在用戶差異虛擬硬盤(pán)文件中的數(shù)據(jù)寫(xiě)入存儲(chǔ)在第二服務(wù)器中的機(jī)器差異虛擬硬盤(pán)文件的線路。在此示例性實(shí)施例中,在虛擬主機(jī)412中執(zhí)行的存儲(chǔ)傳送引擎似4可被配置為將本地用戶差異VHD文件514 中的差異合并到機(jī)器差異VHD文件506中。例如,存儲(chǔ)傳送引擎4M可以打開(kāi)機(jī)器差異VHD 文件506,并且將來(lái)自用戶差異VHD文件514的數(shù)據(jù)塊跨內(nèi)部網(wǎng)絡(luò)寫(xiě)入到機(jī)器差異VHD文件 506的對(duì)應(yīng)塊中。轉(zhuǎn)向操作1318,它示出虛擬主機(jī)412可包括用于在遷移操作期間將用戶差異虛擬硬盤(pán)文件發(fā)送到第二服務(wù)器的線路。例如,轉(zhuǎn)向圖9,在示例性實(shí)施例中,實(shí)況遷移操作可用于當(dāng)虛擬機(jī)416正在運(yùn)行時(shí)將虛擬機(jī)416從虛擬主機(jī)412遷移到虛擬主機(jī)414。例如,存儲(chǔ)傳送引擎似4可以接收指示虛擬機(jī)416將要從虛擬主機(jī)412遷移到虛擬主機(jī)414的信號(hào)。 作為響應(yīng),存儲(chǔ)傳送引擎似4可以確定需要拷貝哪些虛擬硬盤(pán)文件以便在虛擬主機(jī)414上運(yùn)行虛擬機(jī)416。在此示例中,存儲(chǔ)傳送引擎4 可以確定需要遷移至少本地用戶差異VHD 文件514。在此示例中,可以使用此處描述的鏡像技術(shù)將本地用戶差異VHD文件514發(fā)送到 VHD存儲(chǔ)服務(wù)410。此外,該操作可以與將虛擬機(jī)416的狀態(tài)從虛擬主機(jī)412拷貝到虛擬主機(jī)414的操作并行進(jìn)行。參考回到圖13,操作1320示出使用空閑帶寬從第二服務(wù)器下載機(jī)器差異虛擬硬盤(pán)文件的副本。例如,在存儲(chǔ)傳送引擎4 執(zhí)行的實(shí)施例中,例如虛擬主機(jī)412和/或VHD 存儲(chǔ)服務(wù)器410可以確定使用內(nèi)部網(wǎng)絡(luò)的空閑帶寬來(lái)下載機(jī)器差異VHD文件506。在此示例中,針對(duì)執(zhí)行虛擬機(jī)416來(lái)優(yōu)化系統(tǒng),并且當(dāng)網(wǎng)絡(luò)以其他方式空閑時(shí)進(jìn)行拷貝?;驌Q言之,如果帶寬的80%正被使用,則存儲(chǔ)傳送引擎4M可以使用剩余帶寬的20%將機(jī)器差異 VHD文件506發(fā)送到虛擬主機(jī)412?,F(xiàn)在轉(zhuǎn)向圖14,它示出了操作過(guò)程。操作1400開(kāi)始該過(guò)程,并且操作1402示出用于將客操作系統(tǒng)從虛擬硬盤(pán)文件集合引導(dǎo)到虛擬機(jī)的操作,其中集合的第一部分被存儲(chǔ)到附連于第一服務(wù)器的存儲(chǔ)設(shè)備上,第二部分被存儲(chǔ)到第二服務(wù)器上。例如,虛擬主機(jī)412中的處理器可以接收指示虛擬處理器運(yùn)行引導(dǎo)加載器的線程。處理器可以運(yùn)行虛擬平臺(tái)402 并確定引導(dǎo)加載器正在請(qǐng)求存儲(chǔ)在VHD文件集合中的字節(jié)。VHD文件集合中的某些可被存儲(chǔ)到本地存儲(chǔ)420,并且其余的可被存儲(chǔ)到VHD存儲(chǔ)服務(wù)器410。在此示例中,虛擬平臺(tái)420 可以取回字節(jié)并將其返回到引導(dǎo)加載器,該引導(dǎo)加載器隨后可以繼續(xù)引導(dǎo)客OS。繼續(xù)對(duì)圖14的描述,操作1404示出了在引導(dǎo)客操作系統(tǒng)時(shí),下載集合第二部分的至少子部分。例如,當(dāng)引導(dǎo)加載器正在運(yùn)行并控制虛擬機(jī)416時(shí),虛擬主機(jī)412可以下載指示第一部分的至少子部分的副本的一個(gè)或多個(gè)信息分組。例如,在存儲(chǔ)傳送引擎4M執(zhí)行的實(shí)施例中,例如VHD存儲(chǔ)服務(wù)器410可被配置為將其正在存儲(chǔ)的虛擬硬盤(pán)文件中的至少某些發(fā)送到虛擬主機(jī)412。在特定的示例中,轉(zhuǎn)向圖6,存儲(chǔ)傳送引擎似4可被配置為將機(jī)器差異VHD文件506和/或用戶差異VHD文件508發(fā)送到虛擬主機(jī)412??梢曰趦?nèi)部網(wǎng)絡(luò)的可用帶寬和VHD存儲(chǔ)服務(wù)器410所處的負(fù)載作出關(guān)于是否發(fā)送一個(gè)或兩個(gè)的判斷。例如,如果VHD存儲(chǔ)服務(wù)器410正在處理來(lái)自多個(gè)虛擬機(jī)的多個(gè)請(qǐng)求,則其可被配置為延遲遷移VHD文件中的某些或全部直到有可用的空閑處理器周期。在相同或另一個(gè)實(shí)施例中,如果可用帶寬為低,則存儲(chǔ)傳送引擎4M可被配置為延遲遷移VHD 文件中的某些或全部直到有可用的帶寬。轉(zhuǎn)向操作1406,它示出響應(yīng)于確定集合第二部分的至少子部分被下載到附連于第一服務(wù)器的存儲(chǔ)設(shè)備上,執(zhí)行附連于第一服務(wù)器的存儲(chǔ)設(shè)備上的客操作系統(tǒng)。在示例性實(shí)施例中,在引導(dǎo)加載器已經(jīng)退出之后的某個(gè)時(shí)刻并且客OS受虛擬機(jī)416的控制,第一部分可被成功地下載到本地存儲(chǔ)420。虛擬平臺(tái)402可以接收指示存儲(chǔ)操作已結(jié)束的信號(hào),并將任意已下載的VHD文件中的父位置字段修改為指向已下載的副本。在此處,虛擬平臺(tái)402 可以使用已更新的位置信息來(lái)執(zhí)行針對(duì)VHD文件的本地副本的IO操作。因此,由于虛擬平臺(tái)402不再需要通過(guò)內(nèi)部網(wǎng)絡(luò)向VHD存儲(chǔ)服務(wù)410發(fā)送讀/寫(xiě)操作,因此減輕了 VHD存儲(chǔ)服務(wù)410的壓力以及對(duì)帶寬的需求?,F(xiàn)在參考圖15,它示出圖14所示的操作過(guò)程的替換操作過(guò)程,包括細(xì)化1508。如圖所示,細(xì)化1508示出在實(shí)施例中,集合的第二部分包括主虛擬硬盤(pán)文件和機(jī)器差異虛擬硬盤(pán)文件,并且集合的第一部分包括用戶差異虛擬硬盤(pán)文件。在此示例性實(shí)施例中,轉(zhuǎn)向圖 7,集合可包括主VHD文件504和機(jī)器差異VHD文件506。當(dāng)客操作系統(tǒng)正在引導(dǎo)時(shí),虛擬平臺(tái)402可以將寫(xiě)IO任務(wù)和某些讀IO任務(wù)發(fā)送到本地用戶差異VHD文件514,并將對(duì)集合的讀IO任務(wù)發(fā)送到VHD存儲(chǔ)服務(wù)器410。在此示例中,在引導(dǎo)之前本地用戶差異VHD文件 514可以為空,或者,當(dāng)虛擬平臺(tái)402接收請(qǐng)求以實(shí)例化虛擬機(jī)416時(shí)可以動(dòng)態(tài)地創(chuàng)建本地用戶差異VHD文件。在第一種情形中,配置文件可包括空的本地用戶差異VHD文件514的位置。在第二種中,配置文件可包括機(jī)器差異VHD文件506的位置以及指示虛擬平臺(tái)402 創(chuàng)建本地用戶差異VHD文件514并將其鏈接到機(jī)器差異VHD文件506的信息。前述的詳細(xì)描述通過(guò)示例和/或操作圖闡述了系統(tǒng)和/或進(jìn)程的各實(shí)施例。在這樣的框圖和/或示例包含一個(gè)或多個(gè)功能和/或操作的范圍內(nèi),本領(lǐng)域技術(shù)人員將理解,這樣的框圖,或示例內(nèi)的每一功能和/或操作可以分別地和/或共同地通過(guò)范圍廣泛的硬件、 軟件、固件或幾乎其任何組合來(lái)實(shí)現(xiàn)。盡管示出和描述了此處所描述的本主題的特定方面,但是,對(duì)于本領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,基于此處的原理,在不偏離此處所描述的主題以及其廣泛的方面的情況下,可以作出更改和修改,因此,所附權(quán)利要求書(shū)將包含在它們的范圍內(nèi),所有這樣的更改和修改都將在此處所描述的主題的真正的精神和范圍內(nèi)。
權(quán)利要求
1.一種用于將虛擬硬盤(pán)驅(qū)動(dòng)器部署到虛擬機(jī)主機(jī)的系統(tǒng),包括第一服務(wù)器G12),包括第一處理器(102);以及耦合至所述第一處理器(102)的第一存儲(chǔ)器(106和/或104),所述第一存儲(chǔ)器(106和/或104)包括在執(zhí)行時(shí)使所述第一服務(wù)器執(zhí)行以下動(dòng)作的指令執(zhí)行存儲(chǔ)在第二服務(wù)器(410)上的虛擬硬盤(pán)文件集合(VHD A的VHD文件,(圖5的504、506和508),(圖6的505和508)或(圖7的504和506))的客操作系統(tǒng)(220);在同時(shí)執(zhí)行虛擬硬盤(pán)文件集合(VHD A的VHD文件,(圖5的504、506和508),(圖6的505和508)或(圖7的504和506))的所述客操作系統(tǒng)(220)時(shí),存儲(chǔ)附連于所述第一服務(wù)器G12)的存儲(chǔ)設(shè)備G20)中的虛擬硬盤(pán)文件集合(VHD A的VHD文件,(圖5的504、506和508),(圖6的505和508)或(圖7的504和506))的已接收的副本;以及響應(yīng)于確定所述虛擬硬盤(pán)文件集合(VHD A的VHD文件,(圖5、6或7的510、512和514))的所述副本已被存儲(chǔ)在附連于所述第一服務(wù)器(41 的所述存儲(chǔ)設(shè)備(420)中,執(zhí)行所述虛擬硬盤(pán)文件集合(VHD A的VHD文件,(圖5、6或7的510、512和514))的所述副本的所述客操作系統(tǒng)(220)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一存儲(chǔ)器還包括在執(zhí)行時(shí)使所述第一服務(wù)器執(zhí)行以下動(dòng)作的指令從所述虛擬硬盤(pán)文件集合引導(dǎo)所述客操作系統(tǒng),其中所述虛擬硬盤(pán)文件集合包括主虛擬硬盤(pán)文件、機(jī)器差異虛擬硬盤(pán)文件和用戶差異虛擬硬盤(pán)文件。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一存儲(chǔ)器還包括在執(zhí)行時(shí)使所述第一服務(wù)器執(zhí)行以下動(dòng)作的指令從所述虛擬硬盤(pán)文件集合以及存儲(chǔ)在附連于所述第一服務(wù)器的所述存儲(chǔ)設(shè)備中的主虛擬硬盤(pán)文件的預(yù)先高速緩存的副本引導(dǎo)所述客操作系統(tǒng)。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一存儲(chǔ)器還包括在執(zhí)行時(shí)使所述第一服務(wù)器執(zhí)行以下動(dòng)作的指令從所述虛擬硬盤(pán)文件集合以及存儲(chǔ)在附連于所述第一服務(wù)器的所述存儲(chǔ)設(shè)備中的用戶差異虛擬硬盤(pán)文件弓I導(dǎo)所述客操作系統(tǒng)。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一存儲(chǔ)器還包括在執(zhí)行時(shí)使所述第一服務(wù)器執(zhí)行以下動(dòng)作的指令將用戶差異虛擬硬盤(pán)文件合并到機(jī)器差異虛擬硬盤(pán)文件中,并將所述機(jī)器差異虛擬硬盤(pán)文件發(fā)送到所述第二服務(wù)器。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括所述第二服務(wù)器,包括第二處理器;以及耦合至所述第二處理器的第二存儲(chǔ)器,所述第二存儲(chǔ)器包括在執(zhí)行時(shí)使所述第二服務(wù)器執(zhí)行以下動(dòng)作的指令將從所述第一服務(wù)器接收的用戶差異虛擬硬盤(pán)文件合并到存儲(chǔ)在所述第二服務(wù)器上的機(jī)器差異虛擬硬盤(pán)文件中。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括所述第二服務(wù)器,包括 第二處理器;以及耦合至所述第二處理器的第二存儲(chǔ)器,所述第二存儲(chǔ)器包括在執(zhí)行時(shí)使所述第二服務(wù)器執(zhí)行以下動(dòng)作的指令從所述第一服務(wù)器接收至少用戶差異虛擬硬盤(pán)文件;以及將至少所述用戶差異虛擬硬盤(pán)文件發(fā)送到第三服務(wù)器。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括 所述第二服務(wù)器,包括第二處理器;以及耦合至所述第二處理器的第二存儲(chǔ)器,所述第二存儲(chǔ)器包括在執(zhí)行時(shí)使所述第二服務(wù)器執(zhí)行以下動(dòng)作的指令將所述虛擬硬盤(pán)文件集合的至少部分預(yù)先高速緩存到所述第二服務(wù)器的隨機(jī)訪問(wèn)存儲(chǔ)器中。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括 第四服務(wù)器,包括第四處理器;以及耦合至所述第四服務(wù)器的第四存儲(chǔ)器,所述第四存儲(chǔ)器包括在執(zhí)行時(shí)使所述第四服務(wù)器執(zhí)行以下動(dòng)作的指令響應(yīng)于確定所述第一服務(wù)器包括機(jī)器差異虛擬硬盤(pán)文件的當(dāng)前副本,指示客戶機(jī)計(jì)算機(jī)系統(tǒng)連接到所述第一服務(wù)器。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括 第四服務(wù)器,包括第四處理器;以及耦合至所述第四服務(wù)器的第四存儲(chǔ)器,所述第四存儲(chǔ)器包括在執(zhí)行時(shí)使所述第四服務(wù)器執(zhí)行以下動(dòng)作的指令響應(yīng)于確定所述第一服務(wù)器上的負(fù)載為低,指示客戶機(jī)計(jì)算機(jī)系統(tǒng)連接到所述第一服務(wù)器。
11.一種用于流虛擬硬盤(pán)的第一服務(wù)器(412)方法,包括從存儲(chǔ)在第二服務(wù)器G10)中的機(jī)器差異虛擬硬盤(pán)文件(圖6的506)和存儲(chǔ)在附連于所述第一服務(wù)器G12)的存儲(chǔ)設(shè)備G20)中的主虛擬硬盤(pán)文件(圖6的510)引導(dǎo)客操作系統(tǒng)020),其中所述主虛擬硬盤(pán)文件(510)包括操作系統(tǒng)的副本,并且所述機(jī)器差異虛擬硬盤(pán)文件(506)包括用于為用戶定制所述操作系統(tǒng)的所述副本的機(jī)器識(shí)別信息;在同時(shí)引導(dǎo)所述客操作系統(tǒng)O20)時(shí),從所述第二服務(wù)器(410)下載所述機(jī)器差異虛擬硬盤(pán)文件的副本(圖6的512);以及響應(yīng)于確定所述機(jī)器差異虛擬硬盤(pán)文件的所述副本(圖6的51 已被下載,從所述機(jī)器差異虛擬硬盤(pán)文件的所述副本(圖6的51 和所述主虛擬硬盤(pán)文件(圖6的510)執(zhí)行所述客操作系統(tǒng)(220)。
12.如權(quán)利要求11所述的方法,其特征在于,還包括將數(shù)據(jù)塊寫(xiě)入被預(yù)先高速緩存到附連于所述第一服務(wù)器的所述存儲(chǔ)設(shè)備中的用戶差異虛擬硬盤(pán)文件。
13.如權(quán)利要求11所述的方法,其特征在于,還包括將存儲(chǔ)在用戶差異虛擬硬盤(pán)文件中的數(shù)據(jù)寫(xiě)入存儲(chǔ)在第二服務(wù)器中的所述機(jī)器差異虛擬硬盤(pán)文件。
14.如權(quán)利要求11所述的方法,其特征在于,還包括在遷移操作期間,將用戶差異虛擬硬盤(pán)文件發(fā)送到所述第二服務(wù)器。
15.如權(quán)利要求11所述的方法,其特征在于,從所述存儲(chǔ)服務(wù)器下載所述機(jī)器差異虛擬硬盤(pán)文件的所述副本還包括使用空閑帶寬從所述第二服務(wù)器下載所述機(jī)器差異虛擬硬盤(pán)文件的所述副本。
全文摘要
本發(fā)明涉及從服務(wù)器到主機(jī)的流虛擬機(jī)技術(shù)。此處公開(kāi)了用于將商用服務(wù)器配置成主機(jī)虛擬硬盤(pán)的技術(shù)。在示例性實(shí)施例中,虛擬硬盤(pán)文件可被分成多個(gè)差異VHD文件,當(dāng)虛擬主機(jī)運(yùn)行存儲(chǔ)在服務(wù)器上的VHD文件時(shí),文件中的一個(gè)或多個(gè)可被下載到虛擬主機(jī)。在一個(gè)或多個(gè)VHD文件被下載之后,虛擬主機(jī)可被配置為使用本地副本代替商用服務(wù)器上的副本。除以上之外,權(quán)利要求書(shū)具體實(shí)施方式
和附圖中描述了其他技術(shù)。
文檔編號(hào)G06F9/455GK102387197SQ20111030831
公開(kāi)日2012年3月21日 申請(qǐng)日期2011年9月29日 優(yōu)先權(quán)日2010年9月30日
發(fā)明者A·帕勒卡, D·L·格林, I·本-沙哈爾, M·洛利卡, O·B·伊萬(wàn)諾瓦, S·薩姆帕斯 申請(qǐng)人:微軟公司