Virtual machine provisioning has traditionally imposed some operational challenges. Monitoring datastore capacity and I/O load has proven to be very difficult and is often neglected. The datastores used to host virtual disks for new virtual machines are often randomly selected, leading to hot spots and over- or under-utilized datastores. A new feature in vSphere 5.0, Storage DRS provides smart virtual machine placement and load balancing mechanisms based on I/O utilization and storage capacity.
Datastore clusters
With vSphere 5.0 a new vCenter Server object is introduced called a datastore cluster. A datastore cluster is a collection of datastores aggregated in to a single unit of management and consumption from an administrators perspective. When a datastore cluster is created, Storage DRS can manage the storage resources comparable to how DRS manages compute resources in a cluster. As with a cluster of hosts, a datastore cluster is used to aggregate storage resources, enabling smart and rapid placement of new virtual machines disk files and load balancing of existing workloads.
Placement recommendations
Initial placement of virtual machine disk files in a manual provisioning process has proven to be very complex in most environments and as such crucial provisioning factors like current space utilization or I/O load are often ignored. Storage DRS ensures initial placement recommendations are made in accordance with space constraints and with respect to the goals of space and I/O load balancing. These goals aim to minimize the risk of storage I/O bottlenecks and minimize performance impact on virtual machines. During the provisioning of a virtual machine, a datastore cluster can be selected as the target destination for the virtual machine's disk files, after which Storage DRS makes a recommendation for initial placement based on space and I/O capacity. Storage DRS will select the datastore with the lowest observed I/O loading (best latency values) that meets the space requirements of the virtual machine.
Ongoing Balancing
Ongoing balancing recommendations are made when one or more datastores in a datastore cluster exceeds the user-configurable space utilization or I/O latency thresholds. These thresholds are typically defined during the configuration of the datastore cluster. In full automatic mode, Storage DRS uses Storage vMotion to move one or more virtual machine disk files to achieve its goals. In manual mode these recommendations are made to the administrator to approve. For any recommendation, Storage DRS will first calculate all possible moves to balance the load accordingly while considering the cost and the benefit of the migration.
Storage DRS utilizes vCenter Server’s datastore utilization reporting mechanism to make recommendations for migrations whenever the configured utilized space threshold (default of 80% utilized) is exceeded. Storage DRS evaluates I/O load every 8 hours. The default configured maximum I/O latency threshold is 15ms. To avoid being caught by peak load issues, Storage DRS generates migration recommendations only when an imbalance persist for a long period of time (several hours out of the evaluation period).
Affinity Rules and Maintenance Mode
Storage DRS affinity rules enable controlling which virtual disks should or should not be placed on the same datastore within a datastore cluster. By default, a virtual machine's virtual disks are kept together on the same datastore. Storage DRS offers three types of affinity rules:
- VMDK Affinity (default)
Virtual disks of a virtual machine are kept together on the same datastore
- VMDK Anti-Affinity
Virtual disks of a virtual machine with multiple virtual disks are placed on different datastores
- VM Anti-Affinity
Two specified virtual machines, including associated disks, are place on different datastores
In addition, Storage DRS offers Datastore Maintenance Mode, which automatically evacuates all virtual machines and virtual disk drives from the selected datastore to the remaining datastores in the datastore cluster.
Datastore Correlation
Datastore Correlation refers to discovering whether two distinct datastores might be using the same set of disk spindles on the array. The purpose of this feature is to help with the I/O Load balancing decision-making process Storage DRS uses to determine where to move a virtual machine. There is little advantage to moving a virtual machine from one datastore to another if the two datastores are backed by the same set of physical spindles on the array. The datastore correlation detector can also be used for anti-affinity rules, making sure that virtual machine disks not only are kept on separate datastores but also are kept on different spindles on the back-end array.
Datastore Coorelation was first introduced in vSphere 5.0, but it required that the array be supported by
vSphere Storage API's for it to be enabled. vSphere 5.1 provides additional capability to the datastore correlation detector to use the I/O injector to determine whether a source and destination datastore are correlated, that is, using the same back-end spindles. It works by placing load on one datastore and monitoring the latency on another. If we see latency increase on both datastores when load is placed on one datastore, we can assume that the datastores are correlated. This enhancement allows datastore correlation detection on storage arrays where there is not specific VASA support.
Storage DRS will utilize the new VmObservedlatency metric that is part of Storage I/O Control in vSphere 5.1 as it closely represents the load on the datastore as seen by virtual machines. Please note that this new metric will only be utilized if all hosts using the datastore cluster are vSphere 5.1 hosts.