Inventors list

Assignees list

Classification tree browser

Top 100 Inventors

Top 100 Assignees


VMWARE, INC.

VMWARE, INC. Patent applications
Patent application numberTitlePublished
20130125122SYSTEM AND METHOD FOR USING LOCAL STORAGE TO EMULATE CENTRALIZED STORAGE - Methods and systems for utilizing local storage of host computers to emulate a centralized storage system comprise receiving a write operation from a virtual machine running on a first host computer, wherein the write operation corresponds to a disk image that is locally stored in a first host computer. The disk image and a second disk image is updated in accordance with the write operation, wherein (i) the second disk image is locally stored on a second host computer that is networked to the first host computer, (ii) the second disk image serves as a back-up to the disk image, and (ii) the second host computer is configured to support the running of other virtual machines that access other disks images that (a) are locally stored on the second host computer, and (b) are further backed-up on at least a third host computer.05-16-2013
20130125114COMPUTATIONAL ASSET IDENTIFICATION WITHOUT PREDETERMINED IDENTIFIERS - Embodiments allow management software applications to distinguish computational assets without the use of static, predetermined identifiers that are susceptible to duplication along with computational assets. Managers and computational assets are associated with authenticator values. Additionally, a manager and computational asset determine (e.g., negotiate) an expected nonce (number used once) to be provided by either party when requesting a transaction. Upon receiving a transaction request associated with an authenticator value and a transaction nonce, the sender's knowledge of the expected nonce is proven when the nonce associated with the request matches the expected nonce, and disproven otherwise. When such knowledge is proven, the manager treats the computational asset as the one originally associated with the computational asset authenticator value and negotiates a new nonce. When such knowledge is disproven, the manager treats the computational asset as a duplicate of the one that was originally associated with the computational asset authenticator value.05-16-2013
20130124714VISUALIZATION OF COMBINED PERFORMANCE METRICS - Embodiments provide a visualization of combined performance metrics representing the operation of a plurality of computing devices. Sets of host performance metrics corresponding to a plurality of host computing devices are combined to create combined performance metrics, each of which is associated with a performance metric type. The combined performance metrics are plotted in a chart that includes a plurality of axes, each associated with a performance metric type. In addition, a baseline value may be plotted on one or more of the axes. A portion, or the entirety, of the chart may be graphically distinguished when a combined performance metric violates a threshold value.05-16-2013
20130124559METHOD AND SYSTEM FOR INSERTING DATA RECORDS INTO FILES - Methods and system for adding a data record to a file comprise maintaining a data structure to track locations of data records within the file, wherein each entry in the data structure is a Bloom filter that corresponds to a different portion of the file that includes a plurality of data records. When an instruction to write data to the file is received, a data record is generated to append to the file, wherein the data record comprises a randomized unique id and the data from the received instruction. A Bloom filter bit pattern is extracted from the randomized unique id and bits in a current Bloom filter entry of the data structure are set, wherein the set bits correspond to the same bit positions as the Bloom filter bit pattern. The data record is thus able to be added to the file.05-16-2013
20130117742SHARING WORK ENVIRONMENT INFORMATION SOURCES WITH PERSONAL ENVIRONMENT APPLICATIONS - One or more embodiments of the invention enable an application running in a personal environment of a mobile device to access an information source registered with a guest operating system (OS) of a work environment. The personal environment is a host OS of the mobile device and the work environment is running in a virtual machine supported by a hypervisor running within the personal environment. A hypervisor-aware service in the virtual machine provides registration information for the information source to the hypervisor. The hypervisor updates the registration information to include a reference to the hypervisor and transmits the updated registration information to the host OS which registers the information source. Upon a request by the application for information from the information source, the hypervisor-aware service receives a request from the hypervisor to access the information source and provides access to the information source for the application through the hypervisor.05-09-2013
20130117741OPTIMIZATION FRAMEWORK FOR REMOTELY EXECUTING A MAINTENANCE OPERATION ON A VIRTUAL MACHINE - Embodiments provide a system for executing a maintenance operation on a virtual machine (VM). The system includes a host computing device including a first VM and a second VM, a maintenance application installed within the first VM, and an optimization framework providing an interface to the maintenance application. The system also includes an optimization server coupled to the maintenance application through the optimization framework. The optimization server is configured to select a maintenance operation to execute on the second VM and command the maintenance application to execute the maintenance operation on the second VM.05-09-2013
20130117424Computer Device and Method of Providing Configuration Files in a Computer Device - A computer device (05-09-2013
20130103658TIME SERIES DATA MAPPING INTO A KEY-VALUE DATABASE - A method for storing time series data in a key-value database includes receiving time series data relating to the occurrence of an event. An addressing scheme that defines attributes for inclusion in keys for the event is analyzed. The attributes include time granularity attributes of different sizes. The method generates a key corresponding to the time series data based on the analyzing of the addressing scheme including attributes specified in the addressing scheme that are related to the event and one of the attributes represents one of the plurality of time granularity attributes. The method further issues a command to the key-value database to store a record of the occurrence of the event as a value in the key-value database where stored values in the key-value database corresponding keys may be used to satisfy queries relating to the event over a range of time.04-25-2013
20130100816NETWORK CONGESTION MANAGEMENT BASED ON COMMUNICATION DELAY - Embodiments determine communication delay along a network path between a source and a destination in a network. A target injection rate is calculated based on the determined delay and a predetermined maximum queuing delay threshold. Data packets are transmitted along the network path using an inter-packet delay that is based on the target injection rate.04-25-2013
20130097464SOFTWARE APPLICATION PLACEMENT BASED ON FAILURE CORRELATION - Embodiments associate software applications with computing resources based on failure correlation information and an anti-affinity rule. An anti-affinity rule indicates that a first software application is to be separated from a second software application during execution. A management device determines failure correlations between a first computing resource that is associated with the first software application and a plurality of computing resources other than the first computing resource. The management device selects the computing resource that corresponds to the lowest failure correlation and associates the second software application with the selected computing resource based on the anti-affinity rule.04-18-2013
20130097463METHOD AND APPARATUS FOR ROOT CAUSE AND CRITICAL PATTERN PREDICTION USING VIRTUAL DIRECTED GRAPHS - An approach to root cause determination in a complex systems based on monitoring and event data is disclosed. It includes a historical analysis of events with their probabilistic correlations. Applying information measures between the random variables which embody those events one can detect origins of problems and generate real-time recommendations for their locations in a hierarchical system. Estimation of system bottlenecks, as well as the risk of “black swan”-type events are also computed. The processes are based on a statistical processing of a virtual directed graph produced from historical events.04-18-2013
20130097426WATERMARKING AND SCALABILITY TECHNIQUES FOR A VIRTUAL DESKTOP PLANNING TOOL - A method for measuring performance of virtual desktop services offered by a server including a processor is described. A first encoded watermark is embedded into user interface display generated by a virtual desktop when initiating an operation. The first encoded watermark includes pixels identifying the operation and indicating its initiation. A second encoded watermark is embedded into the user interface upon completion of the operation indicating completion of the operation. An action performance time is then computed and stored in a memory. Multiple performance times may be compiled from multiple operations of multiple virtual desktops to assess the performance of the system as a whole.04-18-2013
20130097398GENERATING AND USING CHECKPOINTS IN A VIRTUAL COMPUTER SYSTEM - To generate a checkpoint for a virtual machine (VM), first, while the VM is still running, a copy-on-write (COW) disk file is created pointing to a parent disk file that the VM is using. Next, the VM is stopped, the VM's memory is marked COW, the device state of the VM is saved to memory, the VM is switched to use the COW disk file, and the VM begins running again for substantially the remainder of the checkpoint generation. Next, the device state that was stored in memory and the unmodified VM memory pages are saved to a checkpoint file. Also, a copy may be made of the parent disk file for retention as part of the checkpoint, or the original parent disk file may be retained as part of the checkpoint. If a copy of the parent disk file was made, then the COW disk file may be committed to the original parent disk file.04-18-2013
20130097359SYSTEM AND METHOD TO ENHANCE MEMORY PROTECTION FOR PROGRAMS IN A VIRTUAL MACHINE ENVIRONMENT - In a computer system supporting execution of virtualization software and at least one instance of virtual system hardware, an interface is provided into the virtualization software to allow a program to directly define the access characteristics of its program data stored in physical memory. The technique includes providing data identifying memory pages and their access characteristics to the virtualization software which then derives the memory access characteristics from the specified data. Optionally, the program may also specify a pre-defined function to be performed upon the occurrence of a fault associated with access to an identified memory page. In this manner, programs operating both internal and external to the virtualization software can protect his memory pages, without intermediation by the operating system software.04-18-2013
20130097319SOFTWARE APPLICATION PLACEMENT USING COMPUTING RESOURCE CONTAINERS - Embodiments associate software applications with computing resource containers based on placement rules. A placement rule indicates that a first software application is to be co-located with a second software application during execution of the first and second software applications, or that the first software application is to be separated from the second software application during execution of the first and second software applications. A target computing resource container is selected based on the placement rule and a computing resource container that is associated with the first software application. The second software application is associated with the target computing resource container, and the placement rule may be provided to the target computing resource container.04-18-2013
20130097125AUTOMATED ANALYSIS OF UNSTRUCTURED DATA - The current application is directed to automated methods and systems for processing and analyzing unstructured data. The methods and systems of the current application identify patterns and determine characteristics of, and interrelationships between, events parsed from the unstructured data without necessarily using user-provided or expert-provided contextual knowledge. In one implementation, the unstructured data is parsed into attributed-associated events, reduced by eliminating attributes of low-information content, and coalesced into nodes that are incorporated into one or more graphs, within which patterns are identified and characteristics and interrelationships determined.04-18-2013
20130097120Policy-Based Checkpointing Fault Tolerance Across Remote Virtual Machines - Embodiments include a checkpointing fault tolerance network architecture enables a first computer system to be remotely located from a second computer system. An intermediary computer system is situated between the first computer system and the second computer system to manage the transmission of checkpoint information from the first computer system to the second computer system in an efficient manner. The intermediary computer system responds to requests from the second computer system for updated data corresponding to memory pages selected by the second computer system, or memory pages identified through application of policy information defined by the second computer system.04-18-2013
20130091499METHOD AND APPARATUS FOR COMPARING CONFIGURATION AND TOPOLOGY OF VIRTUALIZED DATACENTER INVENTORIES - Disclosed herein is a method of verifying that a reconstructed inventory of a virtualized computer system has been accurately reproduced from an original inventory of a virtualized computer system. A first snapshot and a second snapshot are received, where the first snapshot is a snapshot of the original inventory and the second snapshot is a snapshot of the reconstructed inventory. The first snapshot and the second snapshot are then analyzed to determine that hierarchical relationships, roles and permissions, configuration settings, and/or custom definitions of items in the original inventory match hierarchical relationships of corresponding items in the reconstructed inventory.04-11-2013
20130067277Method and System for Enabling Checkpointing Fault Tolerance Across Remote Virtual Machines - A checkpointing fault tolerance network architecture enables a backup computer system to be remotely located from a primary computer system. An intermediary computer system is situated between the primary computer system and the backup computer system to manage the transmission of checkpoint information to the backup VM in an efficient manner. The intermediary computer system is networked to the primary VM through a first connection and is networked to the backup VM through a second connection. The intermediary computer system identifies updated data corresponding to memory pages that have been less frequently modified by the primary VM and transmits such updated data to the backup VM through the first connection. In such manner, the intermediary computer system holds back updated data corresponding to more frequently modified memory pages, since such memory pages may be more likely to be updated again in the future.03-14-2013
20130067135SYSTEM AND METHOD FOR IMPROVING MEMORY LOCALITY OF VIRTUAL MACHINES - A system and related method of operation for migrating the memory of a virtual machine from one NUMA node to another. Once the VM is migrated to a new node, migration of memory pages is performed while giving priority to the most utilized pages, so that access to these pages becomes local as soon as possible. Various heuristics are described to enable different implementations for different situations or scenarios.03-14-2013
20130060947VIRTUAL MACHINE MIGRATION - A source virtual machine (VM) hosted on a source server is migrated to a destination VM on a destination server without first powering down the source VM. After optional pre-copying of the source VM's memory to the destination VM, the source VM is suspended and its non-memory state is transferred to the destination VM; the destination VM is then resumed from the transferred state. The source VM memory is either paged into the destination VM on demand, or is transferred asynchronously by pre-copying and write-protecting the source VM memory, and then later transferring only the modified pages after the destination VM is resumed. The source and destination servers preferably share common storage, in which the source VM's virtual disk is stored; this avoids the need to transfer the virtual disk contents.03-07-2013
20130060919PROVISIONING OF COMPUTER SYSTEMS USING VIRTUAL MACHINES - A provisioning server automatically configures a virtual machine (VM) according to user specifications and then deploys the VM on a physical host. The user may either choose from a list of pre-configured, ready-to-deploy VMs, or he may select which hardware, operating system and application(s) he would like the VM to have. The provisioning server then configures the VM accordingly, if the desired configuration is available, or it applies heuristics to configure a VM that best matches the user's request if it isn't. The invention also includes mechanisms for monitoring the status of VMs and hosts, for migrating VMs between hosts, and for creating a network of VMs.03-07-2013
20130055249VIRTUAL MACHINE PROVISIONING IN OBJECT STORAGE SYSTEM - The storage system exports logical storage volumes that are provisioned as storage objects. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. When a virtual machine is provisioned, logical storage volumes include a logical metadata storage volume and logical data storage volumes. The logical metadata storage volume stores metadata for the virtual machine such as configuration and log files, swap file, and disk descriptor files. Each disk descriptor file is provided for one logical data storage volume and stores metadata about the logical data storage volume such as size and unique identifying data.02-28-2013
20130055248METHOD OF BALANCING WORKLOADS IN OBJECT STORAGE SYSTEM - The storage system exports logical storage volumes that are provisioned as storage objects. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. When traffic through a particular protocol endpoint is busy, the logical storage volume undergoes a rebind process pursuant to which the logical storage volume is bound to a new protocol endpoint, and the binding to the old protocol endpoint is removed upon completion of all pending input-output commands issued through the old protocol endpoint.02-28-2013
20130055247MANAGEMENT OF SOFTWARE UPDATES IN A DATACENTER - An approach to managing software components in a datacenter having virtualized components includes maintaining a suitable data construct for representing the virtualized elements. In embodiments, virtualized elements include knowledge relating to instantiations of virtual machines. Management of software components includes traversing a data representation of the datacenter, and assessing the compatibility of the software component with components in the datacenter that relate to the target of the software component.02-28-2013
20130055244EXTENSIBLE INFRASTRUCTURE FOR REPRESENTING NETWORKS INCLUDING VIRTUAL MACHINES - Embodiments provide a virtual machine infrastructure including an application model and a user interface for displaying data associated with a plurality of nodes. The user interface is arranged in a hierarchy of views. An application is added to the infrastructure by adding an edge category and a view extension to the infrastructure. The user interface simultaneously displays the added view extension together with a view extension provided by another application.02-28-2013
20130055240VIRTUAL PORT COMMAND PROCESSING DURING MIGRATION OF VIRTUAL MACHINE - In one embodiment, a method includes upon receipt from a first host of a command to pause a virtual port (Vport) associated with a first physical port establishing a connection with the first host, changing a current state of the Vport from an active state to a paused state. The changing of the current state of the Vport to the paused state does not tear down a current session between the Vport and a set of storage disks. The method further includes upon receipt from a second host of a command to resume the Vport at a second physical port establishing a connection with the second host, changing the current state of the Vport from the paused state to the active state and associating the Vport with the second physical port.02-28-2013
20130055155INTERACTIVE AND VISUAL PLANNING TOOL FOR MANAGING INSTALLS AND UPGRADES - A method for generating an upgrade plan for assets included in a virtualized computing environment includes receiving a selection of one or more target assets to receive updates. The method further includes receiving a selection of one or more upgrade packages, determining a first set of target assets that is capable of being upgraded with at least one selected upgrade package, determining a second set of target assets that depend on the first set of target assets, and generating an upgrade plan for the first set of target assets and the second set of target assets.02-28-2013
20130055092USER INTERFACE FOR NETWORKS INCLUDING VIRTUAL MACHINES - A user interface for a virtual machine infrastructure enables a user to navigate a graph in a tabular format. The user interface simultaneously displays data associated with a selected node from a plurality of applications via view extensions provided by the applications. The user interface shows data associated with a node on which a navigation panel is focused, an anchor node, together with related nodes and edge categories including the edges connecting the related nodes to the anchor node. The user can peek at the data associated with a related node by selecting the node in the user interface and change the displayed data without changing the focus of the navigation panel. The user can also change the focus of the navigation panel to a related node via data displayed in a data panel or related nodes identified in the navigation panel.02-28-2013
20130054932OBJECT STORAGE SYSTEM - The storage system exports logical storage volumes that are provisioned as storage objects. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. Logical storage volumes are created from a logical storage container having an address space that maps to storage locations of the physical data storage units. Each of the logical storage volumes so created has an address space that maps to the address space of the logical storage container. A logical storage container may span more than one storage system and logical storage volumes of different customers can be provisioned from the same logical storage container with appropriate security settings.02-28-2013
20130054922COOPERATIVE MEMORY RESOURCE MANAGEMENT FOR VIRTUALIZED COMPUTING DEVICES - A computing device employs a cooperative memory management technique to dynamically balance memory resources between host and guest systems running therein. According to this cooperative memory management technique, memory that is allocated to the guest system is dynamically adjusted up and down according to a fairness policy that takes into account various factors including the relative amount of readily freeable memory resources in the host and guest systems and the relative amount of memory allocated to hidden applications in the host and guest systems.02-28-2013
20130054910VIRTUAL MACHINE SNAPSHOTTING IN OBJECT STORAGE SYSTEM - The storage system exports logical storage volumes that are provisioned as storage objects within logical storage containers. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. A snapshot profile can be separately defined for each of these logical storage volumes, even for those that are within the same storage container. The snapshot profile for a logical storage volume defines whether or not snapshot is enabled for that logical storage volume, the frequency of the snapshot, and the number of snapshots to be retained.02-28-2013
20130054895COOPERATIVE MEMORY RESOURCE MANAGEMENT FOR VIRTUALIZED COMPUTING DEVICES - A computing device employs a cooperative memory management technique to dynamically balance memory resources between host and guest systems running therein. According to this cooperative memory management technique, memory that is allocated to the guest system is dynamically adjusted up and down according to a fairness policy that takes into account various factors including the relative amount of readily freeable memory resources in the host and guest systems and the relative amount of memory allocated to hidden applications in the host and guest systems.02-28-2013
20130054890MANAGEMENT SYSTEM AND METHODS FOR OBJECT STORAGE SYSTEM - The storage system exports logical storage volumes that are provisioned as storage objects. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. To facilitate creation and management of logical storage volumes, special application programming interfaces (APIs) have been developed. The special APIs include commands to create a logical storage volume, bind, unbind, and rebind the logical storage volume, extend the size of the logical storage volume, clone the logical storage volume, and move the logical storage volume.02-28-2013
20130054889COMPUTER SYSTEM ACCESSING OBJECT STORAGE SYSTEM - The storage system exports logical storage volumes that are provisioned as storage objects. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. Prior to issuing input-output commands to a logical storage volume, the computer system sends a request to bind the logical storage volume to a protocol endpoint. In response a first identifier for the protocol endpoint and a second identifier for the logical storage volume is returned. Different second identifiers may be generated for different logical storage volumes even though the same protocol endpoint is being used. Therefore, a single protocol endpoint may serve as a gateway for multiple logical storage volumes.02-28-2013
20130054888CONFIGURING OBJECT STORAGE SYSTEM FOR INPUT/OUTPUT OPERATIONS - The storage system exports logical storage volumes that are provisioned as storage objects. These storage objects are accessed on demand by connected computer systems using standard protocols, such as SCSI and NFS, through logical endpoints for the protocol traffic that are configured in the storage system. When an input-output command (IO) is received at the storage system, an identifier is retrieved from the IO and translated into a logical storage volume identifier, and the IO is executed on storage locations referenced by a logical storage volume corresponding to the logical storage volume identifier.02-28-2013
20130054741PERMANENT CONNECTION ORIENTED COMMUNICATION USING PARALLEL SINGLE CONNECTION CIRCUITS - Methods, systems, and techniques for providing a pseudo permanent communications connection using temporary connection protocols are described. Example embodiments provide a Enhanced Communications Layer that provides such connections by means of a layer incorporated in the client side and server side communications stacks. The ECL maintains a pool of connections that are opened and used in a staggered fashion to reduce the amount of connection setup and teardown.02-28-2013
20130054679SHARING REMOTE SESSIONS OF A USER INTERFACE AND/OR GRAPHICS OF A COMPUTER - Methods, systems, and techniques for sharing a remoted user interface are described. Example embodiments provide a Remote Session Sharing Protocol (“RSSP”) for sharing a remoted user interface and/or graphics of a same computer system operating system or application. Use of the RSSP enables server computing systems to optimize the utilization of frame buffers and state information when multiple clients connect to the same remote session (e.g., connect to the same user interface of an application or operating system) at substantially the same time.02-28-2013
20130050253PRESENTING DYNAMICALLY CHANGING IMAGES IN A LIMITED RENDERING ENVIRONMENT - Methods, systems, and techniques for presenting dynamically changing images in a limited rendering environment are described. Example embodiments provide a client display manager that is configured to receive image blocks representing modifications or updates to a dynamically changing image. The client display manager may then layer the received image blocks upon one another, and then cause the layered image blocks to be presented on a display device as a single, composited image. In some embodiments, multiple image blocks may be coalesced or otherwise combined into a single image transmitted to the client display manager, where regions of the single image that are not occupied by the multiple image blocks are transparent.02-28-2013
20130047154METHOD FOR GENERATING SECURE SNAPSHOTS - In a technique for creating a secure snapshot of a virtual machine, a guest operating system of the virtual machine is caused to enter a locked state prior to the snapshot of the virtual machine being created. When the snapshot is subsequently used to restore the virtual machine, the guest operating system of the virtual machine is restored in a locked state and credentials are required to access the guest operating system.02-21-2013
20130046948METHOD FOR REPLICATING A LOGICAL DATA STORAGE VOLUME - Replicated data storage units are autonomously identified and assembled into generationally related data storage volumes. A data storage manager, implementing a re-signaturing process executed at defined intervals or manually initiated on a server or client system connected to the storage area network, scans the collection of visible data storage units to identify those related as a data storage volume. Each replicated data storage unit includes metadata that embeds an identification of the replicated data storage unit and volume accessible to the data storage manager. To assemble a set of replicated data storage units into a generational volume, the data storage unit metadata is rewritten to establish a unique data storage volume identity including information to associate the data storage volume in a lineage with the source data storage volume.02-21-2013
20130046740PERFORMING ONLINE IN-PLACE UPGRADE OF CLUSTER FILE SYSTEM - A shared file system for a group of host computer systems is upgraded in-place in a manner that the shared file system can remain online and accessible to the host computer systems. Each host computer system first loads a new file system driver that is backward compatible with a driver that is currently used by them to interact with the file system. Second, one of the host computer systems acquires locks to file system management data structures of the file system, upgrades the file system management data structures, and upon completion thereof, notifies the other host computer system that the upgrade to the file system management data structures is complete.02-21-2013
20130042084LOOSE SYNCHRONIZATION OF VIRTUAL DISKS - In order to synchronize copies of a virtual disk, a virtualization layer maintains a first record of file system blocks of a first copy of the virtual disk that are modified during an access session by a virtual machine using the first copy of the virtual disk. The file system blocks correspond to a file system of the virtual disk. During an attempt to synchronize the first copy with a second copy of the virtual disk, (i) a second record of file system blocks that are currently used by the file system is obtained from the guest operating system, and (ii) file system blocks in the first copy of the virtual disk that are present in both the first record and the second record are copied into the second copy of the virtual disk.02-14-2013
20130036418In-Place Snapshots of a Virtual Disk Configured with Sparse Extent - A virtualized computer system employs a virtual disk with a space efficient (SE) format to store data for virtual machines running therein. Data within a virtual disk with a SE format is stored in a grain, where multiple grains are included in a storage block. Writes to a grain within shared storage block in a virtual disk with an SE format are serviced by allocating a new grain and storing the write data to the new grain. Metadata associated with the client that transmitted the write request to the virtual disk is then updated to point to the new grain instead of the grain within the shared storage block.02-07-2013
20130036416DETECTING AND CORRECTING NETWORK INTERRUPTIONS USING NETWORK ADDRESS TRANSLATION - Embodiments provide a network address translation (NAT) service for network devices. A network connection from at least one private network device to the NAT service is received and a network connection from at least one remote device to the NAT service is received. The private network device is positioned within a private network and the remote device is positioned within a public network. A network availability of the remote device is determined. If the remote device is unavailable or a network configuration setting associated with the remote device changes, the private network device is notified and a connection reset message is transmitted to the private network device.02-07-2013
20130036404TESTING OF A SOFTWARE SYSTEM USING INSTRUMENTATION AT A LOGGING MODULE - In one embodiment, a method includes determining an instrumentation action to perform with the software program when a logging statement is encountered during execution of a software program. The instrumentation action is performed by an instrumentation service associated with a logging service and the execution of the software program is monitored based on the instrumentation action being performed.02-07-2013
20130031200QUALITY OF SERVICE MANAGEMENT - A method for managing an amount of IO requests transmitted from a host computer to a storage system is described. A current latency value of an IO request most recently removed from an issue queue maintained by the host computer in order to transmit IO requests from the host computer to the storage system is periodically determined. An average latency value is the calculated based on the current latency value and a size limit of the issue queue is adjusted based in part on the average latency value. Upon receiving an IO request from one of a plurality of client applications running on the host computer, it can then be determined whether a number of pending IO requests in the issue queue has reached the size limit and the IO request can be transmitted to the issue queue if the number of pending IO request falls within the size limit.01-31-2013
20130024940OFFLOADING OPERATIONS TO A REPLICATE VIRTUAL MACHINE - A method for detecting malicious code within a first virtual machine comprising creating a snapshot of the first virtual machine and transferring the snapshot to a second machine. A scan operation is run on the snapshot using resources of the second machine. In response to detecting malicious code during the scan operation, action is taken at the first virtual machine to address the detection of the malicious code. Thus, the action in response to detecting the malicious code may include placing the first virtual machine in quarantine.01-24-2013
20130024862On-Line Replacement and Changing of Virtualization Software - In a virtualized system running one or more virtual machines on a first hypervisor, a second hypervisor is installed and control of the hardware resources of the physical computer supporting the virtualized system is migrated from the first hypervisor to the second hypervisor without interrupting the operation of the first hypervisor and the virtual machines. Initially a minimal set of hardware resources is hot-removed from control by the first hypervisor, and the second hypervisor is launched on the minimal set of hardware resources. Both the remaining hardware resources and the virtual machines are then migrated from the first hypervisor to the second hypervisor until all the virtual machines have been migrated over to the second hypervisor, while the virtual machines and the first hypervisor continue running largely unaffected by the migration process.01-24-2013
20130024680ATOMIC SWITCHING OF IMAGES IN DESKTOP STREAMING OVER WIDE AREA NETWORKS - A method for replacing a current desktop image having a current operating system on storage media for a computing device is described. In the method, an agent process is executed on the computing device for downloading from a server to a staging area on local storage media a replacement desktop disk image having a replacement operating system. The replacement desktop image includes a prefetch set of files and metadata for additional files, the prefetch set of files including a minimal set of files necessary to boot the replacement operating system, the replacement desktop image not including contents of the additional files. The computing device is rebooted to replace the current desktop image with the replacement desktop image. The computing device is then rebooted again to load the replacement operating system using the prefetch set of files.01-24-2013
20130024598INCREASING GRANULARITY OF DIRTY BIT INFORMATION IN HARDWARE ASSISTED MEMORY MANAGEMENT SYSTEMS - In a computer system having virtual machines, one or more unused bits of a guest physical address range are allocated for aliasing so that multiple virtually addressed sub-pages can be mapped to a common memory page. When one bit is allocated for aliasing, dirty bit information can be provided at a granularity that is one-half of a memory page. When M bits are allocated for aliasing, dirty bit information can be provided at a granularity that is 1/(201-24-2013
20130019243EXECUTING A MULTICOMPONENT SOFTWARE APPLICATION ON A VIRTUALIZED COMPUTER PLATFORM - A virtualized computer platform is established and maintained by virtualization software on one or more physical computers. A multicomponent software application may execute on the virtualized computer platform, with different components of the application executing in different virtual machines, which are supported by the virtualization software. The virtualization software may also provide the provision of one or more services that may be beneficial to the operation of the multicomponent software application, such as automated provisioning, resource allocation, VM distribution, performance monitoring, resource management, high availability, backup, disaster recovery, alarms, security, etc. In some embodiments of the invention, some of these services are provided through coordinated efforts of a system resource manager, a VM manager, an application monitor and an application resource manager. In some of these embodiments, an application monitor and an application manager may be included with a multicomponent software application in a single installation package.01-17-2013
20130019067METHOD AND SYSTEM FOR ENSURING CACHE COHERENCE OF METADATA IN CLUSTERED FILE SYSTEMSAANM VILAYANNUR; MuraliAACI San JoseAAST CAAACO USAAGP VILAYANNUR; Murali San Jose CA USAANM LI; JinyuanAACI BellevueAAST WAAACO USAAGP LI; Jinyuan Bellevue WA USAANM VAGHANI; Satyam B.AACI San JoseAAST CAAACO USAAGP VAGHANI; Satyam B. San Jose CA US - Metadata of a shared file in a clustered file system is changed in a way that ensures cache coherence amongst servers that can simultaneously access the shared file. Before a server changes the metadata of the shared file, it waits until no other server is attempting to access the shared file, and all I/O operations to the shared file are blocked. After writing the metadata changes to the shared file, local caches of the other servers are updated, as needed, and I/O operations to the shared file are unblocked.01-17-2013
20130018939NATIVE VIEWER USE FOR SERVICE RESULTS FROM A REMOTE DESKTOP - In one embodiment, a method includes establishing a session to a remote desktop determined for a user of a client device. The session allows the client device to remotely access the remote desktop to have one or more services performed for the user of the client device using resources of the remote desktop. The client device sends a request for a service in the one or more services to be performed on the remote desktop in the session and receives a result set determined from the service being performed by the remote desktop. A native viewer for the client device is determined based on a type of the result set. The native viewer is then invoked to display the result set.01-17-2013
20130014265UNIVERSAL PATCHING MACHINE - A universal patching machine is used to provide security for a computer system. A conversion function is generated for the patching machine that modifies input data to the computer system so that the computer system has an output and state that match the output and state that would be produced by a vendor-patched version of the computer system. The universal patching machine detects security vulnerabilities in intercepted data traffic. If a vulnerability violation is detected, the universal patching machine modifies the data traffic to remove the violation. Fixing the data traffic in this way ensures that the vulnerability cannot be exploited in an attack against the data network. The universal patching machine is formed from patch processors and a packet controller. The patch processors are formed from network patches. In operation, the patch processors detect vulnerabilities and issue modification commands that direct the packet controller to fix the data traffic.01-10-2013
20120331488COMPONENT NAVIGATION IN AN EXTENSIBLE APPLICATION - In one embodiment, a method receives configuration information for a set of components of an extensible application. A component in the set of components includes extending information if the component is an extension of another component and hosting information if the component is hosting a set of extension points. A computing device dynamically generates an extension structure at runtime of the application from the configuration information. The extension structure is generated by connecting components together based on the extending information and the hosting information of the set of components. A navigation request to a target component is received and a path of components to the target component is determined using the extension structure. The path of components is traversed until the target component is loaded and the target component is displayed.12-27-2012
20120331250HIGH-PERFORMANCE VIRTUAL MACHINE NETWORKING - A method for conveying a data packet received from a network to a virtual machine instantiated on a computer system coupled to the network, and a medium and system for carrying out the method, is described. In the method, a guest receive pointer queue of a component executing in the virtual machine is inspected in order to identify a location in a guest receive packet data buffer that is available to receive packet data. Data from the data packet received from the network is copied into the guest receive packet data buffer at the identified location. A standard receive interrupt is raised in the virtual machine. Thus, the kernel places the data packet received from the network into a memory space accessible to the virtual machine without any intervention by a virtual machine monitor component of the virtualization software.12-27-2012
20120331242CONSISTENT UNMAPPING OF APPLICATION DATA IN PRESENCE OF CONCURRENT, UNQUIESCED WRITERS AND READERS - Free storage blocks previously allocated to a logical block device are released back to an underlying storage system supporting the logical block device in a manner that does not conflict with write operations that may be issued to the free storage blocks at about the same time. According to a first technique, write operations on the same storage blocks to be released are paused until the underlying storage system has completed the releasing operation or, if the write operations are issued earlier than when the underlying storage system actually performs the releasing operation, such storage blocks are not released. According to a second technique, a special file is allocated the free storage blocks, which are then made available for safe releasing.12-27-2012
20120324444DECENTRALIZED MANAGEMENT OF VIRTUALIZED HOSTS - One or more embodiments of the present invention provide a technique for effectively managing virtualized computing systems with an unlimited number of hardware resources. Host systems included in a virtualized computer system are organized into a scalable, peer-to-peer (P2P) network in which host systems arrange themselves into a network overlay to communicate with one another. The network overlay enables the host systems to perform a variety of operations, which include dividing computing resources of the host systems among a plurality of virtual machines (VMs), load balancing VMs across the host systems, and performing an initial placement of a VM in one of the host systems.12-20-2012
20120324441DECENTRALIZED MANAGEMENT OF VIRTUALIZED HOSTS - One or more embodiments of the present invention provide a technique for effectively managing virtualized computing systems with an unlimited number of hardware resources. Host systems included in a virtualized computer system are organized into a scalable, peer-to-peer (P2P) network in which host systems arrange themselves into a network overlay to communicate with one another. The network overlay enables the host systems to perform a variety of operations, which include dividing computing resources of the host systems among a plurality of virtual machines (VMs), load balancing VMs across the host systems, and performing an initial placement of a VM in one of the host systems.12-20-2012
20120324358DELIVERY OF A USER INTERFACE USING HYPERTEXT TRANSFER PROTOCOL - A method is provided to remotely access an application hosted by a server and having a corresponding application graphical user interface (GUI) represented on the server, the method comprising: a client automatically sending GUI display update requests to the server throughout a duration of the access, the requests being HTTP requests over corresponding HTTP connections.12-20-2012
20120324212CACHING BASED OPERATING SYSTEM INSTALLATION - An image of system software is installed by loading an executable image of the system software using a boot loader, where the executable image includes a kernel and a plurality of files used by the kernel. The kernel of the system software is executed to generate the image of the system software that includes a copy of the kernel. Generating the image of the system software involves the steps of generating a plurality of pointers that each point to a different one of the files, retrieving the files using the pointers, and storing a copy of the kernel and the files in a storage device from which the system software is to be booted as the image of the system software.12-20-2012
20120324071MANAGING RESOURCES IN A DISTRIBUTED SYSTEM USING DYNAMIC CLUSTERS - One or more embodiments of the present invention provide a method for performing initial placement and load balancing of a data objects in a distributed system. The distributed system includes hardware resources, e.g., host systems and storage arrays, which are configured to execute and/or store data objects. A data object is initially placed into the distributed system by creating a virtual cluster of hardware resources that are compatible to execute and/or host the data object, and then selecting from the virtual cluster a hardware resource that is optimal for executing and/or hosting the data object. The data object is placed into the selected hardware resource, whereupon a load balancing operation is optionally performed across the virtual cluster. The virtual cluster is subsequently released, and the distributed system is returned to its original state with the data object included therein.12-20-2012
20120317491NETWORK CONNECTIVITY AND SECURITY VISUALIZATION - A method for displaying a graphical user interface for a computing environment including computing resources that are provided to a plurality of organizations over one or more external networks includes displaying representations of the one or more external networks. The method further includes displaying a first node in the graphical user interface that is connected to the representations of at least one of the one or more external networks, where the first node is associated with a first organization; displaying an aggregate node in the graphical user interface that is associated with a plurality of other organizations besides the first organization; receiving a selection to view details of the first organization; and displaying an expanded view of the first organization in the graphical user interface in response to the selection.12-13-2012
20120311576SYSTEM AND METHOD FOR RESTARTING A WORKLOAD BASED ON GLOBAL LOAD BALANCING - A method for restarting a virtual machine in a virtual computing system having a plurality of hosts and a resource scheduler for the plurality of hosts includes writing a placement request for the virtual machine to a shared channel that is accessible by the resource scheduler. The method further includes reading a placement result from the shared channel, wherein the placement result is generated by the resource scheduler responsive to the placement request; and restarting the virtual machine in accordance with the placement result.12-06-2012
20120311475USER INTERFACE FOR MANAGING A VIRTUAL COMPUTING ENVIRONMENT - A graphical user interface for monitoring a status of objects included in a virtualized computing environment including a plurality of host computers, each having one or more virtual machines running therein, includes a first second and a second section. The first section displays a first graph depicting utilization during a first period of time of a first computing resource associated with a first object included in the virtualized computing environment. The second section displays a listing of one or more objects included in the virtualized computing environment that are related to the first object, where, in response to receiving a selection of a second object from the listing of one or more objects, the first section displays a second graph depicting utilization during the first period of time of the first computing resource associated with the second object.12-06-2012
20120310909FILE SYSTEM WITH OPTIMISTIC I/O OPERATIONS ON SHARED STORAGE - A method for performing I/O operations on a file stored in a file system utilizing a shared data storage system and accessible by a plurality of host computers is disclosed. A host computer receives from a process executing on it, a request to read data stored in the file. The host computer then requests the data stored in the file without acquiring a lock from the file system. The host computer also maintains a timeout value associated with the file while reading the data. The host computer receives at least a portion of the data prior to an expiration of time, and if all the data has not been received before the expiration of time, it then assesses whether another of the host computers has acquired a lock on the file, and, if so, invalidates the received data without providing it to the requesting process.12-06-2012
20120304168SYSTEM AND METHOD FOR GENERATING A VIRTUAL DESKTOP - A technique for composing a virtual desktop associated with one or more applications in a virtualized computing environment. The technique includes generating file system level metadata in the desktop image for applications that create a perception that data blocks in the desktop image have been allocated to applications, but not actually copying any of the application data into the allocated blocks. Instead, the technique builds a mapping table between disk block numbers and the application data, which can be stored in a separate application store. The disclosed techniques provide a more efficient way to compose a virtual desktop, compared to current virtual desktop adoption techniques.11-29-2012
20120303923CAPACITY AND LOAD ANALYSIS USING STORAGE ATTRIBUTES - A method includes determining a capacity model that configures computing resource capacity for a capacity container. The computing resource capacity includes a first storage attribute for an amount of storage in a storage component. A load model is determined that configures load for the capacity container. The load includes a second storage attribute for a storage requirement for a virtual machine. A profile of a virtual machine unit is determined for estimating available capacity in a capacity container. The profile is determined using virtual machine attributes for a set of virtual machines, wherein the virtual machine unit includes a storage requirement based on storage requirements for the set of virtual machines. The profile of the virtual machine unit is fit into available capacity. A number of virtual machine units is determined based on the fitting, the number of virtual machine units being a measure of available capacity.11-29-2012
20120303858ADJUSTING AVAILABLE PERSISTENT STORAGE DURING EXECUTION IN A VIRTUAL COMPUTER SYSTEM - The amount of virtual disk space that is available for use by software executing within a virtual machine (VM) may be dynamically adjusted while the VM is running in a virtual computer system. A method for reservation of disk space from a virtual machine is provided. A request is received at a first VM relating to reserving a portion of a virtual disk used by the first VM. In response, the first VM allocates additional storage in the virtual disk to a guest file stored in the virtual disk, wherein the guest file is not used to store meaningful data and then communicates sectors of the virtual disk corresponding to the additional storage for the guest file to the virtualization layer. The virtualization layer provides to a second VM access to sectors of the physical storage space that correspond to the sectors of the virtual disk that were allocated as additional storage to the guest file.11-29-2012
20120297380COMBINING PROFILES BASED ON PRIORITIES - Combining profiles based on priorities associated therewith to create an effective profile are provided. A plurality of profiles defining one or more rules that are applicable to a functional computing object are identified. A priority corresponding to each applicable profile is determined. The applicable profiles are combined by the computing device based on the corresponding priorities to create an effective profile that includes no conflicting rules.11-22-2012
20120297307GRAPHICALLY REPRESENTING LOAD BALANCE IN A COMPUTING CLUSTER - Embodiments provide a graphical representation of load distribution or “balance” in a computing cluster. Load metrics representing the resource utilization of individual host computing devices are collected, and a load imbalance metric representing the variability of the host load metrics is calculated. A graphical balance indicator including a balance position and a boundary is created. An imbalance icon is positioned relative to the balance position and the boundary based on the calculated load imbalance metric. Attributes of the graphical balance indicator, such as the position of the boundary and/or the size of the imbalance icon, may be determined based on an acceptable imbalance threshold value.11-22-2012
20120297236HIGH AVAILABILITY SYSTEM ALLOWING CONDITIONALLY RESERVED COMPUTING RESOURCE USE AND RECLAMATION UPON A FAILOVER - In one embodiment, a method attempts, by a computing device, to determine a placement of a set of virtual machines on available hosts upon failure of a host. The placement considers the set of virtual machines as being not powered on any of the available hosts. The method further determines, by the computing device, a placed list of virtual machines in the set of virtual machines as a recommendation to power on to the available hosts. The determination of the placed list of virtual machines is used to determine a power off list of virtual machines in the set of virtual machines to power off, wherein virtual machines in the power off list of virtual machines are currently powered on available hosts but were considered to be powered off to determine the placement.11-22-2012
20120297005BREAKING LOCKS HELD BY TWO-PHASE COMMIT TRANSACTIONS WHILE PRESERVING DATA CONSISTENCY - A technique for breaking locks held by two-phase commit (2PC) transactions while preserving data consistency that guarantees that either the “commit” phase or the “abort” phase of the 2PC protocol is completed at a higher-priority server. Accordingly, all locks on data objects are released and a high-priority operation can proceed. Data consistency is also preserved because the 2PC coordinator adheres to the 2PC protocol and properly notifies both the higher-priority server and one or more lower-priority servers when they are available.11-22-2012
20120296872METHOD AND SYSTEM FOR PARALLELIZING DATA COPY IN A DISTRIBUTED FILE SYSTEM - Multiple servers sharing a distributed file system are used to perform copies of regions of a source file in parallel from a source storage unit to corresponding temporary files at a destination storage unit. These temporary files are then merged or combined into a single file at the destination storage unit in a way that preserves the inode structure and attributes of the source file. A substantial speedup is obtained by copying regions of the file in parallel.11-22-2012
20120284714VIRTUAL MACHINE FAULT TOLERANCE - In a computer system running at least a first virtual machine (VM) and a second VM on virtualization software, a computer implemented method for the second VM to provide quasi-lockstep fault tolerance for the first VM. The method includes enabling operations of the second VM to diverge from being in lockstep with operations with the first VM without resynchronizing the second VM with the first VM, if output of the second VM is not diverging from output of the first VM. The output of the second VM is compared with the output of the first VM to determine whether the output of the second VM has diverged from the output of the first VM. In response to a determination that the output of the second VM has diverged from the output of the first VM, a resynchronization of the second VM is executed.11-08-2012
20120284628USER INTERFACE FOR MANAGING MONITORING PROFILES - A graphical user interface for a virtualized computing environment that includes a plurality of host computers, each having one or more virtual machines running therein, where the virtualized computing environment is configured with one or more monitoring profiles for monitoring a status of objects included in the virtualized computing environment, where the graphical user interface includes a first section and a second section. The first section organizes the one or more monitoring profiles, where each monitoring profile includes one or more rules and each rule corresponds to an action that is performed if the rule is violated. The second section organizes a first set of rules associated with a selected monitoring profile and corresponding actions associated with each rule in the first set of rules.11-08-2012
20120284234LIVE MIGRATION OF VIRTUAL MACHINE PERSISTENT DATA USING MIRRORED INPUT-OUTPUT OPERATIONS - Persistent data, such as disks associated with virtual machines, are migrated between and across data stores using mirrored input-output operations (IOs). The migration technique employs a data mover to copy selected regions of the virtual machine disk to a target data store while the virtual machine is executing. If the virtual machine issues a write IO, the write IO is selectively mirrored on the target data store depending on whether or not the write IO is in a region of the virtual machine disk that has already been copied.11-08-2012
20120278903DYNAMIC MANAGEMENT OF GROUPS FOR ENTITLEMENT AND PROVISIONING OF COMPUTER RESOURCES - Methods, systems, and techniques for managing groups of entities, such as individuals, employees, or systems, and providing entitlement and access to computer resources based on group membership are provided. Example embodiments provide a Group Management System having a Group Management Engine “GME,” an Entitlement Engine, and a Provisioning Engine, which work together to allow simplified grouping of entities and providing entitlement and access to the entities based upon the group membership. In one embodiment, the GME leverages dynamic programming techniques to enable accurate, scalable systems that can manage near real time updates and changes to the group's status or to the entities' status. These components cooperate to enable provisioning of applications based upon current entitlement.11-01-2012
20120278801MAINTAINING HIGH AVAILABILITY OF A GROUP OF VIRTUAL MACHINES USING HEARTBEAT MESSAGES - Embodiments maintain high availability of software application instances in a fault domain. Subordinate hosts are monitored by a master host. The subordinate hosts publish heartbeats via a network and datastores. Based at least in part on the published heartbeats, the master host determines the status of each subordinate host, distinguishing between subordinate hosts that are entirely inoperative and subordinate hosts that are operative but partitioned (e.g., unreachable via the network). The master host may restart software application instances, such as virtual machines, that are executed by inoperative subordinate hosts or that cease executing on partitioned subordinate hosts.11-01-2012
20120278726UNIFIED SECURE VIRTUAL MACHINE PLAYER AND REMOTE DESKTOP CLIENT - A virtual machine (VM) is accessed by receiving user log-in information, the log-in information identifying a user and a corresponding VM, the VM having a local copy and a remote copy. A selected copy of the VM is identified based on at least one of a policy and a user selection, the selected copy being one of the local copy and the remote copy of the VM. A desktop generated by the selected copy of the VM is presented to the user in a common application graphical user interface, the common application graphical user interface being used regardless as to whether the selected copy of the VM is the local copy or the remote copy.11-01-2012
20120278588HARDWARE ASSISTANCE FOR PAGE TABLE COHERENCE WITH GUEST PAGE MAPPINGS - Some embodiments of the present invention include a memory management unit (MMU) configured to, in response to a write access targeting a guest page mapping of a guest virtual page number (GVPN) to a guest physical page number (GPPN) within a guest page table, identify a first page mapping that associates the GVPN with a physical page number (PPN). The MMU is also configured to determine whether a traced write indication is associated with the first page mapping and, if so, record update information identifying the targeted guest page mapping. The update information is used to reestablish coherence between the guest page mapping and the first page mapping. The MMU is further configured to perform the write access.11-01-2012
20120278573ONLINE VIRTUAL MACHINE DISK MIGRATION - A method for migrating a virtual machine disk (VM disk) from first physical storage to second physical storage while the virtual machine (VM) is running, the method comprising: (a) taking a snapshot of the VM disk as represented by a first parent VM disk stored on the first physical storage, whereby a first child VM disk is created on one of the first or second physical storage; (b) copying the first parent VM disk to the second physical storage as a second parent VM disk; (c) re-parenting the first VM child disk to the second parent VM disk; and (d) consolidating the first child VM disk and the second parent VM disk.11-01-2012
20120278525INCREASING GRANULARITY OF DIRTY BIT INFORMATION - One or more unused bits of a virtual address range are allocated for aliasing so that multiple virtually addressed sub-pages can be mapped to a common memory page. When one bit is allocated for aliasing, dirty bit information can be provided at a granularity that is one-half of a memory page. When M bits are allocated for aliasing, dirty bit information can be provided at a granularity that is 1/(211-01-2012
20120266168DEPLOYMENT SYSTEM FOR MULTI-NODE APPLICATIONS - A deployment system provides the ability to deploy a multi-node distributed application, such as a cloud computing platform application, which has a plurality of interconnected nodes performing specialized jobs. The deployment system includes a deployment director that provisions an infrastructure that includes one or more virtual machines (VMs) for hosting the plurality of nodes of the cloud computing platform application. The deployment director distributes a plurality of jobs (e.g., application packages and configurations) to deployment agents executing on the provisioned VMs, based on a mapping in the deployment manifest between the infrastructure and the plurality of specialized jobs to be performed by the cloud computing platform application. The deployment agents apply the jobs to their respective VM (e.g., launching applications), thereby deploying the cloud computing platform application.10-18-2012
20120266166HOST SELECTION FOR VIRTUAL MACHINE PLACEMENT - In one embodiment, a method for placing virtual machines in a collection is provided. A plurality of equivalence sets of hosts is determined prior to placing virtual machines in the collection. The hosts in an equivalence set of hosts are considered similar. An equivalence set of hosts in the plurality of equivalence sets is selected to place the virtual machines in the collection. The method then places at least a portion of the virtual machines in the collection on one or more hosts in the selected equivalence set of hosts.10-18-2012
20120266158RELEASE MANAGEMENT SYSTEM FOR A MULTI-NODE APPLICATION - A deployment system provides the ability to deploy a multi-node distributed application, such as a cloud computing platform application that has a plurality of interconnected nodes performing specialized jobs. The deployment system includes a release management system that builds and manages versioned releases of application services and/or software modules that are executed by the plurality of nodes of the cloud computing platform application. The release management system utilizes specification files to define a jobs and application packages and configurations needed to perform the jobs. The jobs and application packages are assembled into a self-contained release bundle that may be provided to the deployment system. The deployment system unwraps the release bundle and provides each job to deployment agents executing on VMs. The deployment agents apply the jobs to their respective VM (e.g., launching applications), thereby deploying the cloud computing platform application.10-18-2012
20120266156RELEASE LIFECYCLE MANAGEMENT SYSTEM FOR A MULTI-NODE APPLICATION - A deployment system provides the ability to deploy a multi-node distributed application, such as a cloud computing platform application that has a plurality of interconnected nodes performing specialized jobs. The deployment system may update a currently running cloud computing platform application according to a deployment manifest and a versioned release bundle that includes jobs and application packages. The deployment system determines changes to the currently running cloud computing platform application and distributes changes to each job to deployment agents executing on VMs. The deployment agents apply the updated jobs to their respective VMs (e.g., launching applications), thereby deploying an updated version of cloud computing platform application.10-18-2012
20120265963LARGE-PAGE OPTIMIZATION IN VIRTUAL MEMORY PAGING SYSTEMS - A computer system that is programmed with virtual memory accesses to physical memory employs multi-bit counters associated with its page table entries. When a page walker visits a page table entry, the multi-bit counter associated with that page table entry is incremented by one. The computer operating system uses the counts in the multi-bit counters of different page table entries to determine where large pages can be deployed effectively. In a virtualized computer system having a nested paging system, multi-bit counters associated with both its primary page table entries and its nested page table entries are used. These multi-bit counters are incremented during nested page walks. Subsequently, the guest operating systems and the virtual machine monitors use the counts in the appropriate multi-bit counters to determine where large pages can be deployed effectively.10-18-2012
20120265959SYSTEM AND METHOD FOR CONVERTING A PHYSICAL DISK TO A VIRTUAL DISK - A method for converting a disk of a physical computer into a virtual disk for use by a virtual machine is described. Contents of the disk of the physical computer are copied into an image file, wherein the image file has a different sector-by-sector organization of the contents than the disk but a logically equivalent file system organization. Hardware configuration information from the image file is then extracted, wherein the hardware configuration information relates to hardware of the physical computer and, based on a comparison of the extracted hardware configuration information and a virtual hardware configuration of the virtual machine, hardware-dependent files in the image file are replaced with substitute files that are compatible with the virtual hardware configuration of the virtual machine.10-18-2012
20120260248AUTOMATED COST CALCULATION FOR VIRTUALIZED INFRASTRUCTURE - In one embodiment, a method includes storing a cost assigned to a physical computing device in a storage device. The physical computing device is found in a physical infrastructure of a data center. The method determines an instantiation of a virtual machine in a virtual infrastructure. Information for a provisioning of the virtual machine with the physical computing device in the physical infrastructure of the data center is then received. The cost assigned to the physical computing device from the storage device is determined where the cost is used to determine a charge for the virtual machine based on usage of the physical computing device.10-11-2012
20120254667PERFORMING NETWORK CORE DUMP WITHOUT DRIVERS - Core dump is performed over a network without relying on network device drivers. Instead of network device drivers, firmware of network devices that is typically used during boot is preserved in memory post-boot, and one or more application program interfaces of the firmware are invoked to perform the network core dump. For ease of implementation, a network bootstrap program that has standard application program interfaces for calling into the firmware of network devices may be invoked when performing core dump over the network.10-04-2012
20120250569Internet Protocol Version 6 Network Connectivity in a Virtual Computer System - A method for sharing a network connection between a host system and a virtual machine includes receiving an incoming data frame. The host system is enabled to use the network connection using a first layer 2 address and a first layer 3 address. The first layer 2 and the first layer 3 addresses are associated with the network connection. The virtual machine is enabled to attempt to use the network connection using a second layer 2 address and a second layer 3 address. The first layer 3 and the second layer 3 addresses are compliant with IPv6.10-04-2012
20120246320SYSTEM AND METHOD FOR CONTROLLING RESOURCE REVOCATION IN A MULTI-GUEST COMPUTER SYSTEM - At least one guest system, for example, a virtual machine, is connected to a host system, which includes a system resource such as system machine memory. Each guest system includes a guest operating system (OS). A resource requesting mechanism, preferably a driver, is installed within each guest OS and communicates with a resource scheduler included within the host system. If the host system needs any one the guest systems to relinquish some of the system resource it currently is allocated, then the resource scheduler instructs the driver within that guest system's OS to reserve more of the resource, using the guest OS's own, native resource allocation mechanisms. The driver thus frees this resource for use by the host, since the driver does not itself actually need the requested amount of the resource. The driver in each guest OS thus acts as a hollow “balloon” to “inflate” or “deflate,” that is, reserve more or less of the system resource via the corresponding guest OS. The resource scheduler, however, remains transparent to the guest systems.09-27-2012
20120239987System and Method of Manipulating Virtual Machine Recordings for High-Level Execution and Replay - Execution behavior for processes within a virtual machine is recorded for subsequent replay. The execution behavior comprises a detailed, low-level recording of state changes for processes within the virtual machine. The low-level recording is processed via replay to produce a sliced recording that conforms to time, abstraction, and security requirements for a specific replay scenario. Multiple stages of replay may be arbitrarily stacked to generate different crosscut versions of a common low-level recording.09-20-2012
20120239832GUEST/HYPERVISOR INTERRUPT COALESCING FOR STORAGE ADAPTER VIRTUAL FUNCTION IN GUEST PASSTHROUGH MODE - A method is described for coalescing input/output (IO) interrupts to a virtual machine (VM) running on a host computer. At a virtualization layer of the host computer that supports execution of the VM receives an IO interrupt in response to a completion of an IO request of the VM, wherein a transmission of the IO request by the VM to an IO device bypasses the virtualization layer. The virtualization layer then determines whether the VM has responded to a most recently delivered IO interrupt to the VM by the virtualization layer, and drops the IO interrupt if the VM has not responded to the most recently delivered IO interrupt, thereby failing to deliver the IO interrupt to the VM.09-20-2012
20120233363QUALITY OF SERVICE MANAGEMENT - A method for measuring latencies caused by processing performed within a common resource is provided. A current latency value representing a time of residency of an IO request in a queue prior to receipt of acknowledgment from the common resource of completion of the IO request is received from a device comprising the queue, which maintains entries for IO requests that have been dispatched to and are pending at the common resource. An average latency value is calculated based in part on the current latency value. An adjusted capacity size for the queue is calculated based in part on the average latency value and the queue's capacity is set to the adjusted capacity size. IO requests are held in a buffer if the queue's capacity is full to reduce the effect of an amount of work transmitted to the common resource on current latency values provided by the device.09-13-2012
20120227042MECHANISM FOR SCHEDULING EXECUTION OF THREADS FOR FAIR RESOURCE ALLOCATION IN A MULTI-THREADED AND/OR MULTI-CORE PROCESSING SYSTEM - A thread scheduling mechanism is provided that flexibly enforces performance isolation of multiple threads to alleviate the effect of anti-cooperative execution behavior with respect to a shared resource, for example, hoarding a cache or pipeline, using the hardware capabilities of simultaneous multi-threaded (SMT) or multi-core processors. Given a plurality of threads running on at least two processors in at least one functional processor group, the occurrence of a rescheduling condition indicating anti-cooperative execution behavior is sensed, and, if present, at least one of the threads is rescheduled such that the first and second threads no longer execute in the same functional processor group at the same time.09-06-2012
20120227041MANAGEMENT OF DISTRIBUTED VIRTUAL SWITCH AND DISTRIBUTED VIRTUAL PORTS - A method creates a distributed virtual switch (DVswitch) and distributed virtual ports (DVports) for the DVswitch. The DVswitch binds virtual switches in a collection of hosts together in a software abstraction. Also, the DVports are available for connection by virtual network interface cards (VNICs) of virtual machines in the collection of hosts. A request is received for a connection of a virtual network interface card (VNIC) of a virtual machine for a host in the collection of hosts to a DVport. If the requested DVport is available, the method provides connection information for the requested DVport to the host to allow the host to connect the requested DVport to the VNIC. The DVport stores a runtime state for a virtual port associated with a virtual switch for the host and the virtual switch forwards network frames between the VNIC and a physical network interface card (NIC).09-06-2012
20120226673CONFIGURATION-LESS NETWORK LOCKING INFRASTRUCTURE FOR SHARED FILE SYSTEMS - A network-based method for managing locks in a shared file system (SFS) for a group of hosts that does not require any configuration to identify a server for managing locks for the SFS. Each host in the group carries out the steps of checking a predetermined storage location to determine whether there is a host ID written in the predetermined location. If there is no host ID written in the predetermined location, the first host to notice this condition writes its host ID in the predetermined location to identify itself as the server for managing locks. If there is a host ID written in the predetermined location, the host ID of the server for managing locks is maintained in local memory. When the host needs to perform IO operations on a file of the SFS, it communicates with the server for managing locks over the network using the host ID of the server for managing locks to obtain a lock to the file.09-06-2012
20120221732RESOURCE ALLOCATION IN COMPUTERS - A method and tangible medium embodying code for allocating resource units of an allocatable resource among a plurality of clients in a computer is described. In the method, resource units are initially distributed among the clients by assigning to each of the clients a nominal share of the allocatable resource. For each client, a current allocation of resource units is determined. A metric is evaluated for each client, the metric being a function both of the nominal share and a usage-based factor, the usage-based factor being a function of a measure of resource units that the client is actively using and a measure of resource units that the client is not actively using. A resource unit can be reclaimed from a client when the metric for that client meets a predetermined criterion.08-30-2012
20120216135USER INTERFACE FOR MANAGING A VIRTUALIZED COMPUTING ENVIRONMENT - A virtualized computing environment is managed with a user interface that includes a graphical interface portion as well as a command-line portion. As a user interacts with the graphical interface portion, a command-line entry corresponding to the interaction is automatically generated and populates the command-line portion. Similarly, as the user types in a command-line entry, a corresponding action is graphically depicted in the graphical interface portion. By providing a blend of a graphical interface and a command-line interface, embodiments of the invention provide improved usability of the virtual infrastructure client and allow users to more quickly become familiar with the use of the application.08-23-2012
20120209993DRIFT VISUALIZATION - A system for drift visualization of change data of a data center is disclosed. The data center includes a plurality of configuration items. The system includes a management server in communication with the data center. The management server includes an agent configured to collect the change data from one or more of the plurality of configuration items. A change datastore in communication with the management server is provided to store the change data. A data extractor in communication with the change datastore retrieves the change data and provides a filtered subset of the change data to a display. A policy datastore enables the data extractor to filter the change data based on data center policy violations. The visualization depicts multiple dimensions of change-related data for the items in the data center in a unique and concise manner.08-16-2012
20120204061METHOD AND SYSTEM FOR ENABLING CHECKPOINTING FAULT TOLERANCE ACROSS REMOTE VIRTUAL MACHINES - A checkpointing fault tolerance network architecture enables a backup computer system to be remotely located from a primary computer system. An intermediary computer system is situated between the primary computer system and the backup computer system to manage the transmission of checkpoint information to the backup VM in an efficient manner. The intermediary computer system is networked to the primary VM through a first connection and is networked to the backup VM through a second connection. The intermediary computer system identifies updated data corresponding to memory pages that have been least recently modified by the primary VM and transmits such updated data to the backup VM through the first connection. In such manner, the intermediary computer system holds back updated data corresponding to more recently modified memory pages, since such memory pages may be more likely to be updated again in the future.08-09-2012
20120203739Programmatic Snapshot and Revert of Virtualized Data Center Inventory - A snapshot of an inventory of a virtualized computer system is produced and a user-editable code is generated therefrom, so that the inventory can be reconstructed entirely or partially. The snapshot includes identifying data for items in the virtualized computer system, and relationship data that indicate hierarchical and non-hierarchical relationships between the items. The items in the inventory of the virtualized computer system include virtual machines, servers on which the virtual machines are running, one or more data centers in which the servers reside, and logical containers such as folders for virtual machines, resource pools that each contain one or more virtual machines, and server clusters that each contain one or more servers.08-09-2012
20120198097Safely Sharing USB Devices During a Switch in State - System and methods for safely sharing universal serial bus (USB) devices are provided. A request is received to switch from a state in which user mode drivers are not enabled to a state in which user mode drivers are enabled. For each kernel mode USB driver in the system, an I/O control (IOCTL) is called in each kernel mode USB driver. The IOCTL requests that the kernel mode USB driver yield devices on which it has a claim. Also, for each kernel mode USB driver in the system, it is determined if the kernel mode USB driver will yield one or more devices on which it has a claim. For each kernel mode USB driver that will yield and for each device claimed by the kernel mode USB driver for which the kernel mode USB driver respects a request to unclaim the device, a process is executed as if there had been a hot unplug event on the device.08-02-2012
20120191922OBJECT SYNCHRONIZATION IN SHARED OBJECT SPACE - A shared object space in a computer system provides synchronized access to data objects accessible to a plurality of concurrently running applications in the computer system. The shared object space is allocated a portion of memory of the computer system and concurrently running applications are able to connect to the shared object space. The shared object space restricts simultaneous access to data objects by the concurrently running applications by associating locks with the data objects.07-26-2012
20120185915SECURE ENTERPRISE NETWORK - A method and system enables transparent authentication and transparent policy enforcement in a fabric of a network. In an exemplary embodiment thereof, a packet stream sent from a network host to a network resource is received at a security system. The security system identifies an authentication exchange packet in the packet stream and determines, using the authentication exchange packet and a directory service, a user identity associated with the packet stream and whether the identified user has authorization to access the network resource. A network policy is created that defines whether the user has access to the network resource.07-19-2012
20120185914IMPLEMENTING NETWORK TRAFFIC MANAGEMENT FOR VIRTUAL AND PHYSICAL MACHINES - A virtualization framework provides security between multiple virtual machines with respect to network communications between the virtual machines and between the virtual machines and a physical network coupled to the underlying physical computer platform. The virtualization framework includes a network interface controller driver that provides an interface to the platform network interface controller and supports execution of a plurality of virtual machines. Each virtual machine includes a virtual network interface controller that provides a network communications path between the virtual machines and to the network interface controller driver. Each virtual network interface controller further contains a programmable network packet filter that controls the selective transfer of network packets with respect to a corresponding virtual machine.07-19-2012
20120185852STORAGE AREA NETWORK ACCESS FOR VIRTUAL MACHINES - Techniques for enabling a virtual machine (VM) executing on a physical node to access a partition of a storage system are described. One embodiment associates an identifier with the VM for use when communicating with the storage system, wherein the identifier differs from a default identifier of a host bust adapter (HBA) usable by the physical node to communicate with the storage system.07-19-2012
20120185590Data Center Inventory Management Using Smart Racks - A user interface (UI) is accessible on a display to depict and control a plurality of smart racks in a data center is disclosed. The UI includes first, second and third graphical displays. The first graphical display depicts smart racks in the data center so as to mimic a physical arrangement of the smart racks. The second graphical display depicts a plurality of blade hosts in a smart rack in the plurality of smart racks, so as to mimic a physical arrangement of the plurality of blade hosts. The first and second graphical display may include visual indicators to depict error and warning conditions. The third graphical display depicts blade information about a blade host in the plurality of blade hosts. The blade information includes system information, a list of virtual machines hosted on the blade host, and a physical location of the blade host in the data center.07-19-2012
20120185553SELECTING A MASTER NODE USING A SUITABILITY VALUE - Selecting a master node in a group of computing nodes. Computing nodes exchange suitability messages, candidate messages, and master messages to indicate the state of each node. A deterministic algorithm based on scores and timings is executed by each computing node to encourage each node to select the same master node.07-19-2012
20120185453SCSI PROTOCOL EMULATION FOR VIRTUAL STORAGE DEVICE STORED ON NAS DEVICE - A virtualization technique, in accordance with one embodiment of the present invention, includes emulating the small computing system interface (SCSI) protocol to access a virtual SCSI storage device backed by a file stored on network attached storage (NAS).07-19-2012
20120167080GUEST FILE SYSTEM INTROSPECTION AND DEFRAGMENTABLE VIRTUAL DISK FORMAT FOR SPACE EFFICIENCY - A virtualized computer system employs a virtual disk with a space efficient (SE) format to store data for virtual machines running therein. The SE format allows for defragmentation at a fine-grained level, where unused, stale, and zero blocks are moved to the end of the virtual disk so that the virtual disk may be truncated and space reclaimed by the underlying storage system as part of a special defragmentation process.06-28-2012
20120158647Block Compression in File System - Individual blocks of data associated with a file are compressed into sub-blocks according to a compression type. For block compression type, an entire block of data is compressed and stored in the sub-block. For substream compression type, a block of data is first divided into multiple substreams that are each individually compressed and stored within the sub-block.06-21-2012
20120151483MIGRATING VIRTUAL MACHINES CONFIGURED WITH DIRECT ACCESS DEVICE DRIVERS - In one or more embodiments of the invention, migration of a virtual machine includes identifying a hardware resource which is accessed directly by a device driver of the virtual machine and generating an emulation of the hardware resource to simulate the hardware resource as experiencing an error. The current state of the virtual machine can then be transmitted to the destination host computer, wherein the current state includes the emulation which simulates the hardware resource as experiencing an error. In at least one embodiment, generating the emulation includes defining the error as one that triggers a reset of the hardware resource after migration of the virtual machine from the source host computer to the destination host computer.06-14-2012
20120151168VIRTUALIZING PROCESSOR MEMORY PROTECTION WITH "L1 ITERATE AND L2 SWIZZLE" - Methods for providing shadow page tables that virtualize processor memory protection. In one embodiment, two shadow L2 page tables are maintained for each section, for example, each 1 MB section, of guest address space covered by a shadow L1 descriptor.06-14-2012
20120151117VIRTUALIZING PROCESSOR MEMORY PROTECTION WITH "DOMAIN TRACK" - Methods for providing shadow page tables that virtualize processor memory protection. In one embodiment, virtualization software maintains the following: (a) a mapping φ from guest domain identifier to a set of shadow L2 page tables that back guest L1 sections marked with a domain identifier; and (b) with each such shadow L2 page table, a set ω of back-pointers to “potentially referencing” shadow L1 descriptors.06-14-2012
20120151116VIRTUALIZING PROCESSOR MEMORY PROTECTION WITH "L1 ITERATE AND L2 DROP/REPOPULATE" - In a computing system including a processor and virtualization software including a guest operating system (OS) that utilizes a guest domain access control register (DACR) containing domain access information and guest page tables including first level page tables (L1 page tables) and second level page tables (L2 page tables), which guest page tables contain: (a) domain identifiers used to obtain domain access information from the guest DACR and (b) access permission information, wherein the domain access information and the access permission information are combined to provide an effective guest access permission, in accordance with one embodiment, a method for providing shadow page tables and processor DACR settings that virtualize processor memory protection includes: the virtualization software providing a shadow page table wherein: (a) domain identifiers in the shadow page table are used to identify domain access information in the processor DACR that are mapped from the domain access information in the guest DACR; and (b) access permissions in the shadow page table that are mapped from the effective access permission information in the guest page tables and guest DACR; wherein a memory management unit (MMU) in the processor traverses the shadow page table, accesses the processor DACR, and combines the mapped domain access information in the processor with the mapped access permission in the shadow page table to reflect the guest intended effective access permissions while isolating the guest from the virtualization software.06-14-2012
20120131259SHARING MEMORY PAGES HAVING REGULAR EXPRESSIONS WITHIN A VIRTUAL MACHINE - A lightweight technique for sharing memory pages within a virtual machine (VM) is provided. This technique can be used on its own to implement intra-VM page sharing or it can be augmented with sharing across VMs. Memory pages whose content can be described by some succinct grammar, such as a regular expression or simple pattern, are identified for sharing within a VM. If the content of a page matches some simple pattern, it is proposed to share such a page, but only in the scope of the VM to which it belongs, i.e., intra-VM sharing. All other pages, i.e., those that are not simple patterns, can be candidates for sharing in the scope of all currently active VMs, i.e., inter-VM sharing. Either fully functional page sharing across VMs and/or page sharing in the context of each VM can be implemented.05-24-2012
20120127206MULTI-TOUCH INTERFACE GESTURES FOR KEYBOARD AND/OR MOUSE INPUTS - A mouse-and-keyboard based user interface is updated based on gestures made on a touch screen that is displaying the mouse-and-keyboard based user interface. The user interface update process includes the steps of receiving one or more touch events in response to a gesture made on the touch screen, translating the touch events to a mouse-and-keyboard based command, transmitting the mouse-and-keyboard based command to an operating system, and receiving an updated display in response thereto.05-24-2012
20120124305METHOD AND SYSTEM FOR INTEGRATING DATABASE MEMORY MANAGEMENT IN VIRTUAL MACHINES - Memory of a database management system (DBMS) that is running in a virtual machine is managed using techniques that integrate DBMS memory management with virtual machine memory management. Because of the integration, the effectiveness of DBMS memory management is preserved even though the physical memory allocated to the virtual machine may change during runtime as a result of varying memory demands of other applications, e.g., instances of other virtual machines, running on the same host computer as the virtual machine.05-17-2012
20120124270RELIEVING MEMORY PRESSURE IN A HOST USING DATABASE MEMORY MANAGEMENT - Memory of a database management system (DBMS) that is running in a virtual machine is managed using techniques that integrate DBMS memory management with virtual machine memory management. Because of the integration, the effectiveness of DBMS memory management is preserved even though the physical memory allocated to the virtual machine may change during runtime as a result of varying memory demands of other applications, e.g., instances of other virtual machines, running on the same host computer as the virtual machine.05-17-2012
20120117299EFFICIENT ONLINE CONSTRUCTION OF MISS RATE CURVES - Miss rate curves are constructed in a resource-efficient manner so that they can be constructed and memory management decisions can be made while the workloads are running. The resource-efficient technique includes the steps of selecting a subset of memory pages for the workload, maintaining a least recently used (LRU) data structure for the selected memory pages, detecting accesses to the selected memory pages and updating the LRU data structure in response to the detected accesses, and generating data for constructing a miss-rate curve for the workload using the LRU data structure. After a memory page is accessed, the memory page may be left untraced for a period of time, after which the memory page is retraced.05-10-2012
20120113270MONITORING AUDIO FIDELITY AND AUDIO-VIDEO SYNCHRONIZATION - Methods, systems, and computer programs for monitoring quality of audio delivered over a communications channel are presented. One method includes an operation for defining timestamps. The timestamps are associated with a measure of time while delivering audio to a client computer, where each timestamp includes a plurality of timestamp bits. Further, the method includes an operation for modulating an audio signal with pseudo noise (PN) codes when a timestamp bit has a first logical value, and modulating the audio signal with a negative of the PN codes when the timestamp bit has a second logical value. After transmitting the modulated audio signal to the client computer, the timestamp bits are extracted from a received modulated audio signal to obtain received timestamps. The quality of the audio is assessed based on the received timestamps, and the quality of the audio is stored in computer memory.05-10-2012
20120110577CONTROLLING MEMORY CONDITIONS IN A VIRTUAL MACHINE - A method of managing host physical memory using a balloon application executing within a guest virtual machine (GVM) running on a host platform is described. The balloon application receives allocation parameters from an entity outside the GVM, the allocation parameters identifying an amount of memory for the balloon application to allocate. The balloon application adjusts the allocated amount of memory according to the allocated amount. Physical memory backing up the allocated memory can then be assigned by virtualization software for use by another virtual machine running on the host platform.05-03-2012
20120110514Graphical User Interface for Managing Virtual Machines - A graphical user interface (GUI) for managing virtual machines (VMs) that are running in one or more hosts provides a search interface that is intuitive and presents search results in a tree structure that lists or marks items that meet user-designated search criteria. User-designated search criteria include favorite VMs, powered-on VMs, VMs running in a specified host, and text-based search criteria. Both VMs that are running locally in a local host and VMs that are running remotely in a remote host are listed so long as they meet the user-designated search criteria and thus can be managed using the GUI.05-03-2012
20120110236System and Method to Prioritize Large Memory Page Allocation in Virtualized Systems - The prioritization of large memory page mapping is a function of the access bits in the L1 page table. In a first phase of operation, the number of set access bits in each of the L1 page tables is counted periodically and a current count value is calculated therefrom. During the first phase, no pages are mapped large even if identified as such. After the first phase, the current count value is used to prioritize among potential large memory pages to determine which pages to map large. The system continues to calculate the current count value even after the first phase ends. When using hardware assist, the access bits in the nested page tables are used and when using software MMU, the access bits in the shadow page tables are used for large page prioritization.05-03-2012
20120096458Method and System for Synchronizing Fault-Tolerant Virtual Machines - Primary and secondary virtual machines each executing on a separate physical host and forming a fault-tolerant pair synchronize their execution with each other as closely as possible such that the secondary can take over execution of the primary with little or no disruption of service and no loss of data. To provide fast takeover, the execution latency between the two virtual machines is kept to a minimum by incrementally adjusting the CPU allocation to the primary virtual machine. The CPU allocation to the primary virtual machine decreases when the execution latency is large and increases when the execution latency is small. In order to maximize the performance of the primary virtual machine, the system seeks to maximize the CPU resource limit for the primary virtual machine for as long as possible while minimizing the execution latency.04-19-2012
20120096365PROVIDING REMOTE APPLICATION ACCESS USING ENTITLEMENTS - Methods and systems for providing virtual workspaces are provided. Example embodiments provide a Application Workspace System “AWS,” which enables users to access remote server-based applications (e.g., thin client applications, terminal server applications, applications on hosted operating systems, etc.) using the same interface that they use to access local applications, without needing to know where the application is being accessed. The AWS automatically determines which applications the user is entitled to use, and then figures out automatically, based upon a variety of parameters, which applications are to be made available to the user (resolved to version, particular package etc.), and whether they are to be installed locally, or accessed remotely. This abstract is provided to comply with rules requiring an abstract, and it is submitted with the intention that it will not be used to interpret or limit the scope or meaning of the claims.04-19-2012
20120096364PROVIDING REMOTE APPLICATION ACCESS USING ENTITLEMENTS - Methods and systems for providing virtual workspaces are provided. Example embodiments provide a Application Workspace System “AWS,” which enables users to access remote server-based applications (e.g., thin client applications, terminal server applications, applications on hosted operating systems, etc.) using the same interface that they use to access local applications, without needing to know where the application is being accessed. The AWS automatically determines which applications the user is entitled to use, and then figures out automatically, based upon a variety of parameters, which applications are to be made available to the user (resolved to version, particular package etc.), and whether they are to be installed locally, or accessed remotely. This abstract is provided to comply with rules requiring an abstract, and it is submitted with the intention that it will not be used to interpret or limit the scope or meaning of the claims.04-19-2012
20120089764Method for Improving Memory System Performance in Virtual Machine Systems - Updating contents of certain memory pages in a virtual machine system is deferred until they are needed. Specifically, certain page update operations are deferred until the page is accessed for a load or store operation. Each page within the virtual machine system includes associated metadata, which includes a page signature characterizing the contents of a corresponding page or a reference to a page with canonical contents, and a flag that indicates the page needs to be updated before being accessed. The metadata may also include a flag to indicate that a backing store of the memory page has contents of a known content class. When such a memory page is mapped to a shared page with contents of that known content class, a flag in the metadata to indicate that contents of the memory page needs to be updated is not set.04-12-2012
20120089724DIAGNOSIS OF APPLICATION SERVER PERFORMANCE PROBLEMS VIA THREAD LEVEL PATTERN ANALYSIS - Performance of server that is managing a group of servers, such as in a cloud, is analyzed by identifying patterns of threads executed in the server. A command is issued, repeatedly over a time period, to an operating system of the server to return a resource consumption value representative of the amount of computing resources consumed by one or more threads. The returned resource consumption values are stored and used to generate points on a graph which depicts the amount of computing resources consumed by the one or more threads over the time period and provide task breakdowns and latency information for each of the tasks.04-12-2012
20120076197System and Method for Transmitting Video and User Interface Elements - A method for offloading decoding of encoded video data from a computer system executing a video player application playing the encoded video data to a remote display terminal still enables the video player application to overlay transparent or semi-transparent graphical elements, such elements, such as user interface controls, onto the video, despite not having access to decoded video data. A video decoding function call from the video player application is intercepted and replacement video data is provided to the video player application rather than a decoded version of the encoded video data. The video player application is thereby able to overlay graphical elements onto the replacement video data to create composite video from which the graphical elements are then able to be subsequently extracted and transmitted with the encoded video data to remote display terminal, which decodes the video data and overlays the graphical elements for display.03-29-2012
20120059973HARDWARE ASSISTANCE FOR SHADOW PAGE TABLE COHERENCE WITH GUEST PAGE MAPPINGS - Some embodiments of the present invention include a memory management unit (MMU) configured to, in response to a write access targeting a guest page mapping of a guest virtual page number (GVPN) to a guest physical page number (GPPN) within a guest page table, identify a shadow page mapping that associates the GVPN with a physical page number (PPN). The MMU is also configured to determine whether a traced write indication is associated with the shadow page mapping and, if so, record update information identifying the targeted guest page mapping. The update information is used to reestablish coherence between the guest page mapping and the shadow page mapping. The MMU is further configured to perform the write access.03-08-2012
20120047348VIRTUALIZATION WITH FORTUITOUSLY SIZED SHADOW PAGE TABLES - One or more embodiments provides a shadow page table used by a virtualization software wherein at least a portion of the shadow page table shares computer memory with a guest page table used by a guest operating system (OS) and wherein the virtualization software provides a mapping of guest OS physical pages to machine pages.02-23-2012
20120042312PROCESS DEMAND PREDICTION FOR DISTRIBUTED POWER AND RESOURCE MANAGEMENT - Methods and systems for allocating resources in a virtual desktop resource environment are provided. A method includes making a prediction on the future demand for processes running on a distributed environment with several hosts. The prediction is based on the process demand history and includes the removal of historic process demand glitches. Further, the prediction is used to perform a cost and benefit analysis for moving a candidate process from one host to another, and the candidate process is moved to a different host when the cost and benefit analysis recommends such move. In another embodiment, the predictions on future process demand are used for distributed power management by putting hosts in stand-by mode when the overall demand decreases or by adding hosts to the distributed environment when the load increases.02-16-2012
20120042281SAME-DISPLAY COMPARISON OF CONTENT FOR DIFFERENT RENDITIONS OF A SINGLE COMPUTER PROGRAM - An method for use in a computer system for determining correspondence between at least two renditions of a single computer program includes enabling the identification of a selected screenshot related to navigation within the computer program and, as a response to the identification, accessing a reference screenshot captured during navigation within a first rendition and a corresponding screenshot captured during navigation within a second rendition. The reference screenshot and the corresponding screenshot are presented on a display, thereby enabling a same-display comparison of content of the reference and corresponding screenshots.02-16-2012
20120042034LIVE MIGRATION OF VIRTUAL MACHINE DURING DIRECT ACCESS TO STORAGE OVER SR IOV ADAPTER - A method is provided to migrate a virtual machine from a source computing machine to a destination computing machine comprising: suspending transmission of requests from a request queue disposed in source computing machine memory associated with the VM from the request queue to a VF; while suspending the transmission of requests, determining when no more outstanding responses to prior requests remain to be received; in response to a determination that no more outstanding responses to prior requests remain to be received, transferring state information that is indicative of locations of requests inserted to the request queue from the VF to a PF and from the PF to a memory region associated with a virtualization intermediary of the source computing machine. After transferring the state information to source computing machine memory associated with a virtualization intermediary, resuming transmission of requests from locations of the request queue indicated by the state information to the PF; and transmitting the requests from the PF to the physical storage.02-16-2012
20120041844ELASTIC LICENSING OF SOFTWARE IN A CLOUD ENVIRONMENT - In one aspect, a method includes publishing an object of a user such that another user can search for the object by means of a user interface. The object may be an application, an application group, an application component, and/or a service. The object runs on a platform. The platform may be a hypervisor, an application container, a mobile platform, and/or a computer. The method includes permitting another user to access the object based on a transacting for the object between the users. The transaction may involve a clone transaction, a grant transaction, an application component transaction or a service transaction. A tax may be levied based on the transaction. A scope of the access of the object to another user is based on a transaction protocol, which is based on the transacting between the users. The transaction protocol may include a payment scheme, a term, or a set of object rights.02-16-2012
20120036325MEMORY COMPRESSION POLICIES - Techniques are disclosed for managing memory within a virtualized system that includes a memory compression cache. Generally, the virtualized system may include a hypervisor configured to use a compression cache to temporarily store memory pages that have been compressed to conserve memory space. A “first-in touch-out” (FITO) list may be used to manage the size of the compression cache by monitoring the compressed memory pages in the compression cache. Each element in the FITO list corresponds to a compressed page in the compression cache. Each element in the FITO list records a time at which the corresponding compressed page was stored in the compression cache (i.e. an age). A size of the compression cache may be adjusted based on the ages of the pages in the compression cache.02-09-2012
20120030672MICROCLOUD PLATFORM DELIVERY SYSTEM - A cloud computing environment with the ability to deploy a web application that has been developed using one of a plurality of application frameworks and is configured to execute within one of a plurality of runtime environments can be delivered as a self-contained virtual machine disk image configured to launch in a virtualization environment. Upon request (or alternatively, in a pre-processing phase), a cloud computing platform provider can compose a virtual machine disk image comprising the cloud computing environment. The virtual machine disk image may be attached to any virtual machine, whether running on a personal computing device such as a laptop or in an infrastructure-as-a-service service provider to provide a cloud computing environment that is automatically configured to receive and deploy a web application.02-02-2012
20120030407SYSTEM AND METHOD FOR IMPROVING MEMORY LOCALITY OF VIRTUAL MACHINES - A system and related method of operation for migrating the memory of a virtual machine from one NUMA node to another. Once the VM is migrated to a new node, migration of memory pages is performed while giving priority to the most utilized pages, so that access to these pages becomes local as soon as possible. Various heuristics are described to enable different implementations for different situations or scenarios.02-02-2012
20120017031ROBUST LIVE MIGRATION USING SHARED FILESYSTEM - A method for transferring guest physical memory from a source host to a destination host during live migration of a virtual machine (VM) involves creating a file on a shared datastore, the file on the shared datastore being accessible to both the source host and the destination host. Pages of the guest physical memory are transferred from the source host to the destination host over a network connection and pages of the guest physical memory are written to the file so that the destination host can retrieve the written guest physical pages from the file.01-19-2012
20120017027METHOD FOR IMPROVING SAVE AND RESTORE PERFORMANCE IN VIRTUAL MACHINE SYSTEMS - Page data of a virtual machine is represented for efficient save and restore operations. One form of representation applies to each page with an easily identifiable pattern. The page is described, saved, and restored in terms of metadata reflective of the pattern rather than a complete page of data reflecting the pattern. During a save or restore operation, however, the metadata of the page is represented, but not the page data. Another form of representation applies to each page sharing a canonical instance of a complex pattern that is instantiated in memory during execution, and explicitly saved and restored. Each page sharing the canonical page is saved and restored as a metadata reference, without the need to actually save redundant copies of the page data.01-19-2012
20120011508MULTIPLE TIME GRANULARITY SUPPORT FOR ONLINE CLASSIFICATION OF MEMORY PAGES BASED ON ACTIVITY LEVEL - Activity level of memory pages is classified in virtual machine environment, so that processes such as live VM migration and checkpointing, among others, can be carried out more efficiently. Because each such hypervisor-based service may desire classification of activity levels of memory pages at different frequencies and different time granularities, the hypervisor supports methods to classify activity levels of memory pages for a plurality of time intervals.01-12-2012
20120011504ONLINE CLASSIFICATION OF MEMORY PAGES BASED ON ACTIVITY LEVEL - Activity level of memory pages is classified in virtual machine environment, so that processes such as live VM migration and checkpointing, among others, can be carried out more efficiently. The method includes the steps of scanning page table entries of hypervisor-managed page tables continuously over repeating scan periods to determine whether memory pages have been accessed or not, and for each memory page, determining an activity level of the memory page based on whether the memory page has been accessed or not since a prior scan and storing the activity level of the memory page. The activity level of the memory page may be represented by one or more bits of its page table entry and may be classified as having at least two states ranging from hot to cold.01-12-2012
20120005344Data Center Inventory Management Using Smart Racks - A system for managing physical and virtual inventory in a data center is disclosed. The system includes a resource management system for managing computing resources of the data center, an inventory management system for tracking physical locations of the plurality of hosts and the plurality of virtual machines in the data center and a smart rack for housing a plurality of hosts. The computing resources include a plurality of hosts and a plurality of virtual machines running on one or more of the plurality of virtual machines. The smart rack has sensors for detecting movement of each of the plurality of hosts in the data center. The smart rack also has a control unit to control the sensors and collecting data from sensors. The control unit is coupled to the inventory management system and configured to transmit the collected data to the inventory management system through a network. The plurality of hosts, the resource management system and the control unit are coupled together through the network.01-05-2012
20110320682COOPERATIVE MEMORY RESOURCE MANAGEMENT VIA APPLICATION-LEVEL BALLOON - Methods, systems, and computer programs for managing memory in a host where virtual machines (VMs) execute are presented. In one embodiment, a method includes an operation for determining which amount of heap memory has been reserved in a Java virtual machine (JVM) that is in excess of the heap memory needed by the JVM. If there is excess heap memory, a Java balloon agent reserves a Java object in the heap memory. Typically, the Java object will be the size of one or more memory pages in the host. Further, the Java balloon agent loads the Java object with a certain value, for example, by zeroing out the page of memory. When a virtual machine monitor (VMM) in the host detects that a machine physical memory page associated with the Java object has the first value, then the VMM frees the machine physical memory page to make the memory available to other VMs or to other processes executing in the host.12-29-2011
20110302415SECURING CUSTOMER VIRTUAL MACHINES IN A MULTI-TENANT CLOUD - A trusted virtualization platform protects sensitive customer data during operation of virtual machines in a multi-tenant cloud computing center. The trusted virtualization platform limits administrator access to the data and state of the virtual machines running thereon, reports any changes made thereto, and requires keys provided by the customer or a trusted third party of the customer to perform management operations on the virtual machines. By requiring cloud computing centers to use such trusted virtualization platforms, customers uploading their virtual machines into the cloud computing center can be assured that cloud administrators will not be able to access or tamper with their private data. Furthermore, customers can directly audit all important state or configuration changes for their virtual machines as the trusted virtualization platform can be configured to report all such changes according to a security policy set by the customer.12-08-2011
20110302389MEMORY MANAGEMENT METHODS IN A COMPUTER SYSTEM WITH SHARED MEMORY MAPPINGS - A memory management sub-system includes code executable by a processor fir performing selecting a plurality of contexts, and selecting a sample of the separately allocable portions of an address space for each of the contexts. For each of the selected allocable portions, a corresponding portion of the host memory to which the selected allocable portion is mapped is determined, and a count corresponding to a number of separately allocable portions of any context that are commonly mapped to the corresponding portion of the host memory. For each context, a metric is computed that is a function of the counts for that context. Host memory is allocated among the contexts at least in part based on their respective metrics.12-08-2011
20110302330SAFELY SHARING USB DEVICES - Described herein are systems and methods for preventing a user mode USB driver from performing IOCTL operations other than read-safe IOCTLs on a USB device that has been claimed by a kernel mode driver or is in use by another user mode USB driver. In one method, it is determined whether a kernel mode USB driver will claim a device or whether the device will be available to be claimed by user mode USB drivers. In the event the device is claimed by a kernel mode USB driver, user mode USB drivers will be prevented from claiming the device. In the event the device is available for use by user mode USB drivers, but has been opened for write by one user mode USB driver, all other user mode USB drivers will be prevented from claiming the device. All IOCTL operations other than read-safe IOCTLs will be prevented from being performed by a user mode USB driver unless that USB driver has claimed the device.12-08-2011
20110289345METHOD AND SYSTEM FOR ENABLING CHECKPOINTING FAULT TOLERANCE ACROSS REMOTE VIRTUAL MACHINES - A checkpointing fault tolerance network architecture enables a backup computer system to be remotely located from a primary computer system. An intermediary computer system is situated between the primary computer system and the backup computer system to manage the transmission of checkpoint information to the backup VM in an efficient manner. The intermediary computer system is networked to the primary VM through a high bandwidth connection but is networked to the backup VM through a lower bandwidth connection. The intermediary computer system identifies updated data corresponding to memory pages that have been least recently modified by the primary VM and transmits such updated data to the backup VM through the low bandwidth connection. In such manner, the intermediary computer system economizes the bandwidth capacity of the low bandwidth connection, holding back updated data corresponding to more recently modified memory pages, since such memory pages may be more likely to be updated again in the future.11-24-2011
20110283278USER INTERFACE FOR MANAGING A DISTRIBUTED VIRTUAL SWITCH - A user interface for managing allocations of network resources in a virtualized computing environment provides a graphical overview of the virtual computing environment that allows the user to visualize the virtual network, including the connections between the virtual network adapters and the uplink port groups that provide physical network resources for the virtual machines included in the virtualized computing environment. The user interface also provides graphical elements that allow the user to modify the virtual network, to migrate virtual machines from individual virtual switches to a distributed virtual switch, and/or to modify the arrangement of physical network adapters that provide network backing for the virtual machines. By providing these features, the user interface according to one or more embodiments of the present invention can allow the user to efficiently and safely manage the virtual network in the virtual computing environment.11-17-2011
20110276773METHOD AND SYSTEM FOR GENERATING CONSISTENT SNAPSHOTS FOR A GROUP OF DATA OBJECTS - Snapshots that are consistent across a group of data objects are generated. The snapshots are initiated by a coordinator, which transmits a sequence of commands to each storage node hosting a data object within a group of data objects. The first command prepares a data object for a snapshot. After a data object has been successfully prepared, an acknowledgment is sent to the coordinator. Once all appropriate acknowledgments are received, the coordinator sends a command to confirm that a snapshot has been created for each data object in the respective group. After receiving this confirmation, the coordinator takes action to confirm or record the successful completion of the group-consistent snapshot.11-10-2011
20110276741MAINTAINING REVERSE MAPPINGS IN A VIRTUALIZED COMPUTER SYSTEM - For a virtual memory of a virtualized computer system in which a virtual page is mapped to a guest physical page which is backed by a machine page and in which a shadow page table entry directly maps the virtual page to the machine page, reverse mappings of guest physical pages are optimized by removing the reverse mappings of certain immutable guest physical pages. An immutable guest physical memory page is identified, and existing reverse mappings corresponding to the immutable guest physical page are removed. New reverse mappings corresponding to the identified immutable guest physical page are no longer added.11-10-2011
20110265168POLICY ENGINE FOR CLOUD PLATFORM - A policy engine is situated between the communications path of a cloud computing environment and a user of the cloud computing environment to comply with an organization's policies for deploying web applications in the cloud computing environment. The policy engine intercepts communications packets to the cloud computing environment from a user, such as a web application developer, for example, in preparation for deploying a web application in the cloud computing environment. The policy engine identifies commands corresponding to the communications packets and directs the communications packets to appropriate rules engines corresponding to such commands in order to execute rules to comply with an organization's policies. Upon completion of execution of the rules, the communications packets are forwarded to the cloud computing environment if they comply with the policies.10-27-2011
20110265164CLOUD PLATFORM ARCHITECTURE - A cloud computing environment provides the ability to deploy a web application that has been developed using one of a plurality of application frameworks and is configured to execute within one of a plurality of runtime environments. The cloud computing environment receives the web application in a package compatible with the runtime environment (e.g., a WAR file to be launched in an application server, for example) and dynamically binds available services by appropriately inserting service provisioning data (e.g., service network address, login credentials, etc.) into the package. The cloud computing environment then packages an instance of the runtime environment, a start script and the package into a web application deployment package, which is then transmitted to an application (e.g., container virtual machine, etc.). The application container unpacks the web application deployment package, installs the runtime environment, loads the web application package into the runtime environment and starts the start script, thereby deploying the web application in the application container.10-27-2011
20110265083FILE SYSTEM INDEPENDENT CONTENT AWARE CACHE - A server supporting the implementation of virtual machines includes a local memory used for caching, such as a solid state device drive. During I/O intensive processes, such as a boot storm, a “content aware” cache filter component of the hypervisor of the server first accesses a cache structure in a content cache device to determine whether data blocks have been stored in the cache structure prior to requesting the data blocks from a networked disk array via a standard I/O stack of the hypervisor. The content aware cache filter component is implemented in an I/O virtualization layer of the standard I/O stack that sits above a file system layer of the standard I/O stack, such that any file system protocol may be implemented in the file system layer.10-27-2011
20110265081DROPLET EXECUTION ENGINE FOR DYNAMIC SERVER APPLICATION DEPLOYMENT - A cloud computing environment provides the ability to deploy a web application that has been developed using one of a plurality of application frameworks and is configured to execute within one of a plurality of runtime environments. The cloud computing environment receives the web application in a package compatible with the runtime environment (e.g., a WAR file to be launched in an application server, for example) and dynamically binds available services by appropriately inserting service provisioning data (e.g., service network address, login credentials, etc.) into the package. The cloud computing environment then packages an instance of the runtime environment, a start script and the package into a web application deployment package, which is then transmitted to an application (e.g., container virtual machine, etc.). The application container unpacks the web application deployment package, installs the runtime environment, loads the web application package into the runtime environment and starts the start script, thereby deploying the web application in the application container.10-27-2011
20110265077RAPID UPDATING OF CLOUD APPLICATIONS - A method for facilitating the uploading of web applications to a cloud computing environment utilizes hashes or fingerprints of each file in a web application. Prior to submitting all the files of a web application to the cloud computing environment for deployment, fingerprints of each file in the web application are transmitted to the cloud computing environment to assess whether the cloud computing environment may already possess the file as a result of receiving it from previously uploaded web applications.10-27-2011
20110261055Method and Apparatus for Visualizing the Health of Datacenter Objects - Embodiments of the present invention provide a dashboard that displays an overview of a datacenter's health which helps prioritize, monitor, and troubleshoot problems. In particular, one embodiment is a method for visualizing the health of datacenter objects which includes displaying datacenter objects on a scatterplot of a dashboard wherein one axis of the scatterplot corresponds to problem severity and another axis of the scatterplot corresponds to time.10-27-2011
20110258626NOTIFYING SOFTWARE COMPONENTS USING A SHARED PHYSICAL STORAGE MEDIUM - Techniques for updating a cached version of data in a computer system upon a change of the data as stored in a shared storage system networked to the computer system are described. In accordance with such techniques, a notification from the shared storage system is received at the computer system upon attempting to access the shared storage system. The computer system then determines that the notification occurred due to an unregistering of the computer system's access to the shared storage system by a second computer system that has updated the data stored in the shared storage system. As such, the computer system re-registers its access to the shared storage system and updates the cached version of the data with the data in the shared storage system that was updated by the second computer system.10-20-2011
20110258625GENERATING AND USING CHECKPOINTS IN A VIRTUAL COMPUTER SYSTEM - To generate a checkpoint for a virtual machine (VM), first, while the VM is still running, a copy-on-write (COW) disk file is created pointing to a parent disk file that the VM is using. Next, the VM is stopped, the VM's memory is marked COW, the device state of the VM is saved to memory, the VM is switched to use the COW disk file, and the VM begins running again for substantially the remainder of the checkpoint generation. Next, the device state that was stored in memory and the unmodified VM memory pages are saved to a checkpoint file. Also, a copy may be made of the parent disk file for retention as part of the checkpoint, or the original parent disk file may be retained as part of the checkpoint. If a copy of the parent disk file was made, then the COW disk file may be committed to the original parent disk file.10-20-2011
20110239213VIRTUALIZATION INTERMEDIARY/VIRTUAL MACHINE GUEST OPERATING SYSTEM COLLABORATIVE SCSI PATH MANAGEMENT - A method of direct access by a virtual machine (VM) running on a host machine to physical storage via a virtual function (VF) running on an input/output (IO) adapter comprising: providing by a virtualization intermediary running on the host machine an indication of an active path associated with a virtual storage device; obtaining by a guest driver running within a guest operating system of the VM the stored indication of the active path from the shared memory region; dispatching an IO request by the guest driver to the VF that includes an indication of the active path; and sending by the VF an IO request that includes the indicated active path.09-29-2011
20110231857CACHE PERFORMANCE PREDICTION AND SCHEDULING ON COMMODITY PROCESSORS WITH SHARED CACHES - A method is described for scheduling in an intelligent manner a plurality of threads on a processor having a plurality of cores and a shared last level cache (LLC). In the method, a first and second scenario having a corresponding first and second combination of threads are identified. The cache occupancies of each of the threads for each of the scenarios are predicted. The predicted cache occupancies being a representation of an amount of the LLC that each of the threads would occupy when running with the other threads on the processor according to the particular scenario. One of the scenarios is identified that results in the least objectionable impacts on all threads, the least objectionable impacts taking into account the impact resulting from the predicted cache occupancies. Finally, a scheduling decision is made according to the one of the scenarios that results in the least objectionable impacts.09-22-2011
20110231696Method and System for Cluster Resource Management in a Virtualized Computing Environment - Methods and systems for cluster resource management in virtualized computing environments are described. VM spares are used to reserve (or help discover or otherwise obtain) a set of computing resources for a VM. While VM spares may be used for a variety of scenarios, particular uses of VM spares include using spares to ensure resource availability for requests to power on VMs as well as for discovering, obtaining, and defragmenting the resources and VMs on a cluster, e.g., in response to requests to reserve resources for a VM or to respond to a notification of a failure for a given VM.09-22-2011
20110231440APPLICATION SPECIFIC RUNTIME ENVIRONMENTS - Systems and methods of executing an application in an application specific runtime environment are disclosed. The application specific runtime environment is defined by an application environment specification to include a minimal or reduced set of software resources required for execution of the application. The application environment is generated by determining software resource dependencies and is used to provision the application specific runtime environment in real-time in response to a request to execute the application. Use of the application specific runtime environment allows the application to be executed using fewer computing resources, e.g., memory.09-22-2011
20110225205MULTI-QUERY OPTIMIZATION - A database query optimization method is provided for database queries that include predicates, the queries being directed to at least one database table having data in rows and columns. The method includes associating a lineage bit set with each row of the database table, the lineage bit set providing a binary predicate state indication whether each predicate is met or are not met by data in the row. A dependency bit set is established to provide a binary indication of the predicates that are included in each query. Queries are applied against the database table by a logical operation between the lineage bit set and the dependency bit set. A database query optimization data structure includes a lineage bit set associated with each row in the database table. The lineage bit set provides a binary predicate state indication whether each predicate is met or are not met by data in the row. The data structure further includes a dependency bit set that provides a binary indication of the predicates included in each query.09-15-2011
20110219447Identification of Unauthorized Code Running in an Operating System's Kernel - Computer implemented methods, system and apparatus for managing execution of a running-page in a virtual machine include associating an execution trace code with the running page by a security virtual machine. The execution trace code generates a notification upon initiation of the execution of the running page by the virtual machine. The notification is received by the security virtual machine running independent of the virtual machine executing the running-page. The running page associated with the execution trace code is validated by the security virtual machine as authorized for execution. An exception is generated if the running-page is not authorized for execution. The generated exception is to prevent the execution of the running page in the virtual machine.09-08-2011
20110219433TASK-BASED ACCESS CONTROL IN A VIRTUALIZATION ENVIRONMENT - Methods, systems, and techniques for task-based access control are provided. Example embodiments provide a task-based access control system “TBACS,” which provides task-based permissions management using proxy task objects. In one example embodiment, the proxy task objects encapsulate activities, comprising one or more privileges, each associated with an object upon which the privilege can act. In some examples, proxy task objects may be used with a virtualization infrastructure to delegate permissions to delegate users, real or automated. Proxy task objects may also be associated with their own user interfaces for performance of the corresponding activities.09-08-2011
20110218730Managing a Datacenter Using Mobile Devices - One embodiment of the present invention is a method for managing a datacenter using a mobile device, which method includes: (a) in response to a user request, the mobile device causing an identification prober to obtain information from one or more of a plurality of identification providers disposed at predetermined locations in the datacenter, and determining a mobile device location in the datacenter therefrom; (b) the mobile device requesting a datacenter map from a datacenter management system, displaying at least a portion of the map on a mobile device display, and displaying the mobile device location on the at least a portion of the map; and (c) the mobile device obtaining an equipment location of an equipment in the datacenter from the datacenter management system, displaying directions from the mobile device location to the equipment location, and displaying the equipment location on the at least a portion of the map if it fits in the display.09-08-2011
20110213765Comprehensive, Relevant, and Dynamic Data Searching in a Virtualization Environment - A method includes indexing data and/or metadata in online virtual machines (VMs), offline VMs, virtual applications, and/or snapshots thereof on one or more host server(s) in a virtualization environment through a search architecture in the virtualization environment. The online VMs are VMs that are powered on, and the offline VMs are VMs that are powered off. The method also includes maintaining a database of the indexed data and/or metadata in the online VMs, the offline VMs, the virtual applications, and/or the snapshots thereof to enable a comprehensive search result to a search query through the search architecture. The database is associated with the search architecture.09-01-2011
20110197090Error Reporting Through Observation Correlation - A software component is executed to carry out a task, the task including a subtask. An external function is called to perform the subtask, the external function executing in a separate thread or process. The component receives an observation recorded by the external function, the observation including an identifier of a possible error condition and instance data associated with the possible error condition. The possible error condition being a cause of the failure of the external function to carry out the subtask. If the task cannot be completed, then a new observation is recorded along with the received observation, the new observation being related to a possible error condition of the component, which is a cause of the failure of the component to carry out the task. When the task can be completed despite the failure of the external function, the observation recorded by the external function is cleared.08-11-2011
20110194563Hypervisor Level Distributed Load-Balancing - A method and an apparatus of hypervisor level distributed load-balancing are disclosed. In one aspect, a method includes determining a location to direct a packet. The method also includes distributing the packet to process the packet through a processor. The method also includes assigning the packet to a guest such that a distribution of the packet to the guest is based on an algorithm. The method further includes altering a first destination address of the packet to a second destination address. The second destination address may be based on a virtual network interface of the guest. The method further includes convincing the guest the packet is from a virtual switch based on the second destination address. In addition, the method includes adjusting the distribution of the packet to the guest. The method also includes reducing a load of the guest through the adjustment.08-11-2011
20110191834Maintaining the Domain Access of a Virtual Machine - A method for maintaining domain access of a virtual machine is described. According to one embodiment, a generation of a new computer account password by an operating system is identified. The new computer account password is copied to an auxiliary storage location. An existing computer account password is replaced with the new computer account password when it is determined that a file system of the computer has been restored to a previous state. The copying of the new computer account password may be performed in response to the generation of the new computer account password. The replacing of the existing computer account password may be performed in response to the restoring of file system to the previous state.08-04-2011
20110191477System and Method for Automatically Optimizing Capacity Between Server Clusters - A resource management system for a virtual machine computing environment includes a software component that optimizes capacity between server clusters or groups by monitoring the capacity of server clusters or groups and automatically adding and removing host systems to and from server clusters or groups. The software component may be implemented at a server cluster management level to monitor and execute host system moves between server clusters and/or at a higher level in the resource management hierarchy. At the higher level, the software component is configured to monitor and execute host system moves between sets of server clusters being managed by different server cluster management agents.08-04-2011
20110191389DISTRIBUTED DATA MANAGEMENT SYSTEM - A distributed data management system has multiple virtual machine nodes operating on multiple computers that are in communication with each other over a computer network. Each virtual machine node includes at least one data store or “bucket” for receiving data. A digital hash map data structure is stored in a computer readable medium of at least one of the multiple computers to configure the multiple virtual machine nodes and buckets to provide concurrent, non-blocking access to data in the buckets, the digital hash map data structure including a mapping between the virtual machine nodes and the buckets. The distributed data management system employing dynamic scalability in which one or more buckets from a virtual machine node reaching a memory capacity threshold are transferred to another virtual machine node that is below its memory capacity threshold.08-04-2011
20110185433CONSTRAINT INJECTION SYSTEM FOR IMMUNIZING SOFTWARE PROGRAMS AGAINST VULNERABILITIES AND ATTACKS - A constraint is inserted into a program to address a vulnerability of the program to attacks. The constraint includes a segment of code that determines when the program has been asked to execute a “corner case” which does not occur in normal operations. The constraint code can access a library of detector and remediator functions to detect various attacks and remediate against them. Optionally, the detector can be employed without the remediator for analysis. The context of the program can be saved and restored if necessary to continue operating after remediation is performed. The constraints can include descriptors, along with machine instructions or byte code, which indicate how the constraints are to be used.07-28-2011
20110185355Accessing Virtual Disk Content of a Virtual Machine Without Running a Virtual Desktop - Methods, systems, and techniques for facilitating access to content stored remotely, for example, as part of a virtual machine infrastructure or elsewhere in a networked environment, using a uniform mechanism are provided. Example embodiments provide an Enhanced Virtual Desktop Management Server/System with a Content Abstraction Layer which enables users to access their data stored as part of a virtual machine environment, or replicated otherwise on a network, using a generic API. The API can be incorporated into a web browser or other third party interface to provide access to the users' data without needing to remote a bitmap representation of a virtual desktop display. Accordingly, users can access their data, applications, and settings regardless of the type of access device and regardless of whether the corresponding virtual desktop is running in the data center, provisioned in the datacenter but running on a client device, or not running at all.07-28-2011
20110185292Accessing Virtual Disk Content of a Virtual Machine Using a Control Virtual Machine - Methods, systems, and techniques for facilitating access to content stored remotely, for example, as part of a virtual machine infrastructure or elsewhere in a networked environment, using a uniform mechanism are provided. Example embodiments provide an Enhanced Virtual Desktop Management Server/System with a Content Abstraction Layer which enables users to access their data stored as part of a virtual machine environment, or replicated otherwise on a network, using a generic API. The API can be incorporated into a web browser or other third party interface to provide access to the users' data without needing to remote a bitmap representation of a virtual desktop display. Accordingly, users can access their data, applications, and settings regardless of the type of access device and regardless of whether the corresponding virtual desktop is running in the data center, provisioned in the datacenter but running on a client device, or not running at all.07-28-2011
20110185232DYNAMIC CONFIGURATION OF VIRTUAL MACHINES - A computer implemented method for configuring virtual internal networks for testing is provided, such that affects of testing are internally isolated. The method includes deploying a virtual firewall and deploying a public switch enabling access to an external local area network through a first interface of the virtual firewall. A private switch enabling access to a plurality of virtual machines through a second interface of the virtual firewall is provided. The plurality of virtual machines defines a private network behind the firewall. A network address is assigned to the virtual firewall and a private address is assigned to each of the virtual machines. The plurality of virtual machines is then tested through a test launcher in communication with the public switch.07-28-2011
20110184993Independent Access to Virtual Machine Desktop Content - Methods, systems, and techniques for facilitating access to content stored remotely, for example, as part of a virtual machine infrastructure or elsewhere in a networked environment, using a uniform mechanism are provided. Example embodiments provide an Enhanced Virtual Desktop Management Server/System with a Content Abstraction Layer which enables users to access their data stored as part of a virtual machine environment, or replicated otherwise on a network, using a generic API. The API can be incorporated into a web browser or other third party interface to provide access to the users' data without needing to remote a bitmap representation of a virtual desktop display. Accordingly, users can access their data, applications, and settings regardless of the type of access device and regardless of whether the corresponding virtual desktop is running in the data center, provisioned in the datacenter but running on a client device, or not running at all.07-28-2011
20110184911DATA REPLICATION METHOD - To ensure data consistency for a new data replica created for a computing system, the transmission and receipt of messages altering the data are monitored and replication of the data is permitted when all changes to the data that have been transmitted to the data have been received.07-28-2011
20110179416Virtual Machine Access to Storage Via a Multi-Queue IO Storage Adapter With Optimized Cache Affinity and PCPU Load Balancing - A method is provided for use in a system that includes a host machine that includes multiple physical CPUs (PCPUs) and at least two cache nodes that are shared by different sets of the PCPUs, comprising: creating in a memory device multiple sets of lanes each lane set associated with a respective PCPU set; tracking levels of processing activity of the PCPUs of each PCPU set; using an MSIX vector value to associate lanes with PCPUs; receiving a IO request from any given PCPU from among the multiple PCPUs; and assigning the IO request to a respective lane based at least in part upon the PCPU set associated with the lane and PCPU processing activity levels.07-21-2011
20110179414CONFIGURING VM AND IO STORAGE ADAPTER VF FOR VIRTUAL TARGET ADDRESSING DURING DIRECT DATA ACCESS - A method is provided for use in a system that includes a host computing machine configured to implement a virtualization intermediary and that includes a physical storage adapter, the configures a virtual machine (VM) and a virtual function (VF) to support IO operations to physical storage through a direct IOV path to the VF of the physical storage adapter, the method comprises: creating by the virtualization intermediary mapping information that includes a first mapping between virtual disks and physical regions of physical storage and that includes a second mapping between virtual disks and virtual disk addresses; transmitting the mapping information from the virtualization intermediary over the physical storage adapter from a physical function (PF) of the physical storage adapter to the VF; associating a virtual port with the mapping information within the virtualization intermediary; binding the virtual port to the VF; communicating virtual disk addresses indicated within the second mapping within the transmitted mapping information for the allocated virtual disks to the VM.07-21-2011
20110179413Guest/Hypervisor Interrupt Coalescing for Storage Adapter Virtual Function in Guest Passthrough Mode - A system and method are provided that involve a host computing machine and an SR IOV storage adapter in which the host machine hosts a virtual machine having a guest operating system (guest) coupled for direct passthrough IOV data path and also hosts a virtualization intermediary; a guest operating system (guest) and a virtualization intermediary exchange information concerning IO completions through a shared memory space; the guest writes information to a shared memory space that is indicative of whether an IO completion queue has reached a fill level since the most recently dispatched interrupt at which it is unsafe to coalesce an interrupt; the virtualization intermediary writes information to the shared memory space that is indicative of the interrupt most recently delivered to the guest; the virtualization intermediary reads the information written by the guest to the shared memory space that is indicative of whether an IO completion queue has reached a fill level since the most recently dispatched interrupt at which it is unsafe to coalesce an interrupt; the guest reads the information written to the shared memory space that is indicative of the interrupt most recently delivered to the guest; virtual interrupt coalescing determinations are made based upon the information shred through the shared memory space.07-21-2011
20110179214VIRTUAL TARGET ADDRESSING DURING DIRECT DATA ACCESS VIA VF OF IO STORAGE ADAPTER - A method of virtual machine (VM) access to physical storage through a direct path to a virtual function (VF) of a storage adapter, the method for use in a system that includes a host computing machine configured to implement a virtualization intermediary and the virtual machine (VM) and that includes the storage adapter the method, comprising: sending virtual SCSI IO request from the VM to the physical storage that identifies a virtual disk address; mapping within the VF the identified virtual address to at least one physical region of the physical storage; creating within the VF a physical SCSI IO request that identifies a physical address for the mapped-to physical region; sending the physical SCSI IO request from the VF to the physical storage.07-21-2011
20110179082MANAGING CONCURRENT FILE SYSTEM ACCESSES BY MULTIPLE SERVERS USING LOCKS - Atomic test and set (ATS) operations are carried out to perform lock operations that allow a node to acquire or release a lock to a resource of a shared file system that is stored in a data storage unit (DSU) and update its liveness information. Each ATS operation includes the step of comparing contents accessed and read through the shared file system and contents stored at a particular logical block number of the DSU. If the two contents match, updates to the contents of the lock or the liveness information are permitted.07-21-2011
20110173303Cluster Configuration Through Host Ranking - Computer implemented methods, system and apparatus for configuring a cluster using a plurality of hosts include identifying a plurality of features for forming the cluster. The plurality of features define requirements needed in a host for forming the cluster. A plurality of hosts are identified to be part of the cluster. A compatibility analysis is executed for each of the identified hosts wherein a ranking is provided for each of the identified hosts. A plurality of suggested adjustments to particular hosts are presented to enable the particular hosts to be compatible with the features requirements. A configuration template is constructed for the hosts in the cluster that are compatible with the requirements. The hosts are configured for the cluster using the configuration settings in the configuration template. The configured hosts enable the features in the cluster.07-14-2011
20110173302Cluster Configuration - Computer implemented methods, system and apparatus for configuring a cluster using a plurality of hosts include identifying a plurality of features for forming the cluster. The plurality of features define requirements needed in a host for forming the cluster. A plurality of hosts are identified to be part of the cluster. A compatibility analysis is executed for each of the identified hosts. A plurality of suggested adjustments to particular hosts are presented to enable the particular hosts to be compatible with the features requirements. A configuration template is constructed for the hosts in the cluster that are compatible with the requirements. The hosts are configured for the cluster using the configuration settings in the configuration template. The configured hosts enable the features in the cluster.07-14-2011
20110173239Web Application Record-Replay System and Method - A web application includes a record-replay library component to record sessions into a log file and subsequently replay the recorded session based upon the log file. The record-replay library interacts with the runtime environment of the web application to intercept events that correspond to data inputs received by the web application, such as user inputs, remote server inputs and inputs from the computer system on which the runtime environment is executing. On replay, the log file is read by the record-replay library and events are programmatically dispatched to the runtime environment by the record-replay library based on the log entries in order to simulate the various data input events that occurred during the recorded session.07-14-2011
20110173184Extensible Tree Views for Managing Datacenter Resources - An example embodiment provides a method for a GUI for client software that is a part of an application program for managing datacenter resources. The method includes receiving as input one or more specifications, where each specification includes a hierarchy of queries. The method determines one or more target data sources for each query in each hierarchy. Then the method issues the query to each target data source determined for the query, after adapting the query to a format that is acceptable to the target data source. The method then receives the results of each query from the target data source, integrates the results into a hierarchy, and submits the hierarchy to the client software for display in a tree view in the GUI.07-14-2011
20110167421Dynamic Scaling of Management Infrastructure in Virtual Environments - Methods, systems, and computer programs for performing management tasks in a virtual infrastructure are presented. The method includes detecting an increase, beyond a predetermined threshold, in the number of tasks waiting to be processed by a first virtual center (VC), which executes as a virtual machine (VM) in the virtual infrastructure. Further, the method includes operations for spawning one or more additional VCs executing as VMs in the virtual infrastructure and for distributing the managed objects handled by the first VC among the additional VCs. The tasks waiting to be processed are reallocated among the first VC and the additional VCs, and the reallocated tasks are then processed by the corresponding VC.07-07-2011
20110167196Method and System for Frequent Checkpointing - A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned.07-07-2011
20110167195Method and System for Frequent Checkpointing - A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned.07-07-2011
20110167194Method and System for Frequent Checkpointing - A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned.07-07-2011
20110145632TRANSPARENT RECOVERY FROM HARDWARE MEMORY ERRORS - A method is provided for recovering from an uncorrected memory error located at a memory address as identified by a memory device. A stored hash value for a memory page corresponding to the identified memory address is used to determine the correct data. Because the memory device specifies the location of the corrupted data, and the size of the window where the corruption occurred, the stored hash can be used to verify memory page reconstruction. With the known good part of the data in hand, the hashes of the pages using possible values in place of the corrupted data are calculated. It is expected that there will be a match between the previously stored hash and one of the computed hashes. As long as there is one and only one match, then that value, used in the place of the corrupted data, is the correct value. The corrupt data, once replaced, allows operation of the memory device to continue without needing to interrupt or otherwise affect a system's operation.06-16-2011
20110138383Space Efficient Virtual Machines - A method and a system of making a virtual machine space efficient are disclosed. The virtual machine includes a virtual disk. The method includes creating a temporary virtual disk and adding the temporary virtual disk to the virtual machine. The temporary virtual disk works in conjunction with the virtual disk. The virtual machine is configured to store temporary files in the temporary virtual disk rather than the virtual disk.06-09-2011
20110131573Centralized Computer Network Virtualization Environment - A method and system include compatibly interfacing a suitably adapted central switch in a computer network virtualization environment to one or more user-end peripheral device(s) to dispense with a need for a user-end thin client. The method and system also include appropriately routing a data associated with a direct and exclusive communication between a virtual machine on a host server including a number of virtual machines and the one or more user-end peripheral device(s) using the central switch.06-02-2011

Patent applications by VMWARE, INC.