In an earlier blog around vSphere 5.0 storage features, I mentioned how one could use the capabilities of the underlying storage devices surfaced into the vCenter UI by VASA (vSphere Storage APIs for Storage Awareness), and use them to make profiles for Virtual Machine storage. In this blog, I'll dive a little deeper into this functionality, and look at this compelling feature that we are calling Profile Driven Storage.
Introduction
Profile Driven Storage is a feature which will allow you to easily & correctly select the correct datastore on which to deploy Virtual Machines. The selection of the datastore is based on the capabilities of that datastore. Then, throughout the life-cycle of that VM, you can check if its underlying storage is still compatible, i.e. it has the correct capabilities. This means that if the VM is cold migrated or Storage vMotion'ed, you can ensure that it moves to storage that meets its requirements. If the VM is moved without paying attention to the capabilities of the destination storage, you can still check the compliance of the VM's storage from the UI at any time, and take corrective actions if it no longer on a datastore which meets it storage requirements (i.e. move it back to a compliant datastore).
Part 1 – Create User-Defined Storage Capabilities
There are a number of steps to follow in order to successfully use Profile Driven Storage. Before building a Storage Profile, the storage devices on your host must have capabilities associated with them. Now, as mentioned, these can come via VASA and be associated automatically with the storage devices, or these can be user-defined and manually associated. For instance, you might like to use User-Defined business tags for your storage, such as Bronze, Silver & Gold. How then do you create these User-Defined capabilities? Quite easily in fact. From the vSphere UI, click on the icon label VM Storage Profiles:
This will take you to the VM Storage Profiles view:
The next step is to start adding the user-defined storage capabilities (or business tags).To do this, you select 'Manage Storage Capabilities', and add them in. If we stick with the gold/silver/bronze example, here is how I would create a 'Bronze' user-defined storage capability.
If I continue creating additional storage capabilities, I can use them to classify my different types of storage.
Remember this is just one example; you can use other capabilities to define your storage too. Note that if capabilities were being surfaced by VASA, they would appear here in this "Manage Storage Capabilities" view automatically.
Part 2 – Create a VM Storage Profile
At this point, my user-defined storage capabilities are created. The next step is to create a storage profile. To create a profile, select the option "Create VM Storage Profile" in the VM Storage Profiles view seen earlier. First give it a name and description, and then select the storage capabilities for that profile:
You can make a number of different profiles. For my example, I created three, one for each tier of storage, and each containing a different capability (Bronze, Silver & Gold):
Part 3 – Add the User-Defined Capability to the Datastore
The capabilities are now defined & the VM Storage Profiles are created. The next step is to add the capabilities to the datastores. This is a simple point & click task. Simply right click on the desired datastore and select the option "Assign User-Defined Storage Capability…":
In the Summary tab of the datastore, a new Window called Storage Capabilities now displays both System Storage Capabilities (VASA) and User-defined Storage Capabilities. The bubble icon next to the capability will display additional details:
Part 4 – Using the VM Storage Profile
At this point, the profile is created and the user-defined capabilities are added to the datastore. Now we can use the profile to select the correct storage for the VM. The profile is automatically attached to the VM during deployment phase. Later, we can check if the datastore on which the VM is placed has the same capabilities as the profile. If it does, then the VM is said to be compliant. If they do not, the VM is said to be non-compliant.
VM Storage Profiles can be used during deployment or during migrations, or can be attached on-the-fly. In this example, I am deploying an OVF Template, and when it comes to storage selection, you choose a particular profile from the list of profiles:
Let's pretend that this is a mission critical VM for me, so I am going to put it on my Gold tiered storage. I select the "Gold" VM Storage Profile from the list. See what happens to my storage selection:
Notice the way that the datastores are now split into Compatible & Incompatible. The Compatible datastore are those which have the same storage capabilities as those defined in the profile called 'Gold'. Only one datastore (VSADs-2) has this capability; none of the other datastores have that capability. However, you can still choose to deploy this VM onto one of the Incompatible datastores if you wish. All it means is that the VM will show up as Incompatible in the UI when checked.
Part 5 – Checking Compatibility
OK, at this point we have seen how to associate the VM with the correct storage at initial deployment time using VM Storage Profiles. But during the life-cycle of a VM, it could be migrated to other storage. How do I tell if it is still compliant. Well, that's easy as there a number of built-in mechanisms for checking the compliance of individual VMs or multiple VMs.
To check individual VMs, simply go to the Summary tab of the VM, and you'll see a new VM Storage Profiles window which will indicate if the VM is compliant or not. Here are some sample screen-shots:
However it would be tedious to check all of these individually. Therefore if you go back into the VM Storage Profiles view, you can check all VMs per profile in one place. Here I have one VM which is compliant, and another which is not, but I can see this from a single view:
Common questions
Q1. Are Profile Driven Storage & Storage DRS complimentary?
A common question I get when I present on new vSphere 5.0 Storage features is whether Profile Driven Storage & Storage DRS can work together. Then answer is 'absolutely'. Just ensure that all datastores in the datastore cluster of Storage DRS have the same capabilities, and you're good to go. Now instead of presenting a single datastore as compatible, a datastore cluster will now be presented as compatible (or indeed Incompatible). Here is a datastore cluster shown as compatible:
Q2. Can multiple profiles be associated with the same VM?
This is another common question, and the answer is of course, yes you can. If you have a VM with multiple VMDKs, you may associate different profiles with the individual VMDKs to that they are compliant with a certain storage type.
So there you have it. Not only can VM Storage Profile allow you to select the correct datastore for VM placement each and every time, but through-out the lifetime of the VM, you can continually check to make sure that it is running on its proper storage and that it hasn't been moved to somewhere it shouldn't be. I can see this feature being a big hit.
Get notification of these blogs postings and more VMware Storage information by following me on Twitter: VMwareStorage
Anthony Vandewerdt
This looks like a great new function. Look forward to trying it out.
Owen Creed
Great stuff Cormac – only thing / step I would add is to make sure to Enable the storage profile after everything has been created.
Cormac
Good point – thanks Owen.
Albert Kaganovsky
Hi ! Great post! Just wanted to add ; befre implementing storage profile please read that http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2008203 also.
In my case that happend because my vclient was not up to date
SysAdmin-E.com
Great tutorial. You pretty much covered everything and the Q and A at the end topped it off.
Avid
Great post. That was very helpful.
Aside from this, is there any way to prevent the VM from being storage vMotioned to only a specific set of LUNs or atleast get an alert when someone tries to storage vMotion a VM to a different storage profile.
Cormac Hogan
If afraid that feature is not available via storage profiles. You might be able to generate an alert if the compliance state of a VM changes.
Alejandro Suarep
Hi,
I’m wondering if it’s worth to have IntraArray Tiering and Profile Driven Storage as well working together.
The other point, is if this technology is only useful to get info about storage (like types of disks, speed,…) to categorize the storage or is able to analize the IOPS and other behavior of the storage array, maybe using VASA integration, and change the previous categorization over the time…. I mean, what happens if something that we said it’s Gold, now changed for any reason, and it’s bronze, but the system still believe is Gold…. is this analyzing the behavior to get information about it or is something pretty static..?
Many Thanks!
Alejandro.
Cormac Hogan
Right now this feature is simply reporting information. You build your profiles on what is being reported by the storage. If the underlying capabilities are changed (not sure if this can even be done), the profile becomes non-compliant, and you have to manually move the VMs to compliant storage. There is no automation.
Shady El-Malatawey
Mr. Hogan,
Can we consider Profile-driven Storage feature as an “Organizing feature”, i.e. a feature to just help you organize your VMs inside your datastores manually and not like S-DRS which goes automatically and does the work for you in case of datastore failure and etc…???!!!
Another thing, isn’t better to include it inside S-DRS, i.e. to make one of the S-DRS triggers is non-compliance of Storage Profile, specially in case of first installation of a new storage or something like that..?!?!!
Cormac Hogan
Yes indeed. That’s exactly how to think of it.
However, vCloud Director is now integrated with Storage Profiles and automatically moves VMs between datastores with different capabilities if you change the policy associated with a VDC.
The SDRS/Storage Profiles integration is an interesting idea, but not something we offer yet.
Shady El-Malatawey
Thanks, Mr. Cormac :)))
Tom
Hi there,
any information about where the definitions and assignments are stored?
We moved to a new vCenter and used the “old” vCenter DB, but all user-defined capabilties, VM Storage Profiles and assignment are gone.
So if we could also “restore” this information we could save a lot of work doing it again.
thx and rgds
Tom
Cormac Hogan
The storage profile information is stored in an xDB database – sometimes referred to as phonebook/dictionary
Cormac Hogan
xDB is not a standalone db. It’s an embedded db that runs as a part of inventory service process.
Tom
Thanks for the answer.
Is there a way to backup/restore the xDB?
Tom
Cormac Hogan
I do not believe so.
Tom
actually there is:
VMware KB 2017370
James
I was really after information concerning how you can “easily” assign multiple VMs in a cluster a particular profile. I do not want to particularly right click each vm to assign.
Serena
Asking questions are genuinely good thing if you are not understanding something entirely, however
this article provides fastidious understanding even.
My page … seo Google (Serena)