Home > Blogs > VMware vSphere Blog

vSphere 5.0 Storage Features Part 11 – Profile Driven Storage

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.



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: Twitter VMwareStorage

This entry was posted in vSphere and tagged , , , on by .
Cormac Hogan

About Cormac Hogan

Cormac Hogan is a Senior Staff Engineer in the Office of the CTO in the Storage and Availability Business Unit (SABU) at VMware. He has been with VMware since April 2005 and has previously held roles in VMware’s Technical Marketing and Technical Support organizations. He has written a number of storage related white papers and have given numerous presentations on storage best practices and vSphere storage features. He is also the co-author of the “Essential Virtual SAN” book published by VMware Press.

20 thoughts on “vSphere 5.0 Storage Features Part 11 – Profile Driven Storage

  1. 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.

  2. 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.

  3. Alejandro Suarep

    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!

    1. 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.

  4. 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..?!?!!

    1. 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.

  5. 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

  6. 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.

  7. 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)


Leave a Reply

Your email address will not be published. Required fields are marked *