TWI475489B - Method of cloning data in a memory for a virtual machine, product of computer programs and computer system - Google Patents

Method of cloning data in a memory for a virtual machine, product of computer programs and computer system Download PDF

Info

Publication number
TWI475489B
TWI475489B TW101123264A TW101123264A TWI475489B TW I475489 B TWI475489 B TW I475489B TW 101123264 A TW101123264 A TW 101123264A TW 101123264 A TW101123264 A TW 101123264A TW I475489 B TWI475489 B TW I475489B
Authority
TW
Taiwan
Prior art keywords
virtual machine
copying
metadata
memory
data
Prior art date
Application number
TW101123264A
Other languages
Chinese (zh)
Other versions
TW201401171A (en
Inventor
Han Lin Li
Jui Hao Chiang
Tzi Cker Chiueh
Original Assignee
Ind Tech Res Inst
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW101123264A priority Critical patent/TWI475489B/en
Publication of TW201401171A publication Critical patent/TW201401171A/en
Application granted granted Critical
Publication of TWI475489B publication Critical patent/TWI475489B/en

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

複製虛擬機器的記憶體資料的方法、其電腦程式產品 以及電腦系統Method for copying memory material of virtual machine, computer program product thereof And computer system

本揭露是有關於一種複製虛擬機器記憶體的資料的方法。The disclosure is directed to a method of copying data from a virtual machine memory.

系統虛擬化(System Virualization)是將共用平台上的資源聚集以及抽象化。此抽象化過程是將軟體與硬體分離,而且使多個作業系統映像檔案能夠並行地在單一實體平台上運行,而不會相互干擾。虛擬化可將需要經由許多實體機上運行的工作負載,合併到單一實體機上運行的多個虛擬機器進行,如此可增加計算資源的利用率。而此合併可大大減少資料中心中所需要的電力消耗以及占地面積。可使用集中式管理介面來依照需求供應虛擬機器、對其進行複製和遷移。System Virualization is the aggregation and abstraction of resources on a shared platform. This abstraction process separates the software from the hardware and enables multiple operating system image archives to run in parallel on a single physical platform without interfering with each other. Virtualization can be combined with workloads running on many physical machines into multiple virtual machines running on a single physical machine, which increases the utilization of computing resources. This combination can greatly reduce the power consumption and floor space required in the data center. A centralized management interface can be used to provision virtual machines, replicate and migrate them as needed.

為了使得多個作業系統能夠在同一實體平台上運行,以軟體方式運作的一平台層(Platform layer)可將作業系統與硬體分離。此層被稱作虛擬機器管理程式(Hypervisor)或虛擬機器監控程序(Virtual Machine Monitor,VMM)。在系統虛擬化的架構下,被虛擬化的作業系統稱作“客作業系統(Guest Operating System)”。為了適當地虛擬化並隔離訪客,虛擬機器管理程式或虛擬機器監控程序(VMM)必須控制或調節訪客所執行的所有特權操作。虛擬機器管理程式可使用各種技術來完成此控制或調節。In order to enable multiple operating systems to run on the same physical platform, a platform layer that operates in a software manner separates the operating system from the hardware. This layer is called a virtual machine manager (hypervisor) or a virtual machine monitor (VMM). Under the system virtualization architecture, the virtualized operating system is called the "Guest Operating System." In order to properly virtualize and isolate visitors, the virtual machine manager or virtual machine monitor (VMM) must control or regulate all privileged operations performed by the guest. The virtual machine manager can use various techniques to accomplish this control or adjustment.

在虛擬化環境或用於系統虛擬化的平台中,需注意虛 擬機器(VM)的快速或近乎即時的複製。此技術可用於負載平衡(Load Balancing)、預先部署測試(Pre-deployment Testing)、預測執行(Speculative Execution)、資料探勘(Data Miming)以及在大的資料中心所進行的病毒掃描或惡意軟體分析。當載入或準備要執行未知軟體時,進行未知軟體的執行可能會被防毒程式或代理攔截或中斷。此時,可能提前請求快速複製虛擬機器。被複製的虛擬機具有同父級虛擬機器或原始虛擬機器相同的操作環境以及狀態。此代理可在執行病毒掃描或惡意軟體分析的同時,任意地執行此未知軟體。甚至在所述軟體的執行可能導致所述虛擬機器崩潰或癱瘓的情況下,原始虛擬機器仍不會受到影響,這是因為損壞只發生在被複製的虛擬機器上。In a virtualized environment or a platform for system virtualization, you need to pay attention to virtual Fast or near-instant copy of a machine (VM). This technology can be used for Load Balancing, Pre-deployment Testing, Speculative Execution, Data Miming, and virus scanning or malware analysis in large data centers. Execution of unknown software may be intercepted or interrupted by an antivirus program or agent when loading or preparing to execute unknown software. At this point, you may request a quick copy of the virtual machine in advance. The virtual machine being replicated has the same operating environment and state as the parent virtual machine or the original virtual machine. This agent can arbitrarily execute this unknown software while performing a virus scan or malicious software analysis. Even in the case where the execution of the software may cause the virtual machine to crash or crash, the original virtual machine is still unaffected because the damage only occurs on the virtual machine being copied.

在傳統技術中,即時遷移(Live Migration)技術常用於虛擬機器的快速或近乎即時的複製。即時遷移允許伺服器管理員在不停止與用戶端的連接或是停止應用程式的情況下,在不同的實體機器之間轉移正在運行中的虛擬機器或應用。而對於一個成功的即時遷移而言,需要將虛擬機器的記憶體、儲存裝置以及網路連接遷移到目的地。但是,虛擬機器的複製在記憶體、儲存裝置或磁片的資料移轉完成之後才能開始,而如此則可能無法滿足虛擬機器快速或近乎即時的複製的需要。In traditional technology, Live Migration technology is often used for fast or near-instant copying of virtual machines. Instant migration allows the server administrator to transfer a running virtual machine or application between different physical machines without stopping the connection with the client or stopping the application. For a successful instant migration, the virtual machine's memory, storage, and network connections need to be migrated to the destination. However, the copying of the virtual machine can only begin after the data transfer of the memory, storage device or disk is completed, and thus the virtual machine may not be able to meet the needs of fast or near-instant copying.

在傳統技術中,快照(Snapshot)機制也常被提及用來快速複製虛擬機器以及初始化被複製的虛擬機器。但是,執行此快照機制需要將原始虛擬機器關閉或令其處於 停頓狀態中,如此達成處於執行狀態中的虛擬機器的複製。此快照機制可用來快速地複製大量虛擬機器,但對複製卻並不支援即時隔離環境。在其他傳統技術中,在執行複製源虛擬機器的過程期間,用來複製儲存在實體記憶體中的資料的方法可能會將源虛擬機器的全部元資料複製到目標虛擬機器。而在目標虛擬機器中的元資料(例如,頁表)將會被重新引導到源虛擬機器的記憶體中。兩個元資料所指向的記憶體的所有頁中所儲存的資訊將會被標記為“唯讀”。寫時複製(Copy-on-write,COW)將用於存取操作。但是,在頁表目錄(Page Table Directory,PTD)結構中,將分頁表項目(Page Table Entry,PTE)設定為唯讀的唯一方法為遍歷(Traverse)整個頁表,並將所有分頁表項目的讀取旗標(Flag)改變為“唯讀”。此類操作所耗時間幾乎與複製整個頁表所耗時間相同。如果記憶體容量按需要增加,那麼此類操作所耗時間將同樣增加。如果記憶體容量達到幾千百萬位元組(GB)或以上,那麼所耗時間將增加到幾秒鐘以上甚至更多,而此要求將無法滿足虛擬機器(VM)的快速或近乎即時的複製技術。In the conventional art, a Snapshot mechanism is also often mentioned for quickly copying a virtual machine and initializing the copied virtual machine. However, performing this snapshot mechanism requires the original virtual machine to be shut down or left in place. In the quiesced state, the copy of the virtual machine in the execution state is thus achieved. This snapshot mechanism can be used to quickly replicate a large number of virtual machines, but does not support instant isolation environments for replication. In other conventional techniques, during the process of executing a copy source virtual machine, the method used to copy the material stored in the physical memory may copy all metadata of the source virtual machine to the target virtual machine. The metadata (eg, page table) in the target virtual machine will be redirected to the source virtual machine's memory. The information stored in all pages of the memory pointed to by the two meta-data will be marked as "read only". Copy-on-write (COW) will be used for access operations. However, in the Page Table Directory (PTD) structure, the only way to set the Page Table Entry (PTE) to read-only is to traverse the entire page table and put all the paging table items. The read flag (Flag) is changed to "read only". This type of operation takes almost the same amount of time as copying the entire page table. If the memory capacity increases as needed, the time spent on such operations will also increase. If the memory capacity reaches several millionths of a gigabyte (GB) or more, the time will increase to more than a few seconds or more, and this requirement will not be able to meet the fast or near-instantaneous virtual machine (VM). Copy technology.

本揭露內容提供一種示範性實施例之一,包括一種複製源虛擬機器(VM)以及至少一個被複製的虛擬機器的記憶體中的資料的方法。來自源虛擬機器或被複製的虛擬機器的訪客實體位址與所述記憶體的主機實體位址之間的映射關係是由多個分層級別中所配置的多個頁表來予以定 義。所述方法包括:將所述多個分層級別的最高級別或較高級別中的頁表的元資料複製到所述虛擬機器;將所述多個分層級別中最高級別或較高級別以外的級別中的頁表的剩餘元資料根據存取的操作而對應複製到所述虛擬機器;以及根據所述元資料以及所複製的元資料來存取儲存於所述記憶體的對應位址中的資料。The present disclosure provides one of the exemplary embodiments, including a method of copying a source virtual machine (VM) and at least one material in a memory of the copied virtual machine. The mapping relationship between the guest entity address from the source virtual machine or the copied virtual machine and the host entity address of the memory is determined by a plurality of page tables configured in a plurality of hierarchical levels Righteousness. The method includes: copying metadata of a page table in a highest level or a higher level of the plurality of hierarchical levels to the virtual machine; and selecting the highest level or higher of the plurality of hierarchical levels Remaining metadata of the page table in the level is correspondingly copied to the virtual machine according to the operation of the access; and accessing the corresponding address stored in the memory according to the metadata and the copied metadata data of.

為讓本揭露之上述和其他目的、特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。The above and other objects, features, and advantages of the present invention will become more apparent from the description of the appended claims.

本揭露提供一種快速複製儲存於虛擬機器(VM)的記憶體中的資料的方法。示範性實施例之一包括提供一種通過存取時複製(Copy-On-Access,COA)複製元資料,以及通過寫時複製(Copy-on-write,COW)複製資料,以便快速複製虛擬機器的記憶體資料的方法。如此,可達成並應用不同級別虛擬機器的隔離保護及/或獨立執行。The present disclosure provides a method of quickly copying data stored in a memory of a virtual machine (VM). One of the exemplary embodiments includes providing a copy-on-access (COA) copy metadata and copying data by copy-on-write (COW) for rapid copying of virtual machines. The method of memory data. In this way, isolation protection and/or independent execution of different levels of virtual machines can be achieved and applied.

在示範性實施例之一中,當虛擬機器想要存取資料時,使用存取時複製(COA)技術複製對應於此存取操作的剩餘元資料來實施此存取操作。如果源虛擬機器或目標虛擬機器將資料寫入到實體記憶體,那麼使用寫時複製(COW)技術來複製實體記憶體中所存取的對應位址中所儲存的資料。在系統虛擬化的架構下,虛擬位址(Virtual Address)為程式用來存取資料以及指令的位址。虛擬位址包含區段(Segment)以及偏移欄位。此區段資訊用來判斷此 區段的保護資訊以及開始位址。作業系統一般使用平滑分段(Flat Segmentation),其中將所有區段映射到整個實體位址空間。根據平滑分段,虛擬位址實際上成為線性位址(Linear Address)。如果啟用分頁(Paging),則使用處理器分頁硬體(Processor Paging Hardware)將線性位址轉換成實體位址。為了使用分頁,作業系統建立並且管理頁表集(Set)。所述的位址轉換將使用這些頁表以及在線性位址中的各種位元欄位。請看圖1A,其示意性地說明本文中所引入的一種新頁表(Page-Table)結構示意圖。在系統虛擬化的架構下,被虛擬化的作業系統稱作“訪客”。為適當地虛擬化並隔離訪客,虛擬機器管理程式(Hypervisor)或虛擬機器監控程序(VMM)可控制或調節訪客所執行的所有特權操作。在虛擬機器管理程式或虛擬機器監控程序中的記憶體管理硬體電路的控制下,此新頁表結構用來定義訪客實體位址與主機實體位址之間的映射關係。在此頁表結構中,訪客對其自身的訪客IA-32頁表102具有完全控制。在訪客的控制下,通過使用控制暫存器3(CR3)來將訪客線性位址映射到訪客實體位址。在一個實施例中,所述CR3常被稱作頁目錄庫暫存器(Page Directory Base Register,PDBR)。前述的暫存器含有頁的實體位址,其可為一頁目錄(Page Directory)。如果啟動分頁,並將CR3設定為無效或未初始化的頁目錄,那麼此機器很有可能遭受不可恢復的故障,這是因為所有記憶體的參照資訊將從機器之下脫離。In one of the exemplary embodiments, when the virtual machine wants to access the material, the access time copy (COA) technique is used to copy the remaining metadata corresponding to the access operation to perform the access operation. If the source virtual machine or the target virtual machine writes data to the physical memory, copy-on-write (COW) technology is used to copy the data stored in the corresponding address accessed in the physical memory. In the system virtualization architecture, the Virtual Address is the address that the program uses to access data and instructions. The virtual address contains a segment and an offset field. This section information is used to determine this The protection information of the section and the starting address. The operating system typically uses Flat Segmentation, where all segments are mapped to the entire physical address space. According to the smooth segmentation, the virtual address actually becomes a Linear Address. If paging is enabled, the processor address is converted to a physical address using Processor Paging Hardware. In order to use paging, the operating system builds and manages a set of page tables (Set). The address translation will use these page tables as well as the various bit fields in the linear address. Please refer to FIG. 1A, which schematically illustrates a new page-table structure diagram introduced herein. Under the system virtualization architecture, the virtualized operating system is called a "guest." To properly virtualize and isolate guests, a hypervisor or virtual machine monitor (VMM) can control or regulate all privileged operations performed by the guest. Under the control of the memory management hardware in the virtual machine management program or virtual machine monitor, this new page table structure is used to define the mapping relationship between the guest entity address and the host entity address. In this page table structure, the visitor has full control over his own visitor IA-32 page table 102. The guest linear address is mapped to the guest entity address by using Control Register 3 (CR3) under the control of the visitor. In one embodiment, the CR3 is often referred to as a Page Directory Base Register (PDBR). The aforementioned scratchpad contains the physical address of the page, which can be a Page Directory. If paging is initiated and CR3 is set to an invalid or uninitialized page directory, then this machine is likely to suffer an unrecoverable failure because all memory reference information will be removed from the machine.

接著,根據記憶體管理硬體電路的控制,透過多級頁表104以及基準指標(Base Pointer)將訪客實體位址映射到主機實體位址。多級頁表104可為B樹狀(B-tree like)結構,並且可具有多個級別以便將訪客位址轉換成實體位址。在虛擬化平台中,中央管理單元(CPU)、記憶體管理單元(Memory Management Unit,MMU)以及輸入/輸出(I/O)裝置會造成一些負擔(Overheads)。一些最新的x86處理器(例如,AMD®以及Intel®)開始提供硬體擴展(Hardware Extension)以說明如何解決此性能問題。兩大供應商分別通過AMD-VirtualizationTM (AMD-VTM )以及Intel® VT-x技術引入對x86虛擬化的第一代硬體的支援。Intel引入了其具有記憶體管理單元虛擬化(MMU virtualization)的硬體支援,稱作“擴展頁表(Extended Page Table,EPT)。在一個實施例中,不論是AMD-VirtualizationTM (AMD-VTM )技術還是Intel® VT-x技術,抑或是其他技術,均使用硬體擴展來通過四級頁表定義訪客實體位址與主機實體位址之間的映射。Then, according to the control of the memory management hardware circuit, the guest entity address is mapped to the host entity address through the multi-level page table 104 and the base pointer (Base Pointer). The multi-level page table 104 can be a B-tree like structure and can have multiple levels to translate guest addresses into physical addresses. In a virtualization platform, central management units (CPUs), memory management units (MMUs), and input/output (I/O) devices create some overhead. Some of the latest x86 processors (for example, AMD® and Intel®) are beginning to offer hardware extensions to illustrate how to solve this performance problem. The two vendors introduced support for the first generation of hardware for x86 virtualization through AMD-Virtualization TM (AMD-V TM ) and Intel® VT-x technology. Intel introduced its hardware support with MMU virtualization, called the Extended Page Table (EPT). In one embodiment, whether it is AMD-Virtualization TM (AMD-V) TM ) technology is also Intel® VT-x technology, or other technologies that use hardware extensions to define the mapping between guest entity addresses and host entity addresses through a four-level page table.

請看圖1B以及圖1C,其繪示在訪客實體位址與主機實體位址之間建立映射的一個實施例,其在分層儲存管理(Hierarchiecal Levels)的實施例中,採用例如四級的頁表,但並非以此為限制。在此實施例中,線性或虛擬位址106包含若干區段(Segment)欄位以及偏移(Offset)欄位,例如,來自64位址中的第12個位元到第47位元形成了第一級到第四級的表偏移欄位。如果啟用分頁,將可使用處理器分 頁硬體將線性位址106轉換成實體位址。為了使用分頁,作業系統建立並管理頁表集(Set of Page Tables),例如,如圖所示的第四級到第一級頁表110、112、114以及116。基準指標(Base Pointer)108用於位址轉換。圖1C繪示用於位址轉換的高等級別(High Level)演算法。藉由映射到不同級別的頁表(例如,第四級到第一級頁表110、112、114以及116)來分別轉換不同級別的頁表偏移欄位的內容。在分層儲存管理中,儲存容量可達到512千百萬位元組(Giga Byte,GB)。在多個示範性實施例其中之一,提出透過利用在分層儲存管理結構中位址轉換的高等級別演算法來快速複製虛擬機器記憶體狀態。在複製虛擬機器記憶體狀態的方法中,複製有關最高級別或較高級別的頁表的元資料(Metadata),並且所複製的元資料由兩個虛擬機器(例如,源虛擬機器與目標虛擬機器)同時共用。目標虛擬機器為從源虛擬機器複製的虛擬機器。在多個示範性實施例其中之一,在複製虛擬機器記憶體狀態的方法中採用最高級別(第四級),但本揭露不限於此。對複製虛擬機器而言,有可能採用較高的級別,例如,第三級以及第四級,或第二級到第四級。在所述實施例中,複製有關最高級別(第四級)中的多個頁表的元資料,並將其設定為“無效”。此類複製所耗時間幾乎是固定。對稍後的操作則採用存取時複製(COA)及/或寫時複製(COW)。當源虛擬機器或目標虛擬機器存取資料時,使用存取時複製(COA)技術複製其他級別剩餘元資料以便進行此存取的操作。如果源 虛擬機器或目標虛擬機器將資料寫入到實體記憶體中的被存取位址的儲存空間,那麼當將資料儲存於實體記憶體中的對應被存取位址中時,使用寫時複製(COW)技術來複製資料。請看圖2,其為繪示在示範性實施例之一中複製虛擬機器記憶體狀態的方法的流程示意圖。在所述示範性實施例中,對複製採用了最高級別,但本揭露不限於此。在步驟S202中,複製較高級別中的元資料。訪客實體位址與主機實體位址之間的映射關係是由四個級別的頁表予以定義。為便於說明,將四個元資料層L4到L1看作不同級別中的相應元資料,例如,元資料層L4表示最高級別。在步驟S204中,回應於存取的操作,實施存取時複製(COA)技術來複製剩餘的元資料。在步驟S206中,使用寫時複製(COW)技術來複製實體記憶體中所存取的對應位址中所儲存的資料。前述結構類似於依照需求複製(Cloning On-demand),其中,如果虛擬機器試圖存取資料,那麼需要進行存取的操作,接著對應的一個或多個存取路徑將通過以下兩種方法來建立,包括對應於所述存取的操作,利用存取時複製(COA)來複製剩餘元資料;及/或利用寫時複製(COW)來複製實體記憶體中所存取的對應位址中所儲存的資料。請參照圖3,其繪示在B樹狀記憶體管理演算法中,源虛擬機器與實體記憶體之間的關係示意圖。訪客實體位址與主機實體位址之間的映射關係是藉由使用四個級別的頁表來予以定義。在元資料層340中,四個元資料層L4到L1分別視為不同級別中的頁表的相應元資 料。在區塊341、342、343以及344中,分別表示不同頁表目錄(PTD)中頁表之間的關係。不同的存取路徑可用以對存取的訪客實體位址與實體記憶體中的主機實體位址產生關連。例如,在源虛擬機器320中,藉由訪客頁表322將用於存取操作的訪客虛擬位址映射到訪客實體位址。對應於所述訪客實體位址,在所述訪客實體位址與對應於實體記憶體360中的不同頁的主機實體位址之間,從區塊344、343、342以及341建立一個存取路徑。1B and FIG. 1C, which illustrates an embodiment of establishing a mapping between a guest entity address and a host entity address, in an embodiment of hierarchical storage management (Hierarchiecal Levels), for example, using four levels. Page table, but not limited to this. In this embodiment, the linear or virtual address 106 includes a number of Segment fields and an Offset field, for example, from the 12th bit to the 47th bit in the 64 address. Table offset fields from level one to level four. If paging is enabled, the processor will be available The page hardware converts the linear address 106 into a physical address. To use paging, the operating system builds and manages Set of Page Tables, for example, the fourth level to first level page tables 110, 112, 114, and 116 as shown. Base Pointer 108 is used for address translation. FIG. 1C illustrates a High Level algorithm for address translation. The content of the different levels of page table offset fields is converted separately by mapping to different levels of page tables (eg, fourth level to first level page tables 110, 112, 114, and 116). In tiered storage management, storage capacity can reach 512 million bytes (Giga Byte, GB). In one of a number of exemplary embodiments, it is proposed to quickly copy virtual machine memory state by utilizing a higher level algorithm for address translation in a hierarchical storage management structure. In the method of copying the state of the virtual machine memory, metadata about the highest level or higher level page table is copied, and the copied metadata is composed of two virtual machines (for example, the source virtual machine and the target virtual machine) ) Sharing at the same time. The target virtual machine is a virtual machine that is replicated from the source virtual machine. In one of the various exemplary embodiments, the highest level (fourth level) is employed in the method of copying the state of the virtual machine memory, but the disclosure is not limited thereto. For copying virtual machines, it is possible to adopt higher levels, for example, third and fourth, or second to fourth. In the embodiment, the metadata about the plurality of page tables in the highest level (fourth level) is copied and set to "invalid". The time spent on such replication is almost fixed. Access-time copying (COA) and/or copy-on-write (COW) are used for later operations. When the source virtual machine or the target virtual machine accesses the material, the access-time copy (COA) technology is used to copy other levels of remaining metadata for this access operation. If source The virtual machine or the target virtual machine writes the data to the storage space of the accessed address in the physical memory, and then uses the copy-on-write when storing the data in the corresponding accessed address in the physical memory ( COW) technology to replicate data. Please refer to FIG. 2, which is a flow diagram illustrating a method of copying virtual machine memory state in one of the exemplary embodiments. In the exemplary embodiment, the highest level is employed for copying, but the disclosure is not limited thereto. In step S202, the metadata in the higher level is copied. The mapping between the guest entity address and the host entity address is defined by four levels of page tables. For convenience of explanation, the four meta-data layers L4 to L1 are regarded as corresponding metadata in different levels, for example, the metadata layer L4 represents the highest level. In step S204, in response to the operation of the access, a copy-on-access (COA) technique is implemented to copy the remaining metadata. In step S206, copy-on-write (COW) technology is used to copy the data stored in the corresponding address accessed in the physical memory. The foregoing structure is similar to Cloning On-demand, in which if a virtual machine attempts to access data, an access operation is required, and then the corresponding one or more access paths are established by the following two methods. Include, in response to the operation of the access, copying the remaining metadata using copy-on-access (COA); and/or copying the corresponding address accessed in the physical memory using copy-on-write (COW) Stored information. Please refer to FIG. 3, which illustrates a relationship between a source virtual machine and a physical memory in a B-tree memory management algorithm. The mapping between the guest entity address and the host entity address is defined by using four levels of page tables. In the metadata layer 340, the four meta-data layers L4 to L1 are respectively regarded as corresponding elements of the page table in different levels. material. In blocks 341, 342, 343, and 344, the relationships between page tables in different page table directories (PTDs) are respectively indicated. Different access paths may be used to correlate the visited guest entity address with the host entity address in the physical memory. For example, in the source virtual machine 320, the guest virtual address for the access operation is mapped to the guest entity address by the guest page table 322. Corresponding to the guest entity address, an access path is established from blocks 344, 343, 342, and 341 between the guest entity address and a host entity address corresponding to a different page in the physical memory 360. .

請參照圖4A以及圖4B,其繪示本揭露的多個示範性實施例其中之一,在無計數器的情況下複製虛擬機器記憶體狀態的方法示意圖。在所述實施例中,如果對源虛擬機器僅需要複製一個虛擬機器,那麼不必使用計數器來記錄頁表中的每一分頁表項目(PTE)的共用狀態。Please refer to FIG. 4A and FIG. 4B , which are schematic diagrams showing a method for copying a state of a virtual machine memory without a counter, one of a plurality of exemplary embodiments of the present disclosure. In the described embodiment, if only one virtual machine needs to be copied to the source virtual machine, then it is not necessary to use a counter to record the common state of each page table entry (PTE) in the page table.

如圖4A所示,源虛擬機器320被複製,並且相應地產生目標虛擬機器330。源虛擬機器320具有訪客頁表322,而目標虛擬機器330同樣具有從訪客頁表322複製的訪客頁表332。在此示範性實施例中,在複製虛擬機器記憶體狀態的方法中採用最高級別(第四級),但本揭露不限於此。對複製虛擬機器而言,有可能採用幾個較高的級別,例如,第三級及第四級,或第二級到第四級。在此實施例中,最高級別(第四級)中的頁表的元資料將被複製,然後設定為“無效”,例如,複製源虛擬機器的頁表402的元資料,並作為目標虛擬機器最高級別(第四級)的頁表404的元資料。並將最高級別(第四級)中的頁表目錄(PTD) 設定為無效。As shown in FIG. 4A, the source virtual machine 320 is copied and the target virtual machine 330 is generated accordingly. The source virtual machine 320 has a guest page table 322, and the target virtual machine 330 also has a guest page table 332 copied from the guest page table 322. In this exemplary embodiment, the highest level (fourth level) is employed in the method of copying the state of the virtual machine memory, but the disclosure is not limited thereto. For copying virtual machines, it is possible to adopt several higher levels, for example, third and fourth, or second to fourth. In this embodiment, the metadata of the page table in the highest level (fourth level) will be copied and then set to "invalid", for example, copying the metadata of the page table 402 of the source virtual machine and acting as the target virtual machine. The metadata of the highest level (fourth level) page table 404. And the page table directory (PTD) in the highest level (fourth level) Set to invalid.

在此頁表資料結構中,對於目標虛擬機器330中的頁表404,還建立了兩個頁表目錄,所述兩個頁表目錄在源虛擬機器320的第四級中的頁表402與下一較低級別(第三級)中的頁表406以及408之間有關連性(Correlated)。在較低級別(第三級到第一級)中的頁表目錄保持不變,也就是說,較低級別的元資料保持不變。如果一個訪客虛擬位址被轉換成實體記憶體360中的頁362的主機實體位址,那麼一個存取路徑將會被建立在從第三級中的頁表406、第二級中的頁表410、第一級中的頁表412到實體記憶體360中的分頁362的主機實體位址。In this page table data structure, for the page table 404 in the target virtual machine 330, two page table directories are also created, the two page table directories being in the page table 402 in the fourth level of the source virtual machine 320. Correlated between page tables 406 and 408 in the next lower level (third level). The page table directory in the lower level (third level to first level) remains unchanged, that is, the lower level metadata remains unchanged. If a guest virtual address is converted to the host entity address of page 362 in physical memory 360, then an access path will be established in page table 406 from the third level, the page table in the second level. 410. The host entity address of the page table 412 in the first level to the page 362 in the physical memory 360.

如圖4B所示,如果用於存取操作的一個訪客虛擬位址透過訪客頁表322映射到訪客實體位址,那麼對應於此訪客實體位址,在此訪客實體位址與對應於實體記憶體360中的頁362的主機實體位址之間建立一個存取路徑。根據此存取路徑,將首先按照需求(On demand)恢復較低級別中有關沿著存取路徑的頁表目錄的頁表。也就是說,恢復第三級中的頁表406a、第二級中的頁表410a、以及第一級中的頁表412a。與存取路徑無關的其他頁表仍保持“無效”狀態。根據到實體記憶體360的頁362的存取路徑,頁表412a中所存取的分頁表項目(PTE)的指標(Flags)標記為唯讀,這代表準備好進行寫時複製(COW)的操作。如果需要寫入操作,那麼使用寫時複製(COW)技術來複製實體記憶體360中的頁362中所存取的對應位址中所儲 存的資料。As shown in FIG. 4B, if a guest virtual address for an access operation is mapped to a guest entity address through the guest page table 322, then corresponding to the guest entity address, the guest entity address corresponds to the physical memory. An access path is established between the host entity addresses of page 362 in volume 360. Based on this access path, the page table for the page table directory along the access path in the lower level will be restored first. That is, the page table 406a in the third level, the page table 410a in the second level, and the page table 412a in the first level are restored. Other page tables that are not related to the access path remain in an "invalid" state. Based on the access path to page 362 of physical memory 360, the index (Flags) of the page table entry (PTE) accessed in page table 412a is marked as read-only, which indicates that copy-on-write (COW) is ready. operating. If a write operation is required, copy-on-write (COW) techniques are used to copy the corresponding address accessed in page 362 in physical memory 360. Information stored.

請看圖5A以及圖5B,其繪示本揭露的多個示範性實施例其中之一,在採用計數器的情況下複製虛擬機器記憶體狀態的方法。圖5A以及圖5B使用圖4A以及圖4B中的相同標號來表示相同元件或結構。5A and 5B illustrate a method of copying a state of a virtual machine memory using a counter, one of a plurality of exemplary embodiments of the present disclosure. 5A and 5B use the same reference numerals in FIGS. 4A and 4B to denote the same elements or structures.

如圖5A所示,複製源虛擬機器320並相應產生目標虛擬機器330。源虛擬機器320具有訪客頁表322,而目標虛擬機器330同樣具有從訪客頁表322複製的訪客頁表332。在此示範性實施例中,在複製虛擬機器記憶體狀態的方法中採用了最高級別(第四級),但本揭露不限於此。對複製虛擬機器而言,有可能部署較高級別,例如,第三級以及第四級,或是第二級到第四級。在此實施例中,複製最高級別(第四級)中的元資料,且接著將其標記為“唯讀”。將最高級別(第四級)中的頁表目錄(PTD)也設定為唯讀(Read Only)”。As shown in FIG. 5A, the source virtual machine 320 is copied and the target virtual machine 330 is generated accordingly. The source virtual machine 320 has a guest page table 322, and the target virtual machine 330 also has a guest page table 332 copied from the guest page table 322. In this exemplary embodiment, the highest level (fourth level) is employed in the method of copying the state of the virtual machine memory, but the disclosure is not limited thereto. For replicating virtual machines, it is possible to deploy higher levels, such as third and fourth, or second to fourth. In this embodiment, the metadata in the highest level (fourth level) is copied and then marked as "read only". The page table directory (PTD) in the highest level (fourth level) is also set to Read Only.

計數器用於對不同級別中的每一頁表的共用狀態進行計數。如果對應於一個頁表的數字為“1”,那麼此意謂建立了到所述頁表的僅一個連結(Link)或一個路徑(Path)。除非執行寫入操作(即,寫時複製,COW),否則不必複製所述頁表。如果建立了到所述頁表的兩個或兩個以上的連結或路徑,那麼在下一寫入操作中對應於所述頁表的數字將大於“1”,此意謂在對所述頁表執行寫入操作時複製操作是必要的。The counter is used to count the common state of each page table in different levels. If the number corresponding to a page table is "1", then this means that only one link (Link) or one path (Path) to the page table is established. The page table does not have to be copied unless a write operation (ie, copy-on-write, COW) is performed. If two or more links or paths to the page table are established, then the number corresponding to the page table in the next write operation will be greater than "1", which means that the page table is A copy operation is necessary when performing a write operation.

如果其中有一頁由源虛擬機器320或由目標虛擬機器 寫入,那麼對應於存取路徑的頁表的計數器的數字將加一,因此例如變為“2”。在寫入操作中將複製所述頁表,並且將建立新頁表來按照需求(On Demand)恢復所述頁表。在此頁表資料結構中,對於目標虛擬機器330中的頁表504,還建立了兩個頁表目錄,所述兩個頁表目錄在源虛擬機器320的第四級中的頁表502與下一較低級別(第三級)中的頁表506以及508之間有其關聯性。較低級別(第三級到第一級)中的頁表目錄保持不變,即,較低級別的元資料保持不變。在實體記憶體360中的頁362的下一寫入操作中,頁表506的計數器的數量變為“1”。如圖5B所示,建立了從第三級中的頁表506、第二級中的頁表510、第一級中的頁表512到實體記憶體360中的頁362的主機實體位址的一個存取路徑。沿著此存取路徑,頁表506、510以及512將被恢復。與存取路徑無關的其他頁表仍保持“唯讀”狀態。根據到實體記憶體360的頁362的存取路徑,沿著所述存取路徑的頁表504、506a、510a以及512a中所存取的分頁表項目(PTE)的旗標(Flags)標記為唯讀,這代表準備好進行寫時複製(COW)操作。If there is a page from the source virtual machine 320 or by the target virtual machine Write, then the number of the counter corresponding to the page table of the access path will be incremented by one, so for example, it becomes "2". The page table will be copied in the write operation and a new page table will be created to restore the page table as needed (On Demand). In this page table data structure, for the page table 504 in the target virtual machine 330, two page table directories are also created, the two page table directories being in the page table 502 in the fourth level of the source virtual machine 320. There is an association between page tables 506 and 508 in the next lower level (third level). The page table directory in the lower level (third level to first level) remains unchanged, ie, the lower level metadata remains unchanged. In the next write operation of the page 362 in the physical memory 360, the number of counters of the page table 506 becomes "1". As shown in FIG. 5B, from the page table 506 in the third level, the page table 510 in the second level, the page table 512 in the first level, to the host entity address of the page 362 in the physical memory 360. An access path. Along this access path, page tables 506, 510, and 512 will be restored. Other page tables that are not related to the access path remain "read only". Based on the access path to page 362 of physical memory 360, the flags of the page table entries (PTEs) accessed in page tables 504, 506a, 510a, and 512a of the access path are labeled as Read only, this means that you are ready for copy-on-write (COW) operations.

在圖5A以及圖5B中使用數字“1”或“2”僅是為了解釋每一分頁的共用狀態。此計數器也可配置在頁表資料結構或其他位置。例如,在Intel® VT-x技術的擴展頁表(EPT)結構中,一些預留位元可用於所述計數器。如果在其他位置中建立計數器,那麼可使用雜湊表(Hash Table)來與每一頁表進行關聯性的連結。在一些其他實施 例中,整個頁表也可完全不被共用。The use of the numbers "1" or "2" in Figures 5A and 5B is only for explaining the common state of each page. This counter can also be configured in the page table data structure or elsewhere. For example, in the Extended Page Table (EPT) structure of Intel® VT-x technology, some reserved bits are available for the counter. If you create counters in other locations, you can use a Hash Table to associate with each page table. In some other implementations In the example, the entire page table can also be completely unshared.

對於複製多個虛擬機器的情況,請參照圖6A以及圖6B,其繪示本揭露的多個示範性實施例其中之一,在有計數器的情況下複製虛擬機器的虛擬機器記憶體狀態的方法。For the case of copying multiple virtual machines, please refer to FIG. 6A and FIG. 6B, which illustrate one of the exemplary embodiments of the present disclosure, and the method for copying the virtual machine memory state of the virtual machine in the presence of a counter. .

如圖6A所示,源虛擬機器320將被複製並且相應地產生第一目標虛擬機器330a以及第二目標虛擬機器330b。源虛擬機器320具有訪客頁表322,而第一目標虛擬機器330a以及第二目標虛擬機器330b同樣具有其從訪客頁表322複製的相應訪客頁表332a以及332b。在此示範性實施例中,在複製虛擬機器記憶體狀態的方法中採用了最高級別(第四級),但本揭露不限於此。對複製虛擬機器而言,有可能部署較高級別,例如,第三級以及第四級,或第二級到第四級。在所述實施例中,複製較高級別(第四級)中的元資料,且接著將其標記為“唯讀”。As shown in FIG. 6A, the source virtual machine 320 will be replicated and the first target virtual machine 330a and the second target virtual machine 330b will be generated accordingly. The source virtual machine 320 has a guest page table 322, while the first target virtual machine 330a and the second target virtual machine 330b also have their respective guest page tables 332a and 332b copied from the guest page table 322. In this exemplary embodiment, the highest level (fourth level) is employed in the method of copying the state of the virtual machine memory, but the disclosure is not limited thereto. For replicating virtual machines, it is possible to deploy higher levels, such as third and fourth, or second to fourth. In the described embodiment, the metadata in the higher level (fourth level) is copied and then marked as "read only".

如圖5A以及圖5B所示,計數器用於對不同級別中的每一頁表的共用狀態進行計數。如果其中有一頁由第一目標虛擬機器330a寫入,那麼在寫入操作中將複製此頁表,並且將按照需求建立新的頁表以恢復所述頁表。如圖6A所示,如果第一目標虛擬機器330a存取實體記憶體360中的頁362,那麼存取路徑將建立在從第三級中的頁表608、第二級中的頁表610、第一級中的頁表612到實體記憶體360中的頁362的主機實體位址。沿著此存取路徑的頁表606、610以及612將恢復。與存取路徑無關的其他頁 表仍保持“唯讀”狀態。根據到實體記憶體360的頁362的存取路徑,沿著所述存取路徑的頁表604、608a、610a以及612a中所存取的分頁表項目(PTE)的旗標被標記為唯讀,這將代表準備好進行寫時複製(COW)操作。As shown in FIGS. 5A and 5B, the counter is used to count the shared state of each page table in different levels. If one of the pages is written by the first target virtual machine 330a, then the page table will be copied in the write operation and a new page table will be created as needed to restore the page table. As shown in FIG. 6A, if the first target virtual machine 330a accesses the page 362 in the physical memory 360, the access path will be established in the page table 608 from the third level, the page table 610 in the second level, The page table 612 in the first level is the host entity address of the page 362 in the physical memory 360. Page tables 606, 610, and 612 along this access path will be restored. Other pages not related to the access path The table remains "read only". Based on the access path to page 362 of physical memory 360, the flags of the page table entries (PTEs) accessed in page tables 604, 608a, 610a, and 612a of the access path are marked as read-only. This will be ready for copy-on-write (COW) operations.

在另一情況下,如圖6B所示,如果第二目標虛擬機器330b存取實體記憶體360中的頁362,那麼另一個存取路徑將建立在從第一級中的頁表606、第三級中的頁表608a、第二級中的頁表610a、第一級中的頁表612a到實體記憶體360中的頁362的主機實體位址。沿著此存取路徑的頁表608a、610a以及612a分別恢復到頁表608b、610b以及612b。與存取路徑無關的其他頁表仍保持“無效”狀態。根據到實體記憶體360的頁362的存取路徑,沿著所述存取路徑的頁表604、608b、610b以及612b中所存取的分頁表項目(PTE)的旗標標記為唯讀,這將表示已經準備好進行寫時複製(COW)操作。In another case, as shown in FIG. 6B, if the second target virtual machine 330b accesses the page 362 in the physical memory 360, then the other access path will be established in the page table 606 from the first level, The page table 608a in the third level, the page table 610a in the second level, the page table 612a in the first level, and the host entity address of the page 362 in the physical memory 360. The page tables 608a, 610a, and 612a along this access path are restored to the page tables 608b, 610b, and 612b, respectively. Other page tables that are not related to the access path remain in an "invalid" state. Based on the access path to page 362 of physical memory 360, the flags of the page table entries (PTEs) accessed in page tables 604, 608b, 610b, and 612b of the access path are marked as read-only, This will indicate that a copy-on-write (COW) operation is ready.

本揭露提供一種快速複製儲存於虛擬機器(VM)的記憶體的資料的方法。多個示範性實施例其中之一包括提供一種藉由存取時複製(COA)的方式複製元資料以及經由寫時複製(COW)的方式複製資料以快速複製虛擬機器的方法。在多個示範性實施例其中之一,當虛擬機器想要存取資料時,使用存取時複製(COA)技術複製剩餘元資料來實施存取操作。如果源虛擬機器或目標虛擬機器將資料寫入到實體記憶體,那麼使用寫時複製(COW)技術來複製實體記憶體中所存取的對應位址中所儲存的資料。The present disclosure provides a method of quickly copying data stored in a memory of a virtual machine (VM). One of the various exemplary embodiments includes providing a method of copying metadata by means of copy-on-access (COA) and copying data via copy-on-write (COW) to quickly copy a virtual machine. In one of the various exemplary embodiments, when the virtual machine wants to access the data, the access time copy (COA) technique is used to copy the remaining metadata to perform the access operation. If the source virtual machine or the target virtual machine writes data to the physical memory, copy-on-write (COW) technology is used to copy the data stored in the corresponding address accessed in the physical memory.

快速複製儲存於虛擬機器(VM)的記憶體中的資料的方法可應用於不同的虛擬化結構,例如,AMD-VirtualizationTM (AMD-VTM )及Intel® VT-x技術。在Intel® VT-x技術中,提出擴展頁表(EPT)結構。在AMD-VirtualizationTM (AMD-VTM )技術中,提出巢狀分頁(Nested Paging)結構。擴展頁表(EPT)為Intel用於記憶體管理單元(MMU)的第二代x86虛擬化技術。當此特徵可用時,普通IA-32頁表(由控制暫存器CR3所參照)從線性位址轉換成訪客實體位址。獨立的頁表(EPT表)集從訪客實體位址轉換成用來存取記憶體的主機實體位址。結果將是可允許訪客軟體修改其自身的IA-32頁表並且直接處理頁故障。這將允許虛擬機器監控程序(VMM)避免與頁表虛擬化相關聯的虛擬機器退出,而在無EPT時此類虛擬機器退出實為虛擬化開銷的主要來源。The method of rapid replication in a virtual memory data storage machine (VM) may be applied in different virtualization configuration, e.g., AMD-Virtualization TM (AMD- V TM) and Intel® VT-x technology. In the Intel® VT-x technology, an extended page table (EPT) structure is proposed. In AMD-Virtualization TM (AMD-V TM) technology, it is proposed nested tab (Nested Paging) structure. The Extended Page Table (EPT) is Intel's second-generation x86 virtualization technology for memory management units (MMUs). When this feature is available, the normal IA-32 page table (referenced by control register CR3) is converted from a linear address to a guest entity address. A separate page table (EPT table) set is converted from the guest entity address to the host entity address used to access the memory. The result will be to allow the guest software to modify its own IA-32 page table and handle page faults directly. This will allow the Virtual Machine Monitor (VMM) to avoid virtual machine exits associated with page table virtualization, which would be the primary source of virtualization overhead when there is no EPT.

本揭露的不同的運用上,可採用完全硬體實施例、完全軟體實施例或含有硬體以及軟體元件兩者的實施例的形式實施。在較佳實施例中,本揭露是以軟體來實施,所述套裝軟體含但不限於固件、常駐軟體、微碼等。The different uses of the present disclosure can be implemented in the form of a fully hardware embodiment, a fully software embodiment, or an embodiment containing both hardware and software components. In a preferred embodiment, the present disclosure is implemented in software, including but not limited to firmware, resident software, microcode, and the like.

另外,本揭露的不同的運用上,可採用從電腦可用或電腦可讀媒體存取的電腦程式產品的形式,提供供電腦或任何指令執行系統使用或結合電腦或任何指令執行系統來使用的程式碼。根據本揭露內容,電腦可用或電腦可讀媒體為可含有、儲存、傳達、傳播或傳送供指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置使用的 程式的任何有形設備。In addition, the different uses of the present disclosure may be in the form of a computer program product accessible from a computer-usable or computer-readable medium, providing a program for use by a computer or any instruction execution system or in conjunction with a computer or any instruction execution system. code. In accordance with the present disclosure, a computer-usable or computer-readable medium can be used, stored, communicated, propagated, or transmitted for use by or in connection with an instruction execution system, apparatus, or device. Any tangible device of the program.

所述媒體可為電子、磁性、光學、電磁、紅外線或半導體系統(或設備,或裝置)或傳播媒體。電腦可讀媒體的實例包含半導體或固態記憶體、磁帶、可移動電腦磁片、隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、硬磁片或光碟。光碟的當前實例包含光碟-唯讀記憶體(compact disk-read only memory,CD-ROM)、可重複讀寫光碟(compact disk-read/write,CD-R/W)以及數位多功能光碟(DVD)。The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or device, or device) or a propagation medium. Examples of computer readable media include semiconductor or solid state memory, magnetic tape, removable computer magnetic disk, random access memory (RAM), read-only memory (ROM), hard magnetic disk Or a disc. Current examples of optical discs include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W), and digital versatile disc (DVD) ).

本揭露的不同的運用上,可利用一個或多個電腦可讀媒體的任何組合。電腦可讀媒體可為電腦可讀信號媒體或電腦可讀儲存媒體。例如,電腦可讀儲存媒體可為(但不限於)電子、磁性、光學、電磁、紅外線或半導體系統、設備或裝置,或前述系統、設備或裝置的任何適當組合。電腦可讀儲存媒體的更多特定實例(非詳盡清單)包含以下各者:具有一個或多個導線的電連接、可攜式電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式設計唯讀記憶體(erasable programmable read-only memory,EPROM;或快閃記憶體)、光纖、便攜光碟唯讀記憶體(CD-ROM)、光學儲存裝置、磁性儲存裝置或前述各者的任何適當組合。在本揭露的內容中,電腦可讀儲存媒體可為可含有或儲存供指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置來使用的程式的任何有形媒體。Any combination of one or more computer readable media may be utilized for different uses of the present disclosure. The computer readable medium can be a computer readable signal medium or a computer readable storage medium. For example, a computer readable storage medium can be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing systems, devices, or devices. More specific examples (non-exhaustive list) of computer readable storage media include the following: electrical connections with one or more wires, portable computer diskettes, hard disks, random access memory (RAM), only Read memory (ROM), erasable programmable read-only memory (EPROM; or flash memory), optical fiber, portable optical disk read-only memory (CD-ROM), optical storage A device, a magnetic storage device, or any suitable combination of the foregoing. In the context of the present disclosure, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

上述電腦可讀信號媒體可包含傳播的資料信號,所述傳播資料信號具有體現於其中(例如,在基頻中或作為載波的部分)的電腦可讀程式碼。此類傳播信號可採取各種形式中的任一者,包含但不限於電磁、光學或其任何適當組合。電腦可讀信號媒體可為並非電腦可讀儲存媒體但可傳達、傳播或傳送供指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置來使用的程式的任何電腦可讀媒體。The computer readable signal medium can include a propagated data signal having computer readable code embodied therein (e.g., in a baseband or as part of a carrier). Such propagated signals can take any of a variety of forms including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium but that can convey, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

可使用任何適當媒體來傳輸體現於電腦可讀媒體上的程式碼,所述適當媒體包含(但不限於)無線、有線、光纖纜線、RF等或前述各者的任何適當組合。The code embodied on a computer readable medium can be transmitted using any suitable medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

本揭露的不同的運用上,可用一種或多種程式設計語言的任何組合來撰寫用於實行本揭露的若干方面的操作的電腦程式代碼,所述一種或多種程式設計語言包含例如Java、Smalltalk、C++或其類似者的物件導向的程式設計語言以及例如「C」程式設計語言或相似程式設計語言的常規程式性程式設計語言。所述程式碼可完全在使用者電腦上執行,部分地在使用者電腦上執行,作為獨立套裝軟體來執行,部分地在使用者電腦上執行且部分地在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在完全在遠端電腦或伺服器上執行的情形下,遠端電腦可通過任何類型的網路(包含局域網(LAN)或廣域網路(WAN))連接到使用者電腦,或可連接到外部電腦(例如,使用互聯網服務提供者,通過互聯網來連接)。In various uses of the present disclosure, computer program code for performing the operations of several aspects of the present disclosure may be written in any combination of one or more programming languages, including, for example, Java, Smalltalk, C++. Or object-oriented programming language of or similar and a conventional programming language such as a "C" programming language or a similar programming language. The code may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on the remote computer, or entirely at Executed on a remote computer or server. In the case of full remote computer or server execution, the remote computer can be connected to the user's computer through any type of network (including local area network (LAN) or wide area network (WAN)), or can be connected to an external computer (For example, using an Internet service provider to connect via the Internet).

本揭露的不同的運用上,參考本揭露的實施例的方法、設備(系統)以及電腦程式產品的流程圖說明及/或框圖來描述本揭露的若干方面。應理解,可通過電腦程式指令來實施流程圖說明及/或框圖的每一框以及流程圖說明及/或框圖中的若干框的組合。可將這些電腦程式指令提供給通用電腦、專用電腦或其他可程式設計資料處理設備的處理器以產生機器,以使得通過所述電腦或其他可程式設計資料處理設備的處理器而執行的指令產生用於實施所述流程圖及/或框圖的一個或多個框中所指定的功能/動作的構件。The various aspects of the present disclosure are described with reference to flowchart illustrations and/or block diagrams of the method, apparatus (system), and computer program product of the disclosed embodiments. It will be understood that each block of the flowchart illustrations and/or FIG. The computer program instructions can be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing device to produce a machine such that instructions executed by the processor of the computer or other programmable data processing device are generated A means for implementing the functions/acts specified in one or more of the blocks of the flowcharts and/or block diagrams.

也可將這些電腦程式指令儲存於電腦可讀媒體中,其可引導電腦、其他可程式設計資料處理設備或其他裝置以特定方式行使功能,使得儲存於所述電腦可讀媒體中的指令產生包含實施所述流程圖及/或框圖的一個或多個框中所指定的功能/動作的指令的製品。The computer program instructions can also be stored in a computer readable medium that can direct a computer, other programmable data processing device, or other device to function in a particular manner, such that the instructions stored on the computer readable medium produce An article of manufacture that implements the instructions of the functions/acts specified in one or more of the blocks of the flowcharts and/or block diagrams.

也可將所述電腦程式指令載入到電腦、其他可程式設計資料處理設備或其他裝置上,以使一系列操作步驟在所述電腦、其他可程式設計設備或其他裝置上執行以產生電腦實施的過程,使得在所述電腦或其他可程式設計設備上執行的指令提供用於實施所述流程圖及/或框圖的一個或多個框中所指定的功能/動作的過程。本揭露的流程圖用以說明根據本揭露的各種實施例的系統、方法以及電腦程式產品的可能實施的體系結構、功能性以及操作。因此,流程圖中的每一區塊可表示程式碼的模組、段或部分,其包 括用於實施指定的邏輯功能的一個或多個可執行指令。同樣應注意,在一些替代實施中,框中所提到的功能可不以諸圖中所提到的次序發生。例如,取決於所涉及的功能性,連續展示的兩個區塊實際上可實質上同時執行,或所述區塊有時可按相反次序執行。還應注意,可通過執行指定功能或動作的基於專用硬體的系統或專用硬體與電腦指令的組合來實施區塊及/或流程圖說明的每一區塊及/或流程圖說明中的區塊的組合。本文中使用之術語僅用於描述特定實施例,而且並不意欲限制本揭露。如本文中所使用,單數形式「一」及「該」意欲同樣包含複數形式,除非上下文另有清晰指示。應進一步理解,當在本說明書中使用術語「包括」時,其指明存在所陳述的特徵、整體、步驟、操作、元件及/或元件,但不排除存在或添加一個或多個其他特徵、整體、步驟、操作、元件、元件及/或其群組。適合於儲存及/或執行程式碼的資料處理系統包含通過系統匯流排直接或間接耦接到記憶體元件的至少一個處理器。所述記憶體元件可包含在程式碼的實際執行期間所應用的本機暫存器、大型儲存裝置以及快取記憶體,所述快取記憶體提供至少一些程式碼的暫時儲存,以便減少在執行期間必須從大型儲存裝置檢索存取的次數。The computer program instructions can also be loaded onto a computer, other programmable data processing device, or other device to cause a series of operational steps to be performed on the computer, other programmable device, or other device to effect computer implementation. The processes that are executed on the computer or other programmable device provide a process for implementing the functions/acts specified in one or more of the blocks of the flowcharts and/or block diagrams. The flowchart of the present disclosure is intended to illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products in accordance with various embodiments of the present disclosure. Thus, each block in the flowchart can represent a module, segment or portion of the code, and its package One or more executable instructions for implementing the specified logic functions. It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending on the functionality involved. It should also be noted that each block and/or flowchart description in the block and/or flowchart illustrations can be implemented by a special hardware-based system or a combination of dedicated hardware and computer instructions that perform the specified function or action. The combination of blocks. The terminology used herein is for the purpose of describing the particular embodiments, As used herein, the singular and " It is to be understood that the phrase "comprise" or "an" or "an" , steps, operations, components, components, and/or groups thereof. A data processing system suitable for storing and/or executing code includes at least one processor coupled directly or indirectly to a memory component through a system bus. The memory component can include a local register, a large storage device, and a cache memory applied during actual execution of the code, the cache memory providing temporary storage of at least some code to reduce The number of accesses must be retrieved from a large storage device during execution.

雖然本揭露已以較佳實施例揭露如上,然其並非用以限定本揭露,任何熟習此技藝者,在不脫離本揭露之精神和範圍內,當可作些許之更動與潤飾,因此本揭露之保護範圍當視後附之申請專利範圍所界定者為準。The present disclosure has been disclosed in the above preferred embodiments. However, it is not intended to limit the scope of the disclosure, and the invention may be modified and modified without departing from the spirit and scope of the disclosure. The scope of protection is subject to the definition of the scope of the patent application.

102‧‧‧訪客IA-32頁表102‧‧‧ Visitors IA-32 page

104‧‧‧多級頁表104‧‧‧Multi-level page table

106‧‧‧線性或虛擬位址106‧‧‧Linear or virtual address

108‧‧‧基準指標(Base Pointer)108‧‧‧Base Indicators (Base Pointer)

110、112、114以及116‧‧‧頁表110, 112, 114 and 116‧‧‧ pages

341、342、343以及344‧‧‧區塊Blocks 341, 342, 343 and 344‧‧

320‧‧‧源虛擬機器320‧‧‧ source virtual machine

322、332、332a、332b‧‧‧訪客頁表322, 332, 332a, 332b‧‧‧ visitor page

330、330a、330b‧‧‧目標虛擬機器330, 330a, 330b‧‧‧ target virtual machine

340‧‧‧元資料層340‧‧‧ metadata layer

360‧‧‧實體記憶體360‧‧‧ physical memory

362‧‧‧頁362‧‧‧

402、404、406、408、410、412‧‧‧頁表402, 404, 406, 408, 410, 412‧‧‧ pages

406a、410a、412a‧‧‧頁表406a, 410a, 412a‧‧‧ page

411‧‧‧路徑411‧‧‧ Path

502、504、506、508、510、512‧‧‧頁表502, 504, 506, 508, 510, 512‧‧‧ pages

506a、510a、512a‧‧‧頁表506a, 510a, 512a‧‧‧ page

602、604、606、610、612‧‧‧頁表602, 604, 606, 610, 612‧‧‧ pages

606a、610a、612a‧‧‧頁表606a, 610a, 612a‧‧‧ page

606b、610b、612b‧‧‧頁表606b, 610b, 612b‧‧‧ page

圖1A用以繪示多個示範性實施例其中之一的新頁表結構示意圖。FIG. 1A is a schematic diagram showing a new page table structure of one of a plurality of exemplary embodiments.

圖1B以及圖1C用以繪示通過四個級別的頁表在訪客實體位址與主機實體位址之間建立映射的一個實施例示意圖。FIG. 1B and FIG. 1C are diagrams showing an embodiment of establishing a mapping between a guest entity address and a host entity address through a four-level page table.

圖2用以繪示在多個示範性實施例其中之一,複製虛擬機器記憶體狀態的方法的流程示意圖。2 is a flow chart showing a method of copying a state of a virtual machine memory in one of a plurality of exemplary embodiments.

圖3用以繪示在B樹狀記憶體管理演算法中在源虛擬機器與實體記憶體之間的關係示意圖。FIG. 3 is a schematic diagram showing the relationship between a source virtual machine and a physical memory in a B-tree memory management algorithm.

圖4A以及圖4B用以繪示在本揭露的多個示範性實施例其中之一,在無計數器的情況下複製虛擬機器記憶體狀態的方法示意圖。4A and 4B are schematic diagrams showing a method of copying a virtual machine memory state without a counter in one of the exemplary embodiments of the present disclosure.

圖5A以及圖5B用以繪示在本揭露的多個示範性實施例其中之一,在有計數器的情況下複製虛擬機器記憶體狀態的方法示意圖。5A and 5B are schematic diagrams showing a method of copying a state of a virtual machine memory in the presence of a counter, in one of various exemplary embodiments of the present disclosure.

圖6A以及圖6B用以繪示在本揭露的多個示範性實施例其中之一,在有計數器的情況下複製虛擬機器的虛擬機器記憶體狀態的方法示意圖。6A and 6B are diagrams illustrating a method of copying a virtual machine memory state of a virtual machine in the presence of a counter, in one of various exemplary embodiments of the present disclosure.

320‧‧‧源虛擬機器320‧‧‧ source virtual machine

322、332‧‧‧訪客頁表322, 332‧‧‧ visitor page

330‧‧‧目標虛擬機器330‧‧‧Target virtual machine

360‧‧‧實體記憶體360‧‧‧ physical memory

362‧‧‧頁362‧‧‧

402、404、406、408、410、412‧‧‧頁表402, 404, 406, 408, 410, 412‧‧‧ pages

406a、410a、412a‧‧‧頁表406a, 410a, 412a‧‧‧ page

411‧‧‧路徑411‧‧‧ Path

Claims (28)

一種複製虛擬機器記憶體資料的方法,適用於一源虛擬機器(VM)以及至少一個被複製的虛擬機器對該記憶體資料的存取,其中來自該源虛擬機器或該被複製的虛擬機器的一訪客實體位址與該記憶體的一主機實體位址之間的映射關係是由多個分層級別中所配置的多個頁表所定義,該複製虛擬機器記憶體資料的方法包括:將該些分層級別的最高級別或較高級別對應的該些頁表的元資料複製到該虛擬機器;根據存取之操作,將該些分層級別中該最高級別或該較高級別以外級別中的該些頁表,對應該存取的操作的元資料複製到該虛擬機器;以及存取儲存於該記憶體中,該些元資料以及根據該存取之操作所複製的該些元資料的對應位址中的資料。 A method of copying virtual machine memory data, suitable for accessing a memory material by a source virtual machine (VM) and at least one copied virtual machine, wherein the virtual machine or the copied virtual machine is from the source virtual machine The mapping relationship between a guest entity address and a host entity address of the memory is defined by a plurality of page tables configured in a plurality of hierarchical levels, and the method for copying virtual machine memory data includes: Metadata of the page tables corresponding to the highest level or higher level of the hierarchical levels are copied to the virtual machine; according to the operation of the access, the highest level or the higher level of the hierarchical levels The page tables in the file, copying the metadata of the operation to be accessed to the virtual machine; and accessing the metadata stored in the memory, the metadata and the metadata copied according to the operation of the access The data in the corresponding address. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中在根據將該些分層級別的最高級別或較高級別對應的該些頁表的該些元資料複製之後,該方法更包括:將對應於該最高級別或該或該些較高級別的多個頁表目錄設定為無效。 The method for copying virtual machine memory data according to claim 1, wherein after copying the metadata of the page tables corresponding to the highest level or higher level of the hierarchical levels, The method further includes: setting a plurality of page table directories corresponding to the highest level or the higher level to be invalid. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中將該最高級別或該或該些較高級別以外的該或 該些級別中的該些頁表的剩餘元資料複製到該虛擬機器包括:對應該存取操作,按照需求(On demand)恢復該最高級別或該或該些較高級別以外的該或該些級別中的該些頁表。 A method of copying virtual machine memory data as described in claim 1 wherein the highest level or the or higher levels of the or Copying the remaining metadata of the page tables in the levels to the virtual machine includes: corresponding to the access operation, restoring the highest level or the higher level or the higher level The page tables in the level. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中存取儲存於該記憶體的該對應位址中的資料包括:根據該些元資料以及根據該存取之操作所複製的該些元資料建立一個或多個存取路徑,以根據該些元資料以及根據該存取之操作所複製的該些元資料來存取儲存於該記憶體的該對應位址中的該資料。 The method for copying virtual machine memory data according to claim 1, wherein accessing the data stored in the corresponding address of the memory comprises: according to the metadata and the operation according to the access Copying the meta-data to establish one or more access paths for accessing the corresponding address stored in the memory according to the meta-data and the meta-data copied according to the access operation The information. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中存取儲存於該記憶體的該對應位址中的資料包括:根據寫時複製(COW)技術將該資料寫入到該記憶體的該對應位址。 The method for copying virtual machine memory data according to claim 1, wherein accessing the data stored in the corresponding address of the memory comprises: writing the data according to copy-on-write (COW) technology The corresponding address to the memory. 如申請專利範圍第5項所述之複製虛擬機器記憶體資料的方法,其中根據該寫時複製(COW)技術將資料寫入到該記憶體的該對應位址之前,將該些元資料以及根據該存取之操作所複製的該些元資料設定為唯讀。 The method for copying virtual machine memory data according to claim 5, wherein the metadata is written according to the copy-on-write (COW) technology before the corresponding address of the memory is written. The metadata copied according to the operation of the access is set to read only. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中在於該多個分層級別的數量為四。 A method of copying virtual machine memory data as described in claim 1 wherein the number of the plurality of hierarchical levels is four. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中在於該訪客實體位址與擴展頁表(EPT)結構相容,並且該些頁表是以多個分層級別來配置以用於轉換該訪客實體位址。 The method for copying virtual machine memory data as described in claim 1, wherein the guest entity address is compatible with an extended page table (EPT) structure, and the page tables are at a plurality of hierarchical levels. Configured to translate the guest entity address. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中在該訪客實體位址與巢狀分頁(Nested Paging)結構相容,並且該些頁表是以該多個分層級別來配置以用於轉換該訪客實體位址。 The method for copying virtual machine memory data as described in claim 1, wherein the guest entity address is compatible with a Nested Paging structure, and the page tables are in the plurality of layers The level is configured to translate the guest entity address. 如申請專利範圍第1項所述之複製虛擬機器記憶體資料的方法,其中在複製該最高級別或該或該些較高級別以外的該或該些級別中的該些頁表的剩餘元資料之前,對該最高級別或該或該些較高級別以外的該或該些級別中所配置的每一該頁表的共用狀態計數,以及根據該計數的結果來複製每一該頁表的該剩餘元資料。 The method of copying virtual machine memory data as described in claim 1, wherein the remaining metadata of the page tables in the level or levels other than the highest level or the higher level are copied. Previously, a common state count for each of the page tables configured in the one or the other levels other than the highest level or the higher levels, and copying each of the page tables based on the result of the counting Remaining metadata. 如申請專利範圍第10項所述之複製虛擬機器記憶體資料的方法,其中將每一該頁表中的每一該計數的結果儲存於該計數的對應該頁表中。 The method of copying virtual machine memory data as described in claim 10, wherein the result of each of the counts in each of the page tables is stored in a corresponding page table of the count. 如申請專利範圍第10項所述之複製虛擬機器記憶體資料的方法,其中將每一該頁表中的每一該計數的結果儲存於一雜湊表中。 A method of copying virtual machine memory data as described in claim 10, wherein the result of each of the counts in each of the page tables is stored in a hash table. 一種儲存於電腦可存取媒體中的電腦程式產品,其包 括用於在一個或多個電腦系統中實施根據申請專利範圍第1項該複製虛擬機器記憶體資料的方法的電腦可讀程式集。 Computer program product stored in computer accessible media, package A computer readable set of instructions for implementing the method of copying virtual machine memory data in accordance with claim 1 of the patent application scope in one or more computer systems. 一種電腦系統,其包括:主機,其包括:匯流排系統;記憶體模組,其連接到該匯流排系統,其中包含電腦可執行指令集;以及處理單元,其連接到該匯流排系統,其中該處理單元執行用於實施根據申請專利範圍第1項之該複製虛擬機器記憶體資料的方法的該電腦可執行指令集。 A computer system comprising: a host comprising: a busbar system; a memory module coupled to the busbar system, comprising a computer executable instruction set; and a processing unit coupled to the busbar system, wherein The processing unit executes the set of computer executable instructions for implementing the method of copying virtual machine memory data according to claim 1 of the scope of the patent application. 一種複製虛擬機器記憶體資料的方法,適用於一源虛擬機器(VM)以及至少一個被複製的虛擬機器對該記憶體資料的存取,其中來自該源虛擬機器或該被複製的虛擬機器的一訪客實體位址與該記憶體的一主機實體位址之間的映射關係是由多個分層級別中所配置的多個頁表所定義,該複製虛擬機器記憶體資料的方法包括:將該些分層級別的最高級別對應的該些頁表的元資料複製到該虛擬機器;根據存取之操作,將該最高級別以外的該些級別中的該些頁表,對應該存取的操作的元資料複製到該虛擬機器;以及 存取儲存於該記憶體中,該最高級別對應的該些頁表的該些元資料以及根據該存取之操作所複製的該些元資料的對應位址中的資料。 A method of copying virtual machine memory data, suitable for accessing a memory material by a source virtual machine (VM) and at least one copied virtual machine, wherein the virtual machine or the copied virtual machine is from the source virtual machine The mapping relationship between a guest entity address and a host entity address of the memory is defined by a plurality of page tables configured in a plurality of hierarchical levels, and the method for copying virtual machine memory data includes: Metadata of the page tables corresponding to the highest level of the hierarchical levels are copied to the virtual machine; according to the operation of accessing, the page tables in the levels other than the highest level are correspondingly accessed The metadata of the operation is copied to the virtual machine; Accessing the metadata stored in the memory, the highest level corresponds to the metadata of the page tables and the corresponding addresses of the meta-data copied according to the operation of the access. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中在根據將該最高級別對應的該些頁表的該些元資料複製之後,該方法更包括:將對應於該最高級別的多個頁表目錄設定為無效。 The method for copying virtual machine memory data according to claim 15, wherein after the copying the metadata according to the highest level corresponding to the highest level, the method further comprises: corresponding to the highest Multiple page table directories for the level are set to invalid. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中將該最高級別以外的該些級別中的該些頁表的剩餘元資料複製到該虛擬機器包括:對應該存取操作,按照需求(On demand)恢復該最高級別以外的該些級別中的該些頁表。 The method for copying virtual machine memory data according to claim 15, wherein copying the remaining metadata of the page tables in the levels other than the highest level to the virtual machine comprises: corresponding access Operation, On demand, restores those page tables in those levels beyond the highest level. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中存取儲存於該記憶體的該對應位址中的資料包括:根據該些元資料以及根據該存取之操作所複製的該些元資料建立一個或多個存取路徑,以根據該些元資料以及根據該存取之操作所複製的該些元資料來存取儲存於該記憶體的該對應位址中的該資料。 The method for copying virtual machine memory data according to claim 15, wherein accessing the data stored in the corresponding address of the memory comprises: according to the metadata and the operation according to the access Copying the meta-data to establish one or more access paths for accessing the corresponding address stored in the memory according to the meta-data and the meta-data copied according to the access operation The information. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中存取儲存於該記憶體的該對應位址中的資料 包括:根據寫時複製(COW)技術將該資料寫入到該記憶體的該對應位址。 The method for copying virtual machine memory data according to claim 15, wherein the data stored in the corresponding address of the memory is accessed. The method includes: writing the data to the corresponding address of the memory according to a copy-on-write (COW) technique. 如申請專利範圍第19項所述之複製虛擬機器記憶體資料的方法,其中根據該寫時複製(COW)技術將資料寫入到該記憶體的該對應位址之前,將該些元資料以及根據該存取之操作所複製的該些元資料設定為唯讀。 The method for copying virtual machine memory data according to claim 19, wherein the metadata is written according to the copy-on-write (COW) technology before the corresponding address of the memory is written. The metadata copied according to the operation of the access is set to read only. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中在於該多個分層級別的數量為四。 A method of copying virtual machine memory data as described in claim 15 wherein the number of the plurality of hierarchical levels is four. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中在於該訪客實體位址與擴展頁表(EPT)結構相容,並且該些頁表是以多個分層級別來配置以用於轉換該訪客實體位址。 A method for copying virtual machine memory data as described in claim 15 wherein the guest entity address is compatible with an extended page table (EPT) structure, and the page tables are at a plurality of hierarchical levels. Configured to translate the guest entity address. 根據申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中在該訪客實體位址與巢狀分頁(Nested Paging)結構相容,並且該些頁表是以該多個分層級別來配置以用於轉換該訪客實體位址。 A method of copying virtual machine memory data as described in claim 15 wherein the guest entity address is compatible with a Nested Paging structure, and the page tables are in the plurality of layers The level is configured to translate the guest entity address. 如申請專利範圍第15項所述之複製虛擬機器記憶體資料的方法,其中在複製該最高級別以外的該些級別中的該些頁表的剩餘元資料之前,對該最高級別以外的該或該些級別中所配置的每一該頁表的共用狀態計數,以及根據該計數的結果 來複製每一該頁表的該剩餘元資料。 A method for copying virtual machine memory data as described in claim 15 wherein the copy of the remaining metadata of the page tables in the levels other than the highest level is prior to the highest level The shared state count for each of the page tables configured in the levels, and the result based on the count To copy the remaining metadata of each page table. 如申請專利範圍第24項所述之複製虛擬機器記憶體資料的方法,其中將每一該頁表中的每一該計數的結果儲存於該計數的對應該頁表中。 A method of copying virtual machine memory data as described in claim 24, wherein the result of each of the counts in each of the page tables is stored in a corresponding page table of the count. 如申請專利範圍第24項所述之複製虛擬機器記憶體資料的方法,其中將每一該頁表中的每一該計數的結果儲存於一雜湊表中。 A method of copying virtual machine memory data as described in claim 24, wherein the result of each of the counts in each of the page tables is stored in a hash table. 一種儲存於電腦可存取媒體中的電腦程式產品,其包括用於在一個或多個電腦系統中實施根據申請專利範圍第15項之該複製虛擬機器記憶體資料的方法的電腦可讀程式集。 A computer program product stored in a computer-accessible medium, comprising a computer-readable program set for implementing a method of copying virtual machine memory data according to claim 15 in one or more computer systems . 一種電腦系統,其包括:主機,其包括:匯流排系統;記憶體模組,其連接到該匯流排系統,其中包含電腦可執行指令集;以及處理單元,其連接到該匯流排系統,其中該處理單元執行用於實施根據申請專利範圍第15項該複製虛擬機器記憶體資料的方法的該電腦可執行指令集。 A computer system comprising: a host comprising: a busbar system; a memory module coupled to the busbar system, comprising a computer executable instruction set; and a processing unit coupled to the busbar system, wherein The processing unit executes the set of computer executable instructions for implementing the method of copying virtual machine memory data according to claim 15 of the scope of the patent application.
TW101123264A 2012-06-28 2012-06-28 Method of cloning data in a memory for a virtual machine, product of computer programs and computer system TWI475489B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101123264A TWI475489B (en) 2012-06-28 2012-06-28 Method of cloning data in a memory for a virtual machine, product of computer programs and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101123264A TWI475489B (en) 2012-06-28 2012-06-28 Method of cloning data in a memory for a virtual machine, product of computer programs and computer system

Publications (2)

Publication Number Publication Date
TW201401171A TW201401171A (en) 2014-01-01
TWI475489B true TWI475489B (en) 2015-03-01

Family

ID=50345082

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101123264A TWI475489B (en) 2012-06-28 2012-06-28 Method of cloning data in a memory for a virtual machine, product of computer programs and computer system

Country Status (1)

Country Link
TW (1) TWI475489B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608368B (en) * 2015-05-15 2017-12-11 惠普發展公司有限責任合夥企業 Data copying

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769074B2 (en) * 2017-11-09 2020-09-08 Microsoft Technology Licensing, Llc Computer memory content movement

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201117100A (en) * 2009-11-09 2011-05-16 Inst Information Industry Management apparatuses and related switching methods for a running virtual machine
TW201118738A (en) * 2009-11-30 2011-06-01 Inventec Corp A method of the keeping connection of remote the virtual machine
US20120030406A1 (en) * 2009-06-29 2012-02-02 Jichuan Chang Hypervisor-based management of local and remote virtual memory pages
US8151263B1 (en) * 2006-03-31 2012-04-03 Vmware, Inc. Real time cloning of a virtual machine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151263B1 (en) * 2006-03-31 2012-04-03 Vmware, Inc. Real time cloning of a virtual machine
US20120030406A1 (en) * 2009-06-29 2012-02-02 Jichuan Chang Hypervisor-based management of local and remote virtual memory pages
TW201117100A (en) * 2009-11-09 2011-05-16 Inst Information Industry Management apparatuses and related switching methods for a running virtual machine
TW201118738A (en) * 2009-11-30 2011-06-01 Inventec Corp A method of the keeping connection of remote the virtual machine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608368B (en) * 2015-05-15 2017-12-11 惠普發展公司有限責任合夥企業 Data copying
US11294657B2 (en) 2015-05-15 2022-04-05 Hewlett-Packard Development Company, L.P. Data copying

Also Published As

Publication number Publication date
TW201401171A (en) 2014-01-01

Similar Documents

Publication Publication Date Title
US9330013B2 (en) Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith
US9201875B2 (en) Partition file system for virtual machine memory management
US9135171B2 (en) Method for improving save and restore performance in virtual machine systems
EP3227783B1 (en) Live rollback for a computing environment
US8656222B2 (en) Method and system for recording a selected computer process for subsequent replay
US10521354B2 (en) Computing apparatus and method with persistent memory
US8429651B2 (en) Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks
US9104469B2 (en) Suspend-resume of virtual machines using de-duplication
US9152573B2 (en) Sharing memory pages having regular expressions within a virtual machine
US20140331017A1 (en) Application-directed memory de-duplication
US20190205151A1 (en) Information processing apparatus, information processing method, and storage medium
US11573904B2 (en) Transparent self-replicating page tables in computing systems
TWI475489B (en) Method of cloning data in a memory for a virtual machine, product of computer programs and computer system
US8886867B1 (en) Method for translating virtual storage device addresses to physical storage device addresses in a proprietary virtualization hypervisor
US11243801B2 (en) Transparent huge pages support for encrypted virtual machines
US11748135B2 (en) Utilizing virtual input/output memory management units (IOMMU) for tracking encryption status of memory pages
US11301402B2 (en) Non-interrupting portable page request interface
US11762573B2 (en) Preserving large pages of memory across live migrations of workloads
US11841797B2 (en) Optimizing instant clones through content based read cache
US11995459B2 (en) Memory copy during virtual machine migration in a virtualized computing system
US20220066806A1 (en) Memory copy during virtual machine migration in a virtualized computing system
US20230027307A1 (en) Hypervisor-assisted transient cache for virtual machines
US20230342172A1 (en) Scalable asynchronous communication for encrypted virtual machines
Rogers Lightweight local cloning of kvm/qemu virtual machines
WO2012063311A1 (en) Control method for calculator, calculator system, and storage medium