Virtual machine provisioning has historically always imposed operational challenges. Monitoring datastore capacity and I/O load has proven to be very difficult and as a result is often neglected. During the provisioning process for virtual machines, virtual disks datastores are often randomly selected, leading to hot spots and over- or under-utilized datastores. Storage DRS is a new feature introduced in vSphere 5.0 providing smart virtual machine placement and load balancing mechanisms based on I/O and space capacity. Storage DRS will help decreasing operational effort associated with the provisioning of virtual machines and monitoring of the storage environment.
With vSphere 5.0 a new vCenter object is introduced called a Datastore Cluster. Datastore clusters form the basis of Storage DRS. A datastore cluster is a collection of datastores aggregated in to a single unit of 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 and virtual disk drives and load balancing of existing workloads.
Storage DRS provides initial placement and ongoing balancing recommendations assisting vSphere administrators to make placement decisions based on space and I/O capacity. During the provisioning of a virtual machine, a datastore cluster can be selected as the target destination for this virtual machine or virtual disk after which a recommendation for initial placement is made based on space and I/O capacity. Initial placement 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.
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. Storage DRS utilizes vCenter Server’s datastore utilization reporting mechanism to make recommendations whenever the configured utilized space threshold is exceeded. I/O load is evaluated by default every 8 hours. When the configured maximum space utilization or the I/O latency threshold (15ms by default) is exceeded Storage DRS will calculate all possible moves to balance the load accordingly while considering the cost and the benefit of the migration.
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 Anti-Affinity
Virtual disks of a virtual machine with multiple virtual disks are placed on different datastores
- VMDK Affinity
Virtual disks are kept together on the same datastore
- 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.
Storage DRS works with both VMFS and NFS based datastores. Mixing NFS and VMFS datastores in a single datastore cluster is currently not supported. More details about this feature and implementation tips and design considerations are described in the documentation, Resource Management Guide, Chapter 11.