欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

虛擬盤存儲(chǔ)技術(shù)的制作方法

文檔序號(hào):6365997閱讀:207來(lái)源:國(guó)知局
專利名稱:虛擬盤存儲(chǔ)技術(shù)的制作方法
虛擬盤存儲(chǔ)技術(shù)
背景技術(shù)
存儲(chǔ)虛擬化技術(shù)允許邏輯存儲(chǔ)與物理存儲(chǔ)分開。存儲(chǔ)虛擬化的一個(gè)示范性使用情形是在虛擬機(jī)內(nèi)。虛擬化軟件(通常稱為管理程序或虛擬機(jī)監(jiān)視器)層安裝在計(jì)算機(jī)系統(tǒng)上和控制虛擬機(jī)如何與物理硬件交互。由于通常把訪客操作系統(tǒng)編碼為實(shí)行物理硬件上的獨(dú)占控制,所以虛擬化軟件可以被配置成細(xì)分物理硬件的資源和模擬虛擬機(jī)內(nèi)物理硬件的存在。存儲(chǔ)虛擬化的另一使用情形是在被配置成實(shí)施存儲(chǔ)陣列的計(jì)算機(jī)系統(tǒng)內(nèi)。在此情形中,物理計(jì)算機(jī)系統(tǒng)或虛擬機(jī)可以使用iSCSI協(xié)議等連接到存儲(chǔ)陣列??梢允褂么鎯?chǔ)操控模塊來(lái)模擬虛擬或者物理機(jī)的存儲(chǔ)。例如,存儲(chǔ)操控模塊可以通過對(duì)可以用來(lái)描述(即,存儲(chǔ))虛擬盤擴(kuò)展的一個(gè)或更多個(gè)虛擬盤文件(即,諸如塊的連續(xù) 存儲(chǔ)區(qū)域)進(jìn)行讀取和寫入來(lái)操控虛擬或物理機(jī)發(fā)出的存儲(chǔ)IO任務(wù)。同樣地,存儲(chǔ)操控程序可以通過向一個(gè)或更多個(gè)虛擬盤文件寫入虛擬盤的位模式數(shù)據(jù)來(lái)響應(yīng)寫入請(qǐng)求,以及通過讀取一個(gè)或更多個(gè)虛擬盤文件中存儲(chǔ)的位模式來(lái)響應(yīng)讀取請(qǐng)求。

發(fā)明內(nèi)容
本文描述用于在一個(gè)或更多個(gè)虛擬盤文件中存儲(chǔ)虛擬盤數(shù)據(jù)的技術(shù)。在示范性配置中,虛擬盤擴(kuò)展可以與表明虛擬盤擴(kuò)展是否通過虛擬盤文件來(lái)描述的狀態(tài)信息相關(guān)聯(lián)。在某些情況下,可以收回用來(lái)描述虛擬盤擴(kuò)展的空間,可以使用狀態(tài)信息來(lái)確定如何操控針對(duì)虛擬盤擴(kuò)展的后續(xù)讀取和/或?qū)懭氩僮鳌?梢允褂檬栈氐目臻g(例如,從一個(gè)或更多個(gè)范圍建立的擴(kuò)展)來(lái)描述同樣或另一虛擬盤擴(kuò)展。除了以上內(nèi)容之外,在權(quán)利要求具體實(shí)施方式
、以及圖中還描述了其它技術(shù)。本領(lǐng)域技術(shù)人員可以明白,本公開的一個(gè)或更多個(gè)各種方面可以包括但不限于用于實(shí)現(xiàn)本文中參考的方面的電路和/或編程;電路和/或編程可以根據(jù)系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇而實(shí)質(zhì)上是被配置成實(shí)現(xiàn)本文中參考的方面的硬件、軟件、和/或固件的任何組合。以上內(nèi)容是概述,因而必定包含細(xì)節(jié)的簡(jiǎn)化、概括和省略。本領(lǐng)域技術(shù)人員將會(huì)明白,發(fā)明內(nèi)容只是示例性的,而并非意在以任何方式限制。


圖I描繪了計(jì)算機(jī)系統(tǒng)的高級(jí)方框圖。圖2描繪了虛擬化軟件程序的示范性架構(gòu)的高級(jí)方框圖。圖3描繪了虛擬化軟件程序的替選架構(gòu)的高級(jí)方框圖。圖4描繪了被配置成實(shí)現(xiàn)虛擬盤的計(jì)算機(jī)系統(tǒng)的低級(jí)方框圖。圖5A描繪了被配置成實(shí)現(xiàn)虛擬盤的計(jì)算機(jī)系統(tǒng)的低級(jí)方框圖。圖5B描繪了被配置成實(shí)現(xiàn)虛擬盤的計(jì)算機(jī)系統(tǒng)的低級(jí)方框圖。圖6描繪了差異盤的高級(jí)方框圖。圖7描繪了虛擬盤與虛擬盤文件之間關(guān)系的高級(jí)示例。圖8描繪了虛擬盤與虛擬盤文件之間關(guān)系的高級(jí)示例。
圖9描繪了虛擬盤與虛擬盤文件之間關(guān)系的高級(jí)示例。圖10描繪了虛擬盤與虛擬盤文件之間關(guān)系的高級(jí)示例。圖11描繪了可以在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中實(shí)施和/或通過計(jì)算機(jī)系統(tǒng)執(zhí)行的操作流程。圖12描繪了可以結(jié)合圖11所示例的那些來(lái)執(zhí)行的額外操作。圖13描繪了可以結(jié)合圖12所示例的那些來(lái)執(zhí)行的額外操作。圖14描繪了可以在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中實(shí)施和/或通過計(jì)算機(jī)系統(tǒng)執(zhí)行的操作流程。圖15描繪了可以結(jié)合圖14所示例的那些來(lái)執(zhí)行的額外操作。
圖16描繪了可以在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中實(shí)施和/或通過計(jì)算機(jī)系統(tǒng)執(zhí)行的操作流程。圖17描繪了可以結(jié)合圖16所示例的那些來(lái)執(zhí)行的額外操作。
具體實(shí)施例方式公開的主題可以使用一個(gè)或更多個(gè)計(jì)算機(jī)系統(tǒng)。圖I和以下討論意在提供可以實(shí)施公開主題的合適運(yùn)算環(huán)境的簡(jiǎn)要總體描述。通篇使用的術(shù)語(yǔ)電路可以包括諸如硬件中斷控制器、硬盤驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器、以及用來(lái)操作這種硬件的固件的硬件組件。術(shù)語(yǔ)電路還可以包括通過固件和/或軟件配置的微處理器、專用集成電路、以及處理器,例如,執(zhí)行指令讀取和執(zhí)行的多內(nèi)核通用處理單元的內(nèi)核。可以通過從存儲(chǔ)器(例如,RAM、ROM)、固件、和/或海量存儲(chǔ)加載的指令來(lái)配置處理器,實(shí)施可操作用于把處理器配置成執(zhí)行功能的邏輯。在電路包括硬件和軟件的組合的實(shí)例實(shí)施例中,實(shí)施者可以編寫實(shí)施邏輯的源代碼,其后續(xù)被編譯成可以通過硬件執(zhí)行的機(jī)器可讀代碼。由于本領(lǐng)域技術(shù)人員可以明白,本領(lǐng)域的現(xiàn)狀已演進(jìn)到在硬件實(shí)施功能或軟件實(shí)施功能之間存在微小差別的程度,所以用以實(shí)現(xiàn)本文中描述的功能的硬件對(duì)軟件的選擇僅是一種設(shè)計(jì)選擇。換言之,由于本領(lǐng)域技術(shù)人員可以明白,可以把軟件過程變換成等同硬件結(jié)構(gòu),可以把硬件結(jié)構(gòu)本身變換成等同軟件過程,所以硬件實(shí)施對(duì)軟件實(shí)施的選擇留待實(shí)施者決定。現(xiàn)在參照?qǐng)DI,描繪了示范性運(yùn)算系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100可以包括處理器102,例如,執(zhí)行內(nèi)核。雖然示例了一個(gè)處理器102,但在其它實(shí)施例中計(jì)算機(jī)系統(tǒng)100可以具有多個(gè)處理器,例如,每處理器基板多個(gè)執(zhí)行內(nèi)核和/或可以各自具有多個(gè)執(zhí)行內(nèi)核的多個(gè)處理器基板。如圖所示,各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以通過向處理器102耦合各種系統(tǒng)組件的一個(gè)或更多個(gè)系統(tǒng)總線互連。系統(tǒng)總線可以是包括如下內(nèi)容的數(shù)個(gè)類型總線結(jié)構(gòu)中的任何總線結(jié)構(gòu)存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用各種總線架構(gòu)中任何總線架構(gòu)的本地總線。在實(shí)例實(shí)施例中計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以包括例如隨機(jī)訪問存儲(chǔ)器(RAM) 104、存儲(chǔ)裝置106 (例如,機(jī)電硬盤驅(qū)動(dòng)器、固態(tài)硬盤驅(qū)動(dòng)器等)、固件108 (例如,閃存RAM或R0M),以及諸如例如CD-ROM、軟盤、DVD、閃存驅(qū)動(dòng)器、外界存儲(chǔ)裝置等的可移除存儲(chǔ)裝置118。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,可以使用其它類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如,磁盒、閃存卡、和/或數(shù)字視頻盤。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以提供處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊和諸如可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)100的其它數(shù)據(jù)的非易失性和易失性存儲(chǔ)。可以在固件108中存儲(chǔ)包含基本例程的基本輸入/輸出系統(tǒng)(BIOS) 120,其中所述基本例程幫助在計(jì)算機(jī)系統(tǒng)100內(nèi)的元件之間傳送信息(如,在啟動(dòng)期間)??梢栽诠碳?08、存儲(chǔ)裝置106、RAM104、和/或可移除存儲(chǔ)裝置118上存儲(chǔ)大量程序,以及通過包括操作系統(tǒng)和/或應(yīng)用程序的處理器102來(lái)執(zhí)行。在示范性實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以存儲(chǔ)在以下段落中更詳細(xì)描述的虛擬盤解析器404,可以通過處理器102執(zhí)行,從而把計(jì)算機(jī)系統(tǒng)100變換成被配置成用于特定目的的計(jì)算機(jī)系統(tǒng),即,根據(jù)本文件中描述的技術(shù)配置的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)100可以通過可以包括但不限于鍵盤和指點(diǎn)裝置的輸入裝置116接收命令和信息。其它輸入裝置可以包括麥克風(fēng)、操縱桿、游戲手柄、掃描儀等。這些和其它輸入裝置常常通過耦合到系統(tǒng)總線的串口接口連接到處理器102,但是也可以通過其它接口(如,并口、游戲端口、或者通用串行總線(USB))連接。顯示器或其它類型的顯示裝置也可以經(jīng)由接口(如,可以是圖形處理器單元112的一部分或者連接到圖形處理器單元112的視頻適配器)連接到系統(tǒng)總線。除了顯示器之外,計(jì)算機(jī)通常包括其它外圍輸出裝置,如,揚(yáng)聲器和打印機(jī)(未示出)。圖I的示范性系統(tǒng)還可以包括主機(jī)適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線、以及連接到SCSI總線的外界存儲(chǔ)裝置。 計(jì)算機(jī)系統(tǒng)100可以使用去往一個(gè)或更多個(gè)遠(yuǎn)程計(jì)算機(jī)(如,遠(yuǎn)程計(jì)算機(jī))的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等裝置或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),以及通??梢园ㄒ陨舷鄬?duì)于計(jì)算機(jī)系統(tǒng)100描述的許多元件或所有元件。當(dāng)在LAN或WAN組網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)系統(tǒng)100可以通過網(wǎng)絡(luò)接口卡114連接到LAN或WAN。可以在內(nèi)部或外部的NIC 114可以連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境中,可以把相對(duì)于計(jì)算機(jī)系統(tǒng)100描繪的程序模塊、或者其一些部分存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)裝置中。將會(huì)明白,此處描述的網(wǎng)絡(luò)連接是示范性的,還可以使用在計(jì)算機(jī)之間建立通信鏈路的其它方式。此外,雖然構(gòu)思了本公開的眾多實(shí)施例特別是非常適合計(jì)算機(jī)化系統(tǒng),但本文中沒有內(nèi)容意在把本公開限制為這些實(shí)施例。轉(zhuǎn)到圖2,示例的是可以用來(lái)生成虛擬機(jī)的示范性虛擬化平臺(tái)。在此實(shí)施例中,微核管理程序202可以被配置成控制和任意訪問計(jì)算機(jī)系統(tǒng)200的硬件。微核管理程序202可以生成稱為諸如子分區(qū)I至子分區(qū)N (其中,N是大于I的整數(shù))的分區(qū)的執(zhí)行環(huán)境。此處,子分區(qū)是微核管理程序202支持的隔離的基本單元。微核管理程序202可以隔離一個(gè)分區(qū)中的進(jìn)程以免訪問另一分區(qū)的資源。特別地,微核管理程序202可以隔離訪客操作系統(tǒng)的核模式代碼以免于訪問另一分區(qū)的資源以及用戶模式進(jìn)程??梢园衙總€(gè)子分區(qū)映射到在微核管理程序202的控制下的一組硬件資源,例如,存儲(chǔ)器、裝置、處理器循環(huán)等。在實(shí)施例中,微核管理程序202可以是單機(jī)軟件產(chǎn)品、嵌入主板的固件內(nèi)的操作系統(tǒng)的一部分、專用集成電路、或者其組合。微核管理程序202可以通過約束物理計(jì)算機(jī)系統(tǒng)中存儲(chǔ)器的訪客操作系統(tǒng)視圖而強(qiáng)制分區(qū)。當(dāng)微核管理程序202實(shí)例化虛擬機(jī)時(shí),它可以向虛擬機(jī)分配系統(tǒng)物理存儲(chǔ)器(SPM)的頁(yè)面(例如,具有開始和結(jié)束地址的存儲(chǔ)器的定長(zhǎng)塊)作為訪客物理存儲(chǔ)器(GPM)。此處,微核管理程序202控制系統(tǒng)存儲(chǔ)器的訪客約束視圖。術(shù)語(yǔ)訪客物理存儲(chǔ)器是從虛擬機(jī)的角度描述存儲(chǔ)器頁(yè)面的簡(jiǎn)潔方式,術(shù)語(yǔ)系統(tǒng)物理存儲(chǔ)器是從物理系統(tǒng)的角度描述存儲(chǔ)器頁(yè)面的簡(jiǎn)潔方式。因而,向虛擬機(jī)分配的存儲(chǔ)器的頁(yè)面將會(huì)具有訪客物理地址(虛擬機(jī)使用的地址)和系統(tǒng)物理地址(頁(yè)面的實(shí)際地址)。訪客操作系統(tǒng)可以虛擬化訪客物理存儲(chǔ)器。虛擬存儲(chǔ)器是允許操作系統(tǒng)過量調(diào)配(commit)存儲(chǔ)器和允許應(yīng)用對(duì)邏輯上連續(xù)的工作存儲(chǔ)器單獨(dú)訪問的管理技術(shù)。在虛擬化環(huán)境中,訪客操作系統(tǒng)可以使用此上下文中稱為訪客頁(yè)面表的一個(gè)或更多個(gè)頁(yè)面表把稱為虛擬訪客地址的虛擬地址轉(zhuǎn)譯成訪客物理地址。在此實(shí)例中,存儲(chǔ)器地址可以具有訪客虛擬地址、訪客物理地址、以及系統(tǒng)物理地址。在描繪的實(shí)例中,還可以也視為與Xen開源管理程序的域0類似的父分區(qū)組件可以包括主機(jī)環(huán)境204。主機(jī)環(huán)境204可以是操作系統(tǒng)(或一套配置工具),主機(jī)環(huán)境204可以被配置成通過使用虛擬化業(yè)務(wù)提供器228 (VSP)向在子分區(qū)I 一 N中執(zhí)行的訪客操作系統(tǒng)提供資源。可以使用在開源團(tuán)體中通常稱作后端驅(qū)動(dòng)器的VSP 228來(lái)通過虛擬化業(yè)務(wù)客戶端(VSC)(在開源團(tuán)體或半虛擬化裝置中通常稱作前端驅(qū)動(dòng)器)把接口復(fù)用到硬件資源。 如圖所示,虛擬化業(yè)務(wù)客戶端在訪客操作系統(tǒng)的環(huán)境中執(zhí)行。然而,這些驅(qū)動(dòng)器在它們經(jīng)由VSP與主機(jī)環(huán)境204通信而非與硬件或模擬硬件通信的過程中與訪客中驅(qū)動(dòng)器的其余驅(qū)動(dòng)器不同。在示范性實(shí)施例中可以把虛擬化業(yè)務(wù)提供器228使用以與虛擬業(yè)務(wù)客戶端216和218通信的路徑視為啟發(fā)(enlightened) IO路徑。如圖所示,模擬器234 (例如,虛擬化IDE裝置、虛擬化視頻適配器、虛擬化NIC等)可以被配置成在主機(jī)環(huán)境204內(nèi)運(yùn)行和附接到對(duì)訪客操作系統(tǒng)220和222可用的模擬硬件資源,例如,IO端口、訪客物理地址范圍、虛擬VRAM、模擬ROM范圍等。例如,當(dāng)訪客OS觸及映射到訪客物理地址(裝置的寄存器在該地址將會(huì)用于存儲(chǔ)器映射裝置)的訪客虛擬地址時(shí),微核管理程序202可以攔截請(qǐng)求并把訪客試圖寫入的值傳遞給關(guān)聯(lián)的模擬器。此處,可以把此實(shí)例中的模擬硬件資源視為虛擬裝置在訪客物理地址空間中所處的位置??梢园岩源朔绞綄?duì)模擬器的使用視作模擬路徑。該模擬路徑相比于啟發(fā)IO路徑而言效率低,因?yàn)樗^之它對(duì)在VSP與VSC之間傳遞消息而言需要較多CPU時(shí)間來(lái)模擬裝置。例如,需要映射到寄存器的存儲(chǔ)器上的數(shù)個(gè)動(dòng)作以經(jīng)由模擬路徑向盤寫入緩存器,而這會(huì)被減少為啟發(fā)IO路徑中從VSC向VSP傳遞的單個(gè)消息,因?yàn)閂M中的驅(qū)動(dòng)器被設(shè)計(jì)成訪問虛擬化系統(tǒng)提供的IO業(yè)務(wù)而非設(shè)計(jì)成訪問硬件。每個(gè)子分區(qū)可以包括一個(gè)或更多個(gè)虛擬處理器(230和232),訪客操作系統(tǒng)(220和222)可以管理和調(diào)度在其上執(zhí)行的線程。通常,虛擬處理器是提供具有具體架構(gòu)的物理處理器的表示的可執(zhí)行指令和相關(guān)聯(lián)狀態(tài)信息。例如,一個(gè)虛擬機(jī)可以具有虛擬處理器,其具有Intel x86處理器的特性,然而另一虛擬處理器可以具有PowerPC處理器的特性??梢园汛藢?shí)例中的虛擬處理器映射到計(jì)算機(jī)系統(tǒng)的處理器,使得將會(huì)通過物理處理器直接執(zhí)行實(shí)現(xiàn)虛擬處理器的指令。因而,在包括多個(gè)處理器的實(shí)施例中,可以通過處理器同時(shí)執(zhí)行虛擬處理器,而例如其它處理器執(zhí)行管理程序指令。可以把分區(qū)中的虛擬處理器和存儲(chǔ)器的組合視作虛擬機(jī)。訪客操作系統(tǒng)(220和222)可以是諸如例如來(lái)自Microsoft 、Apple 、開源團(tuán)體等的操作系統(tǒng)的任何操作系統(tǒng)。訪客操作系統(tǒng)可以包括用戶/核操作模式和可以具有可以包括調(diào)度器、存儲(chǔ)器管理器等的核??傮w而言,核模式可以包括授權(quán)至少對(duì)特許處理器指令訪問的處理器中的執(zhí)行模式。每個(gè)訪客操作系統(tǒng)可以具有相關(guān)聯(lián)的文件系統(tǒng),其上可以存儲(chǔ)有諸如終端服務(wù)器、電子商務(wù)服務(wù)器、電子郵件服務(wù)器等的應(yīng)用,以及訪客操作系統(tǒng)本身。訪客操作系統(tǒng)可以調(diào)度線程以在虛擬處理器上執(zhí)行,可以實(shí)現(xiàn)這些應(yīng)用的實(shí)例。現(xiàn)在參照?qǐng)D3,它示例了以上在圖2中描述的替選虛擬化平臺(tái)。圖3描繪了圖2的類似組件;然而,在此實(shí)例實(shí)施例中管理程序302可以包括微核組件和諸如虛擬化業(yè)務(wù)提供器228和裝置驅(qū)動(dòng)器224的與圖2的主機(jī)環(huán)境204中類似的組件,而管理操作系統(tǒng)304可以包含例如用來(lái)配置管理程序302的配置工具。在此架構(gòu)中,管理程序302可以執(zhí)行與圖2的微核管理程序202同樣或類似的功能;然而,在此架構(gòu)中管理程序304實(shí)現(xiàn)啟發(fā)IO路徑和包括計(jì)算機(jī)系統(tǒng)物理硬件的驅(qū)動(dòng)器。圖3的管理程序302可以是單機(jī)軟件產(chǎn)品、嵌入母板的固件內(nèi)的操作系統(tǒng)的一部分,或者可以通過專用集成電路實(shí)現(xiàn)管理程序302的一部分?,F(xiàn)在轉(zhuǎn)到圖4,它描述計(jì)算機(jī)系統(tǒng)400,其示例了可以用來(lái)實(shí)現(xiàn)本文中描述的技術(shù)的組件的高級(jí)方框圖。簡(jiǎn)言之,計(jì)算機(jī)系統(tǒng)400可以包括與以上針對(duì)圖I至3描述的類似的組件。圖4示出了可以視為圖2或圖3示例的虛擬化平臺(tái)的高級(jí)表示的虛擬化系統(tǒng)420。 例如,可以把虛擬化系統(tǒng)420視為由微核管理程序202和主機(jī)環(huán)境204提供的特征的組合的高級(jí)表示??商孢x地,可以把虛擬化系統(tǒng)420視為管理程序302和管理OS 304的高級(jí)表示。因而,本文通篇對(duì)術(shù)語(yǔ)“虛擬化系統(tǒng)420”的使用意指可以在任何類型的虛擬化軟件層內(nèi)或在任何類型的虛擬化平臺(tái)中實(shí)施以下段落中描述的虛擬盤技術(shù)。虛擬化系統(tǒng)420可以包括卸載提供器引擎422。簡(jiǎn)言之,卸載提供器引擎422可以被配置成服務(wù)于例如應(yīng)用424發(fā)出的卸載讀取和卸載寫入請(qǐng)求(有時(shí)稱為代理讀取和代理寫入)。卸載讀取請(qǐng)求是創(chuàng)建令牌的請(qǐng)求,該令牌表示在卸載讀取是正常讀取的情況下已讀取的數(shù)據(jù)。卸載寫入是用以把令牌表示的數(shù)據(jù)寫到目的地點(diǎn)的請(qǐng)求。在一個(gè)使用實(shí)例中,可以使用后面是卸載寫入的卸載讀取從一個(gè)地點(diǎn)向另一個(gè)(例如,通過使用避免通過本地RAM移動(dòng)數(shù)據(jù)的表示數(shù)據(jù)的令牌從計(jì)算機(jī)系統(tǒng)400向域內(nèi)的目的計(jì)算機(jī)系統(tǒng))復(fù)制數(shù)據(jù)。例如,假設(shè)計(jì)算機(jī)系統(tǒng)400和目的計(jì)算機(jī)系統(tǒng)(未示出)可以訪問共同數(shù)據(jù)倉(cāng)庫(kù),并且用以從計(jì)算機(jī)系統(tǒng)向目的地復(fù)制數(shù)據(jù)的請(qǐng)求被接收。并非把數(shù)據(jù)復(fù)制到目的地,應(yīng)用424可以向卸載提供器引擎422發(fā)出請(qǐng)求以發(fā)出如它在令牌與數(shù)據(jù)相關(guān)聯(lián)時(shí)存在的一樣表示數(shù)據(jù)的令牌??梢韵蚰康牡匕l(fā)送令牌和通過在目的地上運(yùn)行的程序使用令牌,以從共同數(shù)據(jù)存儲(chǔ)倉(cāng)庫(kù)獲得數(shù)據(jù)和把數(shù)據(jù)寫入到目的地。在題為“Offload Reads and Writes”的共同未決美國(guó)專利申請(qǐng) No. 12/888,433 和題為 “Virtualization and Offload Reads and Writes” 的美國(guó)專利申請(qǐng)No. 12/938, 383中更詳細(xì)描述了副本卸載技術(shù),其內(nèi)容在它們與本文中描述的技術(shù)一致的程度上整體經(jīng)引用并入本文??梢允褂每梢允蔷唧w實(shí)例實(shí)施例中可執(zhí)行指令模塊的虛擬盤解析器404來(lái)實(shí)例化來(lái)自虛擬盤文件的虛擬盤和代表虛擬機(jī)操控存儲(chǔ)10。如圖所示,虛擬盤解析器404可以打開諸如虛擬盤文件406的一個(gè)或更多個(gè)虛擬盤文件和生成虛擬盤402。虛擬盤解析器404可以經(jīng)由虛擬化系統(tǒng)文件系統(tǒng)408從存儲(chǔ)裝置106獲得虛擬盤文件406。簡(jiǎn)言之,虛擬化系統(tǒng)文件系統(tǒng)408表示組織虛擬化系統(tǒng)420的計(jì)算機(jī)文件和數(shù)據(jù)(如,虛擬盤文件406)的軟件模塊。虛擬化系統(tǒng)文件系統(tǒng)408可以把此數(shù)據(jù)存儲(chǔ)在固定尺寸物理擴(kuò)展的陣列(即,物理存儲(chǔ)裝置上連續(xù)的存儲(chǔ)區(qū)域)中。在具體實(shí)例中,擴(kuò)展可以是作為具有設(shè)置長(zhǎng)度的位的字節(jié)序列的簇。示范性簇尺寸通常是512字節(jié)與64千字節(jié)之間2的冪。在具體配置中,簇尺寸可以是4千字節(jié)。當(dāng)接收到用以打開虛擬盤文件406的請(qǐng)求時(shí),虛擬化系統(tǒng)文件系統(tǒng)408確定文件在盤上位于何處和向盤裝置驅(qū)動(dòng)器發(fā)出IO任務(wù)以從盤的一個(gè)或更多個(gè)物理擴(kuò)展讀取數(shù)據(jù)。文件系統(tǒng)408發(fā)出的IO任務(wù)確定描述存儲(chǔ)裝置106上虛擬盤文件406的永久副本地點(diǎn)的盤偏移量和長(zhǎng)度和向存儲(chǔ)裝置106發(fā)出IO任務(wù)。由于存儲(chǔ)裝置如何操作的語(yǔ)義,可以在高速緩沖存儲(chǔ)器454表示的易失性存儲(chǔ)器的一個(gè)或更多個(gè)級(jí)別的高速緩沖存儲(chǔ)器中緩存寫入IO任務(wù),直到存儲(chǔ)裝置106的電路確定訪問永久存儲(chǔ)單元460 (例如,磁盤片、閃存單元等)上的地點(diǎn)、并把表明虛擬盤文件406的永久副本新內(nèi)容的緩存位模式寫入到永久存儲(chǔ)單元460為止。虛擬盤解析器404可以獲得表明虛擬盤文件406的位模式和暴露虛擬盤文件406中的載荷(例如,用戶數(shù)據(jù))作為包括多個(gè)虛擬盤擴(kuò)展的盤。在實(shí)施例中,這些虛擬盤擴(kuò)展可以是尺寸為512千字節(jié)直至64兆字節(jié)、并分區(qū)成多個(gè)扇區(qū)的固定尺寸塊;然而,在另一實(shí)施例中虛擬盤擴(kuò)展可以是可變尺寸擴(kuò)展。在示范性配置中,在啟動(dòng)訪客操作系統(tǒng)412以前,設(shè) 定與虛擬盤的模擬或啟發(fā)存儲(chǔ)控制器和模擬或啟發(fā)方面有關(guān)的資源,使得在虛擬機(jī)410的訪客物理地址空間內(nèi)實(shí)現(xiàn)具有存儲(chǔ)器映射寄存器的模擬存儲(chǔ)控制器。啟動(dòng)代碼可以運(yùn)行和啟動(dòng)訪客操作系統(tǒng)412。虛擬化系統(tǒng)420可以檢測(cè)對(duì)訪問訪客物理地址空間的此區(qū)域的嘗試,并返回使訪客操作系統(tǒng)412確定存儲(chǔ)裝置被附接到模擬存儲(chǔ)控制器的結(jié)果。在響應(yīng)中,訪客操作系統(tǒng)412可以加載驅(qū)動(dòng)器(半虛擬化驅(qū)動(dòng)器或常規(guī)驅(qū)動(dòng)器)和使用驅(qū)動(dòng)器向檢測(cè)的存儲(chǔ)裝置發(fā)出存儲(chǔ)IO請(qǐng)求。虛擬化系統(tǒng)420可以把存儲(chǔ)IO請(qǐng)求發(fā)送給虛擬盤解析器404。在訪客操作系統(tǒng)412在運(yùn)行之后它可以經(jīng)由文件系統(tǒng)414向虛擬盤402發(fā)出IO任務(wù),該文件系統(tǒng)與虛擬化系統(tǒng)文件系統(tǒng)414類似,原因是它組織訪客操作系統(tǒng)412的計(jì)算機(jī)文件和數(shù)據(jù)以及訪客操作系統(tǒng)412上安裝的應(yīng)用。訪客操作系統(tǒng)412可以通過與操作系統(tǒng)如何與物理存儲(chǔ)裝置交互并最終把IO任務(wù)發(fā)送給虛擬盤解析器404類似的方式與虛擬盤402交互。虛擬盤解析器404可以以模擬物理存儲(chǔ)裝置的方式包括用于確定如何響應(yīng)IO任務(wù)的邏輯。例如,虛擬盤解析器404可以從虛擬盤文件406讀取數(shù)據(jù)和向虛擬盤文件406寫入數(shù)據(jù)。寫入到虛擬盤文件406的數(shù)據(jù)繼而通過虛擬化系統(tǒng)文件系統(tǒng)408發(fā)送、并向永久存儲(chǔ)單元460上或永久存儲(chǔ)單元460中存儲(chǔ)的虛擬盤文件406的永久副本交付。簡(jiǎn)要參照?qǐng)D5A,它示例了用于實(shí)施本文中描述的技術(shù)的替選架構(gòu)。如圖5所示,也可以在諸如Microsoft 提供的操作系統(tǒng)的操作系統(tǒng)502中實(shí)施虛擬盤解析器404。在此實(shí)例中,虛擬盤解析器404可以被配置成在可以包括與圖I的計(jì)算機(jī)系統(tǒng)100類似的組件的存儲(chǔ)服務(wù)器500上運(yùn)行。在此實(shí)例中,存儲(chǔ)服務(wù)器500可以包括物理存儲(chǔ)裝置510的陣列和可以被配置成使存儲(chǔ)裝置可用于服務(wù)器,從而使存儲(chǔ)裝置仿佛局部附接到操作系統(tǒng)508一樣。虛擬盤解析器404可以與針對(duì)圖4所描述的一樣操作;可以通過網(wǎng)絡(luò)連接將文件系統(tǒng)414發(fā)出的此配置讀/寫IO任務(wù)中的差異發(fā)送給虛擬盤解析器404。簡(jiǎn)要參照?qǐng)D5B,它不例了用于實(shí)施本文中描述的技術(shù)的又一架構(gòu)。圖5B與圖5A的類似之處在于在操作系統(tǒng)502中實(shí)施虛擬盤解析器404以及計(jì)算機(jī)系統(tǒng)512可以包括與圖I的計(jì)算機(jī)系統(tǒng)100類似的組件。然而此實(shí)例中的差異是該圖示例了環(huán)回附接虛擬盤402??梢栽谔摂M盤402中存儲(chǔ)包括諸如應(yīng)用424的應(yīng)用的文件系統(tǒng)414,以及可以在計(jì)算機(jī)系統(tǒng)文件系統(tǒng)514中存儲(chǔ)虛擬盤文件406。
現(xiàn)在轉(zhuǎn)而關(guān)注虛擬盤402,雖然可以通過單個(gè)虛擬盤文件實(shí)現(xiàn)它,但在其它配置中可以使用一組差異虛擬盤文件實(shí)現(xiàn)虛擬盤402。圖6示例了可以被虛擬盤解析器404用來(lái)作為差異盤來(lái)實(shí)現(xiàn)虛擬盤402的虛擬盤文件的示范性鏈。通常,差異虛擬盤文件表示相比于父圖像、作為一組修改擴(kuò)展的虛擬盤的當(dāng)前狀態(tài)。父圖像可以是另一差異虛擬盤文件或基本虛擬盤文件。在示范性配置中,可以把父虛擬盤文件與子虛擬盤文件之間的鏈接存儲(chǔ)在所述子(child)內(nèi)。特別地,所述子可以包括父(parent)的標(biāo)識(shí)和描述父的地點(diǎn)的值。當(dāng)起動(dòng)虛擬機(jī)時(shí),虛擬盤解析器404可以接收描述鏈中最后虛擬盤文件的信息,即,虛擬盤文件612是包括虛擬盤文件612、610、606、以及600的鏈中的最后一個(gè),以及打開此文件。此文件可以包括其父(即,虛擬盤文件610)的標(biāo)識(shí)和去往它的路徑。虛擬盤解析器404可以定位和打開所述父等諸如此類直到定位和打開基本虛擬盤文件為止。虛擬盤解析器404可以使用表明在父虛擬盤文件中是否存在或存儲(chǔ)數(shù)據(jù)的信息。 通常,以讀取/修改的形式打開鏈中的最后虛擬盤文件,而僅以讀取的形式打開其它虛擬 盤文件。因而,通常向鏈中的最后虛擬盤文件進(jìn)行寫入。讀取操作類似地首先針對(duì)鏈中的最后虛擬盤文件,虛擬盤解析器404將會(huì)按從最后至基礎(chǔ)的邏輯次序在邏輯上查找虛擬盤文件直到在未高速緩沖關(guān)于數(shù)據(jù)位于何處的信息的情況下找到數(shù)據(jù)為止。在具體實(shí)例中,虛擬盤文件(例如,虛擬盤文件612)的塊分配表(未示出)可以包括如下狀態(tài)信息該狀態(tài)信息表明是否通過虛擬盤文件的區(qū)段(section)定義虛擬盤擴(kuò)展或此虛擬盤擴(kuò)展是否是透明的(例如,進(jìn)一步沿著鏈通過不同虛擬盤文件定義)。在一種實(shí)施方式中,虛擬盤解析器404可以確定此虛擬盤擴(kuò)展是否透明和訪問鏈中接下來(lái)的虛擬盤文件(例如,虛擬盤文件610)的塊分配表等諸如此類直到定義數(shù)據(jù)的鏈中的虛擬盤文件被定位為止?,F(xiàn)在參照?qǐng)D7,它示例了由虛擬盤文件702至少部分地描述的虛擬盤402,其可與寫入/可修改的圖6中描述的任何虛擬盤文件(例如虛擬盤文件602、608、或者612,或者單個(gè)虛擬盤文件)類似。如圖所示,虛擬盤402可以包括N個(gè)存儲(chǔ)擴(kuò)展(其中,N是大于0的整數(shù)),在此具體實(shí)例中虛擬盤402包括10個(gè)擴(kuò)展。把虛擬盤402示例成包括通過虛擬盤擴(kuò)展內(nèi)的不同模式區(qū)分的不同文件的位模式和訪客操作系統(tǒng)412的數(shù)據(jù)。由于虛擬盤402并非物理存儲(chǔ)裝置,所以可以通過虛擬盤文件702內(nèi)的不同區(qū)段“描述”(即,在虛擬盤文件702內(nèi)的不同區(qū)段中存儲(chǔ))虛擬盤擴(kuò)展的底層載荷數(shù)據(jù)。例如,通過虛擬盤文件偏移值0或可用來(lái)存儲(chǔ)載荷數(shù)據(jù)的第一偏移量定義的區(qū)段來(lái)描述虛擬盤擴(kuò)展I??梢栽谟?jì)算機(jī)系統(tǒng)400在操作時(shí),可在隨機(jī)訪問存儲(chǔ)器中存儲(chǔ)的分配表416可以在任何區(qū)段中的虛擬盤文件702中維持和可以跨越多個(gè)區(qū)段。簡(jiǎn)言之,分配表416可以包括將虛擬盤擴(kuò)展鏈接到虛擬盤文件702的區(qū)段的信息。例如,分配表416可以存儲(chǔ)定義了虛擬盤文件字節(jié)偏移量的信息,該偏移量定義存儲(chǔ)數(shù)據(jù)的虛擬盤文件702的區(qū)段。箭頭表征分配表416中存儲(chǔ)的關(guān)系。在以下段落中更詳細(xì)描述的,分配表416還可以包括狀態(tài)信息;然而,此配置是示范性的。在替選配置中可以把此信息存儲(chǔ)在虛擬盤文件702的不同區(qū)段中和加載到RAM104中。分配表416可以包括每個(gè)虛擬盤擴(kuò)展的條目(entry);表明每個(gè)擴(kuò)展所處狀態(tài)的狀態(tài)信息;以及表明在虛擬盤文件702中的何處描述每個(gè)虛擬盤擴(kuò)展的文件偏移量(未示例)。在替選實(shí)施例中也可以通過多個(gè)已經(jīng)映射和連續(xù)(在文件偏移量中)的表?xiàng)l目定義擴(kuò)展。在此配置中,可以在塊載荷在文件中連續(xù)的情況下跨過塊邊界的讀取和寫入可以作為對(duì)虛擬盤文件702的單個(gè)讀/寫來(lái)處置。在具體實(shí)例中,虛擬盤解析器404還可以存儲(chǔ)表明在虛擬盤文件的每個(gè)未使用區(qū)段中存儲(chǔ)什么類型位模式的信息,即,自由空間圖。除了以上內(nèi)容之外,自由空間圖可以允許通過虛擬盤解析器404使用以確定虛擬盤文件406的哪些扇區(qū)被使用和哪些是空閑的。此實(shí)例中的自由空間圖可以被配置成跟蹤非零文件中的自由空間。在示范性實(shí)施例中,因?yàn)槭褂米杂煽臻g的非零部分來(lái)描述虛擬盤402的一部分(其必須是零或不必公開來(lái)自其它虛擬盤偏 移量的信息),所以分別通過零或非信息公開模式(通常是零)來(lái)覆蓋自由空間。虛擬盤解析器404可以使用此信息以確定虛擬盤文件的什么區(qū)段分配給虛擬盤擴(kuò)展。例如,如果寫入處于零狀態(tài)的虛擬盤擴(kuò)展,則虛擬盤解析器404可以分配其中已經(jīng)有零的區(qū)段以支持(back)虛擬盤擴(kuò)展。隨著訪客操作系統(tǒng)412或操作系統(tǒng)508運(yùn)行,它將會(huì)生成數(shù)據(jù)和文件并向虛擬盤402發(fā)出盤寫入以存儲(chǔ)數(shù)據(jù)。當(dāng)虛擬盤文件702不具有任何額外未使用空間時(shí),虛擬盤解析器404可以擴(kuò)展文件的末端和使用新空間來(lái)描述虛擬盤擴(kuò)展。訪客操作系統(tǒng)412或操作系統(tǒng)508可以使用、刪除、以及重新使用虛擬盤402的區(qū)段;然而,由于虛擬盤解析器404僅代表文件系統(tǒng)414存儲(chǔ)數(shù)據(jù),所以虛擬盤解析器404會(huì)無(wú)法確定訪客操作系統(tǒng)412是否仍正使用虛擬盤文件的區(qū)段。結(jié)果是,虛擬盤解析器404可以持有虛擬盤文件702中的分配空間以描述文件系統(tǒng)414不再使用的虛擬盤擴(kuò)展。這樣的結(jié)果是虛擬盤文件702的尺寸會(huì)增長(zhǎng)直到它達(dá)到虛擬盤402的尺寸為止。在示范性實(shí)施例中,虛擬盤解析器404可以被配置成收回虛擬盤文件的未使用區(qū)段以及可選地重新使用它們。這樣,需要擴(kuò)展虛擬盤文件的頻率被減小,且虛擬盤文件的總體尺寸被減小。在實(shí)例實(shí)施例中,當(dāng)文件系統(tǒng)告知它不再使用虛擬盤擴(kuò)展時(shí),虛擬盤解析器404可以從虛擬盤文件釋放(S卩,解鏈接)虛擬盤擴(kuò)展并使虛擬盤擴(kuò)展與描述應(yīng)當(dāng)如何對(duì)待對(duì)虛擬盤擴(kuò)展的讀取操作的信息相關(guān)聯(lián)??梢噪S后重新使用虛擬盤文件的區(qū)段以描述同樣的或另一虛擬盤擴(kuò)展。在示范性配置中,虛擬盤解析器404可以使用文件系統(tǒng)發(fā)出的零命令的修剪(TRM)、未映射(UNMAP)JP /或同樣寫入(WRITE SAME)來(lái)確定何時(shí)可以從虛擬盤文件406釋放虛擬盤擴(kuò)展。訪客操作系統(tǒng)412或操作系統(tǒng)508可以發(fā)出修剪命令。例如,隨著訪客操作系統(tǒng)412或操作系統(tǒng)508運(yùn)行,文件系統(tǒng)414可以確定不再需要一些扇區(qū)和發(fā)出修剪命令。可替選地或另外,虛擬盤解析器404可以被配置成請(qǐng)求文件系統(tǒng)414在預(yù)定間隔、或者在滿足預(yù)定準(zhǔn)則時(shí)(例如,當(dāng)實(shí)例化虛擬機(jī)410時(shí)、當(dāng)關(guān)斷虛擬機(jī)410時(shí)、在略微使用情況下等)發(fā)出修剪命令。簡(jiǎn)言之,使用修剪命令來(lái)通知數(shù)據(jù)存儲(chǔ)裝置有關(guān)如下內(nèi)容哪些扇區(qū)不再考慮使用以使得數(shù)據(jù)存儲(chǔ)裝置可以可選地丟棄其中存儲(chǔ)的數(shù)據(jù)。文件系統(tǒng)414可以使用一個(gè)類型的修剪命令(稱為自由空間修剪命令)來(lái)告知文件系統(tǒng)414不再使用扇區(qū),稱為標(biāo)準(zhǔn)修剪命令的其它并非如此。兩個(gè)類型的修剪命令之間的差異是當(dāng)扇區(qū)是自由空間修剪的主題時(shí),文件系統(tǒng)414通過防止用戶空間應(yīng)用等從扇區(qū)讀取來(lái)提供扇區(qū)的安全性??梢岳梦募到y(tǒng)414確保對(duì)以此方式修剪了的扇區(qū)進(jìn)行訪問的事實(shí)來(lái)增加高效分配虛擬盤文件空間的能力。在以下段落中更詳細(xì)描述此特定方面。在示范性配置中,虛擬盤解析器404可以被配置成在修剪命令完全覆蓋虛擬盤擴(kuò)展時(shí)執(zhí)行收回操作?;蛘邠Q言之,虛擬盤解析器404可以響應(yīng)于修剪命令的接收從虛擬盤文件解鏈接虛擬盤擴(kuò)展,所述修剪命令定義識(shí)別虛擬盤擴(kuò)展中所有扇區(qū)的虛擬盤扇區(qū)范圍。在同樣或替選實(shí)施例中,當(dāng)接收到覆蓋虛擬盤擴(kuò)展一部分的修剪命令時(shí),虛擬盤解析器404可以確定虛擬盤文件的什么部分對(duì)應(yīng)于修剪扇區(qū)并向存儲(chǔ)裝置106發(fā)送針對(duì)虛擬盤文件部分的修剪命令。在此實(shí)例中,底層文件系統(tǒng)(例如,虛擬化系統(tǒng)文件系統(tǒng)408、存儲(chǔ)服務(wù)器文件系統(tǒng)504、或者計(jì)算機(jī)系統(tǒng)文件系統(tǒng)514)可以轉(zhuǎn)譯修剪命令的偏移量并把轉(zhuǎn)譯偏移量發(fā)送給存儲(chǔ)裝置106、經(jīng)由內(nèi)部數(shù)據(jù)結(jié)構(gòu)更新直接收回空間、或者從高速緩沖存儲(chǔ)器清除數(shù)據(jù)。在同樣或另一實(shí)施例中,當(dāng)接收到覆蓋虛擬盤擴(kuò)展一部分的修剪命令時(shí),虛擬盤解析器404可以被配置成存儲(chǔ)表明什么扇區(qū)已是修剪命令的主題以及修剪命令是否是自由空間修剪的信息。在修剪虛擬盤擴(kuò)展的剩余部分的情況下,虛擬盤解析器404可以從虛擬盤文件釋放虛擬盤擴(kuò)展。當(dāng)釋放虛擬盤擴(kuò)展時(shí),虛擬盤解析器404可以使虛擬盤擴(kuò)展與描述可以如何操控針對(duì)虛擬盤擴(kuò)展的讀取操作的狀態(tài)信息相關(guān)聯(lián)。表I示例了虛擬盤解析器404可以與虛擬盤擴(kuò)展相關(guān)聯(lián)和用來(lái)優(yōu)化虛擬盤文件的收回的示范性狀態(tài)信息??梢酝ㄟ^使用兩個(gè)狀態(tài)(描述的和未描述的)在一個(gè)實(shí)例中完成用以收回虛擬盤擴(kuò)展的能力;然而,由于在刪除數(shù)據(jù)時(shí)通常未擦除虛擬盤文件702中存儲(chǔ)的位模式,所以可以使用額外狀態(tài)來(lái)確定選擇以描述虛擬盤擴(kuò)展的空間在可以重新使用它之前何時(shí)需要清除或是否可以在不覆蓋其中先前存儲(chǔ)的數(shù)據(jù)的情況下重新使用它。在刪除后未擦除數(shù)據(jù)的一個(gè)原因是它花費(fèi)處理器周期以擦除數(shù)據(jù),由于一些存儲(chǔ)裝置被配置成基于每塊執(zhí)行寫入操作,所以在利用新數(shù)據(jù)覆蓋時(shí)擦除數(shù)據(jù)較高效。以下狀態(tài)是示范性的,所述公開不限于使用以下表定義的狀態(tài)。
狀態(tài)I描述
11~ Ife狀態(tài)表明虛擬盤擴(kuò)展被鏈接到虛擬盤文件。
透明此狀態(tài)表明通過不同虛擬盤文件定義虛擬盤擴(kuò)展。
零 I狀態(tài)表明未通過虛擬盤文件描述虛擬盤擴(kuò)展。另外,此狀態(tài)表明把虛擬盤擴(kuò)展定義成零以及零是有含義的。
未映射此狀態(tài)表明未通過虛擬盤文件描述虛擬盤擴(kuò)展。在實(shí)施例中,此狀態(tài)可以包括錨定(anchored)和未錨定的子狀態(tài)。_
未初始此狀態(tài)表明未通過虛擬盤文件描述虛擬盤擴(kuò)展以及把虛擬盤擴(kuò)展定義成自由空間。在實(shí)施例中,此狀態(tài)也可以包括錨定和未錨化 I定的子狀態(tài)。_表I.
結(jié)合圖7參照表1,列出的第一個(gè)狀態(tài)是表明通過虛擬盤文件702的區(qū)段來(lái)描述虛擬盤擴(kuò)展的“映射”狀態(tài)。例如,虛擬盤擴(kuò)展0是示例成處于“映射”狀態(tài)的實(shí)例虛擬盤擴(kuò)展。繼續(xù)表I的描述,虛擬盤擴(kuò)展可以與表明虛擬盤擴(kuò)展是“透明”(即,通過不同虛擬盤文件描述虛擬盤擴(kuò)展)的狀態(tài)信息相關(guān)聯(lián)。在虛擬盤解析器404接收到對(duì)處于透明狀態(tài)的虛擬盤擴(kuò)展的讀取操作的情況下,虛擬盤解析器404可以參考不同虛擬盤文件并檢查它的分配表以確定如何響應(yīng)讀取。在虛擬盤解析器404接收到對(duì)虛擬盤擴(kuò)展的寫入的情況下,虛擬盤解析器404可以把虛擬盤擴(kuò)展從“透明”狀態(tài)轉(zhuǎn)變?yōu)椤坝成洹睜顟B(tài)。結(jié)合圖7繼續(xù)表I的描述,虛擬盤擴(kuò)展還可以與“未映射”狀態(tài)相關(guān)聯(lián)。在此實(shí)例中,未通過虛擬盤文件702描述虛擬盤擴(kuò)展,也未通過鏈中的任何其它虛擬盤文件描述它。在此實(shí)例中,可以使用未映射狀態(tài)來(lái)描述虛擬盤擴(kuò)展,所述虛擬盤擴(kuò)展經(jīng)受了未表明文件系統(tǒng)414將會(huì)確保對(duì)虛擬盤擴(kuò)展進(jìn)行訪問的修剪命令?;蛘邠Q言之,用來(lái)把此虛擬盤擴(kuò)展轉(zhuǎn)變?yōu)榇藸顟B(tài)的修剪命令是標(biāo)準(zhǔn)修剪命令。在虛擬盤擴(kuò)展處于未映射狀態(tài)且接收到表明、對(duì)擴(kuò)展讀取的IO任務(wù)的情況下,虛擬盤解析器404可以通過零、零令牌、一、表示全一的令牌、或者非信息公開位模式(例如,全零、全一、或者一和零的隨機(jī)生成模式)響應(yīng)。在此實(shí)例中,如果分配虛擬盤文件702的區(qū)段以支持(back)此狀態(tài)下的虛擬盤擴(kuò)展,則虛擬盤解析器404可以在分配之前向虛擬盤文件702的區(qū)段寫入非信息公開位模式,或選擇已經(jīng)包括非信息公開位模式的區(qū)段以描述虛擬盤擴(kuò)展。圖7的虛擬盤擴(kuò)展6被指示為處于未映射狀態(tài)。在實(shí)施例中,可以保持定義未映射或未初始化擴(kuò)展的數(shù)據(jù),未映射或未初始化狀態(tài)可以包括兩個(gè)子狀態(tài)意味著在虛擬盤文件702內(nèi)仍存在數(shù)據(jù)的錨定、以及意味著可以或無(wú)法保持?jǐn)?shù)據(jù)的未錨定。在使用這些子狀態(tài)的情況下,虛擬盤解析器404可以通過在不使區(qū)段為零的情況下分配存儲(chǔ)數(shù)據(jù)的區(qū)段而把未映射但錨定的擴(kuò)展轉(zhuǎn)變?yōu)橛成涞?。類?地,雖然虛擬盤解析器404被配置成對(duì)待未初始化的擴(kuò)展就象對(duì)于虛擬盤402的至少一部分未映射它們一樣,但虛擬盤解析器404可以通過在不使區(qū)段為零的情況下分配存儲(chǔ)數(shù)據(jù)的區(qū)段,在該擴(kuò)展向映射的轉(zhuǎn)變期間避免使未初始化但錨定的擴(kuò)展為零。表I額外描述“零”狀態(tài)。在此實(shí)例中,未通過虛擬盤文件702描述虛擬盤擴(kuò)展也未通過鏈中的任何其它虛擬盤文件描述它;然而,需要把虛擬盤擴(kuò)展讀取成全零。在此實(shí)例中,可以使用零狀態(tài)來(lái)描述經(jīng)受了任一類型修剪命令的虛擬盤擴(kuò)展或描述程序?qū)懭肓巳愕奶摂M盤擴(kuò)展。例如,假設(shè)刪除工具程序向虛擬盤擴(kuò)展4寫入了全零以保證完全覆蓋了它先前存儲(chǔ)的數(shù)據(jù)。在虛擬盤擴(kuò)展處于零狀態(tài)、以及接收到表明對(duì)擴(kuò)展讀取的IO任務(wù)的情況下,虛擬盤解析器404可以通過零或零令牌(在卸載讀取操作中)響應(yīng)。在寫入針對(duì)此狀態(tài)的虛擬盤擴(kuò)展的情況下,虛擬盤解析器404可以使虛擬盤文件702的區(qū)段為零并使用它來(lái)描述虛擬盤擴(kuò)展或選擇已經(jīng)是零的虛擬盤文件702的區(qū)段,以及分配它以支持虛擬盤擴(kuò)展。在此實(shí)施例中,可以使用數(shù)據(jù)結(jié)構(gòu)或虛擬盤文件702跟蹤為零空間。可以在打開虛擬盤文件702時(shí)、在關(guān)閉虛擬盤文件702時(shí)等周期性地更新數(shù)據(jù)結(jié)構(gòu)。從處于未映射或未初始化狀態(tài)的擴(kuò)展進(jìn)行讀取可以可選地使虛擬盤解析器404在虛擬盤解析器404被配置成提供處于未映射或未初始化狀態(tài)的擴(kuò)展的扇區(qū)穩(wěn)定性的配置中把所述擴(kuò)展轉(zhuǎn)變?yōu)榱銧顟B(tài)。表I還描述稱為“未初始化”狀態(tài)的狀態(tài)。未初始化狀態(tài)表明未通過虛擬盤文件702描述虛擬盤擴(kuò)展且文件系統(tǒng)414正確保對(duì)虛擬盤擴(kuò)展的訪問。即,文件系統(tǒng)414被配置成防止用戶應(yīng)用讀取此虛擬盤擴(kuò)展內(nèi)的扇區(qū)。在此實(shí)例中,可以使用未初始化狀態(tài)來(lái)描述經(jīng)受了自由空間修剪命令的虛擬盤擴(kuò)展。在虛擬盤擴(kuò)展處于未初始化狀態(tài)且表明對(duì)擴(kuò)展讀取的IO任務(wù)被接收到的情況下,虛擬盤解析器404可以通過任何數(shù)據(jù)(即,來(lái)自虛擬盤文件702中幾乎任何其它位置的位模式、零、一、非信息公開位模式等)響應(yīng),因?yàn)樵谥豢梢园烟摂M盤載荷數(shù)據(jù)和非安全性影響元數(shù)據(jù)暴露給虛擬盤客戶端的需求之外,虛擬盤解析器404并未正提供針對(duì)虛擬盤擴(kuò)展的安全性。在寫入針對(duì)此狀態(tài)下的虛擬盤擴(kuò)展的情況下,虛擬盤解析器404可以在不需要更改可以在區(qū)段內(nèi)存儲(chǔ)的任何數(shù)據(jù)的情況下簡(jiǎn)單分配虛擬盤文件702的區(qū)段。結(jié)果是,此狀態(tài)是最有益的,因?yàn)榭梢栽谔摂M盤文件內(nèi)分配空間而不必預(yù)先清除它。圖7的虛擬盤擴(kuò)展5被指示為處于未初始化狀態(tài),且虛擬盤文件702未正支持虛擬盤擴(kuò)展。一旦狀態(tài)信息與每個(gè)虛擬盤擴(kuò)展相關(guān)聯(lián),則虛擬盤解析器404可以被配置成向管理員等提供關(guān)于如何布置虛擬盤402的額外信息。在實(shí)例實(shí)施例中,虛擬盤解析器404可以被配置成基于狀態(tài)信息響應(yīng)包括某些參數(shù)的偏移查詢。例如,用戶可以通過虛擬盤402發(fā)出以給定字節(jié)偏移量開始迭代的查詢,以及定位滿足諸如“映射”、“未映射”、“透明”等的具體準(zhǔn)則的范圍。另外,用戶可以選擇查詢應(yīng)當(dāng)進(jìn)行得多么“深入”以把差異虛擬盤文件702考慮在內(nèi)。例如、以及參照?qǐng)D7,用戶可以設(shè)置深度2和執(zhí)行查詢。在響應(yīng)中,虛擬盤解析器404將對(duì)鏈中的最后兩個(gè)虛擬盤文件(例如,虛擬盤文件610和612)執(zhí)行查詢。具體查詢可以包括用以獲得接下來(lái)的非透明范圍、接下來(lái)的非零范圍、接下來(lái)的定義范圍、接下來(lái)的初始化范圍等的查詢。簡(jiǎn)言之,接下來(lái)定義范圍的查詢可以被配置成返回包含定義數(shù)據(jù)的接下來(lái)的范圍(例如,在透明扇區(qū)解析為針對(duì)該扇區(qū)的父虛擬盤文件狀態(tài)的情況下,處于映射或?yàn)榱銧顟B(tài)的扇區(qū))。在透明扇區(qū)解析為針對(duì)該扇區(qū)的父虛擬 盤文件狀態(tài)的情況下,接下來(lái)初始化范圍的查詢可以返回包含除了未初始化狀態(tài)以外的狀態(tài)中數(shù)據(jù)的接下來(lái)的范圍?,F(xiàn)在轉(zhuǎn)到圖8,它示例了虛擬盤解析器404響應(yīng)于向虛擬盤402保存的文件或其它數(shù)據(jù)、可以將虛擬盤擴(kuò)展如何從一個(gè)狀態(tài)向另一個(gè)轉(zhuǎn)變的具體實(shí)例。例如,假設(shè)用戶使用虛擬機(jī)410內(nèi)的數(shù)據(jù)庫(kù)管理程序并創(chuàng)建數(shù)據(jù)庫(kù)。用戶可以把數(shù)據(jù)庫(kù)保存在文件中,且文件系統(tǒng)414可以確定在虛擬盤402上何處保存文件802。文件系統(tǒng)414可以發(fā)出用以把文件802寫入到例如落在虛擬盤擴(kuò)展3 — 5內(nèi)的扇區(qū)的一個(gè)或更多個(gè)盤寫入。在此實(shí)例中,虛擬盤擴(kuò)展3被“映射”,且虛擬盤解析器404可以把文件802的第一個(gè)部分寫入到通過分配表416識(shí)別的區(qū)段。另一方面,虛擬盤擴(kuò)展4和5處于“零”和“未初始化”狀態(tài)。在此實(shí)例中,虛擬盤解析器404可以選擇虛擬盤文件702的未使用區(qū)段以支持虛擬盤擴(kuò)展4并確定虛擬盤擴(kuò)展4處于為零狀態(tài)。響應(yīng)于此確定,虛擬盤解析器404可以使正要用來(lái)描述虛擬盤擴(kuò)展4的區(qū)段為零或定位已經(jīng)是全零的區(qū)段。在定位為零區(qū)段或使區(qū)段為零的過程完成之后,虛擬盤解析器404可以生成如下信息該信息識(shí)別虛擬盤文件字節(jié)偏移量,所述偏移量表明定義在虛擬盤文件702中的何處描述虛擬盤擴(kuò)展4的區(qū)段的第一個(gè)字節(jié),并把所述信息存儲(chǔ)在分配表416中。虛擬盤解析器404可以隨后改變與虛擬盤擴(kuò)展4相關(guān)聯(lián)的狀態(tài)信息以表明它是“映射”的。隨后可以把向擴(kuò)展4寫入的部分寫入到定位的區(qū)段中。可替選地,對(duì)于涵蓋當(dāng)前處于零狀態(tài)中虛擬盤的整個(gè)擴(kuò)展的寫入的一部分,可以選取虛擬盤文件的定位區(qū)段,可以向該區(qū)段發(fā)出寫入的部分,在該寫入完成后,虛擬盤解析器404可以隨后改變與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明該擴(kuò)展是“映射”的。可替選地,對(duì)于只涵蓋當(dāng)前處于零狀態(tài)的虛擬盤擴(kuò)展一部分的寫入的一部分,可以選取虛擬盤文件的定位區(qū)段,可以向該區(qū)段發(fā)出該寫入的部分,可以向區(qū)段的剩余部分發(fā)出為零寫入,在寫入完成后,虛擬盤解析器404可以隨后改變與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明擴(kuò)展是“映射”的。本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到,可以使用刷新或直寫式(write-through)寫入(如,迫使單元訪問(force-unit-access)寫入)強(qiáng)制寫入的給定排序。類似地,虛擬盤解析器404可以選擇虛擬盤文件702的未使用區(qū)段以支持虛擬盤擴(kuò)展5,以及通過參看分配表416確定虛擬盤擴(kuò)展5處于未初始化狀態(tài)。響應(yīng)于此確定,虛擬盤解析器404可以在不修改選定區(qū)段的內(nèi)容的情況下分配區(qū)段以描述虛擬盤擴(kuò)展5。虛擬盤解析器404可以生成如下信息該信息識(shí)別表明區(qū)段的第一個(gè)字節(jié)的虛擬盤文件字節(jié)偏移量,其表明在虛擬盤文件702中何處描述虛擬盤擴(kuò)展4,以及把區(qū)段的文件字節(jié)偏移量存儲(chǔ)在分配表416中。虛擬盤解析器404可以隨后改變與虛擬盤擴(kuò)展5相關(guān)聯(lián)的狀態(tài)信息以表明它是“映射”的。圖9示例了虛擬盤解析器404響應(yīng)于對(duì)文件802的刪除操作和使虛擬盤擴(kuò)展7的內(nèi)容為零的操作可以如何將虛擬盤擴(kuò)展從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)的另一具體實(shí)例。例如,用戶可能已刪除了文件802,文件系統(tǒng)414可能已發(fā)出了修剪命令。在此實(shí)例中,虛擬盤解析器404可以接收修剪命令,該命令包括完全涵蓋虛擬盤擴(kuò)展4和5以及部分涵蓋虛擬盤擴(kuò)展3的虛擬盤扇區(qū)范圍。響應(yīng)于虛擬盤擴(kuò)展4和5被完全修剪的確定,虛擬盤解析器404可以被配置成從分配表416去除鏈接并把虛擬盤擴(kuò)展4變換為表明虛擬盤文件702未正支持此虛擬盤擴(kuò)展的狀態(tài)。如虛擬盤擴(kuò)展4的分配表?xiàng)l目所示,虛擬盤解析器404把虛擬盤擴(kuò)展變換所至的狀態(tài)取決于虛擬盤解析器404被配置成使用什么狀態(tài)以及文件系統(tǒng)414是否發(fā)出自由空間修剪命令或標(biāo)準(zhǔn)修剪命令。例如,虛擬盤解析器404可以被配置成使用兩個(gè)狀態(tài)映射的和零以描述虛擬盤擴(kuò)展??商孢x地,虛擬盤解析器404可以被配置成使用三個(gè)狀態(tài)映射的、零、未映射的以描述虛擬盤擴(kuò)展??商孢x地,虛擬盤解析器404可以被配置成使用四個(gè)狀態(tài)映射的、零、未映射的、以及未初始化的。未映射的與未初始化的之間的區(qū)別對(duì)應(yīng)于標(biāo)準(zhǔn)修剪與自由空間修剪之間的區(qū)別。如果解析器被配置成不使用未初始化狀態(tài),則自由空間修剪作為正常修剪對(duì)待。如圖所示,文件702的部分仍在虛擬盤文件702中 存儲(chǔ),這是由于從虛擬盤文件702清除它們效率低下。由于所述修剪部分涵蓋了虛擬盤擴(kuò)展5,所以虛擬盤解析器404可以通過各種方式中的一個(gè)方式操控此擴(kuò)展。在一個(gè)配置中,虛擬盤解析器404可以使擴(kuò)展5停留在映射狀態(tài)下。在此配置中,虛擬盤解析器404可以在對(duì)于整個(gè)擴(kuò)展接收了修剪信息時(shí)轉(zhuǎn)變擴(kuò)展??商孢x地,虛擬盤解析器404可以在希望接收較多如下這種修剪信息的情況下跟蹤部分涵蓋擴(kuò)展的修剪信息所述修剪信息提供可以釋放描述擴(kuò)展的空間的指示。類似地,所述修剪也部分涵蓋了虛擬盤擴(kuò)展。在此實(shí)例中,虛擬盤解析器404可以使它停留在映射狀態(tài)中并且還可以被配置成向底層文件系統(tǒng)(例如,虛擬化文件系統(tǒng)408、存儲(chǔ)服務(wù)器文件系統(tǒng)504、或者計(jì)算機(jī)系統(tǒng)文件系統(tǒng)514)發(fā)送描述不再使用的虛擬盤文件702的部分的修剪信息。除了文件802的刪除之外,圖9示出了使虛擬盤擴(kuò)展為零的實(shí)例。虛擬盤解析器404可以掃描表明使虛擬盤擴(kuò)展7的整個(gè)范圍為零的文件系統(tǒng)414發(fā)出的IO任務(wù)。響應(yīng)于此確定,虛擬盤解析器404可以被配置成從擴(kuò)展分配表416去除鏈接并把虛擬盤擴(kuò)展7轉(zhuǎn)變?yōu)榱銧顟B(tài)。如圖所示,虛擬盤擴(kuò)展7的先前內(nèi)容仍在虛擬盤文件702中存儲(chǔ)。轉(zhuǎn)到圖10,它示例了由一組虛擬盤文件1002、1004、1006 (其可以與虛擬盤文件608,604,以及600定義的虛擬盤文件鏈類似)至少部分地描述的虛擬盤402。在此示范性實(shí)施例中,在多個(gè)虛擬盤文件上拆散表示虛擬盤402的數(shù)據(jù)。在此示范性實(shí)施例中,當(dāng)虛擬盤解析器404試圖讀取虛擬盤擴(kuò)展I和2時(shí),虛擬盤解析器404可以訪問虛擬盤文件1002的分配表并確定這些擴(kuò)展是透明的。接下來(lái),虛擬盤解析器404可以訪問虛擬盤文件1004的分配表并確定這些擴(kuò)展是透明的。最終,虛擬盤解析器404可以訪問祖父級(jí)虛擬盤文件1006的分配表并確定這些虛擬盤擴(kuò)展被定義。以下是描繪操作流程的一系列流程圖。為了容易理解,流程圖被組織成使得初始流程圖經(jīng)由總體“大圖片”視點(diǎn)呈現(xiàn)實(shí)施方式,后續(xù)流程圖提供以虛線示例的進(jìn)一步的額外內(nèi)容和/或細(xì)節(jié)。再者,本領(lǐng)域技術(shù)人員可以明白,由虛線描繪的操作流程被認(rèn)為是可選的?,F(xiàn)在參照?qǐng)D11,它示例了用于收回虛擬盤文件內(nèi)空間的操作流程,包括操作1100、1102、1104、以及1106。操作1100開始操作流程,操作1102示出了實(shí)例化(1102)包括虛擬盤擴(kuò)展的虛擬盤(402),使虛擬盤擴(kuò)展從虛擬盤文件分離。簡(jiǎn)要轉(zhuǎn)到圖4、圖5A或圖5B,虛擬盤解析器404 (例如,可執(zhí)行指令和相關(guān)聯(lián)實(shí)例數(shù)據(jù))可以實(shí)例化虛擬盤402,所述解析器暴露一個(gè)或更多個(gè)虛擬盤文件內(nèi)存儲(chǔ)的數(shù)據(jù)作為邏輯硬盤驅(qū)動(dòng)器,該邏輯硬盤驅(qū)動(dòng)器可以被配置成通過模擬硬盤驅(qū)動(dòng)器的行為來(lái)操控來(lái)自文件系統(tǒng)414的讀/寫操作。虛擬盤文件406 (可以是如圖6中所示例的一個(gè)或更多個(gè)文件)可以存儲(chǔ)通常在物理硬盤驅(qū)動(dòng)器上得到的內(nèi)容,即,盤分區(qū)、文件系統(tǒng)等。轉(zhuǎn)到圖7,把虛擬盤402示出為包括多個(gè)擴(kuò)展,使其中一些擴(kuò)展從虛擬盤文件702的任何區(qū)段分離。在具體示例中,假設(shè)所述擴(kuò)展是塊。在此實(shí)例中,可以使用可以從虛擬盤文件702中的一個(gè)或更多個(gè)區(qū)段加載到隨機(jī)訪問存儲(chǔ)器中的分配表416來(lái)存儲(chǔ)將虛擬盤402中的盤塊鏈接到虛擬盤文件702的擴(kuò)展尺寸(例如,塊尺寸的)的區(qū)段的信息。分配表416也可以存儲(chǔ)虛擬盤402中每個(gè)虛擬盤塊的狀態(tài)信息。潛在地包括非零數(shù)據(jù)的虛擬塊可以與表明塊 處于映射狀態(tài)的狀態(tài)信息相關(guān)聯(lián)。即,分配了虛擬盤文件702的區(qū)段以描述虛擬盤402的塊(即,存儲(chǔ)虛擬盤402塊的數(shù)據(jù))。虛擬盤塊0 — 3和7處于此狀態(tài)的塊的實(shí)例。如圖所示,虛擬盤塊4和5、6、8和9可以是有效的虛擬盤塊;然而,這些虛擬盤塊不會(huì)具有虛擬盤文件702內(nèi)分配的任何空間。由于文件系統(tǒng)414可以向這些塊寫入,所以在示范性實(shí)施例中,這些虛擬盤塊可以與如下信息相關(guān)聯(lián)所述信息可以被虛擬盤解析器404用來(lái)確定如何響應(yīng)對(duì)它們的讀取和/或?qū)懭氩僮鳌:?jiǎn)要返回參照?qǐng)D11,操作1104示出了計(jì)算機(jī)系統(tǒng)可以額外包括如下電路該電路基于與虛擬盤(402)相關(guān)聯(lián)的狀態(tài)信息、在不覆蓋虛擬盤文件的區(qū)段內(nèi)預(yù)先已有位模式的情況下分配虛擬盤文件的區(qū)段(406,600,602,604,606,608,610,612,702,1002)以描述虛擬盤擴(kuò)展。例如、以及回到圖8,虛擬盤解析器404可以接收用以向虛擬盤擴(kuò)展的一部分寫入的IO任務(wù)。響應(yīng)于寫入IO任務(wù)的接收,虛擬盤解析器404可以檢查分配表416并確定尚未分配虛擬盤文件702內(nèi)的空間以描述虛擬盤擴(kuò)展以及分配虛擬盤文件406的區(qū)段來(lái)支持虛擬盤擴(kuò)展。因而,虛擬盤解析器404將會(huì)把文件系統(tǒng)414向虛擬盤擴(kuò)展寫入的數(shù)據(jù)存儲(chǔ)在虛擬盤文件702的區(qū)段中。在此實(shí)例中,虛擬盤解析器404不會(huì)覆蓋虛擬盤文件702的區(qū)段中已經(jīng)存儲(chǔ)的任何數(shù)據(jù)(通過寫入全零、一、或者任何其它非信息公開位模式)——在使用它以基于分配表416中的狀態(tài)信息來(lái)描述虛擬盤擴(kuò)展以前。在示范性配置中,因?yàn)槲募到y(tǒng)自由空間涵蓋虛擬盤擴(kuò)展,所以狀態(tài)信息可以表明文件系統(tǒng)414正確保對(duì)此虛擬盤擴(kuò)展的訪問。在具體實(shí)例中,狀態(tài)信息可以表明虛擬盤擴(kuò)展處于“未初始化”狀態(tài)。分配虛擬盤擴(kuò)展而不清除它提供了節(jié)省處理器周期和IO任務(wù)的附加益處,其如若不然將被用來(lái)覆蓋虛擬盤文件702的區(qū)段。在操作1104的具體實(shí)例中、以及轉(zhuǎn)到圖7,假設(shè)擴(kuò)展是塊且文件系統(tǒng)414向虛擬盤402發(fā)送IO任務(wù)以向虛擬盤塊3 - 5寫入表明文件802的位模式。響應(yīng)于這種IO任務(wù)的接收,虛擬盤解析器404可以確定虛擬盤塊5不被虛擬盤文件406的任何區(qū)段支持且未初始化它。響應(yīng)于此確定,虛擬盤解析器404可以被配置成分配虛擬盤文件702的區(qū)段以描述虛擬盤塊5并在其中寫入表明文件802的位模式的一部分而不覆蓋先前存儲(chǔ)在IO任務(wù)未涵蓋的區(qū)段的部分中的數(shù)據(jù)。再次轉(zhuǎn)到圖11,操作1106示出了計(jì)算機(jī)系統(tǒng)可以額外包括如下電路該電路被配置成修改(1106)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明通過虛擬盤文件描述虛擬盤擴(kuò)展。例如、以及轉(zhuǎn)回到圖8,虛擬盤解析器404可以修改(例如,在存儲(chǔ)器中覆蓋)與虛擬盤擴(kuò)展5相關(guān)聯(lián)的狀態(tài)信息以反映虛擬盤文件702正描述虛擬盤擴(kuò)展。在一個(gè)配置中,狀態(tài)信息的寫入和修改可以同時(shí)發(fā)生。例如,虛擬盤解析器404可以在分配表416中存儲(chǔ)表明虛擬盤擴(kuò)展5是“映射”的信息。結(jié)果是,針對(duì)虛擬盤擴(kuò)展5的扇區(qū)的后續(xù)讀取操作將會(huì)由虛擬盤解析器404通過返回分配表416中識(shí)別的字節(jié)偏移量處存儲(chǔ)的位模式來(lái)操控。虛擬盤解析器404可以向分配以描述虛擬盤擴(kuò)展的虛擬盤文件702的區(qū)段同時(shí)寫入數(shù)據(jù)(例如,與觸發(fā)了此流程的寫入操作相關(guān)聯(lián)的位模式)和向虛擬化系統(tǒng)文件系統(tǒng)408、存儲(chǔ)服務(wù)器文件系統(tǒng)504、或者計(jì)算機(jī)系統(tǒng)文件系統(tǒng)514發(fā)出用以向虛擬盤702的區(qū)段寫入位模式的IO任務(wù)。在一些時(shí)間點(diǎn),如,在完成后續(xù)發(fā)出的刷新命令之前,將會(huì)在永久存儲(chǔ)單元460中維持位模式。 現(xiàn)在轉(zhuǎn)到圖12,它示出了可以結(jié)合圖11所示例的那些來(lái)執(zhí)行的額外操作。轉(zhuǎn)到操作1208,它表明計(jì)算機(jī)系統(tǒng)可以包括如下電路該電路用于通過識(shí)別非零虛擬盤的扇區(qū)、處于非透明狀態(tài)的虛擬盤的扇區(qū)、處于映射狀態(tài)的虛擬盤的扇區(qū)、和/或處于初始化狀態(tài)的虛擬盤的扇區(qū)的信息來(lái)響應(yīng)偏移查詢命令。例如,虛擬盤解析器404可以被配置成接收用以生成有關(guān)虛擬盤402的信息的命令所述信息諸如在給定起始字節(jié)偏移量的情況下,處于非透明狀態(tài)(即,除了透明以外的狀態(tài))、映射狀態(tài)(即,包括虛擬盤文件406中數(shù)據(jù)的虛擬盤402的扇區(qū))、定義狀態(tài)(即,映射的或是零的虛擬盤402的扇區(qū))、和/或初始化狀態(tài)(即,除了未初始化以外的狀態(tài))中的虛擬盤上的接下來(lái)的字節(jié)偏移量。所述命令可以是深度受限的,原因在于只檢查了特定數(shù)量的虛擬盤文件,并且除了由狀態(tài)查詢所表明的范圍之外(無(wú)論請(qǐng)求了哪個(gè)狀態(tài)查詢),在檢查特定數(shù)量的虛擬盤文件之后仍然透明的任何范圍都被上報(bào)回請(qǐng)求方。響應(yīng)于這種命令的接收,虛擬盤解析器404可以在虛擬盤402上的初始字節(jié)偏移量處開始并建立響應(yīng)范圍或范圍的集合直到與命令相關(guān)聯(lián)的范圍被檢測(cè)到且返回期望信息為止。繼續(xù)圖12的描述,操作1210示出了向控制虛擬盤文件(406,600,602,604,606,
608,610,612,702,1002)的文件系統(tǒng)(414)發(fā)送請(qǐng)求以發(fā)出從包括修剪命令、未映射命令、寫入同零命令(a write same of zero command)、以及零令牌卸載寫入命令的命令組中選擇的至少一個(gè)命令。返回參照?qǐng)D4、圖5A、或者圖5B,虛擬盤解析器404可以被配置成向文件系統(tǒng)414發(fā)出請(qǐng)求。此示例中的請(qǐng)求可以用于文件系統(tǒng)414發(fā)出修剪命令。例如,虛擬盤解析器404可以在虛擬盤402的實(shí)例化之后不久、和/或在虛擬機(jī)410關(guān)斷、休眠等以前,周期性地向文件系統(tǒng)414發(fā)出一個(gè)或更多個(gè)請(qǐng)求。響應(yīng)于這種請(qǐng)求,文件系統(tǒng)414可以確定它不再使用虛擬盤402的什么扇區(qū)以及向虛擬盤解析器404發(fā)送識(shí)別這些未使用的扇區(qū)的一個(gè)或更多個(gè)修剪命令。虛擬盤解析器404可以因此接收如下修剪信息,諸如文件系統(tǒng)414不再使用的扇區(qū)范圍的列表、以及文件系統(tǒng)414是否正阻止從扇區(qū)的范圍進(jìn)行讀取以確保對(duì)那些扇區(qū)的訪問。虛擬盤解析器404可以接收信息,并把被該范圍涵蓋的虛擬盤擴(kuò)展轉(zhuǎn)變成可以收回虛擬盤文件702內(nèi)的空間的狀態(tài)。
繼續(xù)圖12的描述,操作1212示出了計(jì)算機(jī)系統(tǒng)可以包括用于響應(yīng)于修剪第二虛擬盤擴(kuò)展的一部分的請(qǐng)求的接收來(lái)確定第二虛擬盤擴(kuò)展的一部分對(duì)應(yīng)的虛擬盤文件的一部分的電路;以及用于向被配置成把虛擬盤文件存儲(chǔ)在存儲(chǔ)裝置中的文件系統(tǒng)發(fā)送針對(duì)所確定的虛擬盤文件部分的修剪命令的電路。例如、以及參照?qǐng)D8,文件系統(tǒng)414可以發(fā)出識(shí)別虛擬盤擴(kuò)展的一部分的修剪命令,例如,修剪命令可以只識(shí)別形成一個(gè)或更多個(gè)虛擬盤塊的扇區(qū)的一部分對(duì)應(yīng)的扇區(qū)的范圍。在具體實(shí)例中,假設(shè)文件系統(tǒng)414修剪用來(lái)存儲(chǔ)文件802的空間。這樣,修剪命令可以只識(shí)別構(gòu)建虛擬盤擴(kuò)展3的扇區(qū)的一部分。在此實(shí)例中,虛擬盤解析器404可以確定扇區(qū)的范圍涵蓋虛擬盤擴(kuò)展的子區(qū)段并使用分配表416中的映射信息來(lái)確定虛擬盤擴(kuò)展的修剪扇區(qū)對(duì)應(yīng)的虛擬盤文件702的部分。虛擬盤解析器404可以向虛擬化系統(tǒng)文件系統(tǒng)408或存儲(chǔ)服務(wù)器文件系統(tǒng)504發(fā)出用以修剪虛擬盤擴(kuò)展的修剪扇區(qū)對(duì)應(yīng)的虛擬盤文件702的部分的請(qǐng)求。虛擬化系統(tǒng)文件系統(tǒng)408或存儲(chǔ)服務(wù)器文件系統(tǒng)504可以被配置成通過修剪支持虛擬盤文件406的扇區(qū)的一部分、刷新來(lái)自高速緩沖存儲(chǔ)器的數(shù)據(jù)、清除內(nèi)部緩存器等使用修剪命令并從它獲益。可替選地,虛擬盤解析器404可以存儲(chǔ)表明虛擬盤擴(kuò)展的一部分被修剪的信息以及表明它是否是自由空間修剪的信息。隨著訪客操作系統(tǒng)412或操作系統(tǒng)508運(yùn)行,它可 以最終使虛擬盤擴(kuò)展的剩余部分為零或修剪虛擬盤擴(kuò)展的剩余部分。響應(yīng)于此事件,虛擬盤解析器404可以確定把虛擬盤擴(kuò)展轉(zhuǎn)變成未通過虛擬盤文件702對(duì)其進(jìn)行描述的狀態(tài)和基于如何修剪或使虛擬盤擴(kuò)展的不同部分為零來(lái)選擇狀態(tài)。虛擬盤解析器404可以被配置成選擇用以在可把虛擬盤擴(kuò)展的不同部分置于不同未描述狀態(tài)中時(shí)轉(zhuǎn)變虛擬盤擴(kuò)展的最限制性狀態(tài),其中,零狀態(tài)是最限制性的,未初始化是最少限制性的,未映射在其之間某處。例如,如果使第一部分為零以及剩余部分未初始化,則虛擬盤解析器404可以把整個(gè)虛擬盤擴(kuò)展轉(zhuǎn)變成為零狀態(tài)。繼續(xù)圖12的描述,操作1214示例了計(jì)算機(jī)系統(tǒng)400可以額外包括如下電路該電路被配置成響應(yīng)于用以修剪涵蓋虛擬盤擴(kuò)展的扇區(qū)范圍的請(qǐng)求的接收、把虛擬盤擴(kuò)展從虛擬盤文件的區(qū)段釋放和修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展在虛擬盤文件中不具有相關(guān)聯(lián)空間。例如、以及轉(zhuǎn)到圖9,虛擬盤解析器404可以去除將虛擬盤擴(kuò)展聯(lián)結(jié)到虛擬盤文件702的區(qū)段的分配表416中的鏈接。此操作具有使虛擬盤擴(kuò)展從虛擬盤文件702分離的效果。除了去除鏈接之外,虛擬盤解析器404可以修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明擴(kuò)展在虛擬盤文件702內(nèi)不具有關(guān)聯(lián)空間,S卩,虛擬盤解析器404可以把虛擬盤擴(kuò)展置于未映射、未初始化、或者為零狀態(tài)中。虛擬盤解析器404可以響應(yīng)于用以修剪或使虛擬盤擴(kuò)展的區(qū)段為零的請(qǐng)求的接收而去除鏈接和更新狀態(tài)信息。例如,可以接收識(shí)別可以涵蓋一個(gè)或更多個(gè)虛擬盤擴(kuò)展的字節(jié)偏移量范圍的、用以修剪或使扇區(qū)為零的請(qǐng)求。響應(yīng)于這種IO任務(wù)的接收,虛擬盤解析器404可以確定所述請(qǐng)求涵蓋虛擬盤擴(kuò)展的扇區(qū)和執(zhí)行用于去除鏈接和更新狀態(tài)信息的前述操作。在具體實(shí)例中,假設(shè)IO任務(wù)表明修剪是自由空間修剪。例如,用戶可能已刪除了作為虛擬盤擴(kuò)展3 — 5上的位模式存儲(chǔ)的文件802,文件系統(tǒng)414可以表明文件系統(tǒng)414不再使用該空間。響應(yīng)于自由空間修剪命令的接收,虛擬盤解析器404可以訪問分配表416和確定文件系統(tǒng)414已經(jīng)修剪了擴(kuò)展3、5的一部分和擴(kuò)展4的全部。在此實(shí)例中,虛擬盤解析器404可以去除把虛擬盤擴(kuò)展4映射到虛擬盤文件702的鏈接以及修改與虛擬盤擴(kuò)展4相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展未初始化?,F(xiàn)在可以重新使用虛擬盤文件702的此區(qū)段以支持其它虛擬盤擴(kuò)展。另外,虛擬盤解析器404可以確定虛擬盤擴(kuò)展3和5是部分修剪命令的主體。在此實(shí)例中,虛擬盤解析器404可以使用分配表416以發(fā)現(xiàn)描述虛擬盤文件702的部分(所述部分描述虛擬盤擴(kuò)展3和5的修剪部分)的虛擬盤文件字節(jié)偏移量、并向虛擬化系統(tǒng)文件系統(tǒng)408、存儲(chǔ)服務(wù)器文件系統(tǒng)504、或者計(jì)算機(jī)系統(tǒng)文件514發(fā)出描述虛擬盤文件字節(jié)偏移量的修剪命令。在另一具體實(shí)例中,假設(shè)文件系統(tǒng)414發(fā)出的IO任務(wù)表明使文件802為零。例如,文件802可以是存儲(chǔ)敏感信息的數(shù)據(jù)庫(kù)文件,所述敏感信息諸如信用卡號(hào)和管理員,該管理員被確定通過對(duì)文件內(nèi)容寫入全零來(lái)對(duì)其清零(zero out),這是通過將會(huì)在文件802中已有的數(shù)據(jù)上寫入零的全零緩存器發(fā)出寫入命令來(lái)實(shí)現(xiàn)。響應(yīng)于這種IO任務(wù)的接收,虛擬盤解析器404可以被配置成確定使虛擬盤擴(kuò)展4為零以及可以收回此擴(kuò)展。在此實(shí)例中,虛擬盤解析器404可以去除把虛擬盤擴(kuò)展4映射到虛擬盤文件702的鏈接以及修改與虛擬盤擴(kuò)展4相關(guān)聯(lián)的狀態(tài)信息以表明使虛擬盤擴(kuò)展為零?,F(xiàn)在可以重新使用虛擬盤文件702的此區(qū)段以支持其它虛擬盤擴(kuò)展,虛擬盤解析器404可以通過以全零應(yīng)答來(lái)響應(yīng)對(duì)虛擬盤擴(kuò)展4的后續(xù)讀取操作。在另一具體實(shí)例中,用戶可以寫入批量零以初始化文件802的狀態(tài),而非覆蓋其中存儲(chǔ)的數(shù)據(jù)。在此實(shí)例中,可以使用諸如虛擬盤解析器404上報(bào)作為零讀取的修剪區(qū)段的情況下的諸如修剪命令、虛擬盤解析器404上報(bào)未映射區(qū)域是零時(shí)的未映射命令、同零寫入(WRITE SAME of zero)命令、和/或零令牌卸載寫入命令把擴(kuò)展轉(zhuǎn)變成為零狀態(tài)。在具體實(shí)例中,假設(shè)IO任務(wù)表明修剪是標(biāo)準(zhǔn)修剪。例如,用戶可能已刪除了作為虛擬盤擴(kuò)展3 — 5上的位模式存儲(chǔ)的文件802 ;然而,修剪命令無(wú)法表明文件系統(tǒng)414是否正使用空間。響應(yīng)于標(biāo)準(zhǔn)修剪命令的接收,虛擬盤解析器404可以訪問分配表416并確定 文件系統(tǒng)414已修剪了擴(kuò)展3、5的一部分和擴(kuò)展4的全部。在此實(shí)例中,虛擬盤解析器404可以去除把虛擬盤擴(kuò)展4映射到虛擬盤文件702的鏈接,并修改與虛擬盤擴(kuò)展4相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展未映射或是零?,F(xiàn)在可以重新使用虛擬盤文件702的此區(qū)段以描述其它虛擬盤擴(kuò)展。另外,虛擬盤解析器404可以確定虛擬盤擴(kuò)展3和5是部分修剪命令的主體。在此實(shí)例中,虛擬盤解析器404可以使用分配表416發(fā)現(xiàn)虛擬盤文件字節(jié)偏移量(其構(gòu)成描述虛擬盤擴(kuò)展3和5的修剪部分的虛擬盤文件702的部分)并向虛擬化系統(tǒng)文件系統(tǒng)408發(fā)出指定虛擬盤文件字節(jié)偏移量(通常以范圍的形式)的修剪命令?,F(xiàn)在參照?qǐng)D13,其示例了除圖12的操作1214之外可以執(zhí)行的額外操作。操作1316示例了計(jì)算機(jī)系統(tǒng)可以包括用于接收向虛擬盤擴(kuò)展寫入數(shù)據(jù)的請(qǐng)求的電路;用于基于與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息使虛擬盤文件的未使用區(qū)段為零的電路,該狀態(tài)信息表明使虛擬盤擴(kuò)展為零;以及用于分配虛擬盤文件的未使用區(qū)段以描述虛擬盤擴(kuò)展的電路。參照?qǐng)D9的上下文,虛擬盤解析器404可以接收將數(shù)據(jù)寫入虛擬盤擴(kuò)展(例如,圖9的虛擬盤擴(kuò)展4,其在此實(shí)例中與表明使虛擬盤擴(kuò)展為零的狀態(tài)信息相關(guān)聯(lián))的請(qǐng)求。例如,當(dāng)釋放虛擬盤擴(kuò)展4時(shí)虛擬盤解析器404可能已確定了使虛擬盤擴(kuò)展為零,即,某應(yīng)用通過使用公知零令牌的卸載寫入向文件602寫入全零。響應(yīng)于確定虛擬盤擴(kuò)展處于為零狀態(tài),虛擬盤解析器404可以識(shí)別虛擬盤文件702的未使用區(qū)段(S卩,未主動(dòng)被使用以描述虛擬盤擴(kuò)展和未主動(dòng)被使用以存儲(chǔ)任何分配的元數(shù)據(jù)的區(qū)段),以及使用該區(qū)段來(lái)支持虛擬盤擴(kuò)展。虛擬盤解析器進(jìn)一步保證作為全零讀取的、來(lái)自新分配的擴(kuò)展的尚未寫入扇區(qū)的任何讀取。虛擬盤解析器404可以向該區(qū)段寫A IO寫入任務(wù)的載荷;更新狀態(tài)信息以表明虛擬盤擴(kuò)展被映射;以及更新分配表416中的信息以描述虛擬盤文件字節(jié)偏移量,其識(shí)別用來(lái)存儲(chǔ)虛擬盤擴(kuò)展4的區(qū)段的開始。虛擬盤解析器404還可以創(chuàng)建日志條目,其保證在刷新寫入以前系統(tǒng)故障和重啟的情況中,新分配擴(kuò)展的尚未寫入扇區(qū)仍作為全零讀取、以及新分配擴(kuò)展的寫入扇區(qū)作為全零或者寫入數(shù)據(jù)讀取。在第一個(gè)后續(xù)刷新命令后,虛擬盤解析器404保證繼刷新完成后的系統(tǒng)故障將會(huì)造成從讀取寫入了的數(shù)據(jù)的新分配擴(kuò)展的先前寫入扇區(qū)讀取、以及從讀取零的新分配擴(kuò)展的尚未寫入扇區(qū)讀取。繼續(xù)圖13的描述,操作1318示出了計(jì)算機(jī)系統(tǒng)可以包括用于接收向虛擬盤擴(kuò)展寫入的請(qǐng)求的電路;以及用于基于與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息在不修改虛擬盤文件未使用區(qū)段的內(nèi)容的情況下分配虛擬盤文件的未使用區(qū)段以描述虛擬盤擴(kuò)展的電路,所述狀態(tài)信息表明文件系統(tǒng)正確保對(duì)虛擬盤擴(kuò)展的訪問。再次參照?qǐng)D9的上下文,虛擬盤解析器404可以接收用以向虛擬盤擴(kuò)展(例如,圖9的虛擬盤擴(kuò)展4,其在此實(shí)例中與表明文件系統(tǒng) 414正提供虛擬盤擴(kuò)展的安全性的狀態(tài)信息相關(guān)聯(lián))寫入數(shù)據(jù)的IO任務(wù)。響應(yīng)于檢測(cè)此狀態(tài)信息,虛擬盤解析器404可以識(shí)別虛擬盤文件702的未使用區(qū)段;把IO任務(wù)的載荷寫入該區(qū)段;更新狀態(tài)信息以表明虛擬盤擴(kuò)展被映射;以及更新分配表416中的信息以描述虛擬盤文件字節(jié)偏移量,該偏移量識(shí)別用來(lái)存儲(chǔ)虛擬盤擴(kuò)展4的區(qū)段的開始。假設(shè)在此實(shí)例中所述擴(kuò)展是塊且IO任務(wù)的載荷只涵蓋虛擬盤塊中扇區(qū)的一部分。具體地,虛擬盤塊可以是512千字節(jié),所述寫入可以涵蓋虛擬盤塊的前500個(gè)扇區(qū)。在此實(shí)例中,虛擬盤解析器404可以在不擦除剩余524個(gè)扇區(qū)中存儲(chǔ)的數(shù)據(jù)的情況下在虛擬盤文件702分配區(qū)段的前500個(gè)扇區(qū)中寫入數(shù)據(jù)。因而,如果檢查了此區(qū)段則將會(huì)得到前500個(gè)扇區(qū)包括載荷而剩余524個(gè)扇區(qū)包括先前向虛擬盤文件702的區(qū)段寫入了無(wú)論什么位模式。在此實(shí)例中,虛擬盤解析器404可以使用此區(qū)段而不清除它,因?yàn)槲募到y(tǒng)414被配置成拒絕對(duì)在文件系統(tǒng)自由空間中的扇區(qū)的讀取操作。由于將會(huì)防止應(yīng)用讀取虛擬盤塊的剩余524個(gè)區(qū)段,所以它可以包含先前在虛擬盤中存儲(chǔ)的任何數(shù)據(jù)。現(xiàn)在轉(zhuǎn)到圖13的操作1320,它示出了計(jì)算機(jī)系統(tǒng)可以被配置成包括用于接收向虛擬盤擴(kuò)展寫入的請(qǐng)求的電路;用于基于與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息通過非信息公開位模式在邏輯上覆蓋虛擬盤文件的未使用區(qū)段的電路,所述狀態(tài)信息表明文件系統(tǒng)未正確保對(duì)虛擬盤擴(kuò)展的訪問;以及用于分配虛擬盤文件的覆蓋區(qū)段以描述虛擬盤擴(kuò)展的電路。再次參照?qǐng)D9的上下文,虛擬盤解析器404可以接收向虛擬盤擴(kuò)展寫入數(shù)據(jù)的請(qǐng)求,該虛擬盤擴(kuò)展在此實(shí)例中與表明文件系統(tǒng)414未正確保對(duì)虛擬盤擴(kuò)展訪問的狀態(tài)信息相關(guān)聯(lián)。例如,虛擬盤解析器404可響應(yīng)于標(biāo)準(zhǔn)修剪命令的接收已釋放虛擬盤擴(kuò)展,以及可以在分配表416中存儲(chǔ)了表明未映射(即,未被虛擬盤文件702中的空間支持)虛擬盤擴(kuò)展的狀態(tài)信肩、O響應(yīng)于確定虛擬盤擴(kuò)展未映射,虛擬盤解析器404可以識(shí)別要使用的虛擬盤文件702的未使用區(qū)段以描述虛擬擴(kuò)展和向該區(qū)段在邏輯上寫入非信息公開位模式以保證對(duì)虛擬盤擴(kuò)展的讀取不無(wú)意中泄漏任何信息。在優(yōu)選實(shí)施方式中,非信息公開位模式可以是全零或先前存儲(chǔ)的數(shù)據(jù)。在使區(qū)段為零或向該區(qū)段在邏輯上寫入一些其它非信息公開位模式(諸如先前存儲(chǔ)數(shù)據(jù))之后,虛擬盤解析器404可以把IO任務(wù)的載荷在邏輯上寫入到區(qū)段;更新狀態(tài)信息以表明虛擬盤擴(kuò)展被映射;以及更新分配表416中的信息以描述虛擬盤文件字節(jié)偏移量,該偏移量識(shí)別用來(lái)存儲(chǔ)虛擬盤擴(kuò)展的區(qū)段的開始。繼續(xù)圖13的描述,操作1322示出了計(jì)算機(jī)系統(tǒng)可以包括被配置成基于表明使虛擬盤擴(kuò)展為零的狀態(tài)信息響應(yīng)于與虛擬盤擴(kuò)展相關(guān)聯(lián)的卸載讀取請(qǐng)求的接收向請(qǐng)求方發(fā)送表示零的令牌的電路。例如、以及參照?qǐng)D4,卸載提供器引擎422 (例如,被配置成服務(wù)于卸載讀取和卸載寫入命令的電路)可以響應(yīng)于請(qǐng)求方發(fā)出的卸載讀取請(qǐng)求向請(qǐng)求方(例如,應(yīng)用424)發(fā)送表示零的令牌??梢允褂眯遁d讀取請(qǐng)求通過生成和向請(qǐng)求方發(fā)送令牌從一個(gè)地點(diǎn)向另一個(gè)高效復(fù)制數(shù)據(jù),令牌表示請(qǐng)求數(shù)據(jù)而非把數(shù)據(jù)復(fù)制到請(qǐng)求方的存儲(chǔ)器中并隨后把數(shù)據(jù)發(fā)送給目的地。卸載讀取和卸載寫入命令可以用來(lái)當(dāng)目的地點(diǎn)辨識(shí)源地點(diǎn)生成的令牌時(shí)取得副本卸載以及可以把令牌表示的數(shù)據(jù)在邏輯上寫入到目的地。在源生成的公知零令牌的情形中,目的地不需要訪問底層存儲(chǔ),例如,存儲(chǔ)裝置106,其在此具體實(shí)施中可以是SAN目標(biāo)。在此實(shí)例中,卸載讀取請(qǐng)求可以是對(duì)具有一個(gè)或更多個(gè)虛擬盤擴(kuò)展中存儲(chǔ) 的數(shù)據(jù)的一個(gè)或更多個(gè)文件執(zhí)行卸載讀取操作,其中之一與表明使虛擬盤擴(kuò)展為零的狀態(tài)信息相關(guān)聯(lián)。在此實(shí)例中,可以通過生成公知零令牌值和向請(qǐng)求方返回該公知零令牌來(lái)服務(wù)于卸載讀取請(qǐng)求??梢园研遁d讀取請(qǐng)求發(fā)送給卸載提供器引擎422。卸載提供器引擎422可以接收請(qǐng)求和向虛擬盤解析器404發(fā)送針對(duì)虛擬盤擴(kuò)展中存儲(chǔ)的數(shù)據(jù)的消息。虛擬盤解析器404可以接收請(qǐng)求,讀取虛擬盤擴(kuò)展的狀態(tài)信息,以及在此具體實(shí)例中確定該狀態(tài)信息表明使此虛擬盤擴(kuò)展為零。虛擬盤解析器404可以向卸載提供器引擎422回送表明虛擬盤擴(kuò)展是全零的消息,卸載提供器引擎422可以生成表明請(qǐng)求數(shù)據(jù)是全零(例如,描述虛擬盤塊的扇區(qū)的范圍是全零)的公知令牌值,以及把公知零令牌發(fā)送給請(qǐng)求方。在具體實(shí)例中,可以向SAN轉(zhuǎn)發(fā)卸載請(qǐng)求而非通過計(jì)算機(jī)系統(tǒng)400、存儲(chǔ)業(yè)務(wù)500、或者計(jì)算機(jī)系統(tǒng)512處理。在此實(shí)例中,SAN可以生成令牌并把它返回給虛擬盤解析器404,其可以隨后把零令牌發(fā)送給請(qǐng)求方。在又一實(shí)例中,當(dāng)卸載提供器引擎422接收到表明虛擬盤擴(kuò)展是全零的消息時(shí),卸載提供器引擎422可以生成公知零令牌,其實(shí)際上通過把數(shù)據(jù)識(shí)別成與任何其它零數(shù)據(jù)等同并共享與公知零令牌相關(guān)聯(lián)的區(qū)域、實(shí)現(xiàn)把請(qǐng)求的零數(shù)據(jù)在邏輯上復(fù)制到與令牌相關(guān)聯(lián)的單獨(dú)區(qū)域中。在卸載提供器引擎422隨后接收到指定先前向請(qǐng)求方發(fā)送的令牌的卸載寫入的情況下,卸載提供器引擎422可以把數(shù)據(jù)從與令牌相關(guān)聯(lián)的區(qū)域在邏輯上復(fù)制到請(qǐng)求方指定的偏移量處。現(xiàn)在轉(zhuǎn)到圖14,它示例了用于收回虛擬盤文件空間的操作流程,包括操作1400、1402、1404、以及1406。如圖所示,操作1400開始操作流程,操作1402示出了計(jì)算機(jī)系統(tǒng)可以包括用于接收表明不再使用虛擬盤擴(kuò)展的一部分的信號(hào)的電路,虛擬盤擴(kuò)展是虛擬盤(402)的一部分,虛擬盤(402)存儲(chǔ)在虛擬盤文件中。例如、以及轉(zhuǎn)到圖4,虛擬盤解析器404可以被配置成實(shí)例化虛擬盤402。文件系統(tǒng)414可以向虛擬盤解析器404發(fā)送表明它不再正使用虛擬盤402的一部分(即,虛擬盤擴(kuò)展扇區(qū)的范圍)的信號(hào)。在具體實(shí)例中,信號(hào)可以是修剪命令。在具體實(shí)例中,虛擬盤解析器404接收的信號(hào)可以識(shí)別定義不再正使用的扇區(qū)的范圍(其可以是虛擬盤擴(kuò)展的第一個(gè)部分)的字節(jié)偏移值。
繼續(xù)圖14的描述,操作1404示出了計(jì)算機(jī)系統(tǒng)還可以包括被配置成識(shí)別描述虛擬盤擴(kuò)展部分的虛擬盤文件(406,600,602,604,606,608,610,612, 702,1002)的一部分的電路。返回參照?qǐng)D7,虛擬盤解析器404可以接收信號(hào)和識(shí)別例如虛擬盤擴(kuò)展0的第一部分的虛擬盤字節(jié)偏移值。響應(yīng)于信號(hào)的接收,虛擬盤解析器404可以檢查分配表416以確定與信號(hào)相關(guān)聯(lián)的虛擬盤字節(jié)偏移值對(duì)應(yīng)的虛擬盤文件702的部分?,F(xiàn)在轉(zhuǎn)到圖14的操作1406,它示出了計(jì)算機(jī)系統(tǒng)可以包括用于向被配置成把虛擬盤文件(406,600,602,604,606,608,610,612,702,1002)存儲(chǔ)在存儲(chǔ)裝置中的文件系統(tǒng)發(fā)送用以修剪虛擬盤文件(406,600,602,604,606,608,610,612, 702,1002)識(shí)別部分的請(qǐng)求的電路。例如、以及再次參照?qǐng)D7,虛擬盤解析器404可以確定把信號(hào)識(shí)別為小于整個(gè)虛擬盤擴(kuò)展。例如,信號(hào)可以表明扇區(qū)的范圍不包括虛擬盤擴(kuò)展的所有扇區(qū)。響應(yīng)于此確定,虛擬盤解析器404可以向主管虛擬盤文件702的文件系統(tǒng)(例如,虛擬化系統(tǒng)文件系統(tǒng)408)發(fā)出用以修剪虛擬盤擴(kuò)展的修剪部分對(duì)應(yīng)的虛擬盤文件702的部分的請(qǐng)求。虛擬化系統(tǒng)文件系統(tǒng)408可以被配置成通過修剪虛擬盤文件406、刷新來(lái)自高速緩沖存儲(chǔ)器的數(shù)據(jù)、清除內(nèi)部緩存器、把修剪發(fā)送給存儲(chǔ)文件系統(tǒng)數(shù)據(jù)的盤等使用修剪命令和從它獲益。 在具體實(shí)例中,虛擬盤解析器404可以被配置成響應(yīng)于確定用以修剪虛擬盤文件一部分的請(qǐng)求未涵蓋整個(gè)擴(kuò)展、向底層文件系統(tǒng)發(fā)出修剪命令。例如,假設(shè)信號(hào)識(shí)別出不再使用虛擬盤擴(kuò)展的前600個(gè)扇區(qū)且虛擬盤解析器404可以確定虛擬盤擴(kuò)展的前600個(gè)扇區(qū)小于構(gòu)建虛擬盤擴(kuò)展的1024個(gè)扇區(qū)。響應(yīng)于此確定,虛擬盤解析器404可以訪問分配表416,以及確定描述了描述虛擬盤擴(kuò)展的虛擬盤文件702區(qū)段前600個(gè)扇區(qū)的虛擬盤文件字節(jié)偏移量、和向主管虛擬盤文件702的文件系統(tǒng)發(fā)送用以修剪虛擬盤文件702此部分的請(qǐng)求?,F(xiàn)在轉(zhuǎn)到圖15,它示例了可以結(jié)合圖14描繪的那些來(lái)執(zhí)行的額外操作?,F(xiàn)在轉(zhuǎn)到操作1508,它示出了計(jì)算機(jī)系統(tǒng)可以額外包括用于基于表明使虛擬盤擴(kuò)展為零的狀態(tài)信息、響應(yīng)于與虛擬盤擴(kuò)展相關(guān)聯(lián)的卸載讀取請(qǐng)求的接收、向請(qǐng)求方發(fā)送(1508)表示零的令牌的電路。例如、以及參照?qǐng)D4,卸載提供器引擎422 (例如,被配置成服務(wù)于卸載讀取和卸載寫入命令的電路)可以響應(yīng)于請(qǐng)求方發(fā)出的卸載讀取請(qǐng)求向請(qǐng)求方(例如,應(yīng)用424)發(fā)送表示零的令牌。可以使用卸載讀取請(qǐng)求通過生成和向請(qǐng)求方發(fā)送令牌從一個(gè)地點(diǎn)向另一個(gè)高效復(fù)制數(shù)據(jù),令牌表示請(qǐng)求數(shù)據(jù)而非把數(shù)據(jù)復(fù)制到請(qǐng)求方的存儲(chǔ)器中、隨后把數(shù)據(jù)發(fā)送給目的地。卸載讀取和卸載寫入命令可以用來(lái)在目的地點(diǎn)辨識(shí)源地點(diǎn)生成的令牌時(shí)實(shí)現(xiàn)副本卸載,以及可以把令牌表示的數(shù)據(jù)在邏輯上寫入到目的地。在源生成的公知零令牌的情形中,目的地不需要訪問底層存儲(chǔ),例如,存儲(chǔ)裝置106,其在此具體實(shí)施方式
中可以是SAN目標(biāo)。在此實(shí)例中,卸載讀取請(qǐng)求可以是對(duì)具有一個(gè)或更多個(gè)虛擬盤擴(kuò)展中存儲(chǔ)的數(shù)據(jù)的一個(gè)或更多個(gè)文件執(zhí)行卸載讀取操作,其中之一與表明使虛擬盤擴(kuò)展為零的狀態(tài)信息相關(guān)聯(lián)。在此實(shí)例中,可以通過生成公知零令牌值和向請(qǐng)求方返回該公知零令牌來(lái)服務(wù)于卸載讀取請(qǐng)求。繼續(xù)圖15的描述,操作1510示出了計(jì)算機(jī)系統(tǒng)可以包括用于從虛擬盤文件的組中選擇(1510)子組的電路;以及用于生成(1510)識(shí)別包括數(shù)據(jù)的子組的扇區(qū)和透明子組的扇區(qū)的信息的電路。在示范性實(shí)施例中,可以從多個(gè)虛擬盤文件實(shí)例化虛擬盤402。或者換言之,可以從M個(gè)虛擬盤文件形成虛擬盤402(其中,M是大于I的整數(shù))。在此示范性實(shí)施例中,虛擬盤解析器404可以被配置成從例如管理員接收請(qǐng)求以確定在給定字節(jié)偏移量處開始的、虛擬盤402上接下來(lái)的字節(jié)偏移量,其與虛擬盤文件的子組內(nèi)定義的扇區(qū)相關(guān)聯(lián)。例如、以及參照?qǐng)D10,虛擬盤解析器404可以接收在虛擬盤擴(kuò)展2的第一個(gè)扇區(qū)對(duì)應(yīng)的虛擬盤偏移量處開始的接下來(lái)定義的字節(jié)偏移量的請(qǐng)求和表明子組包括虛擬盤文件1002和虛擬盤文件1004的信息。在此實(shí)例中,虛擬盤解析器404可以開始掃描(scan through)子組并確定接下來(lái)定義的字節(jié)偏移量是虛擬盤擴(kuò)展3的開始對(duì)應(yīng)的扇區(qū)。由于在此實(shí)例中,虛擬盤擴(kuò)展2中的數(shù)據(jù)被虛擬盤文件1006的區(qū)段支持,所以它在查找之外且未如定義的一樣返回。繼續(xù)圖15的描述,操作1512示出了計(jì)算機(jī)系統(tǒng)可以包括被配置成響應(yīng)于確定使虛擬盤擴(kuò)展為零、使虛擬盤擴(kuò)展從虛擬盤文件(406,600,602,604,606,608,610,612,702,1002)分離并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明使虛擬盤擴(kuò)展已為零的電路。例 如、以及轉(zhuǎn)到圖7,在實(shí)施例中虛擬盤解析器404可以確定使虛擬盤擴(kuò)展已為零。例如,虛擬盤解析器404可以接收用以向虛擬盤擴(kuò)展(例如,虛擬盤擴(kuò)展7)寫入公知零令牌表示的數(shù)據(jù)的請(qǐng)求。虛擬盤解析器404可以根據(jù)與請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)確定請(qǐng)求用于整個(gè)虛擬盤擴(kuò)展,即,字節(jié)偏移值可以在擴(kuò)展7的第一個(gè)扇區(qū)處開始和在擴(kuò)展7的最后扇區(qū)處結(jié)束。響應(yīng)于這種確定、以及并非把零寫入到虛擬盤文件702的對(duì)應(yīng)區(qū)段,虛擬盤解析器404可以被配置成去除把虛擬盤擴(kuò)展7映射到用來(lái)描述虛擬盤擴(kuò)展7的虛擬盤文件702的區(qū)段的鏈接、以及使虛擬盤擴(kuò)展與表明虛擬盤擴(kuò)展是全零的信息相關(guān)聯(lián)。例如,虛擬盤解析器404可以在分配表416中寫入表明虛擬盤擴(kuò)展包括全零的八個(gè)字節(jié)的信息。此操作的最終結(jié)果是即使虛擬盤文件中不存在正逐位地描述擴(kuò)展的部分,也可以重新使用虛擬盤文件702的區(qū)段來(lái)存儲(chǔ)其它虛擬盤擴(kuò)展的數(shù)據(jù),并且將會(huì)仿佛虛擬盤擴(kuò)展包括全零一樣來(lái)讀取虛擬盤擴(kuò)展。繼續(xù)圖15的描述,操作1514示出了計(jì)算機(jī)系統(tǒng)可以額外包括如下電路該電路被配置成響應(yīng)于文件系統(tǒng)認(rèn)為虛擬盤擴(kuò)展為自由空間的確定、使虛擬盤擴(kuò)展從虛擬盤文件分離并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展是自由空間。例如、以及再次轉(zhuǎn)到圖7,虛擬盤解析器404可以確定文件系統(tǒng)414已使虛擬盤擴(kuò)展與表明它是自由空間(即,文件系統(tǒng)414未使用的空間)的信息相關(guān)聯(lián)。例如,虛擬盤解析器404可以接收來(lái)自文件系統(tǒng)414的、表明扇區(qū)的范圍涵蓋虛擬盤擴(kuò)展(例如虛擬盤擴(kuò)展3)的信號(hào)、以及表明認(rèn)為扇區(qū)是自由空間的信息。響應(yīng)于這種信號(hào)的接收,虛擬盤解析器404可以被配置成去除把虛擬盤擴(kuò)展鏈接到虛擬盤文件702的區(qū)段的信息。此操作的結(jié)果是可以重新使用虛擬盤文件702的區(qū)段以存儲(chǔ)其它虛擬盤擴(kuò)展的數(shù)據(jù)。虛擬盤解析器404可以額外使虛擬盤擴(kuò)展與表明虛擬盤擴(kuò)展包括任意數(shù)據(jù)(即,虛擬盤的任何部分中先前存儲(chǔ)的數(shù)據(jù)、全零、或者全一)的信息相關(guān)聯(lián)。結(jié)果是,可以通過返回虛擬盤中先前存儲(chǔ)的任意數(shù)據(jù)來(lái)操控針對(duì)此虛擬盤擴(kuò)展的讀取操作。另外,在虛擬盤解析器404被配置成允許任意數(shù)據(jù)在每次接收到讀取操作時(shí)改變的情況下,任意數(shù)據(jù)可以可選地在每次接收到讀取操作時(shí)改變。繼續(xù)圖15的描述,操作1516示出了計(jì)算機(jī)系統(tǒng)可以額外包括如下電路該電路被配置成響應(yīng)于虛擬盤擴(kuò)展被修剪的確定、使擴(kuò)展從虛擬盤文件分離并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展包括非信息公開位模式。例如、以及再次轉(zhuǎn)到圖7,虛擬盤解析器404可以確定文件系統(tǒng)414已修剪了構(gòu)成虛擬盤擴(kuò)展的扇區(qū)的范圍。響應(yīng)于這種確定,虛擬盤解析器404可以去除把虛擬盤擴(kuò)展鏈接到虛擬盤文件702的區(qū)段的分配表416中的信息。此操作的結(jié)果是可以重新使用虛擬盤文件702的區(qū)段以存儲(chǔ)其它虛擬盤擴(kuò)展的數(shù)據(jù)。虛擬盤解析器404可以額外使虛擬盤擴(kuò)展與表明虛擬盤擴(kuò)展包括非信息公開位模式(例如,全零、一、或者隨機(jī)生成的位模式)的信息相關(guān)聯(lián)。結(jié)果是,可以通過返回非信息公開位模式來(lái)操控針對(duì)此虛擬盤擴(kuò)展的讀取操作。在具體優(yōu)選實(shí)施方式中,非信息公開位模式可以是全零。然而,這與上述零狀態(tài)不同,原因在于可以使用零狀態(tài)來(lái)表示有含義的零(即,有意使虛擬盤擴(kuò)展為零的情況)。參考操作1518,它示出了計(jì)算機(jī)系統(tǒng)可以額外包括被配置成向控制虛擬盤的文件系統(tǒng)(414)發(fā)送(1518)用以發(fā)出修剪命令的請(qǐng)求的電路。返回參照?qǐng)D7,虛擬盤解析器404可以被配置成發(fā)出文件系統(tǒng)414發(fā)出一個(gè)或更多個(gè)修剪命令的請(qǐng)求。在示范性配置中,虛擬盤解析器404可以被配置成周期性地發(fā)送這種請(qǐng)求或基于預(yù)定準(zhǔn)則發(fā)送這種請(qǐng)求,例如,當(dāng)VM 410開始時(shí)或在要關(guān)斷VM之前不久。響應(yīng)于這種請(qǐng)求,文件系統(tǒng)414可以向虛擬盤解析器404發(fā)出識(shí)別虛擬盤402的未使用扇區(qū)的一個(gè)或更多個(gè)修剪命令。虛擬盤解析器404可以隨后接收來(lái)自修剪命令的修剪信息,如,文件系統(tǒng)414不再使用的扇區(qū)范圍和可選地表明是否認(rèn)為修剪扇區(qū)為自由空間的信息。虛擬盤解析器404可以接收信息和使用它來(lái) 更新分配表416中存儲(chǔ)的狀態(tài)信息以及可能收回虛擬盤文件702的未使用區(qū)段。現(xiàn)在轉(zhuǎn)到圖16,它示例了用于存儲(chǔ)虛擬機(jī)數(shù)據(jù)的操作流程。操作流程通過操作1600開始并轉(zhuǎn)變?yōu)槊枋鋈缦虑闆r的操作1602 :該情況下,計(jì)算機(jī)系統(tǒng)可以包括用于執(zhí)行(1602)包括虛擬機(jī)內(nèi)文件系統(tǒng)的訪客操作系統(tǒng)(220,222,412,518)的電路。例如、以及參照?qǐng)D4,虛擬化系統(tǒng)420 (其可以是圖3的管理程序302或主機(jī)環(huán)境204執(zhí)行的功能和圖2的微核管理程序202的組合)可以實(shí)例化虛擬機(jī)410并在其內(nèi)運(yùn)行訪客操作系統(tǒng)(如,訪客操作系統(tǒng)412)。在此實(shí)例中,訪客操作系統(tǒng)412可以包括文件系統(tǒng)414,其可以是組織和控制用于訪客操作系統(tǒng)412的數(shù)據(jù)的可執(zhí)行指令。繼續(xù)圖16的描述,操作1604示出了計(jì)算機(jī)系統(tǒng)可以包括用于向訪客操作系統(tǒng)(220,222,412,508)暴露(1604)虛擬存儲(chǔ)裝置(402)的電路,虛擬存儲(chǔ)裝置(402)包括虛擬盤擴(kuò)展,使虛擬盤擴(kuò)展從虛擬盤文件分離。轉(zhuǎn)回到圖4,虛擬化系統(tǒng)420可以把虛擬盤402暴露給訪客操作系統(tǒng)412。例如,虛擬盤解析器404可以與存儲(chǔ)虛擬化業(yè)務(wù)提供器通信,該提供器可操作用于與在訪客操作系統(tǒng)410內(nèi)運(yùn)行的存儲(chǔ)虛擬化業(yè)務(wù)客戶端通信。在具體實(shí)例中,存儲(chǔ)虛擬化業(yè)務(wù)客戶端可以是訪客操作系統(tǒng)412內(nèi)安裝的驅(qū)動(dòng)器,其向訪客告知它可以與存儲(chǔ)裝置通信。在此實(shí)例中,文件系統(tǒng)414發(fā)送的IO任務(wù)經(jīng)由通信通道(例如,存儲(chǔ)器的區(qū)域和跨分區(qū)通知設(shè)施)首先被發(fā)送給存儲(chǔ)虛擬化業(yè)務(wù)客戶端、隨后向存儲(chǔ)虛擬化業(yè)務(wù)提供器發(fā)送。被虛擬盤解析器404打開和用來(lái)存儲(chǔ)虛擬盤402的數(shù)據(jù)的一個(gè)或更多個(gè)虛擬盤文件406可以構(gòu)成虛擬盤402。在具體實(shí)例中,可以通過圖7的虛擬盤文件702至少部分地描述虛擬盤402。在另一具體實(shí)例中、以及轉(zhuǎn)到圖10,可以通過一組虛擬盤文件(1002 -1006)描述虛擬盤402。在任一情形中、以及回到圖4,虛擬盤402可以包括多個(gè)虛擬盤擴(kuò)展,可以使虛擬盤擴(kuò)展中的一個(gè)分離,即,不通過它的相關(guān)聯(lián)的虛擬盤文件內(nèi)的任何空間逐位地描述。繼續(xù)圖16的描述,操作1606示出了計(jì)算機(jī)系統(tǒng)可以包括用于接收(1606)用以向虛擬盤擴(kuò)展寫入數(shù)據(jù)的請(qǐng)求的電路。轉(zhuǎn)回到圖7,虛擬盤解析器404可以接收用以向在虛擬盤文件702中不具有相關(guān)聯(lián)空間的虛擬盤擴(kuò)展寫入數(shù)據(jù)的請(qǐng)求。例如,可以接收指定表明在虛擬盤擴(kuò)展內(nèi)的虛擬盤扇區(qū)地址的偏移值的IO任務(wù)。轉(zhuǎn)回到圖16,操作1608示出了計(jì)算機(jī)系統(tǒng)可以可選地包括用于確定(1608)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息表明虛擬盤擴(kuò)展是自由空間的電路。響應(yīng)于IO任務(wù)的接收,虛擬盤解析器404可以訪問分配表416以及讀取與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息。在此實(shí)例中,虛擬盤擴(kuò)展可以與表明虛擬盤擴(kuò)展是自由空間(即,文件系統(tǒng)414未正使用虛擬盤擴(kuò)展,以及可以通過任意數(shù)據(jù)應(yīng)答對(duì)虛擬盤擴(kuò)展的讀取操作)的信息相關(guān)聯(lián)。參照?qǐng)D16,操作1610示出了計(jì)算機(jī)系統(tǒng)可以可選地包括用于在不覆蓋虛擬盤文件的區(qū)段內(nèi)的預(yù)先存在的位模式的情況下、分配(1610)虛擬盤文件(406,600,602,604,
606,608,610,612,702,1002)的區(qū)段以描述虛擬盤擴(kuò)展的電路。例如、以及回到圖7,響應(yīng)于寫入IO任務(wù)的接收,虛擬盤解析器404可以定位未正被使用的虛擬盤文件702中的區(qū)段以及將其分配以存儲(chǔ)虛擬擴(kuò)展的數(shù)據(jù)。例如,虛擬盤解析器404可以在分配表416中寫入把虛擬盤擴(kuò)展鏈接到虛擬盤文件702的分配區(qū)段的字節(jié)偏移值的信息。 在此實(shí)例中,由于狀態(tài)信息表明文件系統(tǒng)414已把虛擬盤擴(kuò)展5識(shí)別為自由空間,所以虛擬盤解析器404不會(huì)在使用區(qū)段來(lái)描述虛擬盤擴(kuò)展以前、(通過寫入全零、一、或者任何其它非信息公開位模式)覆蓋虛擬盤文件702的區(qū)段中存儲(chǔ)的、區(qū)段內(nèi)已有的任何位模式(例如,來(lái)自一些刪除文件的數(shù)據(jù)和/或任意數(shù)據(jù))。這提供節(jié)省處理器周期和IO任務(wù)的附加益處,其否則將會(huì)用來(lái)覆蓋虛擬盤擴(kuò)展的區(qū)段。參考圖16的操作1612,它示出了計(jì)算機(jī)系統(tǒng)可以可選地包括用于修改(1612)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明把虛擬盤擴(kuò)展映射到虛擬盤文件的分配區(qū)段的電路。例如、以及轉(zhuǎn)回到圖7,虛擬盤解析器404可以修改(例如,在存儲(chǔ)器中覆蓋)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明它是映射的。結(jié)果是,針對(duì)虛擬盤擴(kuò)展扇區(qū)的后續(xù)讀取操作將會(huì)由虛擬盤解析器404通過返回分配區(qū)段的相應(yīng)部分中存儲(chǔ)的位模式來(lái)操控?,F(xiàn)在轉(zhuǎn)到圖16的操作1614,它示出了把數(shù)據(jù)存儲(chǔ)(1614)到虛擬盤文件的分配區(qū)段。轉(zhuǎn)回到圖6,虛擬盤解析器404可以把數(shù)據(jù)(S卩,位模式)寫入到虛擬盤文件702中??梢韵蛱摂M化系統(tǒng)文件系統(tǒng)408發(fā)出表明向虛擬盤文件702寫入的IO任務(wù),最終該改變可以通過永久存儲(chǔ)單元460來(lái)維持?,F(xiàn)在轉(zhuǎn)到圖17,它示出了可以結(jié)合圖16示例的那些來(lái)執(zhí)行的額外操作。轉(zhuǎn)而關(guān)注操作1716,它示出了計(jì)算機(jī)系統(tǒng)可以可選地包括用于響應(yīng)于確定使虛擬盤擴(kuò)展為零、使虛擬盤擴(kuò)展從虛擬盤文件分離并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明使虛擬盤擴(kuò)展已為零的電路。例如、以及轉(zhuǎn)到圖6,在實(shí)施例中虛擬盤解析器404可以確定使虛擬盤擴(kuò)展已為零。例如,虛擬盤解析器404可以接收用以向虛擬盤擴(kuò)展(例如,虛擬盤擴(kuò)展7)寫入由公知零令牌表示的數(shù)據(jù)的卸載寫入請(qǐng)求。虛擬盤解析器404可以根據(jù)與請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)來(lái)確定該請(qǐng)求用于整個(gè)虛擬盤擴(kuò)展,即,字節(jié)偏移值可以在虛擬盤擴(kuò)展7的第一個(gè)扇區(qū)處開始和在虛擬盤擴(kuò)展7的最后扇區(qū)處結(jié)束。響應(yīng)于這種確定、以及并非把零寫入到虛擬盤文件702的相應(yīng)區(qū)段,虛擬盤解析器404可以被配置成去除從虛擬盤擴(kuò)展至分配表416中存儲(chǔ)的虛擬盤文件702的區(qū)段的鏈接、以及使虛擬盤擴(kuò)展與表明虛擬盤擴(kuò)展是全零的信息相關(guān)聯(lián)。繼續(xù)圖17的描述,操作1718示出了計(jì)算機(jī)系統(tǒng)可以可選地包括用于響應(yīng)于來(lái)自文件系統(tǒng)(414)的、把虛擬盤擴(kuò)展識(shí)別成自由空間的信號(hào)的接收、使虛擬盤擴(kuò)展從虛擬盤文件(406,600,602,604,606,608,610,612, 702,1002)分離(1718)并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展包括任意數(shù)據(jù)的電路。例如、以及再次轉(zhuǎn)到圖7,虛擬盤解析器404可以確定文件系統(tǒng)414已使虛擬盤擴(kuò)展與表明它是自由空間(即,文件系統(tǒng)414未使用的空間)的信息相關(guān)聯(lián)。例如,虛擬盤解析器404可以接收來(lái)自文件系統(tǒng)414的、表明涵蓋虛擬盤擴(kuò)展(例如,虛擬盤擴(kuò)展3)的扇區(qū)范圍的信號(hào)、以及表明扇區(qū)是自由空間的信息。響應(yīng)于這種確定,虛擬盤解析器404可以被配置成去除分配表416中把虛擬盤擴(kuò)展鏈接到虛擬盤文件702的區(qū)段的信息、以及使虛擬盤擴(kuò)展與表明可以響應(yīng)于讀取IO任務(wù)的接收返回該任意數(shù)據(jù)(即,虛擬盤的任何部分中先前存儲(chǔ)的數(shù)據(jù)、全零、或者全一)的信息相關(guān)聯(lián)。圖17的操作1720示出了計(jì)算機(jī)系統(tǒng)400可以可選地包括如下電路該電路用于響應(yīng)于用以修剪虛擬盤擴(kuò)展所有扇區(qū)的請(qǐng)求的接收、使虛擬盤擴(kuò)展從虛擬盤文件(406,600,602,604,606,608,610,612,702,1002)分離(1720)并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展包括非信息公開位模式。例如、以及再次轉(zhuǎn)到圖7,虛擬盤解析器 404可以確定構(gòu)成虛擬盤擴(kuò)展的扇區(qū)已被修剪。例如,虛擬盤解析器404可以接收來(lái)自文件系統(tǒng)414的、表明涵蓋虛擬盤擴(kuò)展的扇區(qū)范圍的修剪命令。響應(yīng)于這種信號(hào)的接收,虛擬盤解析器404可以被配置成去除分配表416中把虛擬盤擴(kuò)展鏈接到虛擬盤文件702的區(qū)段的信息、以及使虛擬盤擴(kuò)展與表明虛擬盤擴(kuò)展包括非信息公開位模式的信息相關(guān)聯(lián)。以上具體實(shí)施方式
經(jīng)由實(shí)例和/或操作圖敘述了系統(tǒng)和/或過程的各種實(shí)施例。在這種方框圖、和/或?qū)嵗粋€(gè)或更多個(gè)功能和/或操作的范圍內(nèi),本領(lǐng)域技術(shù)人員將會(huì)理解,可以通過廣泛范圍的硬件、軟件、固件、或者實(shí)質(zhì)上其任何組合來(lái)單獨(dú)地和/或統(tǒng)一實(shí)施這種方框圖、或者實(shí)例內(nèi)的每個(gè)功能和/或操作。雖然已經(jīng)示出和描述了本文中描述的本主題的特定方面,但對(duì)本領(lǐng)域技術(shù)人員而言將會(huì)明顯的是,基于本文中的教導(dǎo),可以在不脫離本文中描述的主題和它的較寬泛方面的情況下做出改變和修改,因此,所附權(quán)利要求要在它們的范圍內(nèi)如在本文中描述的主題的真實(shí)精神和范圍內(nèi)一樣涵蓋所有這種改變和修改。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)施方法,包括 實(shí)例化(1102)包括虛擬盤擴(kuò)展的虛擬盤(402),使虛擬盤擴(kuò)展從虛擬盤文件(406、600、602、604、606、608、610、612、702)分離; 基于與虛擬盤(402)相關(guān)聯(lián)的狀態(tài)信息,在不覆蓋虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的區(qū)段內(nèi)預(yù)先存在的位模式的情況下分配(1104)虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的區(qū)段以描述虛擬盤擴(kuò)展;以及 修改(1106)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明通過虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)描述虛擬盤擴(kuò)展。
2.如權(quán)利要求I所述的方法,進(jìn)一步包括 向控制虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的文件系統(tǒng)(414)發(fā)送(1210)請(qǐng)求以發(fā)出從包括修剪命令、未映射命令、寫入同零命令、以及零令牌卸載寫入命令的命令組中選擇的至少一個(gè)命令。
3.一種計(jì)算機(jī)系統(tǒng)(100、200、300、400、512),包括 處理器(102); 存儲(chǔ)器(104),在把處理器(102)與存儲(chǔ)器(104)上電時(shí),該存儲(chǔ)器耦合到處理器(102),存儲(chǔ)器(104)包括在通過處理器(102)執(zhí)行后使得計(jì)算機(jī)系統(tǒng)(100、200、300、400、512)進(jìn)行如下步驟的指令 接收(1402)表明不再使用虛擬盤擴(kuò)展的一部分的信號(hào),虛擬盤擴(kuò)展是虛擬盤(402)的一部分,把虛擬盤(402)存儲(chǔ)在虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)中; 識(shí)別(1404)描述虛擬盤擴(kuò)展的部分的虛擬盤文件(406、600、602、604、606、608、610、612,702,1002)的一部分;以及 向被配置成把虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)存儲(chǔ)在存儲(chǔ)裝置(106)上的文件系統(tǒng)(414)發(fā)送(1406)用以修剪虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的識(shí)別部分的請(qǐng)求。
4.如權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng)(100、200、300、400、512),存儲(chǔ)器(104)進(jìn)一步包括在執(zhí)行后使得計(jì)算機(jī)系統(tǒng)(100、200、300、400、512)執(zhí)行如下步驟的指令 基于表明使虛擬盤擴(kuò)展為零的狀態(tài)信息,響應(yīng)于與虛擬盤擴(kuò)展相關(guān)聯(lián)的卸載讀取請(qǐng)求的接收向請(qǐng)求方發(fā)送(1508)表示零的令牌。
5.如權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng),虛擬盤文件是一起形成包括虛擬盤擴(kuò)展的虛擬盤的一組虛擬盤文件的成員,存儲(chǔ)器進(jìn)一步包括在執(zhí)行后使得計(jì)算機(jī)系統(tǒng)進(jìn)行如下步驟的指令 從虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的組中選擇(1510)子組;以及 生成(1510)識(shí)別包括數(shù)據(jù)的子組扇區(qū)以及透明子組的扇區(qū)的信息。
6.如權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng),存儲(chǔ)器進(jìn)一步包括在執(zhí)行后使得計(jì)算機(jī)系統(tǒng)進(jìn)行如下步驟的指令 響應(yīng)于確定使虛擬盤擴(kuò)展為零,使虛擬盤擴(kuò)展從虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)分離(1512)并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明使虛擬盤擴(kuò)展已為零。
7.如權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng),存儲(chǔ)器進(jìn)一步包括在執(zhí)行后使得計(jì)算機(jī)系統(tǒng)進(jìn)行如下步驟的指令 向控制虛擬盤(402)的文件系統(tǒng)(414)發(fā)送(1518)用以發(fā)出修剪命令的請(qǐng)求。
8.一種用于存儲(chǔ)虛擬機(jī)數(shù)據(jù)的計(jì)算機(jī)實(shí)施方法,包括 執(zhí)行包括虛擬機(jī)(410,506)內(nèi)文件系統(tǒng)(414)的訪客操作系統(tǒng)(220,222,412,508); 向訪客操作系統(tǒng)(220,222,412,508)暴露(1604)虛擬存儲(chǔ)裝置(402),虛擬存儲(chǔ)裝置(402)包括虛擬盤擴(kuò)展,使虛擬盤擴(kuò)展從虛擬盤文件(406、600、602、604、606、608、610、612、.702、1002)分離; 接收(1606)用以向虛擬盤擴(kuò)展寫入數(shù)據(jù)的請(qǐng)求; 確定(1608)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息表明虛擬盤擴(kuò)展是自由空間; 在不覆蓋虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的區(qū)段內(nèi)預(yù)先存在的位模式的情況下分配(1610)虛擬盤文件(406、600、602、604、606、608、610、612、.702、1002)的區(qū)段以描述虛擬盤擴(kuò)展; 修改(1612)與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明把虛擬盤擴(kuò)展映射到虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的分配區(qū)段;以及 把數(shù)據(jù)存儲(chǔ)(1614)到虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)的分配區(qū)段。
9.如權(quán)利要求8所述的方法,進(jìn)一步包括 響應(yīng)于來(lái)自文件系統(tǒng)(414)的、把虛擬盤擴(kuò)展識(shí)別成自由空間的信號(hào)的接收,使虛擬盤擴(kuò)展從虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)分離(1718)并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展包括任意數(shù)據(jù)。
10.如權(quán)利要求8所述的方法,進(jìn)一步包括 響應(yīng)于用以修剪虛擬盤擴(kuò)展的所有扇區(qū)的請(qǐng)求的接收,使虛擬盤擴(kuò)展從虛擬盤文件(406、600、602、604、606、608、610、612、702、1002)分離(1720)并修改與虛擬盤擴(kuò)展相關(guān)聯(lián)的狀態(tài)信息以表明虛擬盤擴(kuò)展包括非信息公開位模式。
11.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(110),包括在通過處理器(102)執(zhí)行后使得處理器(102)執(zhí)行按照權(quán)利要求I 一 2,8 — 10中任一項(xiàng)的方法。
全文摘要
本文描述用于存儲(chǔ)虛擬盤載荷數(shù)據(jù)的技術(shù)。在示范性配置中,每個(gè)虛擬盤擴(kuò)展可以與表明虛擬盤擴(kuò)展是否通過虛擬盤文件來(lái)描述的狀態(tài)信息相關(guān)聯(lián)。在某些情況下可以收回用來(lái)描述虛擬盤擴(kuò)展的空間,以及可以使用狀態(tài)信息來(lái)確定如何操控針對(duì)虛擬盤擴(kuò)展的讀取和/或?qū)懭氩僮鳌3艘陨蟽?nèi)容之外,在本文的權(quán)利要求、圖、以及具體實(shí)施方式
中描述了其它技術(shù)。
文檔編號(hào)G06F3/06GK102707900SQ201210060920
公開日2012年10月3日 申請(qǐng)日期2012年3月9日 優(yōu)先權(quán)日2011年3月11日
發(fā)明者D.L.格林, J.A.斯塔克斯, K.梅拉, M.約翰, N.R.克里斯蒂安森, S.拉賈拉姆, T.W.哈里斯, 戴中寧 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
新安县| 临颍县| 万荣县| 彭阳县| 玉溪市| 康保县| 宁陵县| 芒康县| 新田县| 双桥区| 大邑县| 兰西县| 金华市| 新邵县| 买车| 浠水县| 洛隆县| 望奎县| 久治县| 镇原县| 光泽县| 姚安县| 赤水市| 福州市| 岳阳市| 石狮市| 望奎县| 高邑县| 广丰县| 大余县| 乌拉特中旗| 晋江市| 麻城市| 阳信县| 广灵县| 遂昌县| 枣强县| 新丰县| 新闻| 沧源| 精河县|