Prior to vSphere 5 -- and its Profile-Driven Storage functionality in particular – VMware’s hypervisor platform was mostly in the dark about the storage resources that support it. Without Profile-Driven Storage, vCenter inherently knows that there are datastores, but when a virtual machine (VM) is created, the virtualization administrator must manually select which datastore the VM will go on, oftentimes in conjunction with the storage administrator.
While this chore isn’t difficult, the job of VM placement isn’t over. Over time, virtual machine disk files (VMDKs) can get moved from one datastore to another, sometimes to a datastore that it’s not well suited to. And, sometimes, a datastore suddenly experiences high latency and needs to be moved to another datastore. Without Profile-Driven Storage, handling these changes is a manual process.
With Profile-Driven Storage (available only in vSphere Enterprise Plus) and a storage array that supports the vStorage APIs for Storage Awareness (VASA), vCenter/vSphere is made aware of the types of storage you have and the characteristics of that storage. Those characteristics can also be user-defined. For example, vCenter can know not only the capacity but also the latency of the storage (in addition to any names you’ve assigned to the storage). That information can then be used by vCenter to select the best datastores for your VMs when you create them and, over time, tell you if your VMs have deviated from their intended storage. For example, if you have a critical VM that requires high storage performance, you can make sure that it uses only your gold-level Fibre Channel datastores instead of your bronze-level NFS datastores. (Note that if a VM needs to be moved to another datastore, Profile-Driven Storage doesn’t move them – that’s handled by Storage vMotion, initiated by you manually, or by Storage Distributed Resource Scheduler, or SDRS).
Implementing and configuring Profile-Driven Storage isn’t complex, but there is no wizard to guide you so you must know the steps to take. If you try to implement Profile-Driven Storage without following these steps, the results can be frustrating as the process isn’t intuitive.
The steps to implement Profile-Driven Storage are:
- Create user-defined storage capabilities, if you aren’t using VASA
- Create a VM storage profile
- Add the user-defined storage capabilities to each datastore
- Use the storage profile when creating a new VM
After you’ve implemented Profile-Driven Storage, you’ll check the VM storage compliance. We’ll explain both procedures, starting with implementation.
Step 1: To create user-defined storage capabilities, in the vSphere Client, go to the Home screen and, under Management, click VM Storage Profiles.
Step 2: Click Manage Storage Capabilities.
Step 3: Click Add to add a storage capability. In the example, we added three user-defined capabilities called Gold, Silver and Bronze, mapping them randomly to three datastores in our lab. (If you have VASA-capable storage arrays, you would have configured vCenter to communicate with those arrays, and system-defined storage capabilities would be available here.)
Step 4: Click Create a VM Storage Profile.
Step 5: Name your storage profile and give it a description. In the example, we called the profile “Gold.”
Step 6: Select the storage capability that will be mapped to the new VM storage profile. In the example below, we selected the Gold storage capability to match the Gold VM storage profile.
Step 7: Click Finish to complete the process of adding a storage profile. You can then add more VM storage profiles, again mapping them to the most appropriate storage capabilities among those you’ve created.
Step 8: Add the user-defined storage capabilities to each datastore. (Note that if your storage array supports VASA, you wouldn’t need to perform this step because the system-defined capabilities would be automatically mapped.) To do this, from the Home screen, click on Datastores and Datastore Clusters in the Inventory section.
Step 9: Right-click on each datastore and click Assign User-Defined Storage Capability.
Step 10: Assign each datastore with a user-defined storage capability.
Step 11: Go back to the VM Storage Profiles screen and click Enable VM Storage Profiles. From there, select each of your hosts and clusters and click Enable.
Step 12: To see the results of your work, you can create a new VM, edit an existing VM or check the compliance status of existing VMs.
When creating a new VM, you’ll see an option to select a storage profile for the VM instead of selecting a datastore for the VM, as you normally would.
This is helpful when you have many datastores, since you can simply select the service level of the storage you want but not have to think about the datastore itself.
Step 13: Once the storage profiles have been created, if you edit the properties of a VM, under the Profiles tab, you’ll now be able to set the VM’s storage profile.
Step 14: Once VMs have their ideal storage profiles configured, you can check to see whether VMs are compliant by going back into the VM storage profiles screen, clicking on a storage profile (such as “Silver”) and then clicking on the Virtual Machines tab.
Notice how the virtual machine above is considered noncompliant because of a capability mismatch. If you were to move this VM to the correct datastore using Storage vMotion and then recheck compliance, the VM should become compliant with its assigned storage profile.
Profile-Driven Storage is a great new (and often overlooked) feature of vSphere 5, but not everyone needs it. It’s most helpful for larger enterprises and service providers that have many datastores and want to ensure that VMs get the storage service levels that they require. Profile-Driven Storage is also useful if you have a storage array that supports VASA since vSphere will automatically know the capabilities of your storage; you won’t need to manually assign them.
David Davis is the author of the best-selling VMware vSphere video training library from Train Signal.