RED HAT ISRAEL, LTD. Patent applications |
Patent application number | Title | Published |
20150347171 | INTELLIGENT DETECTION OF INCONSISTENT ADVANCED CONFIGURATION AND POWER INTERFACE (ACPI) TABLE INSTANCES IN VIRTUALIZED SYSTEMS - A system and methods are disclosed for detecting inconsistent instances of a system table in a virtualized computer system. In accordance with one embodiment, a processing device decompiles a first binary representing a first instance of a system table, to obtain a first string of symbols. The processing device also decompiles a second binary representing a second instance of the system table that is associated with guest firmware of a first virtual machine, to obtain a second string of symbols. When there is a difference between the first string of symbols and the second string of symbols and the difference is unrelated to a compiler version and a temporary variable name, a signal indicating an inconsistency between the first instance and the second instance is generated. | 12-03-2015 |
20150347169 | SCHEDULER LIMITED VIRTUAL DEVICE POLLING - A hypervisor executing on a computer system identifies a request of a guest operating system of a virtual machine in a shared device. The shared device comprises a shared memory space between a virtual processor of the virtual machine and the hypervisor. The hypervisor processes the request of the guest operating system and polls the shared device for additional requests. Upon determining that there are no additional requests in the shared device to be processed, the hypervisor identifies the virtual processor of the virtual machine associated with the device and determines the execution state of that virtual processor. The hypervisor disables polling the shared device for requests upon determining that the virtual processor is not executing. | 12-03-2015 |
20150347166 | PARAVIRTUALIZED MIGRATION COUNTER FOR MIGRATING A VIRTUAL CPU TO A DIFFERENT PHYSICAL CPU - An application associated with a virtual processor running on a physical processor reads a first value of a counter and a second value of the counter. The counter is indicative of a migration status of the virtual processor with respect to the physical processor. Responsive to determining that the first value of the counter does not equal the second value of the counter, the application ascertains whether a value of a hardware parameter associated with the physical processor has changed during a time interval. The migration status indicates a count of the number of times the virtual processor has migrated a first physical processor to a second physical processor. The application determines the validity of a value of a performance monitoring unit derived from the hardware parameter in view of the application ascertaining whether the value of the hardware parameter has changed during the time interval. | 12-03-2015 |
20150347165 | VIRTUAL MACHINE TEMPLATE MANAGEMENT - Systems and methods for managing virtual machine templates. An example method may comprise: identifying, by a computer system, a virtual machine snapshot represented by a volume chain comprising one or more copy-on-write (COW) volumes; and creating, based on the virtual machine snapshot, a virtual machine template represented by a new COW volume, wherein the new COW volume comprises data from the COW volumes of the volume chain. | 12-03-2015 |
20150339207 | PERFORMANCE REGRESSION TESTING IN PRESENCE OF NOISE - A method and system includes calculating a performance metric for each of a plurality of builds of a software application in view of a respective performance test result associated with each of the plurality of builds, calculating a respective difference in performance metrics for each pair of consecutive builds of the plurality of builds, determining a largest performance drop in view of respective differences in the performance metrics among the pairs of consecutive builds of the plurality of builds, wherein the largest performance drop is associated with a first pair of consecutive builds comprising a first build and a second build, determining, by a processing device, a confidence level associated with the largest performance drop in view of performance test results associated with the first build and the second build, in response to determining that the confidence level is greater than or equal to a threshold, identifying one of the first build or the second build as a problematic build of the software application. | 11-26-2015 |
20150339165 | IDENTIFYING MEMORY DEVICES FOR SWAPPING VIRTUAL MACHINE MEMORY PAGES - Systems and methods for identifying memory devices for swapping virtual machine memory pages. An example method may comprise: determining a workload type associated with a workload being executed by a virtual machine running on a computer system; identifying a memory device associated with the workload type; and allocating a memory block on the identified memory device for swapping memory pages of the virtual machine. | 11-26-2015 |
20150334058 | ADJUSTING BUFFER SIZE FOR NETWORK INTERFACE CONTROLLER - Systems and methods for adjusting the receive buffer size for network interface controllers. An example method may comprise: selecting a packet size value having a certain ordinal number in an ordered sequence of sizes of a plurality of data packets received by a network interface controller; and adjusting, in view of the selected packet size value, a size of a buffer associated with the network interface controller. | 11-19-2015 |
20150324485 | LOOKUP WITH KEY SEQUENCE SKIP FOR RADIX TREES - Systems and methods are disclosed for determining whether a key is stored in a radix tree. An example system includes a traverser that identifies a container including a sequence of elements. The system also includes a match module that identifies, based on a number of skipped elements in a key, a chunk of the key. The match module determines whether the chunk matches the prefix included in the traversed container. The system further includes a skipping module that when the chunk of the key is determined to match the prefix, skips a number of elements after the chunk in the key. When the chunk of the key is determined to match the prefix, the traverser traverses one or more immediate child containers of the identified container and the search module identifies, based on the number of skipped elements, the chunk of the key. | 11-12-2015 |
20150324484 | OFFLINE RADIX TREE COMPRESSION WITH KEY SEQUENCE SKIP - Systems and methods are disclosed for compressing a radix tree. An example method of compressing a radix tree including a plurality of containers includes traversing a radix tree including a plurality of containers. The method also includes identifying, based on the traversing, a parent container that represents a sequence of elements and has a single immediate child container. The parent container includes a prefix of the sequence of elements that is represented by the parent container, and the immediate child container includes a single element. The method further includes determining whether a length of the sequence of elements that is represented by the parent container satisfies a container threshold. The method also includes when the length is determined to satisfy the container threshold, selecting one of the parent container and immediate child container, incrementing a length of the selected container, and removing the non-selected container from the radix tree. | 11-12-2015 |
20150324401 | OFFLINE COMPRESSION FOR LIMITED SEQUENCE LENGTH RADIX TREE - Systems and methods are disclosed for compressing a radix tree. An example method of compressing a radix tree includes traversing a radix tree including a plurality of containers. The method also includes identifying, based on the traversing, a parent container having a single immediate child container. The parent container includes a first set of elements, and the child container includes a second set of elements. The method further includes determining whether a length of the first set of elements included in the parent container satisfies a threshold. The method also includes when the length of the first set of elements is determined to satisfy the threshold, combining the parent and child containers into a single container. | 11-12-2015 |
20150324384 | OFFLINE GENERATION OF COMPRESSED RADIX TREE WITH KEY SEQUENCE SKIP - Systems and methods are disclosed for compressing a radix tree. An example method includes traversing a radix tree including a plurality of containers. The method also includes identifying, based on the traversing, a parent container having a plurality of child containers, each child container including a sequence of elements. The method further includes for one or more child containers of the plurality of child containers, identifying a unique prefix of the sequence of elements included in the respective child container, identifying a remainder sequence after the unique prefix in the sequence of elements, and removing the remainder sequence from the respective child container. | 11-12-2015 |
20150269066 | INDIRECT RESOURCE MANAGEMENT - A method for memory management includes allocating an available block of memory for use by a first object, determining that the block of memory includes at least a portion of a second object, the second object no longer being used by an application associated with the second object, determining that the second object utilized at least one resource that was not shutdown, releasing the at least one resource, and writing to the block of memory with the first object. | 09-24-2015 |
20150248449 | ONLINE COMPRESSION FOR LIMITED SEQUENCE LENGTH RADIX TREE - Systems and methods are disclosed for inserting a key into a radix tree. In an example method, inserting a key into the radix tree includes comparing a first key including a first sequence of elements with a second key including a second sequence of elements. The method includes identifying a common prefix in the first and second keys and identifying a remainder sequence in the second key. The remainder sequence is a suffix after the common prefix in the second sequence of elements. The method also includes splitting the remainder sequence into a plurality of chunks. Each chunk includes a sequence of elements in the remainder sequence. The method further includes for each chunk, locating a parent container from which to insert a child container into the radix tree, creating a new container including the respective chunk, and inserting the new container as a child container of the parent container. | 09-03-2015 |
20150248448 | ONLINE RADIX TREE COMPRESSION WITH KEY SEQUENCE SKIP - Systems and methods are disclosed for inserting a key into and removing a key from a composite data structure including a radix tree and an auxiliary data structure. In an example, a method of inserting a key into the composite data structure includes receiving an instruction to store a first key in the composite data structure. The composite data structure stores a second key. The method further includes generating, based on comparing the first and second keys, one or more sequences of elements. The method also includes splitting each of the generated sequences of elements into a prefix and a suffix, storing the respective prefixes into the radix tree; and storing the respective suffixes into the auxiliary data structure. | 09-03-2015 |
20150248333 | ENABLING DISK IMAGE OPERATIONS IN CONJUNCTION WITH SNAPSHOT LOCKING - Systems and methods for enabling disk image operations in conjunction with snapshot locking. An example method may include: attaching a first snapshot to a first virtual machine the first snapshot being stored within a disk image, generating, in view of the first snapshot, a second snapshot, the second snapshot being stored within the disk image, attaching the first snapshot to a second virtual machine, and causing the first snapshot to be locked in view of the second virtual machine performing one or more operations on the first snapshot, wherein the first virtual machine performs one or more operations on the second snapshot concurrent with the locking of the first snapshot. | 09-03-2015 |
20150248320 | HOST-STORAGE CONNECTIVITY MONITORING - Systems and methods for host-storage connectivity monitoring. An example method may include: receiving first status information from a first host connected to a storage domain, processing the first status information to determine an operation status of the storage domain with respect to the first host, comparing the operation status of the storage domain with respect to the first host with an operation status of the storage domain with respect to a second host, and, in response to a determination that both the operation status of the storage domain with respect to the first host and the operation status of the storage domain with respect to the second host include one or more errors, maintaining an operational accessibility of the first host. | 09-03-2015 |
20150248303 | PARAVIRTUALIZED MIGRATION COUNTER - An application associated with a processor reads a first value of a counter and a second value of the counter. The counter is indicative of a migration status of the application with respect to the processor. Responsive to determining that the first value of the counter does not equal the second value of the counter, the application ascertains whether a value of a hardware parameter associated with the processor has changed during a time interval. The migration status indicates a count of the number of times the application has migrated from one processor to another processor. The application determines the validity of a value of a performance monitoring unit derived from the hardware parameter in view of the application ascertaining whether the value of the hardware parameter has changed during the time interval. | 09-03-2015 |
20150248237 | Reverse Copy on Write for Better Cache Utilization - Methods, systems, and computer program products for providing reverse copy-on-write for improved cache utilization are disclosed. Examples generally relate to both physical and virtualized computer systems. A computer-implemented method may include detecting when a first task is to write to a memory page that is shared with a second task, creating a copy of the memory page for use by the second task, and modifying a memory mapping to associate the second task with the copy of the memory page. In a virtualized computer system, a hypervisor may detect when a first virtual machine is to write to a memory page shared with a second virtual machine, create a copy of the memory page for the second virtual machine, and adjust a memory mapping to associate the second virtual machine with the copy of the memory page. | 09-03-2015 |
20150244667 | MAILING LIST MANIPULATIONS - Implementations for mailing list manipulations are disclosed. In one example, the method includes receiving a first distribution list comprising a first plurality of electronic messaging system addresses, receiving a first identifier referencing a first electronic messaging system address, and causing a message to be sent to one or more electronic messaging system address in the first distribution list except to the first electronic messaging system address. | 08-27-2015 |
20150244608 | REACTIVE SOURCE ROUTING ASSOCIATED WITH A NETWORK - An initiation of a network device on a host system may be detected and an IP address may be assigned to the network device. Furthermore, a network gateway may be associated with the IP address. In some embodiments, a network may be assigned to the network device. The network may be configured to route outgoing data from the network through the network gateway as opposed to a default network gateway. | 08-27-2015 |
20150244584 | USER INTERFACE FOR ADDING AND REMOVING ROWS ASSOCIATED WITH VIRTUAL MACHINES - A graphical user interface may be provided. In some embodiments, the graphical user interface may include a plurality of rows. A first row may include a first entry field and a first visual indicator and a second row may include a second entry field and a second visual indicator. The first entry field may be assigned a first profile. A selection of a second profile for the second entry field may be received and a selection of the second visual indicator may be received. A third row may be added in response to the selection of the second visual indicator after the selection of the second profile to be assigned to the second entry field. | 08-27-2015 |
20150244582 | HOST CONNECTIVITY TEMPLATES - A system and a method are disclosed for configuring hosts of virtual machines. The system and method include receiving, by a management server, a network configuration of a first host, wherein the first host is associated with a network identified by a network label, storing the network configuration of the first host in a template record, in response to a request to configure a second host, determining if the second host is to join the network identified by the network label, and configuring the second host using the template record. | 08-27-2015 |
20150244568 | VIRTUAL DEVICE PROFILE - A system and a method are disclosed for configuring virtual network interface cards (VNICs) of virtual machines, including presenting on a graphic user interface (GUI), by a management server of a host executing a virtual machine (VM), a plurality of attributes of a virtual network interface card (VNIC), assigning, via the GUI, values to the plurality of attributes, storing the values of the plurality of attributes in a profile on the management server, and configuring a second VNIC of the VM using the values in the profile. | 08-27-2015 |
20150244566 | NETWORK CONFIGURATION VIA ABSTRACTION COMPONENTS AND STANDARD COMMANDS - An apparatus receives a request to establish a networking configuration. The apparatus creates one or more networking abstraction components, wherein the created networking abstraction components represent the networking configuration to be established. The apparatus sends, via the one or more networking abstraction components, one or more standard commands. The apparatus produces, in response to the standard commands, an implementation corresponding to the networking configuration. | 08-27-2015 |
20150242330 | GUEST-PROGRAMMABLE LOCATION OF ADVANCED CONFIGURATION AND POWER INTERFACE (ACPI) TABLES IN VIRTUALIZED SYSTEMS - A system and method are disclosed for guest-programmable relocation of system tables in a virtualized computer system. In accordance with one embodiment, a hypervisor that is executed by a computer system obtains a first base address of a first portion of memory, where the first base address is in an address space of a guest of a virtual machine, and where the first base address is for a set of one or more system tables that is currently exposed by the hypervisor at a second portion of memory having a second base address in the address space of the guest. The hypervisor then generates a new version of the set of one or more system tables that is exposed to the guest at the first base address. | 08-27-2015 |
20150242283 | BACKING UP VIRTUAL MACHINES - A processing device generates a live snapshot of a virtual disk image attached to a virtual machine, wherein generating the live snapshot comprises converting an existing read-write volume to a read-only volume. The processing device generates, from the read-only volume, a temporary snapshot of the virtual disk image, the temporary snapshot comprising a temporary read-write volume. The processing device attaches the temporary snapshot of the virtual disk image to a backup component and causes at least one of the backup component or a backup service to backup the virtual disk image from the attached temporary snapshot. | 08-27-2015 |
20150242232 | RESUMING A PAUSED VIRTUAL MACHINE - A host in a virtualization system pings one or more storage domains. When the host determines that a storage domain in inaccessible and later determines that the storage domain is once again accessible, the host may determine a set of virtual machines associated with the storage domain that are paused. The host may, then, resume at least one of those virtual machines. | 08-27-2015 |
20150242230 | HYPERVISOR CAPABILITY ACCESS PROVISION - An apparatus receives virtualization manager indication of a capability selected from a virtualization manager capability subset. The apparatus receives non-virtualization manager indication of a selected capability not in said subset. The apparatus passes virtualization manager indication of a result of the capability selected from the subset. The apparatus passes non-virtualization manager indication of a result of the capability not in said subset. | 08-27-2015 |
20150242229 | IDLE PROCESSOR MANAGEMENT BY GUEST IN VIRTUALIZED SYSTEMS - A system and method for idle processor management in virtualized systems are disclosed. In accordance with one embodiment, a guest operating system (OS) of a virtual machine estimates an idle time for a virtual central processing unit (CPU) of the virtual machine, where the virtual machine is executed by a CPU of a host computer system, and where the virtual CPU is mapped to the CPU. The guest OS also estimates a host latency time for the host computer system, where the host latency time is based on at least one of: a first power state of the CPU, a context switch associated with execution of the virtual machine by the CPU, or an idle state of a hypervisor executed by the CPU. When the idle time for the virtual CPU divided by a performance multiplier exceeds the host latency time, the virtual CPU is caused to halt. | 08-27-2015 |
20150242225 | EXECUTION OF A SCRIPT BASED ON PROPERTIES OF A VIRTUAL DEVICE ASSOCIATED WITH A VIRTUAL MACHINE - An event associated with a virtual machine may be identified. Furthermore, a script associated with the event may be identified. A property of a virtual device that is assigned to the virtual machine may be received. A determination may be made to execute the script or not to execute the script for the virtual machine based on the property of the virtual device that is assigned to the virtual machine. | 08-27-2015 |
20150242221 | USING LINKER SCRIPTS FOR LOADING SYSTEM CONFIGURATION TABLES - Systems and methods for using linker scripts for loading system configuration tables. An example method may comprise: packaging, by a host computer system, a first system configuration table and a second system configuration table into one or more memory image files; providing a script comprising a first instruction to load the memory image files into a memory of a virtual machine being executed by the host computer system, the script further comprising a second instruction to resolve, in view of a base address, a reference by the first system configuration table to the second system configuration table; and providing the memory image files and the script to the virtual machine. | 08-27-2015 |
20150242203 | DETERMINING CHARACTER SEQUENCE DIGEST - Systems and methods for determining a character sequence digest. An example method may comprise: identifying, within a character sequence, one or more sections, wherein each section comprises a section header and one or more section bodies; performing the following operations for each identified section body: responsive to determining that the section body is not preceded by a section header, prepending a section header to the section body; calculating a section digest by applying a hash function to the section comprising the section header and the section body; and calculating a digest of the character sequence by applying a symmetric summing operation to one or more section digests. | 08-27-2015 |
20150242159 | COPY-ON-WRITE BY ORIGIN HOST IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for reducing network traffic in virtual machine live migration. An example method may comprise: intercepting, by a first computer system, a write access to a memory page by a virtual machine undergoing live migration from the first computer system to a second computer system; storing a copy of the memory page in a memory before allowing the virtual machine to modify the memory page; identifying data to be transmitted to the second computer system responsive to comparing the memory page and the copy of the memory page; and transmitting the data to the second computer system. | 08-27-2015 |
20150242121 | PER-MEMORY GROUP SWAP DEVICE - Systems and methods are disclosed for swapping a memory page from memory to a swap device. An example system for swapping a memory page from memory to a swap device includes a memory to store one or more memory pages. The system also includes a swap device selector that receives an indication to swap out a memory page from memory to a swap device. The swap device selector identifies a memory group to which the memory page belongs and selects a swap device from a plurality of swap devices assigned to the identified memory group. The memory group identifies a plurality of applications having a common property. The system further includes a swap module that copies the memory page into the selected swap device | 08-27-2015 |
20150242079 | USER INTERFACE WITH AN EXPANDABLE NAVIGATION TREE - A graphical user interface (GUI) may be provided. The GUI may include a navigation tree in a first portion and a link in a second portion. The navigation tree may include multiple nodes. A selection of the link in the section portion may be received. In response to the selection of the link, the navigation tree in the first portion may be expanded to a hierarchical level displaying the node corresponding to the selected link. | 08-27-2015 |
20150227382 | MONITORING VIRTUAL MACHINE PROTOCOLS, SERVICES, AND OPERATIONS - Systems and methods for monitoring virtual machine protocols, services, and operations. An example method may comprise: initiating a connection to a virtual machine; receiving service data, the service data pertaining to one or more services installed on the virtual machine, and protocol data pertaining to one or more protocols utilized by the virtual machine; generating, with a processing device and in view of at least one of the service data or the protocol data, one or more configuration commands, the one or more configuration commands corresponding to at least one of the one or more services or the one or more protocols; and transmitting the one or more configuration commands to the virtual machine. | 08-13-2015 |
20150227381 | TRANSMITTING ENCAPSULATED SNMP COMMANDS TO VIRTUAL MACHINES - Systems and methods for transmitting encapsulated SNMP commands to virtual machines. An example method may comprise: receiving, from a network device, a first Simple Network Management Protocol (SNMP) request, the first SNMP request being directed to a virtual machine executing on a host device; encapsulating the SNMP request with a virtualization manager executing on the host device; and providing the encapsulated SNMP request to the virtual machine. | 08-13-2015 |
20150220406 | VIRTUAL MACHINE-GUEST DRIVEN STATE RESTORING BY HYPERVISOR - An example method of saving and restoring a state of one or more registers for a guest includes detecting exit of a virtual machine mode of a guest running on a virtual machine. A set of registers is accessible by the guest and includes a first subset of registers and a second subset of registers. The method also includes identifying the first subset of registers. The first subset of registers includes one or more registers to be overwritten by the guest upon re-entry of the virtual machine mode. The second subset of registers is mutually exclusive from the first subset of registers. The method further includes after detecting exit of the virtual machine mode of the guest, detecting re-entry of the virtual machine mode of the guest. The method also includes restoring a saved state of the second subset of registers for the guest. | 08-06-2015 |
20150212956 | UPDATING VIRTUAL MACHINE MEMORY BY INTERRUPT HANDLER - Systems and methods for directly updating the virtual machine memory by interrupt handlers. An example method may comprise: receiving, by a computer system, an interrupt triggered by a physical device; receiving, by an interrupt handling routine, a data frame from the physical device; identifying a virtual machine to receive the interrupt; and responsive to determining that an active memory context on the computer system matches a memory context of the virtual machine, writing, by the interrupt handling routine, the data frame into a memory of the virtual machine. | 07-30-2015 |
20150212948 | LAZY MEMORY TRANSFORMATION IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for lazy memory transformation in virtual machine live migration. An example method may comprise: receiving, by a computer system, a plurality of transformed memory blocks, each transformed memory block comprising one or more memory pages mapped into an address space of a virtual machine being migrated to the computer system; storing, in a memory data structure, one or more mappings, each mapping comprising a guest virtual address of a memory page and an identifier of a transformed memory block containing the memory page; responsive to detecting an access to a memory page by the virtual machine, identifying, using the memory data structure, a transformed memory block containing the memory page being accessed; and storing in a memory mapped into the address space of the virtual machine the memory page produced by performing a reverse transformation of the transformed memory block. | 07-30-2015 |
20150212846 | REDUCING REDUNDANT NETWORK TRANSMISSIONS IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for reducing redundant network transmissions in virtual machine live migration. An example method may comprise: reading, by a hypervisor running on a first computer system, from a memory mapped into an address space of a virtual machine undergoing live migration from the first computer system to a second computer system, a data structure comprising a plurality of records, each record mapping an address of a memory page to an identifier of a virtual disk frame storing contents of the memory page; reading a plurality of page modification flags, each page modification flag indicating that contents of a corresponding memory page differ from contents of a virtual disk frame referenced by the data structure; responsive to determining that a memory page is referenced by the data structure and that a page modification flag corresponding to the memory page is set, transmitting the memory page to the second computer system; and responsive to determining that a memory page is not referenced by the data structure, transmitting the memory page to the second computer system. | 07-30-2015 |
20150212845 | LAZY DISK INPUT/OUTPUT IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for implementing lazy disk I/O in virtual machine live migration. An example method may comprise: determining, by a first computer system, that contents of a memory page mapped into an address space of a virtual machine undergoing live migration from a second computer system to the first computer system is stored on a network-accessible virtual disk; storing, in a memory data structure, a mapping of an address of the memory page to an identifier of a location of the memory page on the virtual disk; and responsive to detecting an access to the memory page by the virtual machine, storing in a memory mapped into the address space of the virtual machine the memory page retrieved from the location of the memory page on the virtual disk. | 07-30-2015 |
20150212844 | Fair Unidirectional Multi-Queue Virtual Machine Migration - Methods, systems, and computer program products for providing fair unidirectional multi-queue virtual machine migration are disclosed. A computer-implemented method may include maintaining a current scan identifier for each of a plurality of streams used to migrate a virtual machine from a first hypervisor to a second hypervisor, determining when a current scan identifier of a first stream and a current scan identifier of a second stream are associated with different memory states of the virtual machine, and adjusting processing of memory updates when the current scan identifiers are associated with different memory states of the virtual machine. The adjusting may be performed, for example, by pausing processing on each stream having a current scan identifier subsequent to the earliest current scan identifier determined for the streams, and processing memory updates on each stream having a current scan identifier matching the earliest current scan identifier. | 07-30-2015 |
20150212841 | DELAYED POPULATION OF ADVANCED CONFIGURATION AND POWER INTERFACE (ACPI) TABLES BY HYPERVISOR - A system and method for system table modification in a virtualized computer system are disclosed. In accordance with one embodiment, a hypervisor that is executed by a computer system detects an attempt by a guest operating system of a virtual machine to access a system table. In response to the detecting, the hypervisor determines a hardware configuration of the virtual machine, and populates one or more entries of the system table in view of the hardware configuration. | 07-30-2015 |
20150212839 | TRACKING TRANSFORMED MEMORY PAGES IN VIRTUAL MACHINE CHAIN MIGRATION - Systems and methods for tracking transformed memory pages in virtual machine chain migration. An example method may comprise: receiving, by a computer system, a transformed memory block comprising one or more memory pages mapped into an address space of a virtual machine being migrated to the computer system; performing a reverse transformation of at least part of the transformed memory block, to produce a memory page comprised by the transformed memory block; storing, in a memory, the memory page; detecting a modification of the memory page by the virtual machine; and, responsive to determining that a number of modified memory pages associated with the transformed memory block exceeds a threshold value, discarding the transformed memory block. | 07-30-2015 |
20150199209 | Hypervisor-Based Balloon Page Initialization - Methods, systems, and computer program products for hypervisor-based balloon page initialization are provided. A computer-implemented method may include receiving, by a hypervisor, a memory page from a guest, returning the memory page to the guest, and notifying the guest that the hypervisor is to initialize the returned memory page. | 07-16-2015 |
20150193249 | IDLE PROCESSOR MANAGEMENT IN VIRTUALIZED SYSTEMS VIA PARAVIRTUALIZATION - A system and method are disclosed for managing idle processors in virtualized systems. In accordance with one embodiment, a hypervisor executing on a host computer receives an anticipated idle time for a processor of the host computer system from a guest operating system of a virtual machine executing on the host computer system. When the anticipated idle time divided by a performance multiplier exceeds an exit time of a first power state of the processor, the processor is caused to be halted. | 07-09-2015 |
20150193248 | Non-Blocking Unidirectional Multi-Queue Virtual Machine Migration - Methods, systems, and computer program products for non-blocking unidirectional multi-queue virtual machine migration are provided. A computer-implemented method may include maintaining information to track an association between a memory area in a virtual machine and a stream for a first stage of virtual machine migration, detecting one or more updates to the memory area during the first stage of migration, examining the information to identify the stream associated with the memory area for the first stage of migration, sending the updates to the memory area on the identified stream during the first stage of migration, modifying the information to associate the memory area with a new stream for a second stage of the migration, and sending updates to the memory area on the new stream during the second stage of migration. | 07-09-2015 |
20150188788 | EXTERNAL SERVICE PROVIDER - An apparatus identifies a connector configuration event. Responsive to the connector configuration event, the apparatus sends an external service information request. The apparatus receives an external service reply to the external service information request. The apparatus performs connector configuration, wherein the connector configuration employs information included in the external service reply, and wherein the performing connector configuration yields a connector employable in consumer external service access. | 07-02-2015 |
20150188778 | NORMALIZED MANAGEMENT NETWORK - An apparatus obtains one or more management logical network properties. The apparatus determines one or more management logical network properties to be instantiated. The apparatus performs, in accordance with the determined properties, management logical network configuration. | 07-02-2015 |
20150180709 | CONFIGURING NETWORK SETTINGS OF AN UNREACHABLE HOST - An exemplary system may configure network settings of an unreachable host. In one embodiment, the system determines that a first host on a network is unreachable using a first communication protocol. The system selects a second host on the network that is reachable using the first communication protocol. The second host on the network can reach the first host using a second communication protocol. The system provides a communication to the second host on the network using the first communication protocol. The communication causes the second host to access the first host on the network using the second communication protocol. | 06-25-2015 |
20150178111 | HYPERVISOR MANAGED SCHEDULING OF VIRTUAL MACHINES - A hypervisor determines that a virtual machine is important. In response, the hypervisor selects one or more processing devices of a multiprocessor computer system and pins the virtual machine to the selected processing devices. The virtual machine exclusively executes in the selected processing devices resulting in an unfair resource allocation. | 06-25-2015 |
20150178106 | VIRTUAL MACHINE DATA REPLICATION WITH SHARED RESOURCES - Systems and methods for virtual machine data replication with shared resources. An example method may include: identifying resources that are shared across a plurality of virtual machines, storing a copy of the resources, receiving, an indication of a portion of virtual storage of a virtual machine to be replicated, determining that the portion of virtual storage is not included in the resources, in response to the determination, updating a replicated copy of the virtual machine in view of the portion of virtual storage, the replicated copy further including the resources that are shared across a plurality of virtual machines, determining an initialization efficiency metric in relation to the replicated copy, and in response to the determination that the initialization efficiency metric exceeds an efficiency threshold, storing a copy of the virtual storage. | 06-25-2015 |
20150177997 | CREATING NEW VIRTUAL MACHINES BASED ON POST-BOOT VIRTUAL MACHINE SNAPSHOTS - Systems and methods for creating new virtual machines based on post-boot virtual machine snapshots. An example method may include: receiving a request to create a new virtual machine, identifying, in view of the request, a virtual machine snapshot, the virtual machine snapshot including one or more elements of an initialized virtual machine, determining an update efficiency metric with respect to the virtual machine snapshot, and in response to a determination that the update efficiency metric reflects that updating the virtual machine snapshot is relatively more efficient than creating a new virtual machine in lieu of the virtual machine snapshot, creating the new virtual machine in view of the virtual machine snapshot. | 06-25-2015 |
20150150001 | HOST RESERVATION SYSTEM - A provisioning server receives a reserve command with a set of criteria and searches for a host matching the criteria. Upon finding such a host, the provisioning server reserves the host for performing a virtualization test. Upon receiving or generating a release command, the provisioning server releases the host. | 05-28-2015 |
20150149997 | FACILITATING EXECUTION OF MMIO BASED INSTRUCTIONS - A hypervisor of a host receives an indication of an exit from a guest to the hypervisor and a memory-mapped input output (MMIO) address that caused the exit to hypervisor. The hypervisor walks a page table of the guest to identify a guest address associated with the MMIO address that caused the exit to the hypervisor. The hypervisor decodes an instruction of the guest referenced by the guest address to determine a type of operation that the guest intended to execute and a location of MMIO information. The hypervisor records, in a page table entry for the MMIO address of a host page table, an association with the type of operation and the location of the MMIO information. The hypervisor executes the operation on behalf of the guest based on the type of the operation and the MMIO information. | 05-28-2015 |
20150149996 | HYPERVISOR DYNAMICALLY ASSIGNED INPUT/OUTPUT RESOURCES FOR VIRTUAL DEVICES - Systems and methods are disclosed for assigning an I/O resource to a virtual PCI device. An example system includes an I/O resource table that stores a pool of one or more available I/O resources for assignment to one or more virtual PCI devices. The system also includes a hypervisor that maintains the pool of I/O resources, assigns one or more I/O resources from the pool to a virtual PCI device, and notifies a guest running on a virtual machine that the one or more I/O resources is assigned to the virtual PCI device. The hypervisor and virtual machine are executable on a host, and the virtual PCI device is exposed to the guest. | 05-28-2015 |
20150149687 | ORDERED MEMORY PAGES TRANSMISSION IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for virtual machine live migration. An example method may comprise: identifying, by a first computer system executing a virtual machine undergoing live migration to a second computer system, a plurality of stable memory pages comprised by an execution state of the virtual machine, wherein the plurality of stable memory pages comprises memory pages that have not been modified within a defined period of time; transmitting the plurality of stable memory pages to the second computer system; determining that an amount of memory comprised by a plurality of unstable memory pages is below a threshold value, wherein the plurality of unstable memory pages comprises memory pages that have been modified within the defined period of time; and transmitting the plurality of unstable memory pages to the second computer system. | 05-28-2015 |
20150149667 | INTERRUPT REDUCTION BY DYNAMIC APPLICATION BUFFERING - Systems and methods are disclosed for processing a queue associated with a request. An example system includes an input/output (I/O) interface that receives a request associated with a channel. The example system also includes an association module that determines whether a condition is satisfied. When the condition is determined to not be satisfied, the association module, after a hardware device completes processing the request, decrements an in-flight counter that represents a first amount of data in the channel. When the condition is determined to be satisfied, the association module, before the hardware device completes processing the request, decrements the in-flight counter. | 05-28-2015 |
20150142300 | DETERMINING ALTERNATIVE ROUTE BY NAVIGATION SYSTEM - Systems and methods for determining alternative navigational routes. An example method may comprise: determining a first route to a destination, the route comprising a plurality of edges of a graph representing a map of navigable paths, wherein each edge represents a path connecting two vertices and each vertex represents at least one of: an endpoint of a path or a junction of two or more paths; and determining a second route to the destination from a point located at least a defined distance from a junction comprised by the first route, along an edge not comprised by the first route. | 05-21-2015 |
20150106728 | REMOTE DASHBOARD CONSOLE - A method, system and computer readable medium for remote control of a remote device by a remote dashboard console of a client device. The method includes identifying the remote device for management via the remote dashboard console of the client device. The remote dashboard console receives a set of plug-ins associated with multiple remote device applications installed on the remote device from a remote dashboard agent of the remote device. The remote dashboard console of the client device executes a target application of the multiple remote device applications device using a corresponding plug-in of the set of plug-ins. | 04-16-2015 |
20150100957 | VIRTUAL MACHINE JOINER - A method, system and computer readable medium for joining multiple virtual machines (VMs). The method includes identifying a first VM executing a first operating system (OS) for joining with a second VM executing a second OS, wherein the first OS and the second OS are incompatible. A new VM having a first new disk and a second new disk is created. The method includes creating a first image of a first disk associated with the first VM and a second image of a second disk associated with the second VM, installing the first image into the first new disk and the second image into the second new disk, and configuring the new VM to include a dual boot function enabling boot up of the new VM with either the first OS or the second OS. | 04-09-2015 |
20150100742 | COMPATIBLE VIRTUAL MACHINE JOINER - A method, system and computer readable medium for joining multiple virtual machines (VMs). The method includes identifying a first virtual machine (VM) executing a first operating system (OS) for joining with a second VM executing a second OS, wherein the first OS and the second OS are compatible. A new VM having a new disk is created, wherein the new disk includes the contents of a first existing disk of the first VM and a second existing disk of the second VM. | 04-09-2015 |
20150095548 | HANDLING MEMORY-MAPPED INPUT-OUTPUT (MMIO) BASED INSTRUCTIONS USING FAST ACCESS ADDRESSES - When a guest of a virtual machine attempts to accesses an address that causes an exit from the guest to the hypervisor of a host, the hypervisor receives an indication of an exit by a guest to the hypervisor. The received address is associated with a memory-mapped input-output (MMIO) instruction. The hypervisor determines, based on the received indication, that the exit is associated with the memory-mapped input-output (MMIO) instruction. The hypervisor identifies the address that caused the exit as a fast access address. The hypervisor identifies one or more memory locations associated with the fast access address, where the one or more memory locations store information associated with the MMIO instruction. The hypervisor identifies the MMIO instruction based on the stored information. The hypervisor executes the MMIO instruction on behalf of the guest. | 04-02-2015 |
20150089101 | MANAGING NETWORK INTERFACE CONTROLLER-GENERATED INTERRUPTS - Systems and methods for managing interrupts generated by network interface controllers. An example method may comprise: responsive to determining that a memory pressure metric in a computer system does not exceed a threshold value, disabling interrupts that signal completion of a packet transmission by a network interface controller; transmitting a plurality of data packets by the network interface controller; and responsive to detecting that the memory pressure metric exceeds the threshold value, releasing a memory buffer allocated to a data packet of the plurality of data packets. | 03-26-2015 |
20150089037 | AUTOMATIC PROMISCUOUS FORWARDING FOR A BRIDGE - An example system to disable a promiscuous mode of a network interface includes a plurality of local network interfaces. Each local network interface of the plurality is coupled over a network to one or more remote network interfaces. Each remote network interface is assigned one or more remote network addresses, and the plurality includes a local network interface in a promiscuous mode. The system also includes a bridge module that determines whether a list of all remote network addresses that are coupled to a subset of local network interfaces is known. The subset includes the plurality of local network interfaces excluding the local network interface. When the list of all remote network addresses that are coupled to the subset is determined to be known, the bridge module disables the promiscuous mode of the local network interface and adds all remote network addresses that are coupled to the subset to a filtering table. | 03-26-2015 |
20150089010 | RDMA-BASED STATE TRANSFER IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for RDMA-based state transfer in virtual machine live migration. An example method may comprise: determining, by a first computer system, that a memory block has been modified by a virtual machine undergoing live migration from the first computer system to a second computer system; designating the modified memory block for transfer via a remote direct memory access (RDMA) adapter to the second computer system; selecting, asynchronously with respect to the designating, a memory block from a plurality of memory blocks designated for RDMA transfer to the second computer system, wherein a sum of an amount of pinned physical memory in the first computer system and a size of the selected memory block does not exceed a pre-defined value; registering the selected memory block with the RDMA adapter; and transmitting the selected memory block to the second computer system via the RDMA adapter. | 03-26-2015 |
20150089009 | REMOTE DIRECT MEMORY ACCESS WITH COPY-ON-WRITE SUPPORT - Systems and methods for implementing remote direct memory access (RDMA) with copy-on-write support. An example method may comprise: registering, with an RDMA adapter, by a first computer system, a mapping of a first virtual address to a first physical address, for transmitting a memory page identified by the first virtual address to a second computer system; registering, with the RDMA adapter, a mapping of a second virtual address to the first physical address; detecting an attempt to modify the memory page; copying the memory page to a second physical address; and registering, with the RDMA adapter, a mapping of a first virtual address to the second physical address. | 03-26-2015 |
20150058838 | SWITCHING BETWEEN DEVICES HAVING A COMMON HOST BACKEND IN A VIRTUALIZED ENVIRONMENT - Systems and methods are disclosed for switching between an assigned device and an emulated device. An example system includes a device-specific driver and a pass-through device driver included in a hypervisor. A common host backend is bound to at most one of the device-specific driver and pass-through device driver at a time. The assigned and emulated devices access the common host backend. The system also includes a switch module that sends one or more communications to a guest to cause the guest to switch from using at most one of the assigned device or the emulated device to the other of the at most one of the assigned device or the emulated device. | 02-26-2015 |
20150052323 | SYSTEMS AND METHODS FOR MEMORY DEDUPLICATION BY DESTINATION HOST IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for memory de-duplication in a virtual machine undergoing live migration. An example method may comprise: receiving, by a hypervisor executing on a destination host computer system, a first virtual address and a corresponding physical memory range identifier, the physical memory range identifier identifying a first physical memory range on an origin host computer system, the first virtual address identifying a first virtual memory range mapped to the first physical memory range in a virtual address space of a first virtual machine undergoing live migration from the origin host computer system to the destination host computer system; identifying a second virtual address corresponding to the physical memory range identifier, the second virtual address identifying a second virtual memory range in a virtual address space of a second virtual machine undergoing live migration from the origin host computer system to the destination host computer system; identifying a destination physical address corresponding to the second virtual address, the destination physical address identifying a second physical memory range on the destination host computer system; and mapping, on the destination host computer system, the first virtual address to the destination physical address. | 02-19-2015 |
20150052322 | SYSTEMS AND METHODS FOR MEMORY DEDUPLICATION BY ORIGIN HOST IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for memory de-duplication in a virtual machine undergoing live migration. An example method may comprise: determining a first identifier identifying a first physical memory range, the first physical memory range mapped to a first virtual memory range in a virtual address space of a first virtual machine undergoing live migration from a origin host computer system to a destination host computer system; determining a second identifier identifying a second physical memory range, the second physical memory range mapped to a second virtual memory range in a virtual address space of a second virtual machine undergoing live migration from the origin host computer system to the destination host computer system; determining that the first identifier and the second identifier identify the same physical memory range; and notifying the destination host computer system that the first virtual memory range and the second virtual memory range have identical contents. | 02-19-2015 |
20140365738 | Systems and Methods for Memory Page Offloading in Multi-Processor Computer Systems - Systems and methods for memory page offloading in multi-processor computer systems. An example method may comprise: detecting, by a computer system, a memory pressure condition on a first node; invalidating a page table entry for a memory page residing on the first node; copying the memory page to a second node; and updating the page table entry for the memory page to reference the second node. | 12-11-2014 |
20140337282 | DEPLOYING DATABASE UPGRADES TO MULTIPLE ENVIRONMENTS IN A DIFFERENT ORDER - A virtualization manager receives a request to install a new feature in a first virtualization environment. The virtualization manager identifies a first database upgrade script corresponding to the new feature and compares a first identification number of the first database upgrade script to a second identification number of a second database upgrade script, the second database upgrade script previously run on a management database for the first virtualization environment. If the first identification number is less than the second identification number, the virtualization manager generates a copy of the first database upgrade script and names the copy of the first database upgrade script with a third identification number that is greater than the second identification number. The virtualization manager then runs the copy of the first database upgrade script on the management database. | 11-13-2014 |
20140297979 | LIVE MIGRATION OF VIRTUAL DISKS - A system and method are disclosed for live migration of a virtual disk of a virtual machine between storage devices. In accordance with one example, a computer system prepares a first area of a first storage device and a second area of a second storage device for a live snapshot of a virtual disk of a virtual machine. A transaction is then executed that comprises: storing the live snapshot in the first area of the first storage device, copying the live snapshot to the second area of the second storage device, and mirroring a change to the virtual disk that occurs after the creation of the live snapshot, where the mirroring is via one or more write operations to the live snapshot in the first area and to the copy of the live snapshot in the second area. | 10-02-2014 |
20140282401 | COMPOSITE PROGRAM HISTORY - A system and methods are disclosed for maintaining a composite history of changes to a program comprising two parallel histories. In accordance with one embodiment, a computer system identifies a first history of changes to a program, and generates a second history of changes to the program based on the first history, where the second history has a final version of the program that is identical to a final version of the program in the first history, and where the second history excludes changes to the program in the first history that introduce an error that is fixed in a subsequent change to the program in the first history, and where the second history includes all other changes to the program in the first history. The computer system then generates a third history of changes to the program that comprises the first history and the second history. | 09-18-2014 |
20140269750 | IMPLICIT AND DYNAMIC RECEIVE QUEUE ASSIGNMENT IN VIRTUALIZED SYSTEMS - A system and method are disclosed for assigning incoming packets to receive queues of a virtual machine. In accordance with one embodiment, a hypervisor that is executed by a computer system receives a request from a virtual machine to transmit an outgoing packet to a destination, and an identification of a receive queue of a plurality of receive queues of the virtual machine, where the identification of the receive queue is provided to the hypervisor by the virtual machine along with the request. The hypervisor obtains a flow identifier from a header of the outgoing packet that identifies a flow associated with the outgoing packet, and the outgoing packet is transmitted to the destination. The computer system then receives an incoming packet whose header specifies the flow identifier, and the hypervisor inserts the incoming packet into the receive queue using the identification of the receive queue. | 09-18-2014 |
20140258493 | DETERMINING THE GRAPHIC LOAD OF A VIRTUAL DESKTOP - The graphics load of a virtual desktop is estimated to determine the capacity of a virtual desktop system. In one embodiment, the graphics load of a physical desktop is measured by a remoting agent installed on the physical desktop. The graphics load can be used as an estimate of the load that would be created by a deployed virtual desktop. The remoting agent on the physical desktop mimics host operations that are necessary to direct graphics data to a remote site. The remoting agent also measures the graphics load incurred by the host operations to determine a capacity of a virtual desktop system prior to deployment of the virtual desktop system. | 09-11-2014 |
20140245295 | Providing Dynamic Topology Information in Virtualized Computing Environments - Systems and methods for providing dynamic processor topology information to a virtual machine hosted by a multi-processor computer system supporting non-uniform memory access (NUMA). An example method may comprise assigning a unique identifier to a virtual processor, determining that the virtual processor has been moved from a first physical processor to a second physical processor, determining a memory access latency value for the second physical processor, and updating an element of a data structure storing memory access latency information with the memory access latency value of the second physical processor, the element identified by the unique identifier of the virtual processor. | 08-28-2014 |
20140245294 | VIRTUAL MACHINE SUSPENSION - A method and system for suspending and resuming a virtual machine. The method and system include a hypervisor to provide a guest operating system of a virtual machine with an instruction for the virtual machine to enter a sleep mode. The hypervisor receives, from the guest operating system, a confirmation that the virtual machine is in the sleep mode. Following receipt of confirmation that the virtual machine is in sleep mode, the hypervisor suspends the virtual machine. | 08-28-2014 |
20140245293 | Migration of Virtual Machines with Shared Memory - A system and method of migration of a VM sharing a memory region with another VM includes identifying, by an identification module, a plurality of VMs running on a source host machine, where the plurality of VMs includes first and second VMs that share a first shared memory region coupled to the source host machine; identifying, by a target module, a host machine as a target for the second VM; allocating, by an allocation module, a second shared memory region coupled to the target host machine for the second VM; stopping, by a migration module, execution of the second VM on the source host machine; and migrating, by the migration module, the second VM to the target host machine. | 08-28-2014 |
20140244951 | LIVE SNAPSHOTTING OF MULTIPLE VIRTUAL DISKS IN NETWORKED SYSTEMS - A system and method are disclosed for servicing requests to create live snapshots of a plurality of virtual disks in a virtualized environment. In accordance with one example, a first computer system detects that a second computer system has issued one or more commands to create a first snapshot of a first virtual disk of a virtual machine and a second snapshot of a second virtual disk of the virtual machine while the virtual machine is running on the second computer system. In response to a determination that the creating of the second snapshot failed, the first computer system issues one or more commands to destroy the first snapshot and deallocate an area of a storage device that stores the first snapshot. | 08-28-2014 |
20140244950 | CLONING LIVE VIRTUAL MACHINES - A system and method are disclosed for cloning a live virtual machine (i.e., a virtual machine that is running). In accordance with one example, a computer system prepares an area of a storage device for a clone of a live virtual machine, and a transaction is then executed that comprises: creating the clone of the live virtual machine based on a live snapshot of the live virtual machine, copying the clone to the area of the storage device, and mirroring a change to a virtual disk of the live virtual machine that occurs after the live snapshot is created, wherein the mirroring is via one or more write operations to the virtual disk and to a replica of the virtual disk associated with the clone. | 08-28-2014 |
20140244891 | Providing Dynamic Topology Information in Virtualized Computing Environments - Systems and methods for providing dynamic topology information to virtual machines hosted by a multi-processor computer system supporting non-uniform memory access (NUMA). An example method may comprise assigning, by a hypervisor executing on a computer system, unique identifiers to a plurality of memory blocks residing on a plurality of physical nodes; determining that a memory block has been moved from a first physical node to a second physical node; determining memory access latency values to the second physical node by a plurality of virtual processors of the computer system; and updating, using a unique identifier of the memory block, a data structure storing memory access latency information, with the memory access latency values for the memory block. | 08-28-2014 |
20140244885 | CONFIGURATION SNOOPING BRIDGE - Systems and methods for configuration snooping are provided. A bridge identifies an initialization message of a central processing unit (CPU) for a device that is downstream of a primary interface of the bridge. The bridge identifies a response to the initialization message. The bridge determines the address range for the device. The bridge stores the address range for the device in a list in the bridge. | 08-28-2014 |
20140241355 | Systems and Methods for Paravirtualized IP Over Infiniband Bridging - Systems and methods for paravirtualized Internet Protocol over Infiniband (IPoIB) bridging for virtual machines. An example method may comprise associating, by a hypervisor executing on a host computer system, an Infiniband (IB) interface of the host computer system with a paravirtualized IPoIB interface of a virtual machine executing on the host computer system; receiving, via the paravirtualized IPoIB interface, a paravirtualized IPoIB packet originated by the virtual machine, the paravirtualized IPoIB packet comprising an IP packet and a first header including an IPoIB hardware address; translating the paravirtualized IPoIB packet into an IPoIB frame comprising the IP packet and a second header including the IPoIB hardware address; and forwarding the IPoIB frame via the IB interface to one of: an IB switch, an external IB node. | 08-28-2014 |
20140237469 | FIRMWARE METADATA AND MIGRATION IN VIRTUALIZED SYSTEMS - A system and methods are disclosed for employing firmware metadata and migrating firmware in virtualized environments. In accordance with one example, a hypervisor that is executed by a computer system obtains an address of a firmware program stored in a non-volatile memory of the computer system. The hypervisor also obtains metadata that specifies a set of capabilities of the firmware program, where the metadata is not accessible to any virtual machine hosted by the computer system. | 08-21-2014 |
20140223442 | Tracking Memory Accesses to Optimize Processor Task Placement - Implementations provide for tracking memory accesses to optimize processor task placement is disclosed. A method includes creating a page table (PT) hierarchy associated with a thread, wherein the PT hierarchy comprises identifying information of memory pages and access bits corresponding to each of the memory pages, setting the respective access bit of one or more of the memory pages accessed by the thread while the thread is executing, collecting access bit information from the PT hierarchy associated with the thread, wherein the access bit information comprises the set access bits in the PT hierarchy, determining, in view of the collected access bit information, memory access statistics for the thread, and utilizing, during runtime of the thread, the memory access statistics for the thread in a determination of whether to migrate the thread to another processing device during the runtime of the thread. | 08-07-2014 |
20140223433 | HASHING STORAGE IMAGES OF A VIRTUAL MACHINE - Virtual machine images are transferred from a source storage location to a target storage location over a network. In one embodiment, a host at the source storage location computes signature values of a plurality of disk blocks that contain a plurality of virtual machine images. Each computed signature value corresponds to one of the disk blocks. A subset of the disk blocks, all of which have different signature values, is then transferred from the source storage location to the target storage location. Only one copy of duplicate disk blocks is transferred. | 08-07-2014 |
20140223060 | Injecting Interrupts in Virtualized Computer Systems - Systems and methods for injecting interrupts in a virtualized computer system. An example method may comprise providing a data structure associating message destination addresses and virtual processor identifiers for a plurality of interrupt destination modes, receiving an interrupt message including a message destination address, looking up the message destination address in the data structure, and forwarding the interrupt message to a virtual processor associated by the data structure with the message destination address. | 08-07-2014 |
20140215461 | LOW-LATENCY FAULT-TOLERANT VIRTUAL MACHINES - A system and method are disclosed for managing a plurality of virtual machines (VMs) in a fault-tolerant and low-latency manner. In accordance with one example, a computer system executes a first VM and a second VM, and creates a first live snapshot of the first VM and a second live snapshot of the second VM. The computer system detects, after the creating of the first live snapshot and the second live snapshot, a failure that affects the executing of the first VM, and in response destroys the first VM and the second VM, creates a third VM from the first live snapshot and a fourth VM from the second live snapshot, and initiates execution of the third VM and the fourth VM. An output transmitted by the first VM to the second VM during the creating of the first live snapshot and the second live snapshot is not blocked. | 07-31-2014 |
20140215459 | VIRTUAL MACHINE MEMORY MIGRATION BY STORAGE - Systems and methods for live migration are provided. A hypervisor receives a request to migrate a virtual machine from a source host machine to a destination host machine, and maps memory of the virtual machine on the source host machine to a storage device accessible by the source host machine and by the destination host machine. | 07-31-2014 |
20140215172 | PROVIDING VIRTUAL MACHINE MIGRATION RELIABILITY USING AN INTERMEDIARY STORAGE DEVICE - Systems and methods for live migration of a virtual machine are provided. A migration manager can send a request to a source host machine to migrate a virtual machine to a first destination host machine. The migration manager can determine that the migration of the virtual machine from the source host machine to the first destination host machine has failed. The migration manager can identify an intermediary storage device used during the migration to store a state of the virtual machine. The migration manager identifies a second destination host machine for the virtual machine migration. The migration manager causes the second destination host machine to obtain the state of the virtual machine from the intermediary storage device to migrate the virtual machine to the second destination host machine. | 07-31-2014 |
20140208303 | MATCHING DATABASE SCHEMA WITH APPLICATION CODE USING DEPENDENCY MANAGEMENT - A package manager receives a request to install a version of an application on a host server, the version of the application having an associated database script provided by database scripts package. The package manager determines a currently installed schema in a management database associated with the host server and compares the database script associated with the application to the currently installed schema in the management database. Prior to installing the version of the application, the package manager verifies that the database script is installed and updated to match the database schema and performs the database upgrade if required. | 07-24-2014 |
20140208249 | PRESENTING A MODAL DIALOG BOX USING AN INVISIBLE PANEL UNDERNEATH - Techniques for presenting a modal dialog box in a graphical user interface are described herein. According to one embodiment, a semi-transparent panel is displayed superimposed on a graphical user interface (GUI) page in response to a first user interaction with the GUI page. The GUI page provides a user interface for managing a virtualization system. A dialog box is then displayed on top of the semi-transparent panel, where the dialog box is to receive an input from the user. An alert is generated in response to a second user interaction with an area of the semi-transparent panel other than the dialog box, where the alert indicates that the second user interaction is invalid. | 07-24-2014 |
20140208045 | MANAGING METADATA FOR LOGICAL VOLUME MANAGERS - A logical volume manager (LVM) may manage a plurality of logical volumes and a plurality of drives in a logical data storage using metadata stored on the plurality of drives. The LVM may operate in one of two modes. In the first mode, the LVM may deleted uncommitted metadata on a drive and may use committed metadata on the drive when accessing a logical volume. In a second mode, the LVM may use committed metadata on the drive when accessing the logical volume and may refrain from deleting the uncommitted metadata. | 07-24-2014 |
20140201736 | Mechanism For Managing Storage Connections In A Distributed Virtualization Environment - A host machine executing a connection agent receives a configuration identifying a set of connections to a plurality of storage servers. The host machine later receives a command to run a virtual machine. The host machine determines, based on the configuration, a particular connection of the set of connections to a particular storage server of the plurality of storage servers, the particular connection enabling access to data associated with the virtual machine that is stored by the particular storage server. The host machine then establishes the particular connection to the particular storage server without first receiving a command to establish the particular connection. | 07-17-2014 |
20140195752 | EFFICIENT COPYING BETWEEN STORAGE DEVICES - A system and method are disclosed for efficiently copy a disk image between storage devices. In accordance with one example, a computer system issues a request to create on a first storage device a snapshot of a first disk image that is stored on the first storage device. The computer system then issues a request to create on the first storage device a second disk image based on the snapshot, and copies the snapshot on to a second storage device. The computer system issues a request to create on the second storage device a third disk image based on the snapshot. The computer system then issues a request to compute a difference between the second disk image and the snapshot, and the difference is overwritten on to the third disk image. | 07-10-2014 |
20140195592 | MANAGING A LOGICAL CLIENT FOR AN APPLICATION - A logical client includes a primary client device and one or more secondary client devices. Each of the secondary client devices may be coupled to one or more peripherals. The primary client in the logical client may use a virtual machine and/or an application that uses one or more peripheral devices. The primary client device may not be coupled to the one or more peripheral devices used by the application and/or the VM. The primary client device may access the peripheral devices coupled to secondary client devices in order to use the application and/or the VM. | 07-10-2014 |
20140195590 | MANAGING A LOGICAL CLIENT FOR A VIRTUAL MACHINE - A logical client includes a primary client device and one or more secondary client devices. Each of the secondary client devices may be coupled to one or more peripherals. The primary client in the logical client may use a virtual machine (VM) and/or an application that uses one or more peripheral devices. The primary client device may not be coupled to the one or more peripheral devices used by the application and/or the VM. The primary client device may access the peripheral devices coupled to secondary client devices in order to use the application and/or the VM. | 07-10-2014 |
20140189684 | VIRTUAL MACHINE SCHEDULING BASED ON USER-DEFINED RULES - A processing device receives a rule for execution by a rules engine and provides the rule to the rules engine. The processing device receives a request to provision a virtual machine (VM) having VM attributes. The processing device provides metrics of a plurality of physical hosts to the rules engine and the VM attributes to the rules engine. The processing device then receives. from the rules engine, an identification of one or more prioritized physical hosts of the plurality of physical hosts. The processing device provisions the VM on one of the one or more prioritized physical hosts. | 07-03-2014 |
20140181811 | HYPERVISOR MODIFICATION OF ADVANCED CONFIGURATION AND POWER INTERFACE (ACPI) TABLES - A system and method for system table modification in a virtualized computer system are disclosed. In accordance with one embodiment, a hypervisor that is executed by a computer system detects a hardware configuration change to the computer system (e.g., addition of a hardware device to the computer system, removal of a hardware device from the computer system, a change in configuration of a hardware device of the computer system, etc.). In response, the hypervisor modifies a system table that is accessible by a guest operating system executing within a virtual machine. | 06-26-2014 |
20140181810 | AUTOMATIC DISCOVERY OF EXTERNALLY ADDED DEVICES - An exemplary system may automatically discovery externally added devices. In one embodiment, the system obtains initial device information for a virtual machine running on a host computing system. The system determines whether an external event occurred on the host computing system. A management computing system associated with the host computing system does not receive notification of the external event. Upon determining that the external event occurred on the host computing system, the system obtains updated device information for the virtual machine running on the host computing system. | 06-26-2014 |
20140157228 | METHOD AND SYSTEM FOR AUTOMATICALLY GENERATING A RESTFUL WEB SERVICE SOFTWARE DEVELOPMENT KIT CLIENT - A computer system receives user input indicating uniform resource identifiers (URIs) for a RESTful web service. The computer system identifies a programming language for a RESTful web service software development kit (SDK) client and creates methods for the URIs using programming code format of the identified programming language. The computer system creates the RESTful web service SDK client using the methods. | 06-05-2014 |
20140157227 | METHOD AND SYSTEM FOR PRESERVING RESTFUL WEB SERVICE STRUCTURE IN A CLIENT CONSUMING THE RESTFUL WEB SERVICE - A computer system identifies a uniform resource identifier (URI) that corresponds to a resource of a RESTful web service. The URI contains elements. The computer system identifies a relationship between the elements of the URI and creates programming code for a method of a software development kit (SDK) client. The method reflects the relationships between the elements of the URI to facilitate communication with the resource of the RESTful web service. | 06-05-2014 |
20140156960 | MANAGING PERMISSIONS FOR LOGICAL VOLUME MANAGERS - A logical volume manager (LVM) may manage a plurality of logical volumes and a plurality of drives in a logical data storage using metadata stored on plurality of drives. The metadata may include a first set of permissions for a storage location in one of the logical volumes. The LVM may analyze permission data associated with the storage location and may override metadata (e.g., the permissions in the metadata) with a second set of permissions obtained from the permission data. The LVM may use the second set of permission data to access the storage location. | 06-05-2014 |
20140156957 | LIVE SNAPSHOTS OF MULTIPLE VIRTUAL DISKS - A system and method are disclosed for servicing requests to create live snapshots of a plurality of virtual disks in a virtualized environment. In accordance with one example, a computer system issues one or more commands to create a first snapshot of a first virtual disk of a virtual machine and a second snapshot of a second virtual disk of the virtual machine while the virtual machine is running. The computer system determines that the creating of the second snapshot failed and, in response, destroys the first snapshot. | 06-05-2014 |
20140156955 | USAGE OF SNAPSHOTS PREPARED BY A DIFFERENT HOST - A system and method are disclosed for preparing and using snapshots in a virtualized environment. In accordance with one example, a first computer system prepares, in an area of a storage device, a snapshot of a virtual disk of a virtual machine that is hosted by a second computer system. The first computer system then provides to the second computer system a reference to the prepared snapshot. | 06-05-2014 |
20140156925 | SELECTION OF ALLOCATION POLICY AND FORMAT FOR VIRTUAL MACHINE DISK IMAGES - A system and method are disclosed for selecting an allocation policy and format for storing a disk image of a virtual machine (VM). In accordance with one embodiment, a computer system that hosts a virtual machine (VM) selects an allocation policy and format for storing the disk image on a particular storage device (e.g., a magnetic hard disk, a Universal Serial Bus [USB] solid state drive, a Redundant Array of Independent Disks [RAID] system, a network attached storage [NAS] array, etc.), where the selection is based on one or more capabilities of the storage device, and on a parameter that indicates a tradeoff between performance and storage consumption. | 06-05-2014 |
20140156894 | MSI EVENTS USING DYNAMIC MEMORY MONITORING - A method and system for managing message-signaled interrupt-based events sent from an event source to a host or a guest is disclosed. A central processing unit instructs an event source to write a message-signaled interrupt to a designated address of a random access memory of the host. The host or a guest of the central processing unit executes a memory monitoring instruction to the designated address. The host or the guest enters a wait state. The host or the guest detects a write of the message-signaled interrupt by the event source to the designated address, the message-signaled interrupt comprising data items pertaining to an event to be performed. The host or the guest exits from the wait state. The host or the guest performs an atomic operation with respect to the event based on the data items in the message-signaled interrupt. | 06-05-2014 |
20140156828 | METHOD AND SYSTEM FOR ABSTRACTING RESTFUL WEB SERVICE HTTP BETWEEN A CLIENT AND A SERVER - A computer system identifies metadata components that are associated with uniform resource identifiers (URIs) in service description language metadata for a RESTful (Representational State Transfer) web service The computer system identifies a programming language for a template pertaining to a method of a software development kit (SDK) client. The computer system creates the template. The template includes programming code placeholders for the metadata components based on the identified programming language. | 06-05-2014 |
20140156778 | MANAGING A DISTRIBUTED CACHE FOR VIRTUAL MACHINES - Clients may display desktop environments to provide users with access to virtual machines (VMs). Graphical objects that displayed in the desktop environments are stored in caches in multiple clients. A host that hosts a VM may track or manage the graphical objects that are in the caches of the multiple clients. The host may instruct a first client to obtain a graphical object from a second client that is near the first client, instead of providing the graphical object to the first client directly. | 06-05-2014 |
20140156684 | SCHEMA AND QUERY ABSTRACTION FOR DIFFERENT LDAP SERVICE PROVIDERS - A lightweight directory access (LDAP) broker receives user information associated with a query for information in an LDAP repository. The query may be in an abstraction format. The LDAP broker determines a computing domain in view of the user information and retrieves a configuration file associated with the computing domain. The configuration file comprises a mapping for the query between an abstraction format and a vendor specific format. The LDAP broker converts the query to the vendor specific format in view of the mapping in the configuration file. | 06-05-2014 |
20140149982 | SELF-MONITORED COMMANDS - A host controller receives a request to perform an action in a virtual computing system. The host controller, creates a command to execute operations associated with the request and creates a job to monitor a progress of the operations of the command. As the command is executing the operations, the host controller receives an indication of the progress of the command execution, wherein the operations report the progress to the job each time an operation is completed. | 05-29-2014 |
20140149981 | SHARING MEMORY BETWEEN VIRTUAL APPLIANCES - A computing device executing a virtual machine and a hypervisor that manages the virtual machine receives a data packet that is addressed to the virtual machine. The computing device writes the data packet to a buffer in a shared memory. The computing device maps the buffer to a memory of a virtual appliance that is hosted by the hypervisor to enable the virtual appliance to operate on the data packet without making a copy of the data packet. The computing device provides the data packet to the virtual machine after the virtual appliance has operated on the data packet. | 05-29-2014 |
20140149979 | VIRTUAL MACHINE WAKEUP USING A MEMORY MONITORING INSTRUCTION - A method and system for managing a virtual computing system including an event source configured to send an event to a destination virtual machine (VM) executing a memory monitoring instruction on a designated address range of a host memory. A hypervisor instructs a destination virtual central processing unit (VCPU) associated with the destination VM to execute the memory monitoring instruction to the designated address range of a memory. A physical CPU associated with the designated address range is configured not to perform an exit to the hypervisor in response to execution of the memory monitoring instruction by the destination VCPU. The hypervisor instructs an event source to write data to the designated address range to send an event for performance by the destination VM, wherein the destination VM wakes up and performs the identified event in response to the event source writing to the identified address range. | 05-29-2014 |
20140149793 | DATABASE CHANGE COMPENSATION AFTER A TRANSACTION COMMIT - A virtualization manager receives a request to perform a command in a virtual machine system and executes a plurality of transactions associated with the command, each of the plurality of transactions comprising one or more operations executed on entities in the virtual machine system. The virtualization manager commits changes made to the entities in the virtual machine system as a result of the plurality of transactions to a management database for the virtual machine system. In addition, the virtualization manager generates a business entity snapshot corresponding to a first transaction of the plurality of transactions, the business entity snapshot comprising state information for one or more entities in the virtual machine system affected by the first transaction. | 05-29-2014 |
20140149696 | VIRTUAL MACHINE BACKUP USING SNAPSHOTS AND CURRENT CONFIGURATION - A computer system generates snapshot backups of a virtual machine by creating a metadata snapshot and a backup snapshot. The computer system identifies a backup request for a virtual machine operating on a host computing system, initiates a backup snapshot of storage devices in use by the virtual machine, generates a metadata snapshot of a configuration of the virtual machine, and maintains the metadata snapshot in a data store. | 05-29-2014 |
20140149695 | CREATING A VIRTUAL MACHINE FROM A SNAPSHOT - A computer system generates a clone of a virtual machine from a point-in-time snapshot backup by collapsing metadata snapshots and storage snapshots into a virtual machine image. The computer system identifies a clone request for a virtual machine, the clone request comprising a point-in-time reference, retrieves at least one metadata snapshot and at least one storage snapshot based on the point-in-time reference, combines the at least one metadata snapshot and the at least one storage snapshot into a virtual machine image, and provisions a new virtual machine based on the virtual machine image. | 05-29-2014 |
20140149633 | DELIVERY OF EVENTS FROM A VIRTUAL MACHINE TO A THREAD EXECUTABLE BY MULTIPLE HOST CPUS USING MEMORY MONITORING INSTRUCTIONS - A method and system for managing a virtual computing system including a hypervisor managing a virtual machine (VM) configured to communicate with a thread executable by multiple host central processing units (CPUs), using memory monitoring instructions. The hypervisor provides the virtual machine with a first notification identifying a first designated memory range writeable by a virtual central processing unit (VCPU) associated with the virtual machine and a first instruction to write to the first designated memory range to communicate with the thread running on a first host CPU. The hypervisor further identifies movement of the thread from the first host CPU to a second host CPU and provides to the virtual machine a second notification identifying a second designated memory range and a second instruction to write to the second designated memory range to communicate with the thread running on the second host CPU. | 05-29-2014 |
20140149490 | DYNAMIC ROUTING THROUGH VIRTUAL APPLIANCES - A computing device executes a virtual machine that provides a service to a client. The computing device monitors one or more conditions associated with at least one of the virtual machine or the client. The computing device receives a data packet from the client, wherein the data packet is addressed to the virtual machine. The computing device determines, based on the one or more conditions, whether to route the data packet from the client through a virtual appliance before sending the data packet to the virtual machine. | 05-29-2014 |
20140146705 | MANAGING A DYNAMICALLY CONFIGURABLE ROUTING SCHEME FOR VIRTUAL APPLIANCES - A computing device determines a routing scheme that identifies a plurality of virtual appliances to route data packets through and an order in which to perform the routing. The computing device receives a data packet from a client. The computing device routes the data packet to the plurality of virtual appliances in accordance with the routing scheme, wherein each of the plurality of virtual appliances performs one or more operations on the data packet. The computing device sends the data packet to the virtual machine after the plurality of virtual appliances have completed the one or more operations on the data packet. | 05-29-2014 |
20140143771 | DELIVERY OF EVENTS FROM A VIRTUAL MACHINE TO HOST CPU USING MEMORY MONITORING INSTRUCTIONS - A method and system for managing a virtual computing system including a virtual machine (VM) configured to send an event to a host CPU executing a memory monitoring instruction. The virtual machine is configured to receive from a hypervisor a notification identifying an address range writeable by a virtual central processing unit (VCPU) associated with the virtual machine to send an event to a host central processing unit (CPU). The virtual machine is further configured to receive an instruction to write to the identified address range for sending an event to the host CPU. The VCPU of the virtual machine may then write data identifying an event for execution by the host CPU to the identified address range, without causing an exit to the hypervisor. | 05-22-2014 |
20140143452 | MECHANISMS FOR INTERPROCESS COMMUNICATION - A system and methods for sending data from one process to another process (i.e., interprocess communication) are disclosed. In accordance with one embodiment, an operating system recognizes a request by a sending process to perform an asynchronous write to a pipe, and a request by a receiving process to perform an asynchronous read from the pipe, occurring in either order. The operating system then selects one of a plurality of mechanisms for providing the data to the receiving process. | 05-22-2014 |
20140137230 | PROVISIONING PROXY FOR PROVISIONING DATA ON HARDWARE RESOURCES - A processing device receives an unauthenticated provisioning request from a hardware, wherein the processing device is in a first network zone that is accessible to the hardware resource. The processing device determines whether the hardware resource satisfies one or more provisioning criteria. Responsive to determining that the hardware resource satisfies the one or more provisioning criteria, the processing device forwards the provisioning request to a server residing behind a firewall in a second network zone that is inaccessible to the hardware resource, receives provisioning data from the server by the provisioning proxy, and forwards the provisioning data to the hardware resource. | 05-15-2014 |
20140137108 | DYNAMIC PROCESSOR UNPLUG IN VIRTUALIZED COMPUTER SYSTEMS - A system and method for withdrawing virtual processors from virtual machines (VMs) are disclosed. In accordance with one embodiment, a hypervisor executed by a computer system detects when a measure of system load for a virtual machine falls below a threshold. In response, the hypervisor withdraws a virtual processor from the virtual machine. | 05-15-2014 |
20140136711 | PRE-PROVISIONING RESOURCES FOR COMPOSITE APPLICATIONS - A processing device performs a statistical analysis of a plurality of previously provisioned composite applications, a composite application of the plurality of previously provisioned composite applications comprising a plurality of nodes, the plurality of nodes each having a final provisioned state for an application component of the composite application. The processing device predicts an intermediate provisioned state to be used for a node of a future composite application based on the statistical analysis. Prior to receiving a request to provision a new composite application comprising a node having a final provisioned state that is compatible with the determined intermediate provisioned state, the processing device provisions software on a resource to cause the resource to have the intermediate provisioned state. | 05-15-2014 |
20140136710 | HARDWARE RESOURCE ALLOCATION AND PROVISIONING FOR COMPOSITE APPLICATIONS - A processing device receives an application descriptor of a composite application, the application descriptor comprising information for a plurality of nodes that comprise application components in the composite application. The processing device determines hardware criteria for the plurality of nodes based on the application descriptor. the processing device searches a pool of available hardware resources to identify a plurality of hardware resources that satisfy the determined hardware criteria. The process then allocates the identified plurality of hardware resources for the plurality of nodes, and provisions the application components on the identified plurality of hardware resources to cause the plurality of hardware resources to have states that correspond to the information for the plurality of nodes. | 05-15-2014 |
20140130136 | ABILITY FOR AN ADMINISTRATOR TO IMPERSONATE A USER WHEN ACCESSING A USER APPLICATION - A method for an administrator to impersonate a user is provided. A portal manager of a server detects an action initiated in the administrator portal pertaining to a user portal during a current session. The portal manager calculate a current user-to-impersonate identifier using a user identifier associated with the user portal, an administrator identifier associated with the administrator portal, and a session identifier associated with the current session. The portal manager compares the current user-to-impersonate identifier with a stored user-to-impersonate identifier. The portal manager permits the action initiated in the administrator portal to be executed in the user portal when the current user-to-impersonate identifier matches the stored user-to-impersonate identifier. | 05-08-2014 |
20140130042 | Mechanism for Single Virtual Machine Monitor Display Split Using Multiple Client Devices in a Virtualization System - A mechanism for a virtual machine (VM) monitor display split using multiple client devices in a virtualization system is disclosed. A method of the invention includes receiving, by a remote access protocol server, resolution data of a monitor of a virtual machine (VM), receiving resolution data for each monitor of multiple client devices forming a logical client unit, determining, based on the resolution data of the VM monitor and the resolution data of the monitors of the multiple client devices, client devices of the multiple client devices in the logical client unit to display the monitor of the VM, dividing, based on the resolutions of the determined client devices, the monitor of the VM into a number of portions that is equal to a number of the determined client devices, and mapping each of the portions of the monitor of the VM to a monitor of the determined client devices. | 05-08-2014 |
20140130041 | Mechanism for Distributed Multiple Monitor Display Split Using Multiple Client Devices in a Virtualization System - A mechanism for distributed multiple monitor display split using multiple client devices in a virtualization system is disclosed. A method of the invention includes determining, by a remote access protocol server executed by a computing device, that a monitor configuration of a primary client device is not compatible with a multiple monitor configuration of a virtual machine (VM) hosted by a hypervisor of the computing device, establishing a communication session with remote access protocol clients of multiple client devices of a logical client unit comprising the primary client device, wherein each of the multiple client devices comprises at least one monitor, and for each VM monitor of the multiple monitors configured for the VM, mapping, by the remote access protocol server, the VM monitor to a monitor of a client device in the logical client unit. | 05-08-2014 |
20140130039 | SNMP/WMI INTEGRATION INTO A VIRTUALIZATION ENVIRONMENT FOR HANDLING GUEST-ORIENTED EVENTS WITH VIRTUALIZATION-ENVIRONMENT-RELATED ACTIONS - A method for integrating responses to asynchronous events is provided. A hypervisor of a host receives a request from a network manager to re-direct asynchronous events from a guest to an address of an event aggregation manager distinct from an address of the network manager. The hypervisor receives an asynchronous event having a destination address of the network manager from the guest. The hypervisor maps the destination address of the network manager to the address of the event aggregation manager. The hypervisor transmits the asynchronous event to the event aggregation manager. | 05-08-2014 |
20140123133 | Mechanism for Partitioning of a Transmission Control Protocol (TCP) Window in a Virtual System - A mechanism for partitioning of a transmission control protocol (TCP) window in a virtual system is disclosed. A method includes estimating effective bandwidth of a communication link between a group of client devices at a first location and at least one host machine at a second location, wherein each client device of the groups of client devices maintains a communication session over the communication link with one of the at least one host machine, partitioning a transport control protocol (TCP) window of the communication link into portions based on quality of service (QoS) policy data of the communication sessions, where each portion is associated with one of the communication sessions, and sending, to each client device in the group of client devices, a parameter identifying the portion of the TCP window partitioned for the client device, the parameter sent to communication endpoints of each communication session. | 05-01-2014 |
20140122659 | Mechanism for Populating a Client Device With Graphical Images Specific to a Machine - A mechanism for populating a client device with graphical images specific to a machine is disclosed. A method includes storing a repository of graphical images associated with virtual machines (VMs), wherein the repository of graphical images is stored at the computing device prior to a connection of the computing device to a virtual machine (VM), connecting with a VM that is hosted by a host machine separate from the computing device and rendered in a graphical user interface (GUI) of the computing device, receiving hints regarding a configuration of the VM, and extracting one or more of the graphical images from the stored repository of graphical images that satisfy the received hints. | 05-01-2014 |
20140122430 | RETRIEVING HISTORICAL TAGS HIERARCHY PLUS RELATED OBJECTS - A method for historically synchronizing tag data related to a computer network is provided. A network management server compares a relations table of entities from a first database to a corresponding relations history table of entities from a second database. The network management server identifies from the comparison a pair of entities having a changed relationship. The network management server updates the relations history table of entities with the changed relationship in the second database. The network management server updates a path and level between a root of a tree of tags and each tag of the pair of tags in a historical configuration details table of tags in the second database based on updating the relations history table of entities. | 05-01-2014 |
20140122427 | RETRIEVING HISTORICAL OBJECT-RELATED CONFIGURATION DATA - A method for historically synchronizing configuration data of a computer network is provided. A network management server collects from a first database a first plurality of configuration tables corresponding to a plurality of entities in the computer network according to a hierarchy of the entities when an entity in the computer network has changed. The network management server identifies the entity that has changed. The network management server adds a history identifier to an entity configuration table of the first plurality of configuration tables. The entity configuration table corresponds to the entity that has changed. The network management server updates a second plurality of configuration tables in a second database with the first plurality of configuration tables. | 05-01-2014 |
20140115175 | CLIENT LIVE MIGRATION FOR A VIRTUAL MACHINE - A computing device connects a first client device to a session of a virtual machine. The computing device subsequently connects a second client device to the session in response to a request from the second client device to access the virtual machine. The computing device may then disconnect the first device from the virtual machine session or disable one or more functions associated with the first client device. | 04-24-2014 |
20140115017 | RESTFUL SERVICE DESCRIPTION LANGUAGE - A processing device identifies uniform resource identifiers (URIs) for a RESTful (Representational State Transfer) web service in a server and creates server-side metadata describing each of the URIs without nesting metadata of one of the URIs in metadata of another one of the URIs. The processing device creates a file that includes the URIs and the corresponding server-side metadata for the corresponding URI to describe the RESTful web service. | 04-24-2014 |
20140109086 | VIRTUAL DISK IMAGE MANAGER SUPPORTING PLUGGABLE STORAGE DOMAINS - A virtual disk image manager running on a computing device determines that an operation is to be performed on a virtual disk image. The virtual disk image manager then determines whether an underlying storage domain on which the virtual disk image is stored supports the operation. In response to determining that the storage domain supports the operation, the virtual disk image manager uses native capabilities of the storage domain to perform the operation. In response to determining that the storage domain does not support the operation, the virtual disk image manager performs the operation without the use of the storage domains native capabilities. | 04-17-2014 |
20140108722 | VIRTUAL MACHINE INSTALLATION IMAGE CACHING - The subject matter of this specification can be implemented in, among other things, a computer-implemented method including sending, from a virtual desktop server manager at a data center and over a network, at least one request to a virtual machine storage domain for virtual machine installation images. The virtual machine storage domain stores the virtual machine installation images separate from the data center. The method further includes receiving, from the virtual machine storage domain over the network, the virtual machine installation images. The method further includes caching the virtual machine installation images in a data storage domain within the data center. The method further includes receiving a request to present a list of the virtual machine installation images. The method further includes in response to receiving the request to present the list, presenting the list of the cached virtual machine installation images. | 04-17-2014 |
20140075433 | LOCATION-BASED COMPONENT DEPLOYMENT FOR COMPOSITE APPLICATIONS - A method and system for deploying a component of a composite application in a data center. An example method includes receiving access data from a traffic manager implementing global load balancing, where the access data is related to client accesses to a composite web application including multiple components hosted by virtual machines in a virtualization infrastructure. The method further includes determining, based on the access data, determining that one of the components of the composite web application receives client accesses that exceed a threshold, identifying a new geographic location for the client accesses that exceed the threshold, instructing the virtualization infrastructure to deploy a new virtual machine at the new geographic location, the deployed virtual machine implementing the determined component of the composite web application, and providing information pertaining to the deployed virtual machine to the traffic manager. | 03-13-2014 |
20140075415 | AUTOMATIC USE CASE GENERATION FROM A PARSED CONFIGURATION FILE - A method and system for automatic use case generation. A computer system receives a configuration file that defines multiple categories and one or more filters. Each of the categories includes one or more options and each of the filters defines a condition for combining the options across the categories. The computer system builds a data hierarchy based on the configuration file. The data hierarchy includes a root and multiple levels. Each of the levels corresponds to one of the categories and includes nodes that represent the options of the corresponding categories. The computer system parses the data hierarchy from the root, while skipping the nodes and their descendants that do not satisfy the filters, to identify combinations of the options across the categories that satisfy the filters. The computer system then generates use cases that use the identified combinations as settings. | 03-13-2014 |
20140068718 | FLATTENING PERMISSION TREES IN A VIRTUALIZATION ENVIRONMENT - A virtualization manager receives a permission request indicating a user and an entity in a virtual machine system. The virtualization manager flattens a permissions database to generate a flattened database view. Using the flattened database view, the virtualization manager determines whether the user has permission to access the entity in the virtual machine system and returns an indication of whether the user has permission to access the entity in the virtual machine system. | 03-06-2014 |
20140068605 | HYPERVISOR HANDLING OF PROCESSOR HOTPLUG REQUESTS - A system and method are disclosed for determining whether to grant requests for additional virtual processors for a virtual machine (referred to as “processor hotplug requests”). In accordance with one embodiment, a hypervisor receives a request from a guest operating system of a virtual machine, where the request is for an additional virtual processor for the virtual machine. The hypervisor then determines whether or not to grant the request based on a policy. | 03-06-2014 |
20140068604 | DISPLAY POWER MANAGEMENT IN DISTRIBUTED VIRTUALIZED SYSTEMS - A system and method for display power management in a virtualized environment are disclosed. In accordance with one embodiment, a hypervisor that is executed by a first computer system receives a notification that a host operating system of a second computer system has received a command to dim a video display of the second computer system, and forwards the notification to a guest operating system of a virtual machine hosted by the first computer system. The hypervisor receives from the guest operating system a first signal that indicates that the hypervisor is to notify the host operating system to refrain from executing the command. The hypervisor then transmits a second signal that notifies the host operating system to refrain from executing the command. | 03-06-2014 |
20140068603 | AUTOMATIC PROCESSOR HOTPLUG IN VIRTUALIZED COMPUTER SYSTEMS - A system and method for allocating additional virtual processors to virtual machines (referred to as “automatic processor hotplug”) are disclosed. In accordance with one embodiment, a guest operating system of a virtual machine detects when a measure of system load exceeds a threshold. In response, the guest operating system transmits a request to a hypervisor for an additional virtual processor for the virtual machine. | 03-06-2014 |
20140068127 | SHARED LOCKING MECHANISM FOR STORAGE CENTRIC LEASES - A computing device receives a request from a host for a shared lock on a resource. The computing device obtains an exclusive lock on the resource using a locking data structure that is stored on the storage domain. The computing device subsequently obtains a shared lock on the resource for the host by writing a flag to the locking data structure, wherein the flag indicates that the host has the shared lock on the resource. The computing device then releases the exclusive lock on the resource. | 03-06-2014 |
20140068037 | ENHANCED REBOOT COMMAND - A method and system allows a computer system to perform a network reboot in response to an enhanced reboot command. The computer system receives a command to load an operating system and interprets the command to determine whether a physical machine or a virtual machine is to be rebooted. In response to a determination that the command indicates the use of a network option, the computer system loads the operating system from a networked server, and perform rebooting according to the interpreted command with the use of the operating system. | 03-06-2014 |
20130339954 | FEATURE DRIVEN BACKEND SWITCHING - A method and system for switching backend devices in a virtual machine system based on features of the backend devices. In one embodiment, a computer system includes at least a first device and a second device that function as a backend device. The first device is currently used by a guest of the computer system as the backend device. A hypervisor of the computer system receives an indication from the guest to use a feature of the backend device. The hypervisor determines whether the use of the feature of the backend device triggers a switching condition. In response to a determination that the switching condition is triggered, the guest is switched to use the second device as the backend device. The switching operation can be transparent to the guest. | 12-19-2013 |
20130332920 | LIVE VIRTUAL MACHINE TEMPLATE CREATION - A system and method are disclosed for creating a virtual machine template from a live virtual machine. In accordance with one embodiment, a computer system creates a live snapshot of a virtual machine, and creates a clone of the virtual machine based on the live snapshot. The computer system then initiates execution of the clone, shuts down the clone, and creates a virtual machine template based on the clone, where the virtual machine template enables the creation of another virtual machine that corresponds to the live snapshot of the original virtual machine. | 12-12-2013 |
20130326542 | RUNTIME MODIFICATION OF PROPERTY NAMES IN ADVANCED CONFIGURATION AND POWER INTERFACE (ACPI) TABLES - A system and method are disclosed for efficient runtime modification of device property names in Advanced Configuration and Power Interface (ACPI) tables. In accordance with one embodiment, a computer system determines whether a device supports a device property, and when the device does not support the device property, a device property name corresponding to the device name is modified in a particular entry of an ACPI table, such that a checksum for that entry remains unchanged. The modified device property name indicates to the computer system that the device does not support the device property. | 12-05-2013 |
20130326509 | ROBUST NON-SHAREABLE RESOURCE ACCESS UNDER LIVE VIRTUAL MACHINE CLONING - A system and method are disclosed for preventing concurrent access by a virtual machine and a clone of the virtual machine to a resource in a non-shareable state. In accordance with one embodiment, a hypervisor receives a command to clone a virtual machine, and determines whether any resource used by the virtual machine is in a non-shareable state (e.g., the virtual machine holds a lock on a resource, a resource comprises memory that stores secure data, etc.). When any resource used by the virtual machine is in a non-shareable state, the hypervisor delays cloning of the virtual machine until all resources used by the virtual machine are in a shareable state. | 12-05-2013 |
20130326508 | DISPLAY POWER MANAGEMENT FOR VIRTUAL MACHINES - A system and method for display power management in a virtualized environment are disclosed. In accordance with one embodiment, a hypervisor receives a notification that a host operating system has received a command to dim a display, and forwards the notification to a guest operating system hosted by a virtual machine. The hypervisor receives from the guest operating system a first signal that indicates that the hypervisor is to notify the host operating system to refrain from executing the command. The hypervisor then transmits a second signal that notifies the host operating system to refrain from executing the command. | 12-05-2013 |
20130326179 | HOST MEMORY LOCKING IN VIRTUALIZED SYSTEMS WITH MEMORY OVERCOMMIT - A system and method for handling requests by virtual machines (VMs) to lock portions of main memory are disclosed. In accordance with one embodiment, a host operating system (OS) of a computer system receives a request by the guest OS of a VM to lock a portion of main memory of the computer system. The host OS determines whether locking the portion of main memory violates any of a set of constraints pertaining to main memory. The host OS locks the portion of main memory when locking does not violate any of the set of constraints. The locking prevents any page of the portion of main memory from being swapped out to a storage device. The host OS can still swap out pages of main memory that are not allocated to this VM and are not locked by any other VM. | 12-05-2013 |
20130326172 | PROTECTION OF DATA FROM VIRTUAL MACHINE CLONES VIA PARAVIRTUALIZATION - A system and method for protecting secure data from virtual machine clones are disclosed. In accordance with one embodiment, a hypervisor receives a message from a guest operating system hosted by a first virtual machine, where the message identifies a memory location (e.g., of main memory, of a storage device, etc.) for a secure datum. After the hypervisor receives a direct-copy command to clone the first virtual machine, the hypervisor creates a second virtual machine via direct copy, where the second virtual machine is not provided access to the secure memory location during its creation. | 12-05-2013 |
20130326110 | HYPERVISOR-DRIVEN PROTECTION OF DATA FROM VIRTUAL MACHINE CLONES - A system and method for protecting secure data from virtual machine clones are disclosed. In accordance with one embodiment, a hypervisor transmits a message to a guest operating system hosted by a first virtual machine, where the message identifies a memory location for a secure datum. After the transmission of the message, when the hypervisor receives a direct-copy command to clone the first virtual machine, the hypervisor creates a second virtual machine via direct copy, where the second virtual machine is not provided access to the secure memory location during its creation. | 12-05-2013 |
20130275970 | INTERACTIVE SEARCH MONITORING IN A VIRTUAL MACHINE ENVIRONMENT - A method and system for providing up-to-date monitoring results in a virtual machine environment are described. A host controller may receive requests to execute a plurality of searches pertaining to a plurality of objects in a virtual machine system. The host controller may execute the plurality of searches and provides the results to one or more requestors. The host controller may monitor data associated with the plurality of objects to detect a change in plurality of objects. The host controller may re-execute searches impacted by the change and may refrain from re-executing searches which are not impacted by the change. | 10-17-2013 |
20130246516 | HOST CONTROLLER USING REDUCED NETWORK RESOURCES TO MONITOR HOSTS - A host controller generates and sends a request for first status information to a host. The host controller receives first status information from the host along with a unique identifier that is associated with the first status information. After a time period, the host controller generates and sends a new request for second status information to the host, the new request including the unique identifier. When second status information and the first status information are associated with the same unique identifier, the host controller receives a response from the host indicating that the second status information is the same as the first status information. | 09-19-2013 |
20130227556 | GUEST-DRIVEN HOST EXECUTION - A system and method by which a host computer system can run executables on behalf of a virtual machine (VM) are disclosed. In accordance with one embodiment, an executable of a guest application of a virtual machine is received by a hypervisor and is run via the host operating system on behalf of the virtual machine. | 08-29-2013 |
20130227555 | MANAGEABLE EXTERNAL WAKE OF VIRTUAL MACHINES - A system and method for waking hibernating virtual machines (VMs) are disclosed. In particular, a host operating system (OS) may decide to wake a hibernating VM in response to a message received by the host, such as an incoming networking packet, a message generated by an external event (e.g., a hardware device fault, an interrupt, etc.), etc. In accordance with one embodiment, the decision whether to wake a hibernating VM may be based on a sender of the message. | 08-29-2013 |
20130227554 | HYPERVISOR-DRIVEN HIBERNATION - A system and method for hibernating virtual machines (VMs) are disclosed. In accordance with one embodiment, a computer system that executes a hypervisor and a virtual machine (VM) determines that the virtual machine is to be put to sleep, wherein the determining is performed without involvement of a guest operating system hosted by the virtual machine. In response, the hypervisor stops a first virtual processor of the VM and persists the state of the first virtual processor. | 08-29-2013 |
20130227553 | HIBERNATION VIA PARAVIRTUALIZATION - A system and method for hibernating virtual machines (VMs) are disclosed. In accordance with one embodiment, a computer system that executes a hypervisor and a virtual machine (VM) receives a request from a first virtual processor of the VM to put the VM to sleep. In response, the hypervisor stops a second virtual processor of the VM. | 08-29-2013 |
20130145218 | Mechanism for Saving Crash Dump Files of a Virtual Machine on a Designated Disk - A method for saving crash dump files of a virtual machine (VM) on a designated disk is disclosed. The method includes associating, by a hypervisor that virtualizes a plurality of virtual machines (VMs), each VM of the plurality of VMs with a crash dump disk that is solely dedicated to the VM, wherein each crash dump disk is located separate from its associated VM. The method further includes configuring, by the hypervisor, an OS of each VM with a crash file path to the crash dump disk associated with the VM, and configuring, by the hypervisor, each VM of the plurality of VMs to generate crash dump files for the VM upon a crash event of the VM and store, via the crash file path, the generated crash dump files to the crash dump disk associated with the VM. | 06-06-2013 |
20130011064 | DATA COMPRESSION OF IMAGES USING A SHARED DICTIONARY - A method and system for data compression of images using a shared dictionary are described herein. According to one embodiment, a server identifies a current images that is part of a stream of images generated by an application hosted by the server. The stream of images includes images previously transmitted to the client. For each segment of pixels in the current image, the server searches a dictionary containing data for the stream of images. If the dictionary includes data corresponding to the segment of pixels in the current image, the server determines metadata for the segment of pixels in the current image using the corresponding data from the dictionary, and transmits the metadata to the client without transmitting the segment of pixels from the current image. | 01-10-2013 |
20120265920 | STORAGE BLOCK DEALLOCATION IN VIRTUAL ENVIRONMENTS - A system and method deallocates data blocks in virtual environments with high efficiency. A computer system hosting a virtual machine includes an I/O device driver in the guest operating system of the virtual machine. The I/O device driver intercepts an operation performed by the guest operating system that causes a data block to be deallocated in the virtual machine. The I/O device driver informs a hypervisor of the computer system that the data block is to be deallocated. The hypervisor then instructs the data storage to deallocate the data block for reuse. | 10-18-2012 |
20120216299 | Server-Side Security Mechanism for Untrusted Clients Using Directory Hiding - A security mechanism provided by a server protects files in data storage from untrusted clients. In one embodiment, the server generates a filename in response to a request from a client for creating a filename. The filename is associated with a file to be stored in the data storage managed by the server. The server manages a directory that contains the filename, and hides the directory contents from the client. The client is granted access to the file when the client provides the filename associated with the file. | 08-23-2012 |
20120216188 | EXPOSING A DMA ENGINE TO GUESTS IN A VIRTUAL MACHINE SYSTEM - A method and system for copying data within a guest using a direct memory access (DMA) engine. A computer system hosts a hypervisor and a guest. The hypervisor detects an inquiry of the guest about a DMA engine. In response to the inquiry, the hypervisor indicates to the guest that a DMA engine is available. The hypervisor then receives a DMA request from the guest, the DMA request indicating a source address and a target address for copying data. Both the source address and the target address are within an address space allocated to the guest. Based on one or more data transfer policies, the hypervisor determines whether to direct the DMA engine to copy the data for the guest. | 08-23-2012 |
20120216007 | PAGE PROTECTION ORDERING FOR LOCKLESS WRITE TRACKING - A method and system for tracking write access in a memory. The memory is partitioned into pages and each page is pointed to by a pointer. Upon receiving a request from a requester, a computer system stores a copy of a file that contains pointers to modified pages in the memory. The computer system then clears the file, and protects the pages in the memory from write access after clearing of the file. The stored copy of the file is sent to the requester. | 08-23-2012 |
20120203947 | ON-DEMAND INTERRUPT VECTOR ALLOCATION BASED ON ACTIVITY DETECTION - A method and system for dynamically allocating interrupt vectors on demand. A computer system measures a rate of activities associated with an event. Based on the rate of activities, the computer system determines whether to allocate a dedicated interrupt vector to the event. The rate of activities can be an interrupt request (IRQ) rate. | 08-09-2012 |
20120192177 | FEATURE DRIVEN BACKEND SWITCHING - A method and system for switching backend devices in a virtual machine system based on features of the backend devices. In one embodiment, a computer system includes at least a first device and a second device that function as a backend device. The first device is currently used by a guest of the computer system as the backend device. A hypervisor of the computer system receives an indication from the guest to use a feature of the backend device. The hypervisor determines whether the use of the feature of the backend device triggers a switching condition. In response to a determination that the switching condition is triggered, the guest is switched to use the second device as the backend device. The switching operation can be transparent to the guest. | 07-26-2012 |
20120159473 | EARLY NETWORK NOTIFICATION IN LIVE MIGRATION - A method and system for sending early notification when a guest migrates in a virtual machine system. A guest hosted by a computer system is migrating from a source hypervisor to a target hypervisor. During the migration, the source hypervisor stops transmission of outbound packets from the guest. A signal is sent to the target hypervisor after stopping the transmission and before completing migration of the guest. The signal requests that a notification containing network addresses of the guest be sent to network devices associated with the target hypervisor. | 06-21-2012 |
20120159469 | MECHANISM FOR DOWNLOADING GUEST SOFTWARE UPDATES BY A HYPERVISOR - A method and system for providing guest software updates to a host computer system. The hypervisor in the host computer system downloads an update to guest software that runs on a virtual machine associated with the hypervisor. The hypervisor determines the content of the update to be sent to the virtual machine. The hypervisor then sends the content of the update to the virtual machine via a dedicated channel between the hypervisor and the virtual machine. Thus, a guest without external networking or even no network stack can be updated. | 06-21-2012 |
20120158887 | COALESCING NETWORK NOTIFICATIONS FOR LIVE MIGRATION - A method and system for managing network notifications when a guest migrates in a virtual machine system. A guest hosted by a computer system migrates from a source hypervisor to a target hypervisor in the computer system. The computer system packetizes multiple network addresses of the guest into a network packet. The target hypervisor then transmits the network packet to network devices coupled to the computer system. | 06-21-2012 |
20120151115 | Automatic Alignment of Write Requests in Virtualization Systems - A method and system for automatically aligning the location of a write request of a guest operating system (OS) to a storage boundary of a computer system that hosts the guest OS. The computer system detects an indication of misalignment between a partition of the guest OS and a storage boundary in data storage. In response to the indication, the computer system shifts the partition by a number of bytes to align a starting location of the partition to the storage boundary, and shift locations of subsequent data access requests of the guest OS by the same number of bytes. | 06-14-2012 |
20120110370 | HIGHLY AVAILABLE FILE SYSTEM IN A DIRECTLY ATTACHED STORAGE - A method and system to provide a highly available file system in a directly attached storage (DAS). The storage is directly attached to a computer system that has an inactive operating system. A hardware module in the computer system receives a network command to access the file system. The hardware module determines a physical location of data blocks to be accessed in the storage. According to the network command, the hardware module accesses the data blocks in the storage. | 05-03-2012 |
20120110313 | ENHANCED REBOOT COMMAND - A method and system allows a computer system to perform a network reboot in response to an enhanced reboot command. The computer system receives a command to load an operating system and interprets the command to determine whether a physical machine or a virtual machine is to be rebooted. In response to a determination that the command indicates the use of a network option, the computer system loads the operating system from a networked server, and perform rebooting according to the interpreted command with the use of the operating system. | 05-03-2012 |
20120110181 | NETWORK ADDRESS RETRIEVAL FOR LIVE MIGRATION OF A GUEST IN A VIRTUAL MACHINE SYSTEM - A method and system for managing network addresses of a guest during live migration in a virtual machine system. A computer system hosts a guest that is to migrate from a source hypervisor in the computer system to a target hypervisor during operation of the computer system. In response to the indication, the source hypervisor retrieves an address list of the guest from a network device, where the address list identifies one or more network addresses of the guest in one or more networks. The source hypervisor then forwards the address list to the target hypervisor, which notifies the one or more networks of the migration of the guest. | 05-03-2012 |
20120102252 | HOTPLUG REMOVAL OF A DEVICE IN A VIRTUAL MACHINE SYSTEM - A method and system for hotplug removing a device in a virtual machine system. A computer system hosts a virtual machine that runs a guest. A hotplug manager in the computer system sends a request to the guest for hotplug removal of a device associated with the guest. The hotplug manager detects an indication of reboot of the guest, and completes the hotplug removal in response to detection of the reboot. | 04-26-2012 |
20120089783 | OPCODE LENGTH CACHING - A computer system caches variable-length instructions in a data structure. The computer system locates a first copy of an instruction in the cached data structure using a current value of the instruction pointer as a key. The computer system determines a predictive length of the instruction, and reads a portion of the instruction from an instruction memory as a second copy. The second copy has the predictive length. Based on the comparison of the first copy with the second copy, the computer system determines whether or not to read the rest of the instruction from the instruction memory, and then interprets the instruction for use by the computer system. | 04-12-2012 |
20120084413 | Mechanism for Installing Monitoring Utilities Using Universal Performance Monitor - A universal performance monitor includes an abstraction layer for managing multiple disparate monitoring tools on one or more computing devices. During runtime of the universal performance monitor on a first computing device, the universal performance monitor establishes a secure channel between the first computing device and a second computing device. The universal performance monitor queries the second computing device via the secure channel to determine whether the second computing device includes a specified monitoring tool. Upon determining that the second computing device does not include the specified monitoring tool, the universal performance monitor causes the second computing device to obtain the specified monitoring tool from a designated location, to install the specified monitoring tool with a particular configuration, to execute the specified monitoring tool and to redirect an output of the specified monitoring tool to the first computing device via the first secure channel. | 04-05-2012 |
20120072906 | Memory Overcommit by Using an Emulated IOMMU in a Computer System without a Host IOMMU - A method and system for managing direct memory access (DMA) in a computer system without a host input/output memory management unit (IOMMU). The computer system hosts virtual machines and allows memory overcommit. The computer receives, from a guest operating system that runs on a virtual machine, a request for mapping a guest address to a bus address. The computer translates the guest address to a host address and pins a memory page containing the host address to keep the memory page in host memory. The host address is then returned to the guest operating system to allow a device to use the host address as the bus address for direct memory access (DMA) to a buffer managed by the guest operating system. | 03-22-2012 |
20120072619 | Memory Overcommit by Using an Emulated IOMMU in a Computer System with a Host IOMMU - A method and system for managing direct memory access (DMA) in a computer system that hosts virtual machines and allows memory overcommit. The computer receives an indication that a bus address is to be used by a device to perform DMA to a buffer. In response to the indication, the computer determines a host device identifier for the device, and pins a memory page addressed by a host address that is associated with the bus address and a guest address. The computer also records, in a host I/O memory management unit (IOMMU), a mapping of the bus address and the host device identifier to the host address. After the device completes the DMA, the computer removes the mapping from the host IOMMU to prevent further direct access to the host address. | 03-22-2012 |
20110302284 | Automatic Detection of a Network Interface on a Host for Accessing Networked Storage - A host computer is coupled to data storage and has access to the data storage. The host computer has multiple network interfaces, which are associated with multiple logical networks. The host computer detects a network address of the data storage, and identifies one of the network interfaces that is associated with a best-performing logical network for accessing the data storage. The host computer then receives a routing configuration that routes traffic to the data storage via the identified network interface. | 12-08-2011 |
20110252271 | Monitoring of Highly Available Virtual Machines - A host controller is coupled to host computers that host virtual machines. At least one of the virtual machines is a highly available virtual machine. The host controller detects a change in system resources and identifies a highly available virtual machine that failed before the change occurs. The host controller re-runs the highly available virtual machine upon detection of the change of the system resources. | 10-13-2011 |
20110213828 | PERSISTING GRAPHICS STRUCTURES ACROSS CLIENT CHANGE IN GRAPHICS REMOTING ENVIRONMENT - A server receives one or more hashes from a client, where each of the hashes represents a graphics structure maintained by the client. A first hash is generated from a graphics structure according to a hash algorithm, where the graphics structure is generated from an application hosted within the server, where the graphics structure represents a display output of the application. It is determined whether there is an existing hash from the one or more hashes received from the client that matches the first hash. The first hash is transmitted to the client without sending the graphics structure if there is an existing hash matching the first hash. The first hash is used by the client to identify a graphics structure maintained by the client for rendering a display of the client. | 09-01-2011 |
20110210972 | PERSISTING GRAPHICS STRUCTURES ACROSS RESOLUTION CHANGE IN GRAPHICS REMOTING ENVIRONMENT - A local system receives a graphics structure generated from an application hosted within the local system, where the application is accessed by a remote system. The graphics structure represents a display output from the application, where the graphics structure is generated in response to a change of display characteristics of the local system. A hash generator generates a first hash from the graphics structure according to a hash algorithm. It is determining whether there is an existing hash maintained by the local system that matches the first hash. The local system transmits the first hash to the remote system without sending the graphics structure if there is an existing hash matching the first hash. The first hash is used by the remote system to identify a graphics structure maintained by the remote system for rendering a display of the remote system. | 09-01-2011 |
20110113206 | METHOD FOR OBTAINING A SNAPSHOT IMAGE OF A DISK SHARED BY MULTIPLE VIRTUAL MACHINES - Methods for obtaining a snapshot of a shared virtual machine (VM) image are described herein. In response to a request for obtaining a snapshot of a first VM image stored in a storage disk accessed and shared by a plurality of VMs, a virtualization manager selects a VM from the plurality of VMs hosted within one or more hosts. First needs to notify others to prepare for the snapshot by pausing, etc. A process associated with the selected VM is configured to capture a snapshot from the first VM image, generating a second VM image to be stored in storage disk. Thereafter, the virtualization manager notifies the plurality of VMs to utilize the second image after the second VM image has been generated. | 05-12-2011 |
20110055824 | AUTOMATIC REMOTE INSTALLATION OF A VIRTUALIZATION HOST - Techniques for automatic remote installation of a virtualization host are described herein. A logical network is configured at a management server to be associated with a network interface card (NIC) of a remote host, where the logical network is identified by a network identifier. The management server installs a software bridge within the remote host, where the software bridge is associated with a bridge identifier that is identical to the network identifier. The software bridge is configured to allow a plurality of virtual machines (VMs) hosted by the remote host to access the logical network via the NIC of the remote host. | 03-03-2011 |
20110055375 | METHODS FOR MONITORING OPERATING STATUS OF REMOTE HOSTS - Methods for monitoring operating statuses of hosts are described herein. Operating statuses for one or more hosts are monitored by a management server over a network using a network management protocol. In response to a failure to obtain an operating status of a first host over the network using the network management protocol, the management server instructs a second host to access a predetermined storage location to obtain the operating status of the first host. The predetermined storage location is specifically allocated for the first host from a storage space shared by all the hosts. Thereafter, the management server is configured to determine an operating condition of the first host based on the operating status obtained via the second host. | 03-03-2011 |
20110055364 | AUTOMATIC NETWORK DISCOVERY FOR HOST CONFIGURATIONS - Techniques for automatic network discovery for host configurations are described herein. A management server may receive a first message from a first host entering a network, where the first message includes a network identifier (ID) identifying a logical network coupled to a network interface card (NIC) of the first host. In response to the first message, the management server may automatically configure the NIC of the first host using one or more network configuration parameters of a second host based on the first message, where the second host has been coupled to the logical network prior to the first host. | 03-03-2011 |
20110004872 | Automated Installation of Operating Systems on Virtual Machines Using Checksums of Screenshots - A method and a system automatically install a guest operating system on a virtual machine run by a host. In one embodiment, the host includes an installation manager that computes a checksum of a region of an input request image. The installation manager compares the checksum with a stored checksum, and, based on a comparison result of the checksum, automatically determines an input to the input request. | 01-06-2011 |
20100332989 | METHODS FOR PRESENTING A MODAL DIALOG BOX USING AN INVISIBLE PANEL UNDERNEATH - Techniques for presenting a modal dialog box in a graphical user interface are described herein. According to one embodiment, a semi-transparent panel is displayed superimposed on a graphical user interface (GUI) page in response to a first user interaction with the GUI page. The GUI page provides a user interface for managing a virtualization system. A dialog box is then displayed on top of the semi-transparent panel, where the dialog box is to receive an input from the user. An alert is generated in response to a second user interaction with an area of the semi-transparent panel other than the dialog box, where the alert indicates that the second user interaction is invalid. Other methods and apparatuses are also described. | 12-30-2010 |
20100332658 | SELECTING A HOST FROM A HOST CLUSTER TO RUN A VIRTUAL MACHINE - A host controller selects a host from a host cluster to run a virtual machine. In one embodiment, a host controller receives a request to run a virtual machine. The virtual machine may be a newly added virtual machine, or an existing virtual machine that needs to migrate from a currently active host to another host. The host controller selects a host from the host cluster based on current central processing unit (CPU) consumption and expected load to be incurred by the virtual machine. The expected load may be estimated from the number of cores to be used by the virtual machine. The host controller then assigns the virtual machine to run on the host. | 12-30-2010 |
20100332657 | SELECTING A HOST FROM A HOST CLUSTER FOR LIVE MIGRATION OF A VIRTUAL MACHINE - A host controller migrates live virtual machines from one host to another host to balance the load in the host cluster. In one embodiment, the host controller identifies an overloaded host from the host cluster. The host controller selects a virtual machine from the existing virtual machines that run on the overloaded host based on a percentage value associated with the virtual machine. The percentage value represents CPU usage incurred by the virtual machine on the host. In one embodiment, the selected virtual machine is one that incurs the least amount of load on the host. The host controller then selects a target host from the host cluster as a destination for migrating the selected virtual machine. | 12-30-2010 |
20100332643 | Pre-Scheduling the Timelines of Virtual Machines - A host controller pre-schedules the timelines of virtual machines that run on a host cluster. In one embodiment, the host controller uses a plurality of timers to determine the start times of the virtual machines. The host controller starts the virtual machines on the host cluster over a time span according to the configurable timelines recorded in the timers. The start times of the virtual machines can be spread over the time span to prevent a load spike at any particular time instance. The virtual machines are up and running on the hosts by a pre-determined time to provide virtual desktops to remote clients. The timers may be configured as a calendar. | 12-30-2010 |
20100325381 | AUTOMATICALLY ADJUSTING MEMORY OF A VM ON A POWER CLIENT - Techniques for launching a VM with memory automatically adjusted based on a memory configuration of a client hosting the VM are described herein. According to one embodiment, a control server dynamically determines an amount of memory in view of a memory configuration of a client at the point in time, in response to a request for launching a VM for the client over a network. The amount of memory is allocated to be associated with the VM. Thereafter, the control server launches the VM for the client having the determined amount of memory allocated to the VM, where the VM is to be hosted by the client. Other methods and apparatuses are also described. | 12-23-2010 |
20100325284 | METHOD FOR AUTOMATICALLY PROVIDING A CLIENT WITH ACCESS TO AN ASSOCIATED VIRTUAL MACHINE - Techniques for automatically providing a client with access to a virtual machine associated with the client are described herein. According to one embodiment, a message is received by a controller from a client over a network indicating that the client is starting up. In response, the controller causes a connection to be automatically established between the client and a virtual machine (VM) associated with the client once the client has started up. The associated VM may be one of a predetermined VM, a member of a group of VMs that are associated with the client, and a VM selected from a pool of VMs. As a result, a user of the client can instantly access contents provided by the associated VM without having to manually log onto a Web portal in order to select the associated VM to be launched. Other methods and apparatuses are also described. | 12-23-2010 |
20100325279 | AUTOMATIC VIRTUAL MACHINE MIGRATION IN MIXED SBC/CBC ENVIRONMENT - Techniques for automatic virtual machine migration in a mixed SBC/CBC environment are described herein. According to one embodiment, a connection is established between a client and a virtual machine (VM) hosted by a remote node in response to a request for accessing the VM. A control server determines whether the client has sufficient processing resources to host the VM. The control server causes the VM to be migrated from the remote node to the client if the client has sufficient processing resources to host the VM. Other methods and apparatuses are also described. | 12-23-2010 |
20100325278 | METHODS FOR AUTOMATICALLY LAUNCHING A VIRTUAL MACHINE ASSOCIATED WITH A CLIENT DURING STARTUP - Techniques for automatically launching a virtual machine associated with a client during startup are described herein. According to one embodiment, a virtual machine (VM) associated with a client is identified by a controller, in response to a message received by the controller from a client over a network indicating that the client is starting up. The VM may be one of a predetermined VM, a member of a group of VMs that are associated with the client, and a VM selected from a pool of VMs. The controller causes the associated VM to be launched automatically over the network as a part of a startup process of the client without user intervention. Other methods and apparatuses are also described. | 12-23-2010 |
20100325197 | METHOD FOR IMPROVING BOOT TIME OF A CLIENT HAVING A VIRTUALIZED OPERATING ENVIRONMENT - Techniques for improving boot time of a client having a virtualized operating environment are described herein. According to one embodiment, a controller identifies a virtual machine (VM) associated with a client in response to a message received by the controller from a client over a network indicating that the client is starting up. The controller automatically launches the associated VM at a remote node. The associated VM is being started up at the remote node while the client is being started up at the client concurrently, such that a starting time for the client and the associated VM as a whole is reduced. Other methods and apparatuses are also described. | 12-23-2010 |
20100299495 | METHOD TO SUPPORT SPARSE VOLUMES OR THIN PROVISIONED VOLUMES IN REAL TIME - A storage pool is shared by multiple host computers in a cluster that runs virtual machines. In one embodiment, one of the host computers in the cluster is designated to include a storage pool manager. Each host computer in the cluster monitors its storage consumption and notifies the storage pool manager of its storage consumption. Thus, storage space in the storage pool can be dynamically allocated on demand. | 11-25-2010 |