About a year ago I published a post on integrating vRealize Automation 7 (vRA) with VVols. At that time the implementation was really a manual process because VMware had not created a Storage Policy Based Management (SPBM) package for vRA 7, only version 6. In September of last year VMware finally updated the SPBM package for vRA 7 so I thought I should update my post also, albeit a bit late.
Now in my initial post the way we got around the issue of SPBM was one of two ways. One, you could use VM templates which are already assigned the correct Service Level (SL, e.g. Diamond+OLTP), or two, you could create multiple VMAX Storage Containers each with their own SL and then use vRA’s reservation capability to create blueprints that are only tied to a particular SL. Both of these methods work, but require quite a bit of setup and management. This is what makes the SPBM package so appealing. What the package does is allow us to assign properties to our blueprints so that when you deploy a VM, you can select any of the available SLs from VMAX and vRA will place the vmdk (VVol) or configuration files (memory, vmx, etc.) in the correct storage container.
So again we’ll start with the assumption that you have the vRA 7 environment setup (vRA, IaaS, vRO) and licensed and that you have the tenant configured. In my example I use the default configurationadmin user. You’ll next need to download the zip file which contains the SPBM package and documentation from VMware’s Solution Exchange. You can find that here, though the complete listing is available, too. Once you have the zip file you can extract the two files – the package itself and the pdf with the instructions. I’m going to admit straight out that I’m not a fan of the documentation. It is not what I would expect from VMware as official instructions, but perhaps it is not meant to be as it is a “solution” and not release cycle product. In any case normally I would tell you to just follow the instructions, but instead I’m going to point out a few things to be aware of, if not avoid. There are no published page numbers, but as it is a pdf it’s easy enough to know where we are. So let’s soldier on…
The first step actually begins on page 3 where you import the package. If you’ve never imported a package in the vRO Client you may not know exactly how the author navigated to the correct screen in the instructions. Here is my replacement image giving the 3 steps to get to the proper screen:
The official instructions move on from here but again, if you have not imported a package before there are additional steps to deal with. When you import a package you will first be asked to accept a certificate which you need to do. After this you will see a list of all the file elements that are to be imported (or not). Here is an example. This won’t be exactly what you see since I am trying to re-import the same package.
You will have some gray and red arrows, however, as I do above. Don’t worry about them and select “Import selected elements.” In most cases the red arrows mean you already have the necessary components. Once you do this the package is imported and ready. From this point I now move ahead to page 8 of the instructions. The pages I am skipping cover adding an IaaS host and vCenter. If you followed the vRA installation instructions when you initially configured the environment, you already did this via a script so these steps are just adding confusion.
On page 8 in step (b), you add the VM Home Policy (where those VVol config files are going). This step is self-explanatory. Step (c), however, makes it appear you are supposed to add another custom property in the same screen. In actuality, you need to add a custom property to each disk (vmdk) you have configured in the blueprint. So while in step (b) you are on the Properties tab, for step (c) you are on the Storage tab. The instructions do not make this clear.
Step (d) for the most part is easy to follow, but there are two important points, both concerning the Input parameters. There are three columns here – Name, Bind, and Value. The instructions make no mention of the Bind column, however the screenshot shows it set to “Yes” for the endpointName. This is incorrect. All Bind values should be “No”. If you configure it like the screenshot you will get an error about a required field when you try to order the catalog item associated with the blueprint. The second item concerns the endpointName value. In the screenshot it shows this as “endpoint.” What they actually mean though is that you should supply the name of your endpoint in vRA. I have the standard implementation so mine is called “vCenter” like here:
From here we can jump to step (f). The directions here are OK, but I thought it might be easier to see each step. First identify the VVol datastores in vSphere, then select them as available to the reservation, and finally list them as a custom property. Spelling counts here…
I found the final steps to be clear, if a bit tedious editing the subscription. At this point you are ready to provision a VM using SPBM. Let’s look at that in the following demo before moving to day 2 operations. The demo will show the Storage Policies and VVol datastores in vSphere; then the vRA setup per the SPBM instructions; finally the provisioning of a VM using SPBM.
The second part of the instructions covers creating a resource action that allows the policy of a VM to be changed in vRA. The only part of the instructions that threw me was that when you are in the form tab, you need to highlight the row that you want to modify. For instance, the first step is to modify the policy name. To do this first highlight the Policy Name row which will reveal another box on the right where you modify the setting (e.g. Type Drop-down).
Knowing that the instructions should be OK. Once configured, you can now change the policy of the previously provisioned VM. I have a short video of that here.
So that’s it. You can see it is far easier than either of the methods I wrote about previously. It should make using VVols with vRA a more realistic option.