專利名稱:用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及用于優(yōu)化虛擬機(jī)執(zhí)行的系統(tǒng)和方法。本發(fā)明尤其涉及用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng)和方法。
背景技術(shù):
在實(shí)現(xiàn)管理器以在主機(jī)計(jì)算裝置上執(zhí)行虛擬機(jī)的傳統(tǒng)計(jì)算環(huán)境中,管理器通常向虛擬機(jī)提供對包括虛擬盤的虛擬資源的訪問。在通常的環(huán)境中,當(dāng)對虛擬盤做出修改時(shí),可以對虛擬盤映像做出新的映像;例如,寫時(shí)復(fù)制的方式可導(dǎo)致虛擬盤映像鏈,其中產(chǎn)生了主文件和主文件經(jīng)修改的版本,對映像的新的修改產(chǎn)生了新的、與較舊文件關(guān)聯(lián)的“子”映像。 在這些環(huán)境中,來自虛擬機(jī)的從虛擬盤讀取或?qū)懭氲恼埱罂杀宦酚傻皆撟佑诚?。然而,讀請求可能需要額外的路由,這是因?yàn)橥ǔJ紫炔樵冏佑诚駚泶_定其是否包含所請求的數(shù)據(jù); 如果該子映像不包含所請求的數(shù)據(jù),那么該請求接著被重新路由到父文件(也檢查其元數(shù)據(jù));這個(gè)過程在到主文件的鏈向上遞歸直到數(shù)據(jù)被定位為止。因此在傳統(tǒng)的寫時(shí)復(fù)制的環(huán)境中對讀請求的處理引起額外的延遲以及處理負(fù)擔(dān),其隨著子映像的數(shù)量而增加。
發(fā)明內(nèi)容
一方面,一種用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的方法包括由在物理計(jì)算裝置上存儲(chǔ)的虛擬硬盤存儲(chǔ)主文件和多個(gè)鏈接文件,所述多個(gè)鏈接文件中的第一個(gè)文件包括主文件的增量而每個(gè)后續(xù)文件包括所述多個(gè)鏈接文件中的前一文件的增量。 該方法包括維護(hù)將多個(gè)虛擬硬盤地址的每一個(gè)地址與多個(gè)鏈接文件中的包含存儲(chǔ)在該多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件關(guān)聯(lián)的表格。該方法包括攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求。該方法包括基于該表格識(shí)別包含所尋址的數(shù)據(jù)的文件。 該方法包括響應(yīng)于所攔截的請求,提供對來自所識(shí)別的文件的所尋址的數(shù)據(jù)的訪問。一個(gè)實(shí)施例中,該方法包括確定所請求的數(shù)據(jù)的當(dāng)前版本沒有被存儲(chǔ)在多個(gè)鏈接文件中的最后一個(gè)文件中以及響應(yīng)于所述確定,基于所述表格來識(shí)別多個(gè)鏈接文件中的包含數(shù)據(jù)的當(dāng)前版本的文件。又一個(gè)實(shí)施例中,該方法包括維護(hù)表格,所述表格將多個(gè)虛擬硬盤地址的每一個(gè)地址關(guān)聯(lián)到主文件或者多個(gè)鏈接文件中的包含存儲(chǔ)在該地址上的數(shù)據(jù)的當(dāng)前版本的文件,以及將第二多個(gè)虛擬硬盤地址的每一個(gè)地址關(guān)聯(lián)到既不是主文件也不是多個(gè)鏈接文件中的文件的至少一個(gè)文件;所述至少一個(gè)文件可包括在虛擬硬盤上復(fù)制的一個(gè)或多個(gè)塊。又一個(gè)方面,一種用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng)包括虛擬硬盤、管理器、多個(gè)鏈接文件和表格。所述多個(gè)鏈接文件包括包含主文件的增量的第一個(gè)文件和包含所述多個(gè)鏈接文件中的前一文件的增量的各個(gè)后續(xù)文件。所述表格列舉在多個(gè)虛擬硬盤地址的每一個(gè)地址與主文件和多個(gè)鏈接文件中的包含存儲(chǔ)在多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件的其中一個(gè)之間的關(guān)聯(lián)。存儲(chǔ)在物理計(jì)算裝置上的虛擬硬盤存儲(chǔ)主文件、多個(gè)鏈接文件和表格。與虛擬硬盤通信的管理器攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求、基于該表格來識(shí)別包含所請求的數(shù)據(jù)的文件以及用對所請求的數(shù)據(jù)的訪問來對該請求進(jìn)行響應(yīng)。
本發(fā)明的前述和其它目的、方面、特征和優(yōu)點(diǎn)通過參考下述結(jié)合附圖的描述將會(huì)更加明顯并更易于理解,其中圖IA是描述包括管理器層、虛擬化層和硬件層的計(jì)算環(huán)境的實(shí)施例的框圖;圖IB和IC是描述有益于與此處所描述的方法和系統(tǒng)的相關(guān)的計(jì)算裝置的實(shí)施例的框圖;圖2A是描述用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng)的實(shí)施例的框圖;圖2B是描述多個(gè)鏈接文件的一個(gè)實(shí)施例的框圖;以及圖3是描述用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的方法的實(shí)施例的流程圖。
具體實(shí)施例方式現(xiàn)參考圖1A,框圖描述了虛擬化環(huán)境的一個(gè)實(shí)施例。簡而言之,計(jì)算裝置100包括管理器層、虛擬化層和硬件層。管理器層包括管理器101 (也稱為虛擬化管理器),其通過在虛擬化層中執(zhí)行的至少一個(gè)虛擬機(jī)來分配和管理對硬件層中的多個(gè)物理資源的訪問 (例如處理器221和盤228)。虛擬化層包括至少一個(gè)操作系統(tǒng)110和分配給至少一個(gè)操作系統(tǒng)110的多個(gè)虛擬資源,虛擬資源可包括而不限于多個(gè)虛擬處理器13加、132b、132c (總稱為132)和虛擬盤142a、142b、142c (總稱為142)??蓪⒍鄠€(gè)虛擬資源和操作系統(tǒng)110稱為虛擬機(jī)106。虛擬機(jī)106可包括控制操作系統(tǒng)105,該控制操作系統(tǒng)105與管理器101通信,并用于執(zhí)行應(yīng)用以管理并配置計(jì)算裝置100上的其他虛擬機(jī)?,F(xiàn)參考圖1A,具體而言,管理器101可以以模擬可訪問物理設(shè)備的操作系統(tǒng)的任何方式向操作系統(tǒng)提供虛擬資源。管理器101可以向任一數(shù)量的客戶操作系統(tǒng)110a、 110b(總稱為110)提供虛擬資源。一些實(shí)施例中,計(jì)算裝置100執(zhí)行一種或多種管理器。 這些實(shí)施例中,管理器可用于模擬虛擬硬件、劃分物理硬件、虛擬化物理硬件并執(zhí)行提供對計(jì)算環(huán)境的訪問的虛擬機(jī)。管理器可包括由位于美國加利福尼亞州的I^alo Alto的VMWare 公司制造的這些程序、XEN管理器(一種開源產(chǎn)品,其開發(fā)由開源Xen. org協(xié)會(huì)監(jiān)管)、由 Microsoft公司提供的HyperV、Virtualkrver或虛擬PC管理器或其他。一些實(shí)施例中,計(jì)算裝置100執(zhí)行創(chuàng)建客戶操作系統(tǒng)可在其上執(zhí)行的虛擬機(jī)平臺(tái)的管理器,該計(jì)算裝置100 被稱為宿主服務(wù)器。在這些實(shí)施例的一個(gè)中,例如,計(jì)算裝置100是由位于美國佛羅里達(dá)州 Fort Lauderdale 的 Citrix Systems 公司提供的 XEN SERVER。
一些實(shí)施例中,管理器101在計(jì)算裝置上執(zhí)行的操作系統(tǒng)之內(nèi)執(zhí)行。在這些實(shí)施例的一個(gè)中,執(zhí)行操作系統(tǒng)和管理器101的計(jì)算裝置可被視為具有宿主操作系統(tǒng)(在計(jì)算裝置上執(zhí)行的操作系統(tǒng))和客戶操作系統(tǒng)(在由管理器101提供的計(jì)算資源分區(qū)內(nèi)執(zhí)行的操作系統(tǒng))。其他實(shí)施例中,管理器101和計(jì)算裝置上的硬件直接交互而不是在宿主操作系統(tǒng)上執(zhí)行。在這些實(shí)施例的一個(gè)中,管理器101可被視為是在“裸金屬(bare metal) ”上執(zhí)行,所述“裸金屬”指包括計(jì)算裝置的硬件。一些實(shí)施例中,管理器101可以創(chuàng)建操作系統(tǒng)110在其中執(zhí)行的虛擬機(jī) 106a-c(總稱為106)。在這些實(shí)施例的一個(gè)中,管理器101加載虛擬機(jī)映像以創(chuàng)建虛擬機(jī) 106。在這些實(shí)施例的又一個(gè)中,管理器101在虛擬機(jī)106內(nèi)執(zhí)行操作系統(tǒng)110。在這些實(shí)施例的又一個(gè)中,虛擬機(jī)106執(zhí)行操作系統(tǒng)110。一些實(shí)施例中,管理器101控制對在計(jì)算裝置100上執(zhí)行的虛擬機(jī)106的處理器調(diào)度和內(nèi)存劃分。在這些實(shí)施例的一個(gè)中,管理器101控制至少一個(gè)虛擬機(jī)106的執(zhí)行。在這些實(shí)施例的又一個(gè)中,管理器101向至少一個(gè)虛擬機(jī)106呈現(xiàn)對由計(jì)算裝置100提供的至少一個(gè)硬件資源的抽象。其他實(shí)施例中,管理器101控制是否以及如何把物理處理器能力呈現(xiàn)給虛擬機(jī)106??刂撇僮飨到y(tǒng)105可以執(zhí)行用于管理和配置客戶操作系統(tǒng)的至少一個(gè)應(yīng)用。一個(gè)實(shí)施例中,控制操作系統(tǒng)105可以執(zhí)行管理應(yīng)用,如包括如下用戶接口的應(yīng)用,該用戶接口為管理員提供對用于管理虛擬機(jī)執(zhí)行的功能的訪問,這些功能包括用于執(zhí)行虛擬機(jī)、終止虛擬機(jī)執(zhí)行或者識(shí)別要分配給虛擬機(jī)的物理資源類型的功能。另一個(gè)實(shí)施例中,管理器101 在由管理器101創(chuàng)建的虛擬機(jī)106內(nèi)執(zhí)行控制操作系統(tǒng)105。在又一個(gè)實(shí)施例中,控制操作系統(tǒng)105在被授權(quán)直接訪問計(jì)算裝置100上的物理資源的虛擬機(jī)106上執(zhí)行。一些實(shí)施例中,計(jì)算裝置IOOa上的控制操作系統(tǒng)10 可經(jīng)由管理器IOla和管理器IOlb之間的通信與計(jì)算裝置IOOb上的控制操作系統(tǒng)10 交換數(shù)據(jù)。這樣,一個(gè)或多個(gè)計(jì)算裝置100可以與一個(gè)或多個(gè)其他計(jì)算裝置100交換關(guān)于資源池中可用的處理器和其他物理資源的數(shù)據(jù)。 在這些實(shí)施例的一個(gè)中,該功能允許管理器管理分布在多個(gè)物理計(jì)算裝置上的資源池。在這些實(shí)施例的又一個(gè)中,多個(gè)管理器管理在其中一個(gè)計(jì)算裝置100上執(zhí)行的一個(gè)或多個(gè)客戶操作系統(tǒng)。一個(gè)實(shí)施例中,控制操作系統(tǒng)105在被授權(quán)與至少一個(gè)客戶操作系統(tǒng)110交互的虛擬機(jī)106上執(zhí)行。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110通過管理器101與控制操作系統(tǒng) 105通信,以請求訪問盤或網(wǎng)絡(luò)。在又一個(gè)實(shí)施例中,客戶操作系統(tǒng)110和控制操作系統(tǒng)105 可通過由管理器101建立的通信信道通信,例如,通過由管理器101提供的多個(gè)共享存儲(chǔ)器頁面通信。一些實(shí)施例中,控制操作系統(tǒng)105包括用于直接與由計(jì)算裝置100提供的網(wǎng)絡(luò)硬件通信的網(wǎng)絡(luò)后端驅(qū)動(dòng)器。在這些實(shí)施例的一個(gè)中,網(wǎng)絡(luò)后端驅(qū)動(dòng)器處理來自至少一個(gè)客戶操作系統(tǒng)110的至少一個(gè)虛擬機(jī)請求。其他實(shí)施例中,控制操作系統(tǒng)105包括用于與計(jì)算裝置100上的存儲(chǔ)單元通信的塊后端驅(qū)動(dòng)器。在這些實(shí)施例的一個(gè)中,塊后端驅(qū)動(dòng)器根據(jù)從客戶操作系統(tǒng)110接收的至少一個(gè)請求從存儲(chǔ)單元讀寫數(shù)據(jù)。一個(gè)實(shí)施例,控制操作系統(tǒng)105包括工具堆棧104。其他實(shí)施例中,工具堆棧104 提供如下功能和管理器101交互、和其他控制操作系統(tǒng)105(例如位于第二計(jì)算裝置IOOb上)通信,或者管理計(jì)算裝置100上的虛擬機(jī)106b、106c。另一個(gè)實(shí)施例中,工具堆棧104 包括自定義應(yīng)用,其用于向虛擬機(jī)群的管理員提供改進(jìn)的管理功能。一些實(shí)施例中,工具堆棧104和控制操作系統(tǒng)105中的至少一個(gè)包括管理API,其提供用于遠(yuǎn)程配置并控制計(jì)算裝置100上運(yùn)行的虛擬機(jī)106的接口。其他實(shí)施例中,控制操作系統(tǒng)105通過工具堆棧104 與管理器101通信。一個(gè)實(shí)施例中,管理器101在由管理器101創(chuàng)建的虛擬機(jī)106內(nèi)執(zhí)行客戶操作系統(tǒng)110。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110為計(jì)算裝置100的用戶提供對計(jì)算環(huán)境中的資源的訪問。另一個(gè)實(shí)施例中,資源包括程序、應(yīng)用、文檔、文件、多個(gè)應(yīng)用、多個(gè)文件、可執(zhí)行程序文件、桌面環(huán)境、計(jì)算環(huán)境或?qū)τ?jì)算裝置100的用戶可用的其他資源。另一個(gè)實(shí)施例中,可通過多個(gè)訪問方法將資源傳送給計(jì)算裝置100,這些方法包括但不限于常規(guī)的直接安裝在計(jì)算裝置100上、通過應(yīng)用流的方法傳送給計(jì)算裝置100、將由在第二計(jì)算裝置 100'上執(zhí)行資源產(chǎn)生的并通過表示層協(xié)議傳送給計(jì)算裝置100的輸出數(shù)據(jù)傳送給計(jì)算裝置100、將由在第二計(jì)算裝置100'上執(zhí)行的虛擬機(jī)執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳送給計(jì)算裝置100、或者從連接到計(jì)算裝置100的移動(dòng)存儲(chǔ)裝置(例如USB設(shè)備)執(zhí)行,或者通過在計(jì)算裝置100上執(zhí)行的虛擬機(jī)執(zhí)行并且產(chǎn)生輸出數(shù)據(jù)。一些實(shí)施例中,計(jì)算裝置100把執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳輸給另一個(gè)計(jì)算裝置100'。一個(gè)實(shí)施例中,客戶操作系統(tǒng)110和該客戶操作系統(tǒng)110在其上執(zhí)行的虛擬機(jī)結(jié)合形成完全虛擬化虛擬機(jī),該完全虛擬化虛擬機(jī)并不知道自己是虛擬機(jī),這樣的機(jī)器可稱為“Domain U HVM(硬件虛擬機(jī))虛擬機(jī)”。另一個(gè)實(shí)施例中,完全虛擬化機(jī)包括模擬基本輸入/輸出系統(tǒng)(BIOS)的軟件以便在完全虛擬化機(jī)中執(zhí)行操作系統(tǒng)。在另一個(gè)實(shí)施例中, 完全虛擬化機(jī)可包括驅(qū)動(dòng)器,其通過和管理器101通信提供功能。這樣的實(shí)施例中,驅(qū)動(dòng)器通常意識(shí)到自己在虛擬化環(huán)境中執(zhí)行。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110和該客戶操作系統(tǒng)110在其上執(zhí)行的虛擬機(jī)結(jié)合形成超虛擬化虛擬機(jī)(paravirtualized),該超虛擬化虛擬機(jī)意識(shí)到自己是虛擬機(jī),這樣的機(jī)器可稱為“Domain U PV虛擬機(jī)”。另一個(gè)實(shí)施例中,超虛擬化機(jī)包括完全虛擬化機(jī)不包括的額外驅(qū)動(dòng)器。另一個(gè)實(shí)施例中,超虛擬化機(jī)包括如上所述的被包含在控制操作系統(tǒng)105中的網(wǎng)絡(luò)后端驅(qū)動(dòng)器和塊后端驅(qū)動(dòng)器。計(jì)算裝置100可以被部署為任意類型和形式的計(jì)算裝置和/或在其上執(zhí)行,例如能夠與任意類型和形式的網(wǎng)絡(luò)通信并且執(zhí)行此處所描述的操作的計(jì)算機(jī)、網(wǎng)絡(luò)裝置或設(shè)備。圖IB和IC描述了用于實(shí)施此處所描述的方法和系統(tǒng)的實(shí)施例的計(jì)算裝置100的框圖。 如圖IB和IC所示,計(jì)算裝置100包括中央處理單元121和主存儲(chǔ)器單元122。如圖IB所示,計(jì)算裝置100可包括存儲(chǔ)裝置128、安裝裝置116、網(wǎng)絡(luò)接口 118、I/O控制器123、顯示裝置12如-1對11、鍵盤1 和諸如鼠標(biāo)的指示裝置127。存儲(chǔ)裝置1 可包括但不限于操作系統(tǒng)、軟件和客戶機(jī)代理120。如圖IC所示,每個(gè)計(jì)算裝置100也可包括另外的可選部件, 例如存儲(chǔ)器端口 103、橋170、一個(gè)或多個(gè)輸入/輸出裝置130a-130n(總的使用標(biāo)號(hào)130表示)以及與中央處理單元121通信的高速緩存存儲(chǔ)器140。中央處理單元121是響應(yīng)并處理從主存儲(chǔ)器單元122取出的指令的任意邏輯電路。在一些實(shí)施例中,中央處理單元121由微處理器單元提供,例如由位于美國加利福尼亞州Mountain View的hte 1公司制造的微處理器單元;由位于美國伊利諾伊州khaumburg的Motorola公司制造的微處理器單元;由位于美國加利福尼亞州Santa Clara 的"Transmeta公司制造的微處理器單元;RS/6000處理器,由位于美國紐約州White Plains 的hternational Business Machines公司制造的微處理器單元;或者由位于美國加利福尼亞州Sunnyvale的Advanced Micro Devices公司制造的微處理器單元。計(jì)算裝置100 可以基于這些處理器中的任意一種,或者能夠按照這里所說明的那樣運(yùn)行的任意其它處理器。主存儲(chǔ)器單元122可以是能夠存儲(chǔ)數(shù)據(jù)并允許微處理器121直接訪問任意存儲(chǔ)位置的一個(gè)或多個(gè)存儲(chǔ)器芯片,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、突發(fā)SRAM或同步突發(fā)SRAM (BSRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、快速頁模式DRAM (FPM DRAM)、增強(qiáng)DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)擴(kuò)展數(shù)據(jù)輸出DRAM (BED0 DRAM)、 同步 DRAM (SDRAM)、JEDEC SRAM、PC100SDRAM、雙倍數(shù)據(jù)速率 SDRAM (DDR SDRAM)、增強(qiáng) SDRAM (ESDRAM)、同步鏈路 DRAM (SLDRAM)、直接 RambusDRAM(DRDRAM)或鐵電 RAM(FRAM)。主存儲(chǔ)器122可以基于上述存儲(chǔ)器芯片的任意一種,或者能夠像這里所說明的那樣運(yùn)行的任意其它可用存儲(chǔ)器芯片。在圖IB所示的實(shí)施例中處理器121通過系統(tǒng)總線150 (在下面進(jìn)行更詳細(xì)的描述)與主存儲(chǔ)器122進(jìn)行通信。圖IC描述了在其中處理器通過存儲(chǔ)器端口 103直接與主存儲(chǔ)器122通信的計(jì)算裝置100的實(shí)施例。例如,在圖IC中主存儲(chǔ)器122可以是 DRDRAM。圖IC描述在其中主處理器121通過有時(shí)被稱為背側(cè)總線的次級(jí)總線直接與高速緩存存儲(chǔ)器140通信的實(shí)施例。其他實(shí)施例中,主處理器121使用系統(tǒng)總線150與高速緩存存儲(chǔ)器140通信。高速緩存存儲(chǔ)器140通常有比主存儲(chǔ)器122更快的響應(yīng)時(shí)間,并且通常由SRAM、BSRAM或EDRAM提供。在圖IC所示的實(shí)施例中,處理器121通過本地系統(tǒng)總線 150與各種1/0裝置130進(jìn)行通信??梢允褂酶鞣N不同的總線將中央處理單元121連接到任意1/0裝置130,包括VESA VL總線、ISA總線、EISA總線、微通道體系結(jié)構(gòu)(MCA)總線、 PCI總線、PCI-X總線、PCI-Express總線或NuBus。對于1/0裝置是視頻顯示器124的實(shí)施例,處理器121可以使用高級(jí)圖形端口(AGP)與顯示裝置IM通信。圖IC描述了在其中主處理器121通過HYPERTRANSPORT、RAPIDI0、或INFINIBAND通信技術(shù)直接與1/0裝置130b 通信的計(jì)算機(jī)100的實(shí)施例。圖IC也描述了在其中本地總線和直接通信相混合的實(shí)施例 處理器121使用本地互連總線與1/0裝置130a通信同時(shí)直接與1/0裝置130b通信。計(jì)算裝置100中可以有多種1/0裝置130a-130n。輸入裝置包括鍵盤、鼠標(biāo)、觸控板、軌跡球、話筒、撥號(hào)盤和繪圖板。輸出裝置包括視頻顯示器、揚(yáng)聲器、噴墨打印機(jī)、激光打印機(jī)和熱升華打印機(jī)。如圖IB所示,1/0裝置可以由1/0控制器123控制。1/0控制器可以控制一個(gè)或多個(gè)1/0裝置,例如鍵盤1 和指示裝置127 (如鼠標(biāo)或光筆)。此外,1/0裝置還可以為計(jì)算裝置100提供存儲(chǔ)和/或安裝介質(zhì)116。在其它實(shí)施例中,計(jì)算裝置100可以提供USB連接(未示出)以接收手持USB存儲(chǔ)裝置,例如由位于美國加利福尼亞州Los Alamitos的Twintech Industry公司生產(chǎn)的設(shè)備的USB閃存驅(qū)動(dòng)線。 再次參考圖1B,計(jì)算裝置100可以支持任意適當(dāng)?shù)陌惭b裝置116,例如用于接收像 3. 5英寸、5. 25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動(dòng)器、⑶-ROM驅(qū)動(dòng)器、⑶-R/RW驅(qū)動(dòng)器、DVD-ROM驅(qū)動(dòng)器、閃存驅(qū)動(dòng)器、多種格式的磁帶驅(qū)動(dòng)器、USB設(shè)備、硬盤驅(qū)動(dòng)器或適于安裝軟件和程序的任意其它設(shè)備。計(jì)算裝置100還可以包括存儲(chǔ)裝置,諸如一個(gè)或者多個(gè)硬盤驅(qū)動(dòng)器或者獨(dú)立磁盤冗余陣列,用于存儲(chǔ)操作系統(tǒng)和其它相關(guān)軟件,以及用于存儲(chǔ)諸如涉及客戶機(jī)代理120的任意程序的應(yīng)用軟件程序。或者,可以使用安裝裝置116的任意一種作為存儲(chǔ)裝置。此外,操作系統(tǒng)和軟件可從可引導(dǎo)介質(zhì)運(yùn)行,可引導(dǎo)介質(zhì)例如是可引導(dǎo) CD,諸如ΚΝ0ΡΡΙΧ,其為一種用于GNU/Linux的可引導(dǎo)CD,可自knoppix. net作為GNU/Linux 分發(fā)獲得。此外,計(jì)算裝置100可以包括網(wǎng)絡(luò)接口 118以通過多種連接來與網(wǎng)絡(luò)104對接,所述連接包括但不限于標(biāo)準(zhǔn)電話線路、LAN或WAN鏈路(例如802. 11、Tl、Τ3、561Λ、 X. 25、SNA、DECNET)、寬帶連接(如ISDN、幀中繼、ATM、千兆以太網(wǎng)、SONET上以太網(wǎng) (Ethernet-over-SONET))、無線連接、或上述任意或全部的某種組合??墒褂枚喾N通信協(xié)議(例如 TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纖分布數(shù)據(jù)接口 (FDDI)、RS232、RS485、IEEE802. 11、IEEE802. 11a、IEEE802. lib、IEEE802. llg、CDMA、GSM、 WiMax和直接異步連接)來建立連接。在一個(gè)實(shí)施例中,計(jì)算裝置100可以通過任意類型和/或形式的網(wǎng)關(guān)或諸如安全套接字層(SSL)或傳輸層安全(TLS)協(xié)議,或由位于美國佛羅里達(dá)州Ft. Lauderdale的Citrix Systems公司制造的Citrix網(wǎng)關(guān)協(xié)議的隧道協(xié)議來與其他計(jì)算裝置100’通信。網(wǎng)絡(luò)接口 118可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適用于將計(jì)算裝置100對接到能夠通信并執(zhí)行這里所說明的操作的任意類型的網(wǎng)絡(luò)的任意其它設(shè)備。在一些實(shí)施例中,計(jì)算裝置100可以包括多個(gè)顯示裝置1對『12如或與其相連,這些顯示裝置各自可以是相同或不同的類型和/或形式。因而,任意一種1/0裝置130a-130n 和/或1/0控制器123可以包括任一類型和/或形式的適當(dāng)?shù)挠布?、軟件或硬件和軟件的組合,以支持、允許或提供通過計(jì)算裝置100連接和使用多個(gè)顯示裝置12如-1對11。例如, 計(jì)算裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅(qū)動(dòng)器和/或庫,以與顯示裝置對接、通信、連接或以其他方式使用顯示裝置12如-1對11。在一個(gè)實(shí)施例中,視頻適配器可以包括多個(gè)連接器以與多個(gè)顯示裝置1對『12如對接。在其它實(shí)施例中,計(jì)算裝置100可以包括多個(gè)視頻適配器,每個(gè)視頻適配器與顯示裝置1對『12如中的一個(gè)或多個(gè)連接。在一些實(shí)施例中,計(jì)算裝置100的操作系統(tǒng)的任一部分都可以被配置用于使用多個(gè)顯示器12如-1對11。在其它實(shí)施例中,顯示裝置中的一個(gè)或多個(gè)可以由一個(gè)或多個(gè)其它計(jì)算裝置提供,諸如(例如通過網(wǎng)絡(luò))與計(jì)算裝置100連接的計(jì)算裝置 100a和100b。這些實(shí)施例可以包括被設(shè)計(jì)和構(gòu)造來使用另一個(gè)計(jì)算機(jī)的顯示裝置作為計(jì)算裝置100的第二顯示裝置12 的任何類型的軟件。本領(lǐng)域的普通技術(shù)人員會(huì)認(rèn)識(shí)和意識(shí)到可以將計(jì)算裝置100配置成擁有多個(gè)顯示裝置的各種方式和實(shí)施例。在進(jìn)一步的實(shí)施例中,1/0裝置130可以是系統(tǒng)總線150和外部通信總線之間的橋,所述外部通信總線如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire 總線、FireffireSOO總線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級(jí)HIPPI總線、krialPlus總線、SCI/LAMP總線、光纖信道總線、串行 SCSI總線或HDMI總線。圖IB和IC中所描述類型的計(jì)算裝置100通常地在操作系統(tǒng)的控制下運(yùn)行,操作系統(tǒng)控制任務(wù)的調(diào)度和對系統(tǒng)資源的訪問。計(jì)算裝置100可運(yùn)行任一操作系統(tǒng),諸如任一版本的MICROSOFT WINDOWS操作系統(tǒng);不同發(fā)行版本的Unix和Linux操作系統(tǒng);用于Macintosh計(jì)算機(jī)的MAC OS的任意版本;任意嵌入式操作系統(tǒng);任意實(shí)時(shí)操作系統(tǒng);任意開源操作系統(tǒng);任意專有操作系統(tǒng);任意用于移動(dòng)計(jì)算裝置的操作系統(tǒng),或者能夠在計(jì)算裝置上運(yùn)行且執(zhí)行此處所描述的操作的任意其它操作系統(tǒng)。典型的操作系統(tǒng)包括但不限于WINDOWS 3. χ、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3. 51、WINDOWS NT 4. 0,WINDOWS CE,WINDOWS MOBILE,WINDOWS XP 禾Π WINDOWS VISTA,所有這些均由位于美國華盛頓州Redmond的微軟公司出品;由位于美國加利福尼亞州Cupertino的蘋果計(jì)算機(jī)公司出品的Mac OS ;由位于美國紐約州Armonk的國際商業(yè)機(jī)器公司出品的OS/2 ;以及由位于美國猶他州Mlt Lake City的Caldera公司發(fā)布的可免費(fèi)使用的Linux操作系統(tǒng)或者任意類型和/或形式的Unix操作系統(tǒng),以及其它。計(jì)算機(jī)系統(tǒng)100可以是任意工作站、電話、臺(tái)式計(jì)算機(jī)、膝上型或筆記本電腦、服務(wù)器、掌上電腦、移動(dòng)電話或其他便攜電信設(shè)備、媒體播放設(shè)備、游戲系統(tǒng)、移動(dòng)計(jì)算裝置, 或能夠通信的任意其它類型和/或形式的計(jì)算、電信或者媒體裝置。計(jì)算機(jī)系統(tǒng)100有足夠的處理器能力和存儲(chǔ)容量以執(zhí)行此處所述的操作。例如,計(jì)算機(jī)系統(tǒng)100可包括由位于美國加利福尼亞州Cupertino的蘋果計(jì)算機(jī)公司出品的IPOD系列設(shè)備、由位于日本Tokyo 的索尼公司出品的 PLAYSTATI0N2、PLAYSTATI0N3 或PERSONAL PLAYSTATION PORTABLE (PSP) 設(shè)備,由位于日本Kyoto的Nintendo有限公司出品的NINTENDO DS、NINTENDO GAMEB0Y、 NINTENDO GAMEB0Y ADVANCED或NINTENDO REVOLUTION設(shè)備,或者由位于美國華盛頓州 Redmond的微軟公司出品的XBOX或XBOX 360設(shè)備。在一些實(shí)施例中,計(jì)算裝置100可以有不同的處理器、操作系統(tǒng)以及與該裝置一致的輸入設(shè)備。例如,在一個(gè)實(shí)施例中,計(jì)算裝置100是由I^lm公司出品的TRE0180、270、 600、650、680、700p、700w/wx、750、755p、800w、Centro 或 Pro 智能電話。在這些實(shí)施例的一些中,TERO智能電話是在I^lmOS操作系統(tǒng)的控制下操作并且包括筆輸入設(shè)備以及五向?qū)Ш皆O(shè)備。在其他實(shí)施例中,計(jì)算裝置100是移動(dòng)設(shè)備,例如,JAVA使能蜂窩電話或個(gè)人數(shù)字助理(PDA),諸如 i55sr、i58sr、i85s、i88s、i90c、i95cl、i335、i365、i570、1576、i580、 i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、 776 或 imllOO,以上這些均由位于美國伊利諾伊州khaumburg的摩托羅拉公司制造;由位于日本Kyoto的 Kyocera公司制造的6035或7135 ;或者由位于韓國首爾的Samsung電子有限公司制造的 300或i330。在一些實(shí)施例中,計(jì)算裝置100是由位于芬蘭的諾基亞公司制造或由位于瑞典 Lund 的 Sony Ericsson Mobile Communications AB 公司制造的移動(dòng)設(shè)備。在其他實(shí)施例中,計(jì)算裝置100是黑莓(Bladcberry)手持或智能電話,諸如由 Research In Motion有限公司制造的設(shè)備,包括黑莓7100系列、8700系列、7700系列、7200 系列、黑莓7520、黑莓PERAL 8100,8700系列、8800系列、黑莓Morm、黑莓Bold、黑莓Curve 8900、黑莓Pearl Flip。在其他實(shí)施例中,計(jì)算裝置100是智能電話、Pocket PC、Pocket PC 電話,或支持Microsft Windows Mobile Software的其它手持移動(dòng)設(shè)備。此外,計(jì)算裝置 100可以是任意工作站、臺(tái)式計(jì)算機(jī)、膝上型或筆記本電腦、服務(wù)器、掌上電腦、移動(dòng)電話、任意其它計(jì)算機(jī)、或能夠通信并有足夠的處理器能力和存儲(chǔ)容量以執(zhí)行此處所述操作的其它形式的計(jì)算或者電信設(shè)備。在一些實(shí)施例中,計(jì)算裝置100是數(shù)字音頻播放器。在這些實(shí)施例的一個(gè)中,計(jì)算裝置100是諸如由位于美國加利福尼亞州Cupertino的蘋果計(jì)算機(jī)公司制造的Apple IPOD、IPOD Touch, IPOD ΝΑΝΟ和IPOD SHUFFLE系列設(shè)備的數(shù)字音頻播放器。在這些實(shí)施例的又一個(gè)中,數(shù)字音頻播放器可作為便攜媒體播放器和作為大容量存儲(chǔ)裝置來工作。 在其他實(shí)施例中,計(jì)算裝置100是諸如由位于美國新澤西州Ridgefield Park的Samsung Electronics America 公司制造的 Digital Audio Player Select MP3 播放器,或由位于美國伊利諾伊州khaumburg的Motorola公司制造的Motorola m500或m25的數(shù)字音頻播放器。在其他實(shí)施例中,計(jì)算裝置100是便攜媒體播放器,諸如由Creative Technologies 有限公司制造的 ZEN VISION W、ZEN VISION 系列、ZEN PORTABLE MEDIA CENTER 設(shè)備或 MP3播放器的Digital MP3系列。仍在其他實(shí)施例中,計(jì)算裝置100是支持以下文件格式的便攜媒體播放器或數(shù)字音頻播放器,這些文件格式包括,但不限于MP3、WAV、M4A/AAC、 WMAProtected AAC、AIFF、Audible 音頻書、Apple Lossless 音頻文件格式和.mov、. m4v 以及.mp4MPEG-4(H. 264/MPEG-4AVC)視頻文件格式。在一些實(shí)施例中,計(jì)算裝置100包括設(shè)備的組合,例如與數(shù)字音頻播放器或便攜媒體播放器相組合的移動(dòng)電話。在這些實(shí)施例的一個(gè)中,計(jì)算裝置100是智能電話,例如由蘋果計(jì)算機(jī)公司制造的iPhone,或由Research In Motion有限公司制造的黑莓設(shè)備。又一個(gè)實(shí)施例中,計(jì)算裝置100是裝有web瀏覽器和麥克風(fēng)與揚(yáng)聲器系統(tǒng)(如電話耳機(jī))的筆記本電腦或臺(tái)式計(jì)算機(jī)。在這樣的實(shí)施例中,計(jì)算裝置100是web使能的(web-enabled) 的并且能接聽和啟動(dòng)電話呼叫。在其他實(shí)施例中,計(jì)算裝置100是組合數(shù)字音頻播放器和移動(dòng)電話的 Motorola RAZR 或 Motorola ROKR 系列。計(jì)算裝置100可以是文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器、設(shè)備、網(wǎng)絡(luò)設(shè)備、網(wǎng)關(guān)、應(yīng)用網(wǎng)關(guān)、網(wǎng)關(guān)服務(wù)器、虛擬化服務(wù)器、部署服務(wù)器、SSL VPN服務(wù)器或防火墻。在一些實(shí)施例中,計(jì)算裝置100提供遠(yuǎn)程認(rèn)證撥入用戶服務(wù),并被稱為RADIUS服務(wù)器。 在其他實(shí)施例中,計(jì)算裝置100可以有作為應(yīng)用服務(wù)器或者作為主應(yīng)用服務(wù)器工作的能力。在其他實(shí)施例中,計(jì)算裝置100是刀片服務(wù)器。在一個(gè)實(shí)施例中,計(jì)算裝置100可包括活動(dòng)目錄。計(jì)算裝置100可以是應(yīng)用加速設(shè)備。對于其中計(jì)算裝置100是應(yīng)用加速設(shè)備的實(shí)施例,計(jì)算裝置100可提供包括防火墻功能、應(yīng)用防火墻功能,或負(fù)載平衡功能的功能。在一些實(shí)施例中,計(jì)算裝置100包括諸如由位于美國加州San Jose的Citrix Application Networking Group、位于美國力口州 Mountain View 的 Silver Peak Systems 公司、位于美國力口州 San Francisco 的 Riverbed ^Technology公司、位于美國華盛頓州kattle的F5 Networks公司或位于美國加州Sunnyvale的Juniper Networks公司制造的設(shè)備系列中的一個(gè)設(shè)備。在其他實(shí)施例中,計(jì)算裝置100可被稱為客戶機(jī)節(jié)點(diǎn)、客戶機(jī)器、端節(jié)點(diǎn)或端點(diǎn)。 在一些實(shí)施例中,客戶機(jī)100具有作為客戶機(jī)節(jié)點(diǎn)尋求訪問服務(wù)器所提供的資源的能力以及作為服務(wù)器節(jié)點(diǎn)為其它客戶機(jī)提供對所寄載的資源訪問的能力。在一些實(shí)施例中,第一客戶機(jī)計(jì)算裝置100a與第二服務(wù)器計(jì)算裝置100b通信。在一個(gè)實(shí)施例中,客戶機(jī)與服務(wù)器群中的計(jì)算裝置100之一進(jìn)行通信。例如,通過網(wǎng)絡(luò),客戶機(jī)可以請求執(zhí)行由服務(wù)器群中的計(jì)算裝置100所寄載的各種應(yīng)用以及接收應(yīng)用執(zhí)行結(jié)果的輸出數(shù)據(jù)以用于顯示。在一個(gè)實(shí)施例中,客戶機(jī)執(zhí)行程序鄰近應(yīng)用(program neighborhood application)以與服務(wù)器群中的計(jì)算裝置100通信。
計(jì)算裝置100可以執(zhí)行、操作或者以其它方式提供應(yīng)用,該應(yīng)用可以是任何類型和/或形式的軟件、程序或可執(zhí)行指令,諸如任何類型和/或形式的web瀏覽器、基于web 的客戶機(jī)、客戶機(jī)-服務(wù)器應(yīng)用、瘦客戶端計(jì)算客戶機(jī)、ActiveX控件、或Java小程序,或者能夠在計(jì)算裝置100上執(zhí)行的任何其他類型和/或形式的可執(zhí)行指令。在一些實(shí)施例中,應(yīng)用可以是由第二計(jì)算裝置代表第一計(jì)算裝置的用戶執(zhí)行的基于服務(wù)器的或者基于遠(yuǎn)程的應(yīng)用。在其他實(shí)施例中,第二計(jì)算裝置可使用任何瘦客戶端或遠(yuǎn)程顯示協(xié)議向第一客戶計(jì)算裝置顯示輸出的數(shù)據(jù),所述協(xié)議如由位于美國佛羅里達(dá)州Ft. Lauderdale的 Citrix Systems公司制造的獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議;或由位于美國華盛頓州Redmond的 Microsoft公司制造的遠(yuǎn)程桌面協(xié)議(RDP) ;Xll協(xié)議;由AT&T貝爾實(shí)驗(yàn)室制造的虛擬網(wǎng)絡(luò)計(jì)算(VNC)協(xié)議;由位于美國加州Sunnyvale和以色列Raanana的Qumranet公司制造的 SPICE協(xié)議;由位于美國加州Milpitas的VESA公司制造的Net2Display協(xié)議;由位于加拿大不列顛哥倫比亞省Burnaby的Teradici公司制造的PC-over-IP協(xié)議;由位于美國加州 San Jose的Wyse Technology公司制造的TCX協(xié)議;由位于美國紐約州NewYork的紐約市哥倫比亞大學(xué)開發(fā)的THINC協(xié)議;或者由位于美國馬薩諸塞州Chelmsford的De sktone公司制造的Vi rtual-D協(xié)議。應(yīng)用可以使用任何類型的協(xié)議,并且其可以是例如HTTP客戶機(jī)、FTP客戶機(jī)、Oscar客戶機(jī)或Telnet客戶機(jī)。在其他實(shí)施例中,應(yīng)用包括與諸如軟IP電話的網(wǎng)絡(luò)電話(VoIP)通信有關(guān)的任意類型的軟件。在進(jìn)一步的實(shí)施例中,應(yīng)用包括與實(shí)時(shí)數(shù)據(jù)通信有關(guān)的任何應(yīng)用,例如用于流式傳輸視頻和/或音頻的應(yīng)用。一些實(shí)施例中,第一計(jì)算裝置IOOa代表客戶機(jī)計(jì)算裝置100b的用戶執(zhí)行應(yīng)用。 其他實(shí)施例中,計(jì)算裝置100a執(zhí)行虛擬機(jī),其提供執(zhí)行會(huì)話,在該會(huì)話中,代表用戶或客戶機(jī)計(jì)算裝置100b執(zhí)行應(yīng)用。一個(gè)這樣的實(shí)施例中,執(zhí)行會(huì)話是寄載的桌面會(huì)話。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100執(zhí)行終端服務(wù)會(huì)話。終端服務(wù)會(huì)話可以提供寄載的桌面環(huán)境。 在另一個(gè)這樣的實(shí)施例中,執(zhí)行會(huì)話提供對計(jì)算環(huán)境的訪問,計(jì)算環(huán)境可包括以下的一個(gè)或多個(gè)應(yīng)用、多個(gè)應(yīng)用、桌面應(yīng)用以及在其中可執(zhí)行一個(gè)或多個(gè)應(yīng)用的桌面會(huì)話?,F(xiàn)參考圖2A,框圖描述了用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng)的一個(gè)實(shí)施例。總的來說,該系統(tǒng)包括虛擬硬盤142、管理器101、表格260和多個(gè)鏈接文件沈5。多個(gè)鏈接文件265包括包含主文件沈2的增量的第一個(gè)文件和包含多個(gè)鏈接文件265中的前一文件的增量的各個(gè)后續(xù)文件。表格260列舉在多個(gè)虛擬硬盤地址的每一個(gè)地址與主文件262和多個(gè)鏈接文件265中的包含存儲(chǔ)在多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件的其中一個(gè)之間的關(guān)聯(lián)。存儲(chǔ)在物理計(jì)算裝置100上的虛擬硬盤142存儲(chǔ)主文件沈2、多個(gè)鏈接文件265和表格沈0。與虛擬硬盤142通信的管理器101 攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求、基于表格260來識(shí)別包含所請求的數(shù)據(jù)的文件以及用對所請求的數(shù)據(jù)的訪問來對該請求進(jìn)行響應(yīng)。現(xiàn)參考圖2A,更具體地,多個(gè)鏈接文件265包括包含主文件262的增量的第一個(gè)文件和包含多個(gè)鏈接文件265中的前一文件的增量的各個(gè)后續(xù)文件。一個(gè)實(shí)施例中,多個(gè)鏈接文件265是寫時(shí)復(fù)制的虛擬盤映像的一個(gè)鏈。在又一個(gè)實(shí)施例中,該鏈中的每個(gè)文件包含從虛擬盤地址到文件偏移的映射。在又一個(gè)實(shí)施例中,該鏈中的文件與跟蹤文件的哪個(gè)區(qū)域包含有效數(shù)據(jù)的元數(shù)據(jù)相關(guān)聯(lián)。在一些實(shí)施例中,在虛擬機(jī)內(nèi)執(zhí)行的進(jìn)程可能寫入多個(gè)鏈接文件265中的最后一個(gè)文件。
在一些實(shí)施例中,多個(gè)鏈接文件沈5中的文件存儲(chǔ)映像。在這些實(shí)施例的一個(gè)中, 該文件是虛擬機(jī)映像。在這些實(shí)施例的又一個(gè)中,該文件是操作系統(tǒng)映像。其他實(shí)施例中, 多個(gè)鏈接文件265中的文件不存儲(chǔ)可執(zhí)行的數(shù)據(jù)。在這些實(shí)施例的一個(gè)中,該文件是數(shù)據(jù)庫?,F(xiàn)參考圖2B,框圖描述了多個(gè)鏈接文件沈5的一個(gè)實(shí)施例。如圖2B所示,主文件 262是多個(gè)鏈接文件沈5中的第一個(gè)文件。一個(gè)實(shí)施例中,主文件262可被稱為原始文件。 在一些實(shí)施例中,主文件沈2是只讀的主文件。反映對主文件262的修改的增量文件是多個(gè)鏈接文件265中的第二個(gè)文件沈如。如圖2B所示,在一些實(shí)施例中,反映對增量文件的修改的增量文件26 被稱為子文件沈恥,而增量文件被稱為父文件沈如。在一個(gè)實(shí)施例中,訪問多個(gè)鏈接文件中的子文件沈恥的進(jìn)程具有讀取和寫入該文件的能力。在又一個(gè)實(shí)施例中,訪問多個(gè)鏈接文件中的父文件26 的進(jìn)程只具有讀文件的能力。例如,在又一個(gè)實(shí)施例中,文件26 可允許讀和寫訪問直到創(chuàng)建了新的增量文件 265b為止;此時(shí),該文件265可允許只讀訪問。一些實(shí)施例中,多個(gè)鏈接文件沈5中的最后一個(gè)文件對在虛擬機(jī)250中執(zhí)行的進(jìn)程是可寫的。現(xiàn)參考回到圖2A,表格260列舉在多個(gè)虛擬硬盤地址的每一個(gè)地址與主文件262 和多個(gè)鏈接文件265中的包含存儲(chǔ)在多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件的其中一個(gè)之間的關(guān)聯(lián)。在一些實(shí)施例中,表格260被稱為文件描述符表。在一個(gè)實(shí)施例中,表格260具有存儲(chǔ)文件標(biāo)識(shí)符(文件ID)、文件路徑、文件訪問和虛擬硬盤文件的通用唯一標(biāo)識(shí)符(UUID)的數(shù)據(jù)結(jié)構(gòu)。在又一個(gè)實(shí)施例中,表格沈0中的每一行代表多個(gè)鏈接文件265中的一個(gè)文件。在一些實(shí)施例中,一個(gè)文件描述符表260存儲(chǔ)與多個(gè)鏈接文件265中的每個(gè)文件關(guān)聯(lián)的數(shù)據(jù)。其他實(shí)施例中,為多個(gè)鏈接文件提供多個(gè)表格沈0。進(jìn)一步的實(shí)施例中,表格260可包括頭部,所述頭部識(shí)別用于驗(yàn)證表格沈0的一致性以及用于定位與表格260關(guān)聯(lián)的文件或表格的至少一個(gè)字段。在這些實(shí)施例的一個(gè)中,UUID和時(shí)間戳字段也提供可用于確認(rèn)表格沈0中的數(shù)據(jù)的一致性的數(shù)據(jù)。在一個(gè)實(shí)施例中,表格沈0中的文件ID指定多個(gè)鏈接文件265中的一個(gè)文件的唯一標(biāo)識(shí)符。又一個(gè)實(shí)施例中,表格260中的文件路徑指定由虛擬硬盤142提供的文件系統(tǒng)中的文件的位置。在又一個(gè)實(shí)施例中,表格沈0中的文件訪問時(shí)間指定具有所指出的文件 ID的文件被計(jì)算裝置100上的進(jìn)程修改的時(shí)間;例如,在與虛擬硬盤142關(guān)聯(lián)的虛擬機(jī)250 中執(zhí)行的進(jìn)程。在又一個(gè)實(shí)施例中,表格沈0中的虛擬硬盤地址是嵌入在虛擬硬盤元數(shù)據(jù)和說明中的唯一標(biāo)識(shí)符。在一些實(shí)施例中,提供第二表格,其指定表格沈0的文件ID以及指定識(shí)別虛擬硬盤的扇區(qū)的偏移。虛擬硬盤的扇區(qū)可以是例如由虛擬硬盤存儲(chǔ)的512字節(jié)的數(shù)據(jù)。在這些實(shí)施例的一個(gè)中,該偏移識(shí)別存儲(chǔ)所識(shí)別的文件中的數(shù)據(jù)的虛擬硬盤的分區(qū)。在這些實(shí)施例又一個(gè)中,第二表格被稱為塊描述符表。在這些實(shí)施例的又一個(gè)中,塊描述符表由多個(gè)邏輯塊組成,其各自表示虛擬硬盤142的一個(gè)區(qū)域;例如,多個(gè)邏輯塊中的一個(gè)邏輯塊可表示虛擬硬盤142的2MB的連續(xù)區(qū)域。在這些實(shí)施例的又一個(gè)中,對多個(gè)鏈接文件沈5中的每個(gè)文件產(chǎn)生塊描述符表。在其他實(shí)施例中,一個(gè)塊描述符表存儲(chǔ)與多個(gè)鏈接文件中的每個(gè)文件關(guān)聯(lián)的數(shù)據(jù)。在進(jìn)一步的實(shí)施例中,多個(gè)塊描述符表與多個(gè)鏈接文件265相關(guān)聯(lián)。在一些實(shí)施例中,提供兩個(gè)表格表格260和塊描述符表。在這些實(shí)施例的一個(gè)中,提供第二表格的結(jié)果是對于塊描述符表中的每個(gè)塊存儲(chǔ)文件標(biāo)識(shí)符,而不是文件的完整路徑名,其結(jié)果是可減小表格260的大小。在這些實(shí)施例的又一個(gè)中,表格260提供改善的能力以增加或刪除或以其他方式修改表格260的條目。在其他實(shí)施例中,提供第三表格,其識(shí)別虛擬硬盤地址的至少一個(gè)范圍。在這些實(shí)施例的一個(gè)中,第三表格是將虛擬硬盤地址的范圍映射到由第二表格指定的偏移的數(shù)組。 在這些實(shí)施例的又一個(gè)中,例如,該數(shù)組將虛擬扇區(qū)地址的2MB的區(qū)域映射到由塊描述符表識(shí)別的偏移。在這些實(shí)施例的又一個(gè)中,第三表格被稱為塊分配表。在這些實(shí)施例的又一個(gè)中,例如,塊分配表的每一行指向在塊描述符表中為2MB區(qū)域的數(shù)據(jù)識(shí)別的字節(jié)偏移。 在一些實(shí)施例中,一個(gè)塊分配表存儲(chǔ)與多個(gè)鏈接文件中的每個(gè)文件關(guān)聯(lián)的數(shù)據(jù)。在進(jìn)一步的實(shí)施例中,多個(gè)塊分配表與多個(gè)鏈接文件265相關(guān)聯(lián)。下面是表格沈0的一個(gè)實(shí)施例的例子
權(quán)利要求
1.一種用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的方法,所述方法包括 由在物理計(jì)算裝置上存儲(chǔ)的虛擬硬盤存儲(chǔ)主文件和多個(gè)鏈接文件,所述多個(gè)鏈接文件中的第一個(gè)文件包括主文件的增量而且每個(gè)后續(xù)文件包括所述多個(gè)鏈接文件中的前一文件的增量;維護(hù)表格,所述表格將多個(gè)虛擬硬盤地址的每一個(gè)地址與多個(gè)鏈接文件中的包含存儲(chǔ)在所述多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件相關(guān)聯(lián); 攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求; 基于所述表格來識(shí)別包含所尋址的數(shù)據(jù)的文件;以及響應(yīng)于所攔截的請求,提供對來自所識(shí)別的文件的所尋址的數(shù)據(jù)的訪問。
2.根據(jù)權(quán)利要求1所述的方法,還包括當(dāng)新的文件被加入到多個(gè)鏈接文件時(shí),通過將多個(gè)鏈接文件中的文件與虛擬硬盤地址相關(guān)聯(lián)來更新所述表格中的條目。
3.根據(jù)權(quán)利要求1所述的方法,還包括確定所請求的數(shù)據(jù)的當(dāng)前版本沒有被存儲(chǔ)在多個(gè)鏈接文件中的最后一個(gè)文件中;以及響應(yīng)于所述確定,基于所述表格來識(shí)別多個(gè)鏈接文件中的包含數(shù)據(jù)的當(dāng)前版本的文件。
4.根據(jù)權(quán)利要求1所述的方法,其中維護(hù)還包括維護(hù)表格,所述表格將多個(gè)虛擬硬盤地址的每一個(gè)地址關(guān)聯(lián)到主文件或多個(gè)鏈接文件中的包含該地址上的數(shù)據(jù)的當(dāng)前版本的文件,并且將第二多個(gè)虛擬硬盤地址的每一個(gè)地址關(guān)聯(lián)到既不是主文件也不是多個(gè)鏈接文件中的文件的至少一個(gè)文件。
5.根據(jù)權(quán)利要求4所述的方法,其中所述至少一個(gè)文件包括在至少一個(gè)虛擬硬盤上復(fù)制的一個(gè)或多個(gè)塊。
6.一種用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng),所述系統(tǒng)包括 多個(gè)鏈接文件,所述多個(gè)鏈接文件中的第一個(gè)文件包括主文件的增量而每個(gè)后續(xù)文件包括所述多個(gè)鏈接文件中的前一文件的增量;表格,用于將多個(gè)虛擬硬盤地址的每一個(gè)地址與所述主文件和多個(gè)鏈接文件中的包含存儲(chǔ)在所述多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件的其中一個(gè)相關(guān)聯(lián);在物理計(jì)算裝置上存儲(chǔ)的虛擬硬盤,所述虛擬硬盤存儲(chǔ)所述主文件、所述多個(gè)鏈接文件和表格;以及與虛擬硬盤通信的管理器,用于攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求,基于所述表格識(shí)別包含所請求的數(shù)據(jù)的文件以及用對所請求的數(shù)據(jù)的訪問來響應(yīng)所述請求。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),還包括多個(gè)鏈接文件中的最后一個(gè)文件,其由在包括所述虛擬硬盤的虛擬機(jī)中執(zhí)行的進(jìn)程可寫。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其中管理器還包括用于當(dāng)新的文件被加入到所述多個(gè)鏈接文件時(shí),通過將多個(gè)鏈接文件中的文件與虛擬硬盤地址相關(guān)聯(lián)來更新所述表格中的條目的裝置。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其中管理器還包括用于確定所請求的數(shù)據(jù)的當(dāng)前版本沒有被存儲(chǔ)在最新的增量文件中的裝置;以及用于響應(yīng)于所述確定,基于所述表格來識(shí)別多個(gè)鏈接文件中的包含數(shù)據(jù)的當(dāng)前版本的文件的裝置。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述表格還包括在第二多個(gè)虛擬硬盤地址和既不是主文件也不是增量文件的至少一個(gè)文件之間的關(guān)聯(lián)。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述至少一個(gè)文件包括在至少一個(gè)虛擬硬盤上復(fù)制的一個(gè)或多個(gè)塊。
12.—種在其上具有指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行所述指令時(shí)提供用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的方法,所述計(jì)算機(jī)可讀介質(zhì)包括用于由在物理計(jì)算裝置上存儲(chǔ)的虛擬硬盤存儲(chǔ)主文件和多個(gè)鏈接文件的指令,所述多個(gè)鏈接文件中的第一個(gè)文件包括主文件的增量而每個(gè)后續(xù)文件包括所述多個(gè)鏈接文件中的前一文件的增量;用于維護(hù)表格的指令,所述表格將多個(gè)虛擬硬盤地址的每一個(gè)地址與多個(gè)鏈接文件中的包含存儲(chǔ)在所述多個(gè)虛擬硬盤地址的其中一個(gè)地址上的數(shù)據(jù)的當(dāng)前版本的文件相關(guān)聯(lián);用于攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求的指令;用于基于所述表格來識(shí)別包含所尋址的數(shù)據(jù)的文件的指令;以及用于響應(yīng)于所攔截的請求提供對來自所識(shí)別的文件的所尋址的數(shù)據(jù)的訪問的指令。
13.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),還包括用于當(dāng)新的文件被加入到多個(gè)鏈接文件時(shí),通過將多個(gè)鏈接文件中的文件與虛擬硬盤地址相關(guān)聯(lián)來更新所述表格中的條目的指令。
14.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),還包括用于確定所請求的數(shù)據(jù)的當(dāng)前版本沒有被存儲(chǔ)在所述多個(gè)鏈接文件中的最后一個(gè)文件中的指令;以及用于響應(yīng)于所述確定,基于所述表格來識(shí)別多個(gè)鏈接文件中的包含數(shù)據(jù)的當(dāng)前版本的文件的指令。
15.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),還包括用于維護(hù)表格的指令,所述表格將多個(gè)虛擬硬盤地址的每個(gè)地址關(guān)聯(lián)到主文件或多個(gè)鏈接文件中的包含該地址上的數(shù)據(jù)的當(dāng)前版本的文件,并且將第二多個(gè)虛擬硬盤地址的每一個(gè)地址關(guān)聯(lián)到既不是主文件也不是多個(gè)鏈接文件中的文件的至少一個(gè)文件。
全文摘要
一種用于優(yōu)化確定由虛擬硬盤地址標(biāo)識(shí)的數(shù)據(jù)位置的過程的系統(tǒng)包括虛擬硬盤、管理器、多個(gè)鏈接文件和表格。多個(gè)鏈接文件包括包含主文件的增量的第一個(gè)文件和包含在多個(gè)鏈接文件中的前一文件的增量的各個(gè)后續(xù)文件。所述表格列舉在多個(gè)虛擬硬盤地址的每一個(gè)地址與主文件和多個(gè)鏈接文件中的文件的其中一個(gè)之間的關(guān)聯(lián)。虛擬硬盤存儲(chǔ)主文件、多個(gè)鏈接文件和表格。管理器攔截以虛擬硬盤地址訪問數(shù)據(jù)的請求、基于所述表格來識(shí)別包含所請求的數(shù)據(jù)的文件以及用對所請求的數(shù)據(jù)的訪問來對該請求進(jìn)行響應(yīng)。
文檔編號(hào)G06F17/30GK102334114SQ200980157201
公開日2012年1月25日 申請日期2009年11月30日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者A·K·沃菲爾德, J·T·懷爾斯 申請人:思杰系統(tǒng)有限公司