VDI Storage overcommit and rebalancing

US 8 307 187B2

drawing #0

Show all 8 drawings

A method for managing storage for a desktop pool is described. The desktop pool includes a plurality of virtual machines (VMs), each VM having at least one virtual disk represented as a virtual disk image file on one of a plurality of datastores associated with the desktop pool. To identify a target datastore for a VM, a weight of each datastore is calculated. The weight may be a function of a virtual capacity of the datastore and the sum of maximum sizes of all the virtual disk image files on the datastore. The virtual capacity is a product of the data storage capacity of the datastore and an overcommit factor assigned to the datastore. The target datastore is selected as the datastore having the highest weight. The VM may is moved to or created on the target datastore.

PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.

Start free trial Sign in

Tip: Select text to highlight, annotate, search, or share the selection.

Claims

1. A method for managing storage for a desktop pool, the desktop pool comprising a plurality of VMs, each having at least one virtual disk represented as a virtual disk image file on one of a plurality of datastores associated with the desktop pool, the datastores each being a logical storage volume of one or more storage system in electronic communication with a virtual desktop manager server that performs the method, the method comprising:
calculating a weight of each datastore, the weight being a function of a virtual capacity of the datastore and the sum of maximum sizes of virtual disk image files on the datastore, the virtual capacity being a product of the data storage capacity of the datastore and an overcommit factor assigned to the datastore, the overcommit factor being selected by an administrator;
selecting as a target datastore, one datastore of the plurality of datastores, the selecting being based on the weights of the datastores;
placing data files for a VM that is a member of the desktop pool on the target datastore.

Show 10 dependent claims

12. A non-transitory machine readable storage medium for managing storage for a desktop pool, the desktop pool comprising a plurality of VMs, each having at least one virtual disk represented as a virtual disk image file on one of a plurality of datastores associated with the desktop pool, the datastores each being a logical storage volume of one or more storage system in electronic communication with a virtual desktop manager server that performs the method, the machine readable storage medium comprising program instructions causing a computer system to implement a method, the method comprising:
calculating a weight of each datastore, the weight being a function of a virtual capacity of the datastore and the sum of maximum sizes of virtual disk image files on the datastore, the virtual capacity being a product of the data storage capacity of the datastore and an overcommit factor assigned to the datastore, the overcommit factor being selected by an administrator;
selecting as a target datastore, one datastore of the plurality of datastores, the selecting being based on the weights of the datastores;
placing data files for a VM that is a member of the desktop pool on the target datastore.

Show 10 dependent claims

Description

This patent application claims benefit of U.S. Provisional Patent Application 61/096,698, filed Sep. 12, 2008, which is wholly incorporated herein by reference.

BACKGROUND

Virtual Desktop Infrastructure (VDI) refers to a system of providing complete centrally-managed desktops to users using computer virtualization technology. VDI is used to create a large number of independent computing environments for a large number of users. The desktop users may be grouped together based on similar software and computing needs. The desktops themselves are correspondingly grouped together in desktop pools that may be provisioned, managed, and deleted as single entities. In VDI, each desktop is exported to the user from a virtual machine that is assigned to the user. The desktop pools are associated with resources in the datacenter, including, but not limited to, compute resources, memory, network, and storage.

Computer cloning is used to provide independent virtual machines to different users. The clones are created by copying a master virtual disk image file (sometimes called a template) that has all the necessary software required for all users in the user pool, except that each clone can have its own identity (i.e., network address, computer name, etc.). In this way, VDI enables users, from remote terminals, to access virtualized desktop computers, in the form of virtual machines, so as to be able to have working sessions that are isolated from the sessions of other users and that can be stored and even migrated to different physical platforms as the need arises.

Traditional cloning processes create full copies of the master virtual disk image file, which may then be personalized by giving each clone its own identity. The master virtual disk image file is designed to contain the operating system and software, as well as any associated data files and default user settings, that each user is expected to need. Recent advances in cloning technologies have introduced new ways of fast cloning using thin disks. The term thin disk is used herein to refer to a representation of a disk image whose logical size is greater than its physical size. In other words, the amount of addressable space provided by the virtual disk represented by the virtual disk image file is greater than the size of the virtual disk image file itself. Examples of thin disks include sparse disks and delta disks. A sparse disk is a disk image that defines the contents of a disk, but does not include empty sector data. A delta disk, also referred to as a REDO log or copy-on-write disk, contains the differences between the disk itself and a master or parent disk image. A delta disk can be significantly smaller than the logical size of the disk when the delta disk has much of the same content as the master image.

Thin disk cloning reduces the initial space occupied by the virtual machines on storage. A virtual machine typically includes configuration and state information plus the disk data, with the disk data typically being most of the data that represents the virtual machine. A thin clone is a representation (e.g., in a file) of a cloned virtual machine that includes one or more thin disk images for the cloned virtual machine. U.S. patent application Ser. No. 12/058,269, filed Mar. 28, 2008, describes technology for separating the computer operating system and user personality into different virtual disks (REDO disks or thin disks) on storage. With this technology, a delta (or redo) file is created that defines the differences from a master file.

Because the virtual disk(s) for each desktop will grow over time, the desktop provisioning software leaves some growth buffer for virtual desktops on the physical data store. Additionally, if a virtual desktop continues to grow over time, it can occupy the space required for a similar full clone. Desktop management software may monitor and contain the growth of virtual desktops.

SUMMARY

A desktop pool includes a plurality of virtual machines (VMs), each VM having at least one virtual disk represented as a virtual disk image file on one of a plurality of datastores associated with the desktop pool. To identify a target datastore for a VM, a weight of each datastore is calculated. The weight may be a function of a virtual capacity of the datastore and the sum of maximum sizes of all the virtual disk image files on the datastore. The virtual capacity is a product of the data storage capacity of the datastore and an overcommit factor assigned to the datastore. The target datastore is selected as the datastore having the highest weight. The VM is moved to or created on the target datastore.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows, by way of example, a virtual desktop infrastructure having a plurality of remote users accessing virtual machines running on physical computer systems.

FIG. 2 shows a conceptual diagram illustrating how a system having a compute cluster may be logically connected to different storage systems.

FIG. 3 shows, by way of example, a storage allocation screen for one desktop pool.

FIG. 4 shows a flowchart that illustrates by way of example a method for calculating the weights of all the datastores available to a desktop pool.

FIG. 5 shows a flowchart illustrating by way of example a procedure for creating a desktop pool having a set of VM clones.

FIGS. 6A and 6B show a flowchart illustrating by way of example a procedure for balancing datastores assigned to a desktop pool.

DETAILED DESCRIPTION

A system of software components are described herein that provide an efficient solution for managing thin provisioned desktop pools. As will be explained in detail below, virtual machine (VM) technology and modern storage hardware allow for the creation of VMs having physical storage requirements that are only a fraction of the virtual disk size that is required by the virtual machine at clone creation time. Ongoing usage of a VM results in growth of its virtual disks. The rate of growth is primarily dependent on application workload running inside the VM. Efficient use of physical disk storage space is a constant problem in the field of data center management for virtual desktop infrastructures.

FIG. 1 shows, by way of example, a virtual desktop infrastructure (VDI) 100, having a plurality of remote users 110 accessing virtual machines (VMs) 157 on physical computer systems 150, 152, 154. Each user may access their VM using a thin client (not shown) or a client software program running on a thick client (not shown) such as a desktop computer system, laptop, or a device (not shown) such as a mobile palm top or smart phone. A user session comprises a connection between a VM and the corresponding user of the VM. Each VM 157 provides a corresponding desktop to the user. The desktop is an interactive user environment provided by a guest operating system and applications running within the VM, and generally includes a graphical display, but may include other outputs such as audio, indicator lamps, tactile feedback, etc. The desktop also accepts input from the user in the form of device inputs, such as keyboard and mouse inputs. In addition to user input/output, the connection may send and receive device data, such as input/output for a FLASH memory device local to the remote user, or to a local printer.

In large organizations, users can generally be categorized in terms of their job functions, and accordingly the required applications and configurations of their desktops. For example, users in an engineering pool may require access to CAD/CAM software, whereas users in an accounting pool may require access to particular accounting software. It is generally useful to group user desktops together in a manner consistent with such groupings of the users, so that computers accessed by engineers, for example, are configured with software required by engineers whereas computers accessed by accountants are configured with software accessed by accountants. In VDI system 100, for example, users 110 may belong to a particular user pool, and their corresponding VMs 157 may be assigned to a corresponding desktop pool. A desktop pool is a logical manageable entity that includes a plurality of similarly-configured VMs. Each VM of a desktop pool may have delta disk image associated with the VM and a common master image (sometimes referred to as a template) that is common to all the desktops in the pool. The master image may include installed software useful for the members of the corresponding user pool.

Virtual desktop management server (VDMS) 130 may be a physical computer system or a virtual machine that runs desktop management software 132. An exemplary VDMS is described in U.S. patent application Ser. No. 11/395,012, filed Mar. 31, 2006 by Puneet Chawla, et al. Desktop management software 132 manages pools of computer resources to run VMs 157 on a set of clusters typically containing multiple servers with CPUs, memory, and communications hardware (network). In the embodiment shown in FIG. 1, desktop management software 132 includes a number of modules, including an administrative console 135, an inventory manager 136, a connection broker 137, and a pool manager 138.

Administrative console 135 provides a remotely-accessible user interface to a desktop administrator to manage the configuration of desktop pools. In one embodiment, a graphical user interface may be exported via hypertext transfer protocol (HTTP) and accessed by a commodity web browser. Alternatively, a command-line interface or a rich client can be provided to local or remote users. Administrative console 135 allows the desktop administrator to perform a plurality of functions, such as: create desktop pools; associate desktop pools with the VDMS; associate a desktop pool with a master image; define VM state policies; setup custom messages to be sent to users (e.g., when the desktops are put into maintenance mode for weekly patches, hotfixes, etc.); set storage overcommit settings for different datastores used by for desktop pools; perform rebalance operations on a set of virtual desktops; and other similar operations.

As mentioned above, each desktop pool may be associated or assigned to a particular VDMS. Likewise, each VDMS may manage multiple desktop pools. The association between desktop pool and VDMS may include details such as: assignment of computer resources (e.g., hosts and/or clusters) to VMs; logical resource pools (e.g. such as described in virtual infrastructure distributed resource scheduling (DRS) available from VMware, Inc. and such as described in U.S. patent application Ser. No. 11/405,806 filed Apr. 17, 2006 and incorporated herein) for load balancing; memory sharing configuration (e.g. reserve memory for virtual machines or use memory overcommit); storage used to provision the VMs (one or more datastores); guest customization details like custom naming scheme for VMs in the pool (e.g.using marketingxxxx as a custom name such that VMs in the pool are called marketing0001 to marketing9999); and domain membership info (add VM to domain vmware-vdi.com). Other information aside from that mentioned specifically above may be included in the pool-VDMS association, which information may be stored in a database (not shown) accessible by or incorporated into VDMS 130.

Virtual Machine Management Server (VMMS) 140 provides a software interface 145 that, among other things, allows other programs to control the lifecycle of virtual machines 157 running on physical computers 150, 152, 154, that are managed by VMMS 140. Desktop management software 132 interfaces with VMMS using software interface 145 to control VMs 157. For example, VMMS 140 may allow desktop management software 132 to: discover computer, storage, and network resources; create of logical compute pools providing features like automatic CPU and memory load balancing; create VMs with one or more virtual disks on local or shared storage, e.g., clones with full or sparse disks; create VMs anchored to a base virtual machine (e.g., as described in U.S. patent application Ser. No. 12/058,269 filed Mar. 28, 2008 and entitled, Synchronization and customization of a Clone Computer and incorporated herein by reference); monitor storage subsystems, including, but not limited to, storage consumption of individual disks, storage consumption of virtual machines as a single unit and virtual machine file system monitoring (free space, total space, etc); perform power operations on virtual machines (i.e., power on, power-off, suspend, resume, checkpoint, etc.); perform offline migrations of virtual disks from one datastore to another; perform hot storage migration wherein VM disks are migrated during operation of the VM (e.g., as described in U.S. patent application Ser. No. 12/184,134, incorporated herein by reference); and provide an out of band communication channel to software program running inside the virtual machine. VMMS 140 may provide other VM management and manipulations than those specifically mentioned here.

PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.

Start free trial Sign in