Abstract:
Techniques for effectuating a virtual NUMA architecture for virtual machines and adjusting memory in virtual NUMA nodes are described herein.
Abstract:
A computing device has first and second virtual machines (VMs) and a resource assigned to the first VM. Each access request for the resource is forwarded thereto until the first VM is to be.saved or migrated. Thereafter, each access request is forwarded to a holding queue. When the resource has acted upon all access requests forwarded thereto, the resource is reassigned to the second VM, and each access request at the holding queue is forwarded to the second VM and then the resource. Thus, all access requests for the resource are acted upon by the resource even after the resource is removed from the first VM and assigned to the second VM, and the save or migrate of the first VM can thereafter be completed.
Abstract:
Techniques involving replication of storage are described. A representative technique includes apparatuses and methods for receiving replicated virtual storage of a replicated virtual machine, including at least a replicated base virtual disk that substantially corresponds to a primary base virtual disk to be replicated. Copies of differencing disks or other forms of virtual storage updates are received at a recovery site, each of the differencing disks being associated with the primary base virtual disk as descendents thereof. The received copies of the differencing disks are arranged relative to the replicated base virtual disk corresponding to the manner in which the differencing disks were arranged relative to the primary base virtual disk, thereby maintaining the data view of the replicated virtual machine in synchronization with the virtual machine at the primary site.
Abstract:
Described techniques increase runtime performance of workloads executing on a hypervisor by executing virtualization-aware code in an otherwise non virtualization-aware guest operating system. In one implementation, the virtualization-aware code allows workloads direct access to physical hardware devices, while allowing the system memory allocated to the workloads to be overcommitted. In one implementation, a DMA filter driver is inserted into an I/O driver stack to ensure that the target guest physical memory of a DMA transfer is resident before the transfer begins. The DMA filter driver may utilize a cache to track which pages of memory are resident. The cache may also indicate which pages of memory are in use by one or more transfers, enabling the hypervisor to avoid appropriating pages of memory during a transfer.
Abstract:
Various aspects are disclosed for building a device driver stack in a virtual machine partition that does not physically control the device represented by the stack. In an embodiment, a secondary interface and driver for an I/O device may be instantiated. Information from an I/O virtualization layer describing the devices that the associated driver may control may be requested. A multi-path redirection layer may provide a handle to an existing stack that includes a driver for the I/O device. This existing stack may then be used to communicate with the device and allow the creation of a new stack including an object representing the device and a new driver for the device. The multi-path redirection layer may then open a handle to the new stack and inform the device virtualization layer, which may then ask the existing device interface to relinquish control of the device to the newly created interface.
Abstract:
Various aspects are disclosed herein for bounding the behavior of a non-privileged virtual machine that interacts with a device by creating a description of the device which indicates to a privileged authority (1) which operations on the device may have system-wide effects and (2) which operations have effects local to the device. The privileged authority may then permit or deny these actions. The privileged authority may also translate these actions into other actions with benign consequences.
Abstract:
Mechanisms are disclosed herein that manage operations in virtual machine environments. A first partition can have a proxy driver object corresponding to a driver object in a second partition. The driver object can control a physical device, but because of the proxy driver object, the first partition can retain some measure of control over the physical device. The driver object can be surrounded by a first filter object beneath it, and a second filter object above it. The first filter object can provide interfaces to the driver object so that the driver object can perform various bus-related functionalities; and, the second filter object can receive redirected instructions from the first partition and provide them to the driver object, and intercept any instructions originating from within the second partition, such that if these instructions are inconsistent with policies set in the first partition, they can be manipulated.
Abstract:
Embodiments provide a method and system for sharing storage among a plurality of virtual machines. Specifically, one or more embodiments are directed to sharing a virtual hard disk with various virtual machines in a virtual machine cluster. In embodiments, a command is sent from a virtual machine to a local parser. The parser prepares the command for transport over a file system protocol. The command is sent to a remote file server using the file system protocol. When the command is received by the file server, the file server unpacks the command, determines features about the command and converts the command to a format that executes the command on the virtual shared storage.
Abstract:
A virtual machine storage service can be use a unique network identifier and a SR-IOV compliant device can be used to transport I/O between a virtual machine and the virtual machine storage service. The virtual machine storage service can be offloaded to a child partition or migrated to another physical machine along with the unique network identifier.