復(fù)制虛擬機器的存儲器數(shù)據(jù)的方法、程序產(chǎn)品及系統(tǒng)的制作方法
【專利摘要】復(fù)制虛擬機器的存儲器數(shù)據(jù)的方法、程序產(chǎn)品及系統(tǒng)。在此提出一種快速復(fù)制源虛擬機器(Virtual?Machine,VM)以及至少一個被復(fù)制虛擬機器(Cloned?Virtual?Machine)存儲器數(shù)據(jù)的方法。來自源虛擬機器或被復(fù)制的虛擬機器的訪客物理地址與存儲器中的主機物理地址之間的映射關(guān)系,是由多個分層級別中所配置的多個頁表所定義。在所述方法中,將所述多個分層級別的最高級別或較高級別中的頁表的元數(shù)據(jù)復(fù)制到虛擬機器。多個分層級別中最高級別或較高級別以外級別中的頁表剩下的元數(shù)據(jù)將根據(jù)存取的操作而復(fù)制到所述虛擬機器。根據(jù)元數(shù)據(jù)以及被復(fù)制的元數(shù)據(jù)來存取存儲于所述存儲器的對應(yīng)地址中的數(shù)據(jù)。
【專利說明】復(fù)制虛擬機器的存儲器數(shù)據(jù)的方法、程序產(chǎn)品及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本公開涉及一種復(fù)制虛擬機器存儲器的數(shù)據(jù)的方法。
【背景技術(shù)】
[0002]系統(tǒng)虛擬化(System Virtualization)是將共用平臺上的資源聚集以及抽象化。此抽象化過程是將軟件與硬件分離,而且使多個操作系統(tǒng)映像文件能夠并行地在單一實體平臺上運行,而不會相互干擾。虛擬化可將需要經(jīng)由許多實體機上運行的工作負載,合并到單一實體機上運行的多個虛擬機器進行,如此可增加計算資源的利用率。而此合并可大大減少數(shù)據(jù)中心中所需要的電力消耗以及占地面積??墒褂眉惺焦芾斫缑鎭硪勒招枨蠊?yīng)虛擬機器、對其進行復(fù)制和遷移。
[0003]為了使得多個操作系統(tǒng)能夠在同一實體平臺上運行,以軟件方式運作的一平臺層(Platform layer)可將操作系統(tǒng)與硬件分離。此層被稱作虛擬機器管理程序(Hypervisor)或虛擬機器監(jiān)控程序(Virtual Machine Monitor, VMM)。在系統(tǒng)虛擬化的架構(gòu)下,被虛擬化的操作系統(tǒng)稱作“客操作系統(tǒng)(GuestOperating System)”。為了適當?shù)靥摂M化并隔離訪客,虛擬機器管理程序或虛擬機器監(jiān)控程序(VMM)必須控制或調(diào)節(jié)訪客所執(zhí)行的所有特權(quán)操作。虛擬機器管理程序可使用各種技術(shù)來完成此控制或調(diào)節(jié)。
[0004]在虛擬化環(huán)境或用于系統(tǒng)虛擬化的平臺中,需注意虛擬機器(VM)的快速或近乎即時的復(fù)制。此技術(shù)可用于負載平衡(Load Balancing)、預(yù)先部署測試(Pre-deploymentTesting)、預(yù)測執(zhí)行(Speculative Execution)、數(shù)據(jù)探勘(DataMiming)以及在大的數(shù)據(jù)中心所進行的病毒掃描或惡意軟件分析。當載入或準備要執(zhí)行未知軟件時,進行未知軟件的執(zhí)行可能會被防毒程序或代理攔截或中斷。此時,可能提前請求快速復(fù)制虛擬機器。被復(fù)制的虛擬機具有同父級虛擬機器或原始虛擬機器相同的操作環(huán)境以及狀態(tài)。此代理可在執(zhí)行病毒掃描或惡意軟件分析的同時,任意地執(zhí)行此未知軟件。甚至在所述軟件的執(zhí)行可能導致所述虛擬機器崩潰或癱瘓的情況下,原始虛擬機器仍不會受到影響,這是因為損壞只發(fā)生在被復(fù)制的虛擬機器上。
[0005]在傳統(tǒng)技術(shù)中,即時遷移(Live Migration)技術(shù)常用于虛擬機器的快速或近乎即時的復(fù)制。即時遷移允許服務(wù)器管理員在不停止與用戶端的連接或是停止應(yīng)用程序的情況下,在不同的實體機器之間轉(zhuǎn)移正在運行中的虛擬機器或應(yīng)用。而對于一個成功的即時遷移而言,需要將虛擬機器的存儲器、存儲裝置以及網(wǎng)絡(luò)連接遷移到目的地。但是,虛擬機器的復(fù)制在存儲器、存儲裝置或磁片的數(shù)據(jù)移轉(zhuǎn)完成之后才能開始,而如此則可能無法滿足虛擬機器快速或近乎即時的復(fù)制的需要。
[0006]在傳統(tǒng)技術(shù)中,快照(Snapshot)機制也常被提及用來快速復(fù)制虛擬機器以及初始化被復(fù)制的虛擬機器。但是,執(zhí)行此快照機制需要將原始虛擬機器關(guān)閉或令其處于停頓狀態(tài)中,如此達成處于執(zhí)行狀態(tài)中的虛擬機器的復(fù)制。此快照機制可用來快速地復(fù)制大量虛擬機器,但對復(fù)制卻并不支持即時隔離環(huán)境。在其他傳統(tǒng)技術(shù)中,在執(zhí)行復(fù)制源虛擬機器的過程期間,用來復(fù)制存儲在實體存儲器中的數(shù)據(jù)的方法可能會將源虛擬機器的全部元數(shù)據(jù)復(fù)制到目標虛擬機器。而在目標虛擬機器中的元數(shù)據(jù)(例如,頁表)將會被重新引導到源虛擬機器的存儲器中。兩個元數(shù)據(jù)所指向的存儲器的所有頁中所存儲的信息將會被標記為“只讀”。寫時復(fù)制(Copy-on-write,COW)將用于存取操作。但是,在頁表目錄(Page TableDirectory, PTD)結(jié)構(gòu)中,將分頁表項目(Page Table Entry, PTE)設(shè)定為只讀的唯一方法為遍歷(Traverse)整個頁表,并將所有分頁表項目的讀取標志(Flag)改變?yōu)椤爸蛔x”。此類操作所耗時間幾乎與復(fù)制整個頁表所耗時間相同。如果存儲器容量按需要增加,那么此類操作所耗時間將同樣增加。如果存儲器容量達到幾千百萬字節(jié)(GB)或以上,那么所耗時間將增加到幾秒鐘以上甚至更多,而此要求將無法滿足虛擬機器(VM)的快速或近乎即時的復(fù)制技術(shù)。
【發(fā)明內(nèi)容】
[0007]本公開內(nèi)容提供一種示范性實施例之一,包括一種復(fù)制源虛擬機器(VM)以及至少一個被復(fù)制的虛擬機器的存儲器中的數(shù)據(jù)的方法。來自源虛擬機器或被復(fù)制的虛擬機器的訪客物理地址與所述存儲器的主機物理地址之間的映射關(guān)系是由多個分層級別中所配置的多個頁表來予以定義。所述方法包括:將所述多個分層級別的最高級別或較高級別中的頁表的元數(shù)據(jù)復(fù)制到所述虛擬機器;將所述多個分層級別中最高級別或較高級別以外的級別中的頁表的剩余元數(shù)據(jù)根據(jù)存取的操作而對應(yīng)復(fù)制到所述虛擬機器;以及根據(jù)所述元數(shù)據(jù)以及所復(fù)制的元數(shù)據(jù)來存取存儲于所述存儲器的對應(yīng)地址中的數(shù)據(jù)。
[0008]為讓本公開的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉優(yōu)選實施例,并配合附圖,作詳細說明如下。
【專利附圖】
【附圖說明】
[0009]圖1A用以繪示多個示范性實施例其中之一的新頁表結(jié)構(gòu)示意圖。
[0010]圖1B以及圖1C用以繪示通過四個級別的頁表在訪客物理地址與主機物理地址之間建立映射的一個實施例示意圖。
[0011]圖2用以繪示在多個示范性實施例其中之一,復(fù)制虛擬機器存儲器狀態(tài)的方法的流程示意圖。
[0012]圖3用以繪示在B樹狀存儲器管理算法中在源虛擬機器與實體存儲器之間的關(guān)系示意圖。
[0013]圖4A以及圖4B用以繪示在本公開的多個示范性實施例其中之一,在無計數(shù)器的情況下復(fù)制虛擬機器存儲器狀態(tài)的方法示意圖。
[0014]圖5A以及圖5B用以繪示在本公開的多個示范性實施例其中之一,在有計數(shù)器的情況下復(fù)制虛擬機器存儲器狀態(tài)的方法示意圖。
[0015]圖6A以及圖6B用以繪示在本公開的多個示范性實施例其中之一,在有計數(shù)器的情況下復(fù)制虛擬機器的虛擬機器存儲器狀態(tài)的方法示意圖。
[0016]【主要元件符號說明】
[0017]102:訪客 IA-32 頁表
[0018]104:多級頁表
[0019]106:線性或虛擬地址[0020]108:基準指針(Base Pointer)
[0021]110、112、114 以及 116:頁表
[0022]341、342、343 以及 344:區(qū)塊
[0023]320:源虛擬機器
[0024]322、332、332a、332b:訪客頁表
[0025]330、330a、330b:目標虛擬機器
[0026]340:元數(shù)據(jù)層
[0027]341、342、343 以及 344:路徑
[0028]360:實體存儲器
[0029]362:頁
[0030]402、404、406、408、410、412:頁表
[0031]406a、410a、412a:頁表
[0032]411:路徑
[0033]502、504、506、508、510、512:頁表
[0034]506a、510a、512a:頁表
[0035]602、604、606、610、612:頁表
[0036]606a、610a、612a:頁表
[0037]606b、610b、612b:頁表
【具體實施方式】
[0038]本公開提供一種快速復(fù)制存儲于虛擬機器(VM)的存儲器中的數(shù)據(jù)的方法。示范性實施例之一包括提供一種通過存取時復(fù)制(Copy-0n-ACCeSs,C0A)復(fù)制元數(shù)據(jù),以及通過寫時復(fù)制(Copy-on-write,COW)復(fù)制數(shù)據(jù),以便快速復(fù)制虛擬機器的存儲器數(shù)據(jù)的方法。如此,可達成并應(yīng)用不同級別虛擬機器的隔離保護和/或獨立執(zhí)行。
[0039]在示范性實施例之一中,當虛擬機器想要存取數(shù)據(jù)時,使用存取時復(fù)制(COA)技術(shù)復(fù)制對應(yīng)在此存取操作的剩余元數(shù)據(jù)來實施此存取操作。如果源虛擬機器或目標虛擬機器將數(shù)據(jù)寫入到實體存儲器,那么使用寫時復(fù)制(COW)技術(shù)來復(fù)制實體存儲器中所存取的對應(yīng)地址中所存儲的數(shù)據(jù)。在系統(tǒng)虛擬化的架構(gòu)下,虛擬地址(Virtual Address)為程序用來存取數(shù)據(jù)以及指令的地址。虛擬地址包含區(qū)段(Segment)以及偏移字段(欄位)。此區(qū)段信息用來判斷此區(qū)段的保護信息以及開始地址。操作系統(tǒng)一般使用平滑分段(FlatSegmentation),其中將所有區(qū)段映射到整個物理地址空間。根據(jù)平滑分段,虛擬地址實際上成為線性地址(Linear Address)。如果啟用分頁(Paging),則使用處理器分頁硬件(Processor Paging Hardware)將線性地址轉(zhuǎn)換成物理地址。為了使用分頁,操作系統(tǒng)建立并且管理頁表集(Set)。所述的地址轉(zhuǎn)換將使用這些頁表以及在線性地址中的各種位字段。請看圖1A,其示意性地說明本文中所引入的一種新頁表(Page-Table)結(jié)構(gòu)示意圖。在系統(tǒng)虛擬化的架構(gòu)下,被虛擬化的操作系統(tǒng)稱作“訪客”。為適當?shù)靥摂M化并隔離訪客,虛擬機器管理程序(Hypervisor)或虛擬機器監(jiān)控程序(VMM)可控制或調(diào)節(jié)訪客所執(zhí)行的所有特權(quán)操作。在虛擬機器管理程序或虛擬機器監(jiān)控程序中的存儲器管理硬件電路的控制下,此新頁表結(jié)構(gòu)用來定義訪客物理地址與主機物理地址之間的映射關(guān)系。在此頁表結(jié)構(gòu)中,訪客對其自身的訪客IA-32頁表102具有完全控制。在訪客的控制下,通過使用控制寄存器3 (CR3)來將訪客線性地址映射到訪客物理地址。在一個實施例中,所述CR3常被稱作頁目錄庫寄存器(Page Directory Base Register, F1DBRX前述的寄存器含有頁的物理地址,其可為一頁目錄(Page Directory)。如果啟動分頁,并將CR3設(shè)定為無效或未初始化的頁目錄,那么此機器很有可能遭受不可恢復(fù)的故障,這是因為所有存儲器的參照信息將從機器之下脫離。
[0040]接著,根據(jù)存儲器管理硬件電路的控制,通過多級頁表104以及基準指針(BasePointer)將訪客物理地址映射到主機物理地址。多級頁表104可為B樹狀(B_tree like)結(jié)構(gòu),并且可具有多個級別以便將訪客地址轉(zhuǎn)換成物理地址。在虛擬化平臺中,中央管理單元(CPU)、存儲器管理單元(MemoryManagement Unit, MMU)以及輸入/輸出(I/O)裝置會造成一些負擔(Overheads)。一些最新的x86處理器(例如,AMD?以及Intel.?)開始提供硬件擴展(Hardware Extension)以說明如何解決此性能問題。兩大供應(yīng)商分別通過AMD-Virtualization? (AMD-V?)以及丨ntel.? VT-χ技術(shù)引入對x86虛擬化的第一代硬件的支持。Intel引入了其具有存儲器管理單元虛擬化(MMUvirtualization)的硬件支持,稱作“擴展頁表(Extended Page Table, EPT)。在一個實施例中,不論是 AMD-Virtualization?(AMD-v?)技術(shù)還是丨mel? ντ-χ技術(shù),抑或是其他技術(shù),均使用硬件擴展來通過四級頁表定義訪客物理地址與主機物理地址之間的映射。
[0041]請看圖1B以及圖1C,其繪示在訪客物理地址與主機物理地址之間建立映射的一個實施例,其在分層存儲管理(Hierarchiecal Levels)的實施例中,采用例如四級的頁表,但并非以此為限制。在此實施例中,線性或虛擬地址106包含若干區(qū)段(Segment)字段以及偏移(Offset)字段,例如,來自64地址中的第12個位到第47位形成了第一級到第四級的表偏移字段。如果啟用分頁,將可使用處理器分頁硬件將線性地址106轉(zhuǎn)換成物理地址。為了使用分頁,操作系統(tǒng)建立并管理頁表集(Set of Page Tables),例如,如圖所示的第四級到第一級頁表110、112、114以及116。基準指針(Base Pointer) 108用于地址轉(zhuǎn)換。圖1C繪示用于地址轉(zhuǎn)換的高等級別(High Level)算法。通過映射到不同級別的頁表(例如,第四級到第一級頁表110、112、114以及116)來分別轉(zhuǎn)換不同級別的頁表偏移字段的內(nèi)容。在分層存儲管理中,存儲容量可達到512千百萬字節(jié)(Giga Byte, GB)0在多個示范性實施例其中之一,提出通過利用在分層存儲管理結(jié)構(gòu)中地址轉(zhuǎn)換的高等級別算法來快速復(fù)制虛擬機器存儲器狀態(tài)。在復(fù)制虛擬機器存儲器狀態(tài)的方法中,復(fù)制有關(guān)最高級別或較高級別的頁表的元數(shù)據(jù)(Metadata),并且所復(fù)制的元數(shù)據(jù)由兩個虛擬機器(例如,源虛擬機器與目標虛擬機器)同時共用。目標虛擬機器為從源虛擬機器復(fù)制的虛擬機器。在多個示范性實施例其中之一,在復(fù)制虛擬機器存儲器狀態(tài)的方法中采用最高級別(第四級),但本公開不限于此。對復(fù)制虛擬機器而言,有可能采用較高的級別,例如,第三級以及第四級,或第二級到第四級。在所述實施例中,復(fù)制有關(guān)最高級別(第四級)中的多個頁表的元數(shù)據(jù),并將其設(shè)定為“無效”。此類復(fù)制所耗時間幾乎是固定。對稍后的操作則采用存取時復(fù)制(COA)和/或?qū)憰r復(fù)制(C0W)。當源虛擬機器或目標虛擬機器存取數(shù)據(jù)時,使用存取時復(fù)制(COA)技術(shù)復(fù)制其他級別剩余元數(shù)據(jù)以便進行此存取的操作。如果源虛擬機器或目標虛擬機器將數(shù)據(jù)寫入到實體存儲器中的被存取地址的存儲空間,那么當將數(shù)據(jù)存儲于實體存儲器中的對應(yīng)被存取地址中時,使用寫時復(fù)制(COW)技術(shù)來復(fù)制數(shù)據(jù)。請看圖2,其為繪示在示范性實施例之一中復(fù)制虛擬機器存儲器狀態(tài)的方法的流程示意圖。在所述示范性實施例中,對復(fù)制采用了最高級別,但本公開不限于此。在步驟S202中,復(fù)制較高級別中的元數(shù)據(jù)。訪客物理地址與主機物理地址之間的映射關(guān)系是由四個級別的頁表予以定義。為便于說明,將四個元數(shù)據(jù)層L4到LI看作不同級別中的相應(yīng)元數(shù)據(jù),例如,元數(shù)據(jù)層L4表示最高級別。在步驟S204中,回應(yīng)于存取的操作,實施存取時復(fù)制(COA)技術(shù)來復(fù)制剩余的元數(shù)據(jù)。在步驟S206中,使用寫時復(fù)制(COW)技術(shù)來復(fù)制實體存儲器中所存取的對應(yīng)地址中所存儲的數(shù)據(jù)。前述結(jié)構(gòu)類似于依照需求復(fù)制(Cloning On-demand),其中,如果虛擬機器試圖存取數(shù)據(jù),那么需要進行存取的操作,接著對應(yīng)的一個或多個存取路徑將通過以下兩種方法來建立,包括對應(yīng)于所述存取的操作,利用存取時復(fù)制(COA)來復(fù)制剩余元數(shù)據(jù);和/或利用寫時復(fù)制(COW)來復(fù)制實體存儲器中所存取的對應(yīng)地址中所存儲的數(shù)據(jù)。請參照圖3,其繪示在B樹狀存儲器管理算法中,源虛擬機器與實體存儲器之間的關(guān)系示意圖。訪客物理地址與主機物理地址之間的映射關(guān)系是通過使用四個級別的頁表來予以定義。在元數(shù)據(jù)層340中,四個元數(shù)據(jù)層L4到LI分別視為不同級別中的頁表的相應(yīng)元數(shù)據(jù)。在區(qū)塊341、342、343以及344中,分別表示不同頁表目錄(PTD)中頁表之間的關(guān)系。不同的存取路徑可用以對存取的訪客物理地址與實體存儲器中的主機物理地址產(chǎn)生關(guān)聯(lián)。例如,在源虛擬機器320中,通過訪客頁表322將用于存取操作的訪客虛擬地址映射到訪客物理地址。對應(yīng)于所述訪客物理地址,在所述訪客物理地址與對應(yīng)于實體存儲器360中的不同頁的主機物理地址之間,從路徑344、343、342以及341建立一個存取路徑。
[0042]請參照圖4A以及圖4B,其繪示本公開的多個示范性實施例其中之一,在無計數(shù)器的情況下復(fù)制虛擬機器存儲器狀態(tài)的方法示意圖。在所述實施例中,如果對源虛擬機器僅需要復(fù)制一個虛擬機器,那么不必使用計數(shù)器來記錄頁表中的每一分頁表項目(PTE)的共用狀態(tài)。
[0043]如圖4A所示,源虛擬機器320被復(fù)制,并且相應(yīng)地產(chǎn)生目標虛擬機器330。源虛擬機器320具有訪客頁表322,而目標虛擬機器330同樣具有從訪客頁表322復(fù)制的訪客頁表332。在此示范性實施例中,在復(fù)制虛擬機器存儲器狀態(tài)的方法中采用最高級別(第四級),但本公開不限于此。對復(fù)制虛擬機器而言,有可能采用幾個較高的級別,例如,第三級及第四級,或第二級到第四級。在此實施例中,最高級別(第四級)中的頁表的元數(shù)據(jù)將被復(fù)制,然后設(shè)定為“無效”,例如,復(fù)制源虛擬機器的頁表402的元數(shù)據(jù),并作為目標虛擬機器最高級別(第四級)的頁表404的元數(shù)據(jù)。并將最高級別(第四級)中的頁表目錄(PTD)設(shè)定為無效。
[0044]在此頁表數(shù)據(jù)結(jié)構(gòu)中,對于目標虛擬機器330中的頁表404,還建立了兩個頁表目錄,所述兩個頁表目錄在源虛擬機器320的第四級中的頁表402與下一較低級別(第三級)中的頁表406以及408之間有關(guān)聯(lián)性(Correlated)。在較低級別(第三級到第一級)中的頁表目錄保持不變,也就是說,較低級別的元數(shù)據(jù)保持不變。如果一個訪客虛擬地址被轉(zhuǎn)換成實體存儲器360中的頁362的主機物理地址,那么一個存取路徑將會被建立在從第三級中的頁表406、第二級中的頁表410、第一級中的頁表412到實體存儲器360中的分頁362的主機物理地址。
[0045]如圖4B所示,如果用于存取操作的一個訪客虛擬地址通過訪客頁表322映射到訪客物理地址,那么對應(yīng)在此訪客物理地址,在此訪客物理地址與對應(yīng)于實體存儲器360中的頁362的主機物理地址之間建立一個存取路徑。根據(jù)此存取路徑,將首先按照需求(Ondemand)恢復(fù)較低級別中有關(guān)沿著存取路徑的頁表目錄的頁表。也就是說,恢復(fù)第三級中的頁表406a、第二級中的頁表410a、以及第一級中的頁表412a。與存取路徑無關(guān)的其他頁表仍保持“無效”狀態(tài)。根據(jù)到實體存儲器360的頁362的存取路徑,頁表412a中所存取的分頁表項目(PTE)的標志(Flags)標記為只讀,這代表準備好進行寫時復(fù)制(COW)的操作。如果需要寫入操作,那么使用寫時復(fù)制(COW)技術(shù)來復(fù)制實體存儲器360中的頁362中所存取的對應(yīng)地址中所存儲的數(shù)據(jù)。
[0046]請看圖5A以及圖5B,其繪示本公開的多個示范性實施例其中之一,在采用計數(shù)器的情況下復(fù)制虛擬機器存儲器狀態(tài)的方法。圖5A以及圖5B使用圖4A以及圖4B中的相同標號來表示相同元件或結(jié)構(gòu)。
[0047]如圖5A所示,復(fù)制源虛擬機器320并相應(yīng)產(chǎn)生目標虛擬機器330。源虛擬機器320具有訪客頁表322,而目標虛擬機器330同樣具有從訪客頁表322復(fù)制的訪客頁表332。在此示范性實施例中,在復(fù)制虛擬機器存儲器狀態(tài)的方法中采用了最高級別(第四級),但本公開不限于此。對復(fù)制虛擬機器而言,有可能部署較高級別,例如,第三級以及第四級,或是第二級到第四級。在此實施例中,復(fù)制最高級別(第四級)中的元數(shù)據(jù),且接著將其標記為“只讀”。將最高級別(第四級)中的頁表目錄(PTD)也設(shè)定為只讀(Read Only)”。
[0048]計數(shù)器用于對不同級別中的每一頁表的共用狀態(tài)進行計數(shù)。如果對應(yīng)于一個頁表的數(shù)字為“1”,那么此意謂建立了到所述頁表的僅一個連結(jié)(Link)或一個路徑(Path)。除非執(zhí)行寫入操作(即,寫時復(fù)制,C0W),否則不必復(fù)制所述頁表。如果建立了到所述頁表的兩個或兩個以上的連結(jié)或路徑,那么在下一寫入操作中對應(yīng)于所述頁表的數(shù)字將大于“ I ”,此意謂在對所述頁表執(zhí)行寫入操作時復(fù)制操作是必要的。
[0049]如果其中有一頁由源虛擬機器320或由目標虛擬機器寫入,那么對應(yīng)于存取路徑的頁表的計數(shù)器的數(shù)字將加一,因此例如變?yōu)椤?”。在寫入操作中將復(fù)制所述頁表,并且將建立新頁表來按照需求(On Demand)恢復(fù)所述頁表。在此頁表數(shù)據(jù)結(jié)構(gòu)中,對于目標虛擬機器330中的頁表504,還建立了兩個頁表目錄,所述兩個頁表目錄在源虛擬機器320的第四級中的頁表502與下一較低級別(第三級)中的頁表506以及508之間有其關(guān)聯(lián)性。較低級別(第三級到第一級)中的頁表目錄保持不變,即,較低級別的元數(shù)據(jù)保持不變。在實體存儲器360中的頁362的下一寫入操作中,頁表506的計數(shù)器的數(shù)量變?yōu)椤癐”。如圖5B所示,建立了從第三級中的頁表506、第二級中的頁表510、第一級中的頁表512到實體存儲器360中的頁362的主機物理地址的一個存取路徑。沿著此存取路徑,頁表506、510以及512將被恢復(fù)。與存取路徑無關(guān)的其他頁表仍保持“只讀”狀態(tài)。根據(jù)到實體存儲器360的頁362的存取路徑,沿著所述存取路徑的頁表504、506a、510a以及512a中所存取的分頁表項目(PTE)的標志(Flags)標記為只讀,這代表準備好進行寫時復(fù)制(COW)操作。
[0050]在圖5A以及圖5B中使用數(shù)字“I”或“2”僅是為了解釋每一分頁的共用狀態(tài)。此計數(shù)器也可配置在頁表數(shù)據(jù)結(jié)構(gòu)或其他位置。例如,在Intel? VT-x技術(shù)的擴展頁表(EPT)結(jié)構(gòu)中,一些預(yù)留位可用于所述計數(shù)器。如果在其他位置中建立計數(shù)器,那么可使用哈希(雜湊)表(Hash Table)來與每一頁表進行關(guān)聯(lián)性的連結(jié)。在一些其他實施例中,整個頁表也可完全不被共用。
[0051]對于復(fù)制多個虛擬機器的情況,請參照圖6A以及圖6B,其繪示本公開的多個示范性實施例其中之一,在有計數(shù)器的情況下復(fù)制虛擬機器的虛擬機器存儲器狀態(tài)的方法。
[0052]如圖6A所示,源虛擬機器320將被復(fù)制并且相應(yīng)地產(chǎn)生第一目標虛擬機器330a以及第二目標虛擬機器330b。源虛擬機器320具有訪客頁表322,而第一目標虛擬機器330a以及第二目標虛擬機器330b同樣具有其從訪客頁表322復(fù)制的相應(yīng)訪客頁表332a以及332b。在此示范性實施例中,在復(fù)制虛擬機器存儲器狀態(tài)的方法中采用了最高級別(第四級),但本公開不限于此。對復(fù)制虛擬機器而言,有可能部署較高級別,例如,第三級以及第四級,或第二級到第四級。在所述實施例中,復(fù)制較高級別(第四級)中的元數(shù)據(jù),且接著將其標記為“只讀”。
[0053]如圖5A以及圖5B所示,計數(shù)器用于對不同級別中的每一頁表的共用狀態(tài)進行計數(shù)。如果其中有一頁由第一目標虛擬機器330a寫入,那么在寫入操作中將復(fù)制此頁表,并且將按照需求建立新的頁表以恢復(fù)所述頁表。如圖6A所示,如果第一目標虛擬機器330a存取實體存儲器360中的頁362,那么存取路徑將建立在從第三級中的頁表608、第二級中的頁表610、第一級中的頁表612到實體存儲器360中的頁362的主機物理地址。沿著此存取路徑的頁表606、610以及612將恢復(fù)。與存取路徑無關(guān)的其他頁表仍保持“只讀”狀態(tài)。根據(jù)到實體存儲器360的頁362的存取路徑,沿著所述存取路徑的頁表604、608a、610a以及612a中所存取的分頁表項目(PTE)的標志被標記為只讀,這將代表準備好進行寫時復(fù)制(COW)操作。
[0054]在另一情況下,如圖6B所示,如果第二目標虛擬機器330b存取實體存儲器360中的頁362,那么另一個存取路徑將建立在從第一級中的頁表606、第三級中的頁表608a、第二級中的頁表610a、第一級中的頁表612a到實體存儲器360中的頁362的主機物理地址。沿著此存取路徑的頁表608a、610a以及612a分別恢復(fù)到頁表608b、610b以及612b。與存取路徑無關(guān)的其他頁表仍保持“無效”狀態(tài)。根據(jù)到實體存儲器360的頁362的存取路徑,沿著所述存取路徑的頁表604、608b、610b以及612b中所存取的分頁表項目(PTE)的標志標記為只讀,這將表示已經(jīng)準備好進行寫時復(fù)制(COW)操作。
[0055]本公開提供一種快速復(fù)制存儲于虛擬機器(VM)的存儲器的數(shù)據(jù)的方法。多個示范性實施例其中之一包括提供一種通過存取時復(fù)制(COA)的方式復(fù)制元數(shù)據(jù)以及經(jīng)由寫時復(fù)制(COW)的方式復(fù)制數(shù)據(jù)以快速復(fù)制虛擬機器的方法。在多個示范性實施例其中之一,當虛擬機器想要存取數(shù)據(jù)時,使用存取時復(fù)制(COA)技術(shù)復(fù)制剩余元數(shù)據(jù)來實施存取操作。如果源虛擬機器或目標虛擬機器將數(shù)據(jù)寫入到實體存儲器,那么使用寫時復(fù)制(COW)技術(shù)來復(fù)制實體存儲器中所存取的對應(yīng)地址中所存儲的數(shù)據(jù)。
[0056]快速復(fù)制存儲于虛擬機器(VM)的存儲器中的數(shù)據(jù)的方法可應(yīng)用于不同的虛擬化結(jié)構(gòu),例如,AMD-Virtualization?(AMD-VTM)及Intel? VT-x 技術(shù)。在Intel? VT-χ 技術(shù)中,提出擴展頁表(EPT)結(jié)構(gòu)。在AMD-Virtualization?(AMD-VTM)技術(shù)中,提出巢狀分頁(NestedPaging)結(jié)構(gòu)。擴展頁表(EPT)為Intel用于存儲器管理單元(MMU)的第二代x86虛擬化技術(shù)。當此特征可用時,普通IA-32頁表(由控制寄存器CR3所參照)從線性地址轉(zhuǎn)換成訪客物理地址。獨立的頁表(EPT表)集從訪客物理地址轉(zhuǎn)換成用來存取存儲器的主機物理地址。結(jié)果將是可允許訪客軟件修改其自身的IA-32頁表并且直接處理頁故障。這將允許虛擬機器監(jiān)控程序(VMM)避免與頁表虛擬化相關(guān)聯(lián)的虛擬機器退出,而在無EPT時此類虛擬機器退出實為虛擬化開銷的主要來源。[0057]本公開的不同的運用上,可采用完全硬件實施例、完全軟件實施例或含有硬件以及軟件元件兩者的實施例的形式實施。在優(yōu)選實施例中,本公開是以軟件來實施,所述套裝軟件含但不限于固件、常駐軟件、微碼等。
[0058]另外,本公開的不同的運用上,可采用從計算機可用或計算機可讀介質(zhì)存取的計算機程序產(chǎn)品的形式,提供供計算機或任何指令執(zhí)行系統(tǒng)使用或結(jié)合計算機或任何指令執(zhí)行系統(tǒng)來使用的程序代碼。根據(jù)本公開內(nèi)容,計算機可用或計算機可讀介質(zhì)為可含有、存儲、傳達、傳播或傳送供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的程序的任何有形設(shè)備。
[0059]所述介質(zhì)可為電子、磁性、光學、電磁、紅外線或半導體系統(tǒng)(或設(shè)備,或裝置)或傳播介質(zhì)。計算機可讀介質(zhì)的實例包含半導體或固態(tài)存儲器、磁帶、可移動計算機磁片、隨機存取存儲器(random access memory, RAM)、只讀存儲器(read-only memory, ROM)、硬磁片或光盤。光盤的當前實例包含光盤-只讀存儲器(compact disk-read only memory,⑶-ROM)、可重復(fù)讀寫光盤(compact disk-read/write,⑶-R/W)以及數(shù)字多功能光盤(DVD)0
[0060]本公開的不同的運用上,可利用一個或多個計算機可讀介質(zhì)的任何組合。計算機可讀介質(zhì)可為計算機可讀信號介質(zhì)或計算機可讀存儲介質(zhì)。例如,計算機可讀存儲介質(zhì)可為(但不限于)電子、磁性、光學、電磁、紅外線或半導體系統(tǒng)、設(shè)備或裝置,或前述系統(tǒng)、設(shè)備或裝置的任何適當組合。計算機可讀存儲介質(zhì)的更多特定實例(非詳盡清單)包含以下各者:具有一個或多個導線的電連接、便攜式計算機磁片、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可程序設(shè)計只讀存儲器(erasabIe programmabIeread-only memory,EPR0M;或快閃存儲器)、光纖、便攜光盤只讀存儲器(⑶-ROM)、光學存儲裝置、磁性存儲裝置或前述各者的任何適當組合。在本公開的內(nèi)容中,計算機可讀存儲介質(zhì)可為可含有或存儲供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置來使用的程序的任何有形介質(zhì)。
[0061]上述計算機可讀信號介質(zhì)可包含傳播的數(shù)據(jù)信號,所述傳播數(shù)據(jù)信號具有體現(xiàn)于其中(例如,在基頻中或作為載波的部分)的計算機可讀程序代碼。此類傳播信號可采取各種形式中的任一個,包含但不限于電磁、光學或其任何適當組合。計算機可讀信號介質(zhì)可為并非計算機可讀存儲介質(zhì)但可傳達、傳播或傳送供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置來使用的程序的任何計算機可讀介質(zhì)。
[0062]可使用任何適當介質(zhì)來傳輸體現(xiàn)于計算機可讀介質(zhì)上的程序代碼,所述適當介質(zhì)包含(但不限于)無線、有線、光纖纜線、RF等或前述各者的任何適當組合。
[0063]本公開的不同的運用上,可用一種或多種程序設(shè)計語言的任何組合來撰寫用于實行本公開的若干方面的操作的計算機程序代碼,所述一種或多種程序設(shè)計語言包含例如Java、Smalltalk、C++或其類似者的物件導向的程序設(shè)計語言以及例如“C”程序設(shè)計語言或相似程序設(shè)計語言的常規(guī)程序性程序設(shè)計語言。所述程序代碼可完全在使用者計算機上執(zhí)行,部分地在使用者計算機上執(zhí)行,作為獨立套裝軟件來執(zhí)行,部分地在使用者計算機上執(zhí)行且部分地在遠端計算機上執(zhí)行,或完全在遠端計算機或服務(wù)器上執(zhí)行。在完全在遠端計算機或服務(wù)器上執(zhí)行的情形下,遠端計算機可通過任何類型的網(wǎng)絡(luò)(包含局域網(wǎng)(LAN)或廣域網(wǎng)(WAN))連接到使用者計算機,或可連接到外部計算機(例如,使用互聯(lián)網(wǎng)服務(wù)提供者,通過互聯(lián)網(wǎng)來連接)。
[0064]本公開的不同的運用上,參考本公開的實施例的方法、設(shè)備(系統(tǒng))以及計算機程序產(chǎn)品的流程圖說明和/或框圖來描述本公開的若干方面。應(yīng)理解,可通過計算機程序指令來實施流程圖說明和/或框圖的每一框以及流程圖說明和/或框圖中的若干框的組合??蓪⑦@些計算機程序指令提供給通用計算機、專用計算機或其他可程序設(shè)計數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生機器,以使得通過所述計算機或其他可程序設(shè)計數(shù)據(jù)處理設(shè)備的處理器而執(zhí)行的指令產(chǎn)生用于實施所述流程圖和/或框圖的一個或多個框中所指定的功能/動作的構(gòu)件。
[0065]也可將這些計算機程序指令存儲于計算機可讀介質(zhì)中,其可引導計算機、其他可程序設(shè)計數(shù)據(jù)處理設(shè)備或其他裝置以特定方式行使功能,使得存儲于所述計算機可讀介質(zhì)中的指令產(chǎn)生包含實施所述流程圖和/或框圖的一個或多個框中所指定的功能/動作的指令的制品。
[0066]也可將所述計算機程序指令載入到計算機、其他可程序設(shè)計數(shù)據(jù)處理設(shè)備或其他裝置上,以使一系列操作步驟在所述計算機、其他可程序設(shè)計設(shè)備或其他裝置上執(zhí)行以產(chǎn)生計算機實施的過程,使得在所述計算機或其他可程序設(shè)計設(shè)備上執(zhí)行的指令提供用于實施所述流程圖和/或框圖的一個或多個框中所指定的功能/動作的過程。本公開的流程圖用以說明根據(jù)本公開的各種實施例的系統(tǒng)、方法以及計算機程序產(chǎn)品的可能實施的體系結(jié)構(gòu)、功能性以及操作。因此,流程圖中的每一區(qū)塊可表示程序代碼的模塊、段或部分,其包括用于實施指定的邏輯功能的一個或多個可執(zhí)行指令。同樣應(yīng)注意,在一些替代實施中,框中所提到的功能可不以諸圖中所提到的次序發(fā)生。例如,取決于所涉及的功能性,連續(xù)展示的兩個區(qū)塊實際上可實質(zhì)上同時執(zhí)行,或所述區(qū)塊有時可按相反次序執(zhí)行。還應(yīng)注意,可通過執(zhí)行指定功能或動作的基于專用硬件的系統(tǒng)或?qū)S糜布c計算機指令的組合來實施區(qū)塊和/或流程圖說明的每一區(qū)塊和/或流程圖說明中的區(qū)塊的組合。本文中使用的術(shù)語僅用于描述特定實施例,而且并不意欲限制本公開。如本文中所使用,單數(shù)形式“一”及“該”意欲同樣包含復(fù)數(shù)形式,除非上下文另有清晰指示。應(yīng)進一步理解,當在本說明書中使用術(shù)語“包括”時,其指明存在所陳述的特征、整體、步驟、操作、元件和/或元件,但不排除存在或添加一個或多個其他特征、整體、步驟、操作、元件、元件和/或其群組。適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包含通過系統(tǒng)總線直接或間接耦接到存儲器元件的至少一個處理器。所述存儲器元件可包含在程序代碼的實際執(zhí)行期間所應(yīng)用的本機寄存器、大型存儲裝置以及快取存儲器,所述快取存儲器提供至少一些程序代碼的暫時存儲,以便減少在執(zhí)行期間必須從大型存儲裝置檢索存取的次數(shù)。
[0067]雖然本公開已以優(yōu)選實施例公開如上,然其并非用以限定本公開,本領(lǐng)域技術(shù)人員在不脫離本公開的精神和范圍內(nèi),當可作些許的更動與潤飾,因此本公開的保護范圍當視所附權(quán)利要求書所界定者為準。
【權(quán)利要求】
1.一種復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,適用于一源虛擬機器以及至少一個被復(fù)制的虛擬機器對該存儲器數(shù)據(jù)的存取,其中來自該源虛擬機器或該被復(fù)制的虛擬機器的一訪客物理地址與該存儲器的一主機物理地址之間的映射關(guān)系是由多個分層級別中所配置的多個頁表所定義,其特征在于,該復(fù)制虛擬機器存儲器數(shù)據(jù)的方法包括: 將這些分層級別的最高級別或較高級別對應(yīng)的這些頁表的元數(shù)據(jù)復(fù)制到該虛擬機器; 根據(jù)存取的操作,將這些分層級別中該最高級別或該較高級別以外級別中的這些頁表,對應(yīng)該存取的操作的元數(shù)據(jù)復(fù)制到該虛擬機器;以及 存取存儲于該存儲器中,對應(yīng)于這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)的對應(yīng)地址中的數(shù)據(jù)。
2.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在根據(jù)將這些分層級別的最高級別或較高級別對應(yīng)的這些頁表的這些元數(shù)據(jù)復(fù)制之后,該方法還包括: 將對應(yīng)于該最高級別或該或這些較高級別的多個頁表目錄設(shè)定為無效。
3.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中將該最高級別或該或這些較高級別以外的該或這些級別中的這些頁表的剩余元數(shù)據(jù)復(fù)制到該虛擬機器包括: 對應(yīng)該存取操作,按照需求恢復(fù)該最高級別或該或這些較高級別以外的該或這些級別中的這些頁表。
4.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中存取存儲于該存儲器的該對應(yīng)地址中的數(shù)據(jù)包括: 根據(jù)這些元數(shù)據(jù)以及根據(jù)該 存取的操作所復(fù)制的這些元數(shù)據(jù)建立一個或多個存取路徑,以根據(jù)這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)來存取存儲于該存儲器的該對應(yīng)地址中的該數(shù)據(jù)。
5.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中存取存儲于該存儲器的該對應(yīng)地址中的數(shù)據(jù)包括: 根據(jù)寫時復(fù)制技術(shù)將該數(shù)據(jù)寫入到該存儲器的該對應(yīng)地址。
6.如權(quán)利要求5所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中根據(jù)該寫時復(fù)制技術(shù)將數(shù)據(jù)寫入到該存儲器的該對應(yīng)地址之前,將這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)設(shè)定為只讀。
7.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在于該多個分層級別的數(shù)量為四。
8.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在于該訪客物理地址與擴展頁表結(jié)構(gòu)相容,并且這些頁表是以多個分層級別來配置以用于轉(zhuǎn)換該訪客物理地址。
9.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在該訪客物理地址與巢狀分頁結(jié)構(gòu)相容,并且這些頁表是以該多個分層級別來配置以用于轉(zhuǎn)換該訪客物理地址。
10.如權(quán)利要求1所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在復(fù)制該最高級別或該或這些較高級別以外的該或這些級別中的這些頁表的剩余元數(shù)據(jù)之前,對該最高級別或該或這些較高級別以外的該或這些級別中所配置的每一該頁表的共用狀態(tài)計數(shù),以及根據(jù)該計數(shù)的結(jié)果來復(fù)制每一該頁表的該剩余元數(shù)據(jù)。
11.如權(quán)利要求10所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中將每一該頁表中的每一該計數(shù)的結(jié)果存儲于該計數(shù)的對應(yīng)該頁表中。
12.如權(quán)利要求10所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中將每一該頁表中的每一該計數(shù)的結(jié)果存儲于一哈希表中。
13.一種存儲于計算機可存取介質(zhì)中的計算機程序產(chǎn)品,其包括用于在一個或多個計算機系統(tǒng)中實施根據(jù)權(quán)利要求1所述的該復(fù)制虛擬機器存儲器數(shù)據(jù)的方法的計算機可讀程序集。
14.一種計算機系統(tǒng),其特征在于,包括: 主機,其包括: 總線系統(tǒng); 存儲器模塊,其連接到該總線系統(tǒng),其中包含計算機可執(zhí)行指令集;以及 處理單元,其連接到該總線系統(tǒng),其中該處理單元執(zhí)行用于實施根據(jù)權(quán)利要求1所述的該復(fù)制虛擬機器存儲器數(shù)據(jù)的方法的該計算機可執(zhí)行指令集。
15.一種復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,適用于一源虛擬機器以及至少一個被復(fù)制的虛擬機器對該存儲器數(shù)據(jù)的存取,其中來自該源虛擬機器或該被復(fù)制的虛擬機器的一訪客物理地址與該存儲器的一主機物理地址之間的映射關(guān)系是由多個分層級別中所配置的多個頁表所定義,其特征在于,該復(fù)制虛擬機器存儲器數(shù)據(jù)的方法包括: 將這些分層級別的最高級別對應(yīng)的這些頁表的元數(shù)據(jù)復(fù)制到該虛擬機器; 根據(jù)存取的操作,將該最高級別以外的這些級別中的這些頁表,對應(yīng)該存取的操作的元數(shù)據(jù)復(fù)制到該虛擬機器;以`及 存取存儲于該存儲器中,對應(yīng)于該最高級別對應(yīng)的這些頁表的這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)的對應(yīng)地址中的數(shù)據(jù)。
16.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在根據(jù)將該最高級別對應(yīng)的這些頁表的這些元數(shù)據(jù)復(fù)制之后,該方法還包括: 將對應(yīng)于該最高級別的多個頁表目錄設(shè)定為無效。
17.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中將該最高級別以外的這些級別中的這些頁表的剩余元數(shù)據(jù)復(fù)制到該虛擬機器包括: 對應(yīng)該存取操作,按照需求恢復(fù)該最高級別以外的這些級別中的這些頁表。
18.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中存取存儲于該存儲器的該對應(yīng)地址中的數(shù)據(jù)包括: 根據(jù)這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)建立一個或多個存取路徑,以根據(jù)這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)來存取存儲于該存儲器的該對應(yīng)地址中的該數(shù)據(jù)。
19.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中存取存儲于該存儲器的該對應(yīng)地址中的數(shù)據(jù)包括: 根據(jù)寫時復(fù)制技術(shù)將該數(shù)據(jù)寫入到該存儲器的該對應(yīng)地址。
20.如權(quán)利要求19所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中根據(jù)該寫時復(fù)制技術(shù)將數(shù)據(jù)寫入到該存儲器的該對應(yīng)地址之前,將這些元數(shù)據(jù)以及根據(jù)該存取的操作所復(fù)制的這些元數(shù)據(jù)設(shè)定為只讀。
21.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在于該多個分層級別的數(shù)量為四。
22.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在于該訪客物理地址與擴展頁表結(jié)構(gòu)相容,并且這些頁表是以多個分層級別來配置以用于轉(zhuǎn)換該訪客物理地址。
23.根據(jù)權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在該訪客物理地址與巢狀分頁結(jié)構(gòu)相容,并且這些頁表是以該多個分層級別來配置以用于轉(zhuǎn)換該訪客物理地址。
24.如權(quán)利要求15所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中在復(fù)制該最高級別以外的這些級別中的這些頁表的剩余元數(shù)據(jù)之前,對該最高級別以外的該或這些級別中所配置的每一該頁表的共用狀態(tài)計數(shù),以及根據(jù)該計數(shù)的結(jié)果來復(fù)制每一該頁表的該剩余元數(shù)據(jù)。
25.如權(quán)利要求24所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中將每一該頁表中的每一該計數(shù)的結(jié)果存儲于該計數(shù)的對應(yīng)該頁表中。
26.如權(quán)利要求24所述的復(fù)制虛擬機器存儲器數(shù)據(jù)的方法,其中將每一該頁表中的每一該計數(shù)的結(jié)果存儲于一哈希表中。
27.一種存儲于計算機可存取介質(zhì)中的計算機程序產(chǎn)品,其包括用于在一個或多個計算機系統(tǒng)中實施根據(jù)權(quán)利要求15所述的該復(fù)制虛擬機器存儲器數(shù)據(jù)的方法的計算機可讀程序集。
28.一種計算機系統(tǒng),其特征在于,包括: 主機,其包括:` 總線系統(tǒng); 存儲器模塊,其連接到該總線系統(tǒng),其中包含計算機可執(zhí)行指令集;以及 處理單元,其連接到該總線系統(tǒng),其中該處理單元執(zhí)行用于實施根據(jù)權(quán)利要求15所述的該復(fù)制虛擬機器存儲器數(shù)據(jù)的方法的該計算機可執(zhí)行指令集。
【文檔編號】G06F11/14GK103514066SQ201210435890
【公開日】2014年1月15日 申請日期:2012年11月5日 優(yōu)先權(quán)日:2012年6月28日
【發(fā)明者】李翰林, 姜瑞豪, 闕志克 申請人:財團法人工業(yè)技術(shù)研究院