If you manage multiple single LUNs in production or perhaps in a lab environment, you may find it difficult to continually balance out storage either based on capacity of the LUN or the I/O performance you are looking to balance out or efficiently manage. This can be a chore to do manually without any automation. However, there is a solution already built into vSphere that you may not be taking advantage of. I recently implemented this in the home lab across a couple of datastores that I found myself continually managing based on usage and IOPs. Storage DRS is a great technology that allows automating the management of your capacity and I/O resources across datastores. Let’s take a look at how to automate and manage capacity and I/O across VMware datastores with Storage DRS. Let’s see what this is exactly and how it is implemented.
What is Storage DRS?
Storage DRS does for your storage what traditional compute-level DRS does for your vSphere cluster from a compute/memory perspective. Traditional DRS is able to constantly look at resources that are being used across the cluster nodes in a vSphere cluster. If one particular node is getting overprovisoned from a CPU or memory perspective, virtual machines can be moved to a different host to alleviate any pressure building on a particular host.
Storage DRS allows you to manage the aggregated resources of a datastore cluster by implementing an intelligent vCenter Server feature for efficiently managing VMFS and NFS storage. The main features of Storage DRS include:
- Resource aggregation – Using Storage DRS, vSphere is able to aggregate multiple datastores into a single pool of flexible storage which is the datastore cluster mentioned above. This is sometimes referred to as a Storage DRS POD.
- Initial placement – Like DRS enabled vSphere clusters can make recommendations for virtual machine placement, Storage DRS can make recommendations for the initial placement of storage related resources such as virtual machines, VMDKs, clone or relocate operations
- Load balancing based on Space and I/O metrics – If an imbalance exists in the datastores making up the Datastore cluster, Storage DRS can dynamically balance the cluster of datastores based on space and I/O thresholds configured. The default thresholds that are configured by default include a space threshold of 80% per datastore and latency values of 15ms.
- Datastore maintenance mode – A very cool feature when you are running a datastore cluster is the ability to perform maintenance on a datastore that is part of the datastore cluster. Much like placing a host in maintenance mode in a vSphere cluster, with the datastore cluster, Storage DRS will Storage vMotion off all the virtual machines running on a particular datastore so maintenance can be performed.
- Inter/Intra VM Affinity rules – This is fairly descriptive but indicates that affinity/anti-affinity rules can be enforced between virtual machines or at the VMDK level.
Now that we understand the various features of Storage DRS and the technologies that it utilizes, let’s take a look at the process of creating a datastore cluster as well as enabling Storage DRS on the datastore cluster.
Automate and Manage Capacity and I/O Across VMware Datastores with Storage DRS
What are the requirements to enable Storage DRS?
- VMware vCenter server 5.0 or later
- VMware ESXi 5.0 or later
- VMware vSphere compute/hosts cluster (recommended)
- VMware vSphere enterprise plus license
- Shared VMFS or NFS datastore volumes
- Shared datastore volumes accessible by atleast one ESXi host inside the cluster. VMware recommends to have full cluster connectivity, however, it is not enforced
- Datastore inside Storage DRS cluster must be visible in only one data center.
What other technologies is Storage DRS fully supported with? According to the VMware KB listed here: https://kb.vmware.com/s/article/2149938 the following:
- Storage DRS interop with Site recovery Manager (SRM)
- Storage DRS interop with vSphere Replication
- Storage DRS interop with SPBM (Storage policy based management).
- Deep integration with vSphere APIs for Storage Awareness (VASA). Storage DRS now understands storage array advanced features such as deduplication, auto-tiering, snapshoting, replication, thin-provisioning.
- Storage DRS interop with Content Library
- Storage DRS has interop with various sub-features
The process to create a new Datastore Cluster is very straightforward and allows you to enable Storage DRS in one fell swoop. Below, you see how to navigate to get to the New Datastore Cluster wizard.
On the very first screen in creating the new datastore cluster, you have the option to turn on Storage DRS. Place a checkbox by the field if not selected (it is on by default).
Select your Storage DRS Automation. Much like traditional DRS at the vSphere cluster level, you have the ability to select the automation level you want to use for moving VMs/VMDKs around. The default here is Fully Automated. Additionally, you can select granular settings for the individual items below the automation section.
Choose the I/O Metric Inclusion, I/O latency threshold, and the Space threshold for the Storage DRS configuration. The below settings are what is configured by default.
On the Select Clusters and Hosts screen, you may be surprised to see you can configure this on a standalone host. The word cluster may bring to mind a vSphere cluster is required. However, this is a cluster of datastores that can be attached to a single standalone host.
Choosing a standalone host from which to add datastores.
Select the datastores you want to add to the datastore cluster and hit Next.
Finally, you reach the Ready to Complete screen where you can review your configurations.
Scrolling down a bit on the Ready to Complete screen you see the additional details of the configuration including the datastores and host/cluster.
Under the Datastores view in vSphere Client, you can now see the new Datastore cluster created in the process.
Like a vSphere cluster you can click the Configure tab and view/edit settings.
Editing the settings here for the Storage DRS automation configuration.
Next, is the Runtime Settings.
The final tab is the Advanced options screen. Note here is where you can change how often the balance of the datastore cluster datastores is checked. Also, this is the screen where you can choose whether to Keep VMDKs together by default or unselect this.
Storage DRS is a great feature to implement in conjunction with Datastore Clusters that allows a way to Automate and Manage Capacity and I/O Across VMware Datastores with Storage DRS. Much like traditional DRS at the vSphere cluster level, you can manage your resource settings from a storage perspective using Storage DRS. This is a great feature if you are managing singular datastores across an environment at scale and need a way to automate your capacity and I/O resource management.