As I’ve recently brought a HPE 3PAR 7200 into production with an ESXi 6.0 U2 cluster I thought what a better time than now to check out just how VVOLs are implemented by HPE.
Although the tasks to do so aren’t difficult by any means I find the documentation around doing so is a bit scattered in different KB’s and documents between VMware and HPE, especially if you have upgraded to their latest firmware (3.2.2 MU2).
Pre-reqs
As far as prerequisites go there really isn’t that many other than ensuring you are up to date on both your 3PAR firmware and ESXi versions. For the 3PAR you will need to ensure you are running at the very least 3.2.1. In terms of vSphere – 6.0 or higher. Also don’t forget to check your HBA’s on the VMware HCL and ensure that they are actually supported as well, and note the proper firmware/driver combinations recommenced by VMware.
After spending the day(s) updating firmware (ugh!) it’s finally time to get going.
Step 1 – Time
NTP is your friend for this step. Before proceeding any further you need to ensure that all of your hosts, vCenter Server and 3PAR are all synced in terms of time. If you have NTP setup and running then you are laughing here, but if you don’t, stop looking at VVOLs and set it up now! It should be noted that the 3PAR and the VMware infrastructure can be set to different time zones, however they must still be synced in terms of time!
Step 2 – Can we see the protocol endpoint?
At this stage we should actually check our ESXi hosts to ensure we can see the protocol endpoint on the 3PAR. To do so we will need to ensure that we see the same WWN after running a couple of different commands. First, as shown below, the ‘showport’ command on our 3PAR. Circled is the WWN of our 3PAR array. Make note of this!
With the WWN of our storage array in memory we can now head over to our ESXi hosts. SSH in and run the ‘esxcli storage core device list –pe-only‘ command. This command will return any Protocol Endpoints visible from the ESXi host. If all goes well we should see the same WWN that we did with showport, and the ”Is VVOL PE’ flag set to true – as shown below
As you can see, we have a match so at least we have some visibility from our hosts!
Step 3 – VASA
As we all know the whole concept of VVOLs requires the array to support VASA 2.0 and act as a storage provider for vCenter – this is what allows us to create our VM profiles and have the array automatically provision VVOLs depending on what profile is selected. On the 3PAR we can check the status of VASA by simply running the ‘showvasa’ command. In the case shown we can see that it is already enabled and functioning properly, however this wasn’t always the case for me. To enable the service I first tried the ‘startvasa’ command, however it was complaining about not having a certificate. The easiest way, if you plan on using self-signed certificates to generate one is to simply run the ‘setvasa -reset’ command. This will reset your VASA configuration and generate a self-signed cert. After this you can simply run ‘startvasa’ to get everything up and running…
Step 4 – Create the storage container
Now if you are following the HPE VVOL integration guide you won’t see this step, mainly because it was created around the 3.2.1 firmware, which would have already had a default, and only one storage container created for you. If you are running 3.2.2 though you have the option to create more than one storage container, and by default comes with, well, no storage containers. So before we go and register our vCenter with the VASA provider we first need to create a storage container to host our VVOL datastore. First, create a new Virtual Volume set with the following command
createvvset myvvolsetname
Then, let’s create our storage container and assign our newly created set to it
setvvolsc -create set:myvvolsetname
Again, these commands wouldn’t be required in 3.2.1 as far as I know, but are in 3.2.2
Step 5 – Register our VASA within vCenter
Now it’s time to head over the familiar, lightening fast interface we call the vSphere Web Client and register the 3PARs VASA implementation as a storage provider. Make note of the ‘VASA_API2_URL’ shown in step 3 – you will need this when registering. With your vCenter Server context selected, navigate to Manage->Storage Providers and click plus sign to add a new storage provider.
Enter your VASA URL from step 3, along with a name, username, and password and click ‘OK’. For this instance I’ve used 3paradm, but you may be better off investigating creating a new account with just the ‘service’ role within the 3PAR. Either way, get your new storage provider registered in vCenter and wait for the Status to show as Online and active.
Step 6 – The VVOL datastore
We are almost there I promise! Before we can deploy VMs within a VVOL or assign storage profiles to match certain CPG’s within the 3par we need to have our VVOL datastore setup within vCenter. I found the best spot to create this datastore is by right clicking the Cluster or ESXi host we want to have access to VVOLs and selecting Storage->New Datastore. Instead of selecting VMFS or NFS as we normally would, select VVOL as the type as shown below
On the next screen simply give your datastore a name and select the storage container (this is what we made available in step 4). Then, simply select the hosts you wish to have access to deploy VVOLs to and away you go!
Step 7 – Storage Profiles
At this point you could simply deploy VMs into your newly created VVOL datastore – the 3PAR will intelligently chose the best CPG to create the VVOL in, but the power really comes by being able to assign certain VM storage profiles to our disks, and having the VVOL go to the proper CPG depending on the array capabilities. Storage Profiles are created by clicking on the Home icon and navigating to Policies and Profiles within the web client. In the VM Storage Profiles section simply click the ‘Create new storage profile’ button. Give your new profile a name and continue on to the Rule-Set section.
The Rule sets of my “Silver” VM storage profile are shown above. As you can see, I’ve specified that I want this storage profile to place VM disks within my FastClass raid 5 CPG, and place their subsequent snapshots in the SSD tier CPG. When you click next you will presented with a list of the compatible and incompatible storage. Certainly select your compatible storage and click next. Once we have all of the profiles we need we can simply assign them to our VMs disk as shown below…
As you can see I’ve selected our newly created “Silver” policy for our new VM. What this states is that when this VM is created a new VVOL will be created on our FastClass disks on the 3PAR housing the VMs.
Step 8 – VVOL visibility
Although we are technically done with deploying VVOLs at this point I wanted to highlight the showvvvolvm command that we can utilize on the 3PAR in order to gain visibility into our VVOLs. The first being simply listing out all of our VMs that reside on VVOLs within the 3PAR.
showvvolvm -sc
As you can see by the Num_vv column we have 3 VVOLs associated with our VM (MyNewVM). But how do we get the information on those VVOLs individually – we can use the same command just with the -vv flag
showvvolvm -sc -vv
So now we can see that we have 1 VVOL dedicated for the config, 1 VVOL dedicated for the actual disk of the VM, and finally 1 VVOL hosting a snapshot that we have taken on the VM.
Anyways, that’s all I have for now – although I haven’t gone too deep into each step I hope this post helps someone along the way get their VVOLs deployed as I had a hard time finding all of this information in one spot. For now I like what I see between HP and VMware concerning VVOLs – certainly they have a long road ahead of them in terms of adoption – we are still dealing with a 1.0 product from VMware here and there are a lot of things that need to be worked out concerning array based replication, VASA high availability, functionality without VASA, GUI integration, etc – but that will come with time. Certainly VVOLs will change the way we manage our virtualized storage and I’m excited to see what happens – for now, it’s just fun to play with 🙂 Thanks for reading!
Good post Mike, What does the mgmt on the 3Par side look like compared to traditional LUN mgmt?
Thats the part that no over ever covers?
Can we migrate a vm running on top of vvol to different policy. For e.g I have a vm running with bronze policy on SSD CPG Raid 6 and I want to move to Silver Policy that is created with SSD CPG Raid 1. I am using Inform OS 3.3.1
it’s all CLI based (showvvolvm), we hide the actual sub-LUNs from the 3PAR SSMC and showvv by flagging them as bulk, VVols are not designed to be managed at all from the storage array side
btw, I promise to finish updating the 3par implementation guide this week for the changes in 3.2.2 that support multiple storage containers
Haha, thanks Eric – I knew I should’ve just reached out to you in the beginning 🙂 Probably would’ve saved me a lot of time 🙂
And Brian that was my assumption as well – If I were to deploy VVOLs in production then I would be doing so under the assumption that I don’t need to manage anything from the storage end of things. Point being I’m letting the vSphere Admin manage his own stuff from his comfort zone of the vSphere Web Client.
It would be nice to actually see them within SSMC though and get performance reports and whatnot, which I’m sure will come with time!
Hi Eric,
Is it possible to delete and rename storage container?
Can we migrate a vm running on top of vvol to different policy. For e.g I have a vm running with bronze policy on SSD CPG Raid 6 and I want to move to Silver Policy that is created with SSD CPG Raid 1. I am using Inform OS 3.3.1.
I tried migrating but it failed saying “Invalid virtual machine config
“
Currently we don’t support changing CPGs of a VM via policy, that is a roadmap item for our next release though.
@ericsiebert:disqus Thanks for the information. Do we have any whitepaper from VMWARE/HPE on this.
and also this release would be from HPE side or from VMWARE side?
naz, you can only create & delete storage containers, not rename them, to delete use the setvvolsc -remove command