Abstract: A system and related method of operation for migrating the memory of a virtual machine from one NUMA node to another. Once the VM is migrated to a new node, migration of memory pages is performed while giving priority to the most utilized pages, so that access to these pages becomes local as soon as possible. Various heuristics are described to enable different implementations for different situations or scenarios.
Type:
Application
Filed:
June 11, 2008
Publication date:
December 17, 2009
Applicant:
VMWARE, INC.
Inventors:
Vivek Pandey, Ole Agesen, Alex Garthwaite, Carl Waldspurger, Rajesh Venkatasubramanian
Abstract: Computer code from an application program comprising a plurality of modules that each comprise a separately loadable file is code cached in a shared and persistent caching system. A shared code caching engine receives native code comprising at least a portion of a single module of the application program, and stores runtime data corresponding to the native code in a cache data file in the non-volatile memory. The engine then converts cache data file into a code cache file and enables the code cache file to be pre-loaded as a runtime code cache. These steps are repeated to store a plurality of separate code cache files at different locations in non-volatile memory.
Abstract: In a computer system with a disk array that has physical storage devices arranged as logical storage units and is capable of carrying out hardware storage operations on a per logical storage unit basis, a switch is provided to offload storage operations from a file system to storage hardware. The switch translates primitives used for performing storage operations into commands executable by the physical storage devices so that the data moving portion of the storage operations can be offloaded from the file system to the storage devices.
Abstract: Dispatching of interrupts to a processor is conditionally suppressed, that is, only if an old priority value and a new priority value are either both less than or both greater than a maximum pending priority value. This conditional avoidance of dispatching is preferably implemented by a virtual priority module within a binary translator in a virtualized computer system and relates to interrupts directed to a virtualized processor by a virtualized local APIC.
Abstract: In a computer system with a disk array that has physical storage devices arranged as logical storage units and is capable of carrying out hardware storage operations on a per logical storage unit basis, a third party server is provided to offload storage operations from a file system to storage hardware. The third party server transfers configuration information associated with composite storage operations to the physical storage devices through an out-of-band path to enable composite storage operations to be executed without involving the file system.
Abstract: In a computing system having virtualization software including a guest operating system (OS), a method for operating wherein virtualization software address space is distributed in guest OS address space that includes: granting the guest OS execute, but not read or write, access, to pages in the virtualization software address space.
Type:
Application
Filed:
May 14, 2009
Publication date:
December 3, 2009
Applicant:
VMWARE, INC.
Inventors:
Scott W. DEVINE, Lawrence S. ROGEL, Prashanth P. BUNGALE, Gerald A. FRY
Abstract: In a computing system having virtualization software including a guest operating system (OS), a method for providing page tables that includes: providing a guest page table used by the guest OS and a shadow page table used by the virtualization software wherein at least a portion of the guest page table and the shadow page table share computer memory; wherein: machine pages have a predetermined size; and the virtualization software maps guest OS physical pages to machine pages at a predetermined alignment.
Type:
Application
Filed:
May 14, 2009
Publication date:
December 3, 2009
Applicant:
VMWARE, INC.
Inventors:
Scott W. DEVINE, Lawrence S. ROGEL, Prashanth P. BUNGALE, Gerald A. FRY
Abstract: In a computing system having virtualization software including a guest operating system (OS), a method for executing guest OS instructions that includes: replacing each of one or more guest OS instructions with: (a) a translated instruction, which translated instruction is a one-to-one translation, or (b) a trap instruction.
Type:
Application
Filed:
May 14, 2009
Publication date:
December 3, 2009
Applicant:
VMware, Inc.
Inventors:
Scott W. Devine, Lawrence S. Rogel, Prashanth P. Bungale, Gerald A. Fry
Abstract: In a computing system having virtualization software including a guest operating system (OS), a method for providing page tables that includes: providing a guest page table used by the guest OS and a shadow page table and a shadow page directory used by the virtualization software wherein: at least a portion of the guest page table and the shadow page directory are the same; and the portions that are the same are shared in computer memory by the guest page table and the shadow page directory.
Type:
Application
Filed:
May 14, 2009
Publication date:
December 3, 2009
Applicant:
VMWARE, INC.
Inventors:
Scott W. DEVINE, Lawrence S. ROGEL, Prashanth P. BUNGALE, Gerald A. FRY
Abstract: In a computer system with a disk array that has physical storage devices arranged as logical storage units and is capable of carrying out hardware storage operations on a per logical storage unit basis, the hardware storage operations can be carried out on a per-file basis using various primitives. These primitives include instructions for zeroing file blocks, cloning file blocks, and deleting file blocks, and these instructions operate on one or more files defined in a blocklist, that identifies the locations in the logical storage units to which the files map.
Abstract: In a computing system having virtualization software including a guest operating system (OS), a method for providing page tables that includes: providing a guest page table used by the guest OS and a shadow page table used by the virtualization software wherein at least a portion of the guest page table and the shadow page table share computer memory.
Type:
Application
Filed:
May 14, 2009
Publication date:
December 3, 2009
Applicant:
VMWARE, INC.
Inventors:
Scott W. DEVINE, Lawrence S. ROGEL, Prashanth P. BUNGALE, Gerald A. FRY
Abstract: A method for calculating computing resource use charges for a data center consumer entity is disclosed. The data center consumer entity accesses one or more of a plurality of computing resources in a data center. The method includes retrieving usage data of each of the plurality of computing resources. The usage data is retrieved for a selected period of use of each of the plurality of computing resources by the data center consumer entity. Each of the plurality of computing resources includes at least one of a CPU, a disk, a Network Interface Card (NIC), and a memory. The method further includes retrieving a rate plan data for the data center consumer entity and retrieving per unit charge, base rate, and rate factor for each of the plurality of computing resources. Further, a sum of a sum of multiplications of billed units of each of the plurality of computing resources by per unit charge, base rate, and rate factor is calculated. The billed units include one of actual used units or reserved units.
Abstract: A method for persisting a state of a virtual port in a virtualized computer system is described. A distributed virtual port (DVport) is stored in a persistent storage location, the DVport comprising a state of a corresponding virtual port and configuration settings of the virtual port. In addition, an association between the virtual port and the virtual network interface card (VNIC) connected to the virtual port is stored. When a virtual machine corresponding to the VNIC is restarted, the state from the DVport is restored to a new virtual port from the persistent storage location.
Abstract: A swap space is provided for a host computer system, where the swap space includes a plurality of swap files with each individual swap file for swapping data only for a single corresponding virtual machine (VM). The per-VM swap space is used solely by the single, corresponding VM, such that only that particular VM's memory is allowed to be swapped out to the swap file.
Type:
Grant
Filed:
October 17, 2006
Date of Patent:
November 24, 2009
Assignee:
VMware, Inc.
Inventors:
Osten Kit Colbert, Carl Waldspurger, Xiaoxin Chen, Anil Rao
Abstract: One embodiment is a method for transferring data packets from a virtual computer having a virtual network interface device to a destination over a network, the method includes: (a) storing two or more guest address pointers associated with the data packets in a guest network transmission queue prior to handling the data packets; (b) the virtual network interface device converting the two or more guest address pointers to physical address pointers, and storing the physical address pointers in a physical network transmission queue; and (c) transferring the data packets from the virtual machine of the virtual computer over the network via a physical network interface device based on the physical address pointers in the physical network transmission queue.
Abstract: A computer system has one or more software contexts that share use of a memory that is divided into units such as pages. In the preferred embodiment of the invention, the contexts are, or include, virtual machines running on a common hardware platform. The contents, as opposed to merely the addresses or page numbers, of virtual memory pages that are accessible to one or more contexts are examined. If two or more context pages are identical, then their memory mappings are changed to point to a single, shared copy of the page in the hardware memory, thereby freeing the memory space taken up by the redundant copies. The shared copy is then preferably marked copy-on-write. Sharing is preferably dynamic, whereby the presence of redundant copies of pages is preferably determined by hashing page contents and performing full content comparisons only when two or more pages hash to the same key.
Abstract: According to one aspect of the invention, a request to generate a state checkpoint of a computer is initiated within a user-level software entity, such as a virtual machine. Upon sensing the request, a checkpointing mechanism generates and stores at least one checkpoint, each checkpoint comprising a representation of the total state of the computer system. Upon sensing a state restoration request corresponding to one of the checkpoints, the checkpointing mechanism restores the checkpointed state in the computer, which can then resume operation from the restored total state. According to another aspect of the invention, a total checkpointed state is exported to another computer, where the state can be modified, for example, debugged, and then loaded into either the originally checkpointed computer (which, again, may be a virtual machine), or some other computer.
Type:
Application
Filed:
July 23, 2009
Publication date:
November 12, 2009
Applicant:
VMWARE, INC.
Inventors:
Beng-Hong LIM, Edouard BUGNION, Scott DEVINE
Abstract: A provisioning server automatically configures a virtual machine (VM) according to user specifications and then deploys the VM on a physical host. The user may either choose from a list of pre-configured, ready-to-deploy VMs, or he may select which hardware, operating system and application(s) he would like the VM to have. The provisioning server then configures the VM accordingly, if the desired configuration is available, or it applies heuristics to configure a VM that best matches the user's request if it isn't. The invention also includes mechanisms for monitoring the status of VMs and hosts, for migrating VMs between hosts, and for creating a network of VMs.
Type:
Application
Filed:
July 16, 2009
Publication date:
November 12, 2009
Applicant:
VMWARE, INC.
Inventors:
Dilip KHANDEKAR, Dragutin PETKOVIC, Pratap SUBRAHMANYAM, Bich Cau LE
Abstract: A method for linking a plurality of virtualized application packages for execution on a computer system is described. A runtime executable of a primary virtualized application package is launched. A secondary virtualized application package to be merged with the primary virtualized application package is identified. In one embodiment, application settings and file data for the first and second virtualized application packages are merged into a single data structure. An execution layer is created by starting execution of one of the application files associated with the primary virtualized application package. Requests from the execution layer to the operating system for configuration settings and contents of application files of either the primary virtualized application package or secondary virtualized application package and providing requested configuration settings are satisfied using configuration settings and file information from both the primary and secondary virtualized application packages.
Abstract: A namespace is provided in a file system that employs logical volumes. With the namespace, the file system can withstand data storage units going offline without compromising accessibility of the files in the data storage units that remain online. The files in the online data storage units remain accessible through the use of path lookup tables that are stored in the online data storage units.