- Published: Thursday, 02 April 2015 14:32
With the release of vSphere 6 on 12th March 2015 VMware officially gave all customers the ability to use a new storage concept called vVols. vVols is the successor of the well known LUN<->datastore approach, where you create some kind of LUN on your storage array, define performance and availability by using different RAID classes and present this LUNs to your hypervisors. The hypervisors format the LUN and create a datastore on top of it. Nothing new. The datastore was probably shared by some or many VMs, sometimes you have a 1:1 mapping of VM to datastore but in bigger environments that's pretty uncommon as you have a 256 path limit for each hypervisor and this will reduce the maximum number of datastores useable per hypervisor host.
This traditional storage presentation way has some advantages but also some disadvantages Vmware tries to solve by introducing a new concept called vVols. You can get a HUGE amount of information on vVols but to bring you quite fast up-to-date, a vVol is a storage area that is created for every VM so you will always have a 1:1 mapping between VM and storage. Additionally you don't have to create a RAID set or datastore before you can save VMs on it. vVols will be created on the fly as you define a new VM and placement of the data will be controlled by profiles you initially have created. So you don't have to think about what RAID-level you should use, how big your LUN should be or with how many other VMs you should share the datastore. Simply choose from one of the storage profiles your storgage offers you or that you have created on your own and assign this profile to your VM. The hypervisor and the storage system will do the rest.
How can this be accomplished? Well, the basics are alreday there in vSphere 5. Profile-based storage is nothing new for VMware as VSAN already uses this. Storage integration was formerly done with VASA so why not upgrade VASA and do a tighter integration where the storage and the hypervisor can talk to each other. VASA 1.0 was some kind of limited because the storage could only report some storage characteristica but the hypervisor was unable to control the storage. With VASA 2.0 the hypervisor now can do that giving it the ability to create new storage on the fly using the storage profiles the storage system offers. Quite cool, isn't it? So if you already know VSAN and the functionality of VSAN, you can think of vVols as a counterpart of VSAN for every physical storage system.
Cool, what do you need to use vVols in your environment? First you need vSphere 6 Enterprise or EPlus. Next you need a compatible storage system. Right from the start HPs 3PAR was used for the reference implementation but others will follow quite shortly or even already have. For the 3PAR you have to be on latest 3PAR OS version 3.2.1 MU2. Using vVols with 3PAR systems also requires FibreChannel as protocol (as long as you use 3PAR systems, others already support iSCSI too). You can check storage compatibility with vVols here. Currently only 3PAR, NEC, IBM and SANBlaze support vVols but others will follow shortly.
Fortunately, my test lab already has all the requirements fulfilled so let's check how to implement vVols. It's easier than you probably think.
First you have to check if your vSphere 6 servers already see the PE-meta device. This can be done by issuing the command "esxcli core storage device list --pe-only" on each of your ESXi servers.
If the command doesn't show up any device than you ran into the same issue as I did. PE is a new technology and the way it works differs from the old fashioned way in the FC area. To support PE you have to use FC HBAs with new drivers. I used the HP customized installer for vSphere ESXi 6.0 but this version didn't include updated drivers for my QLogic based 8Gb FC HBAs. So I had to go to the VMware website, goto Downloads -> vSphere 6 -> ESXi Installer and Choose the drivers tab. There you will find updated drivers for QLogic HBAs. Download the zip, extract the zip and install the VIB the way you prefer. Use VUM or the CLI. After a reboot the command above will show one single entry. BTW, you can also see the PE device in the Web client under host -> Manage -> Storage -> Storage devices:
The PE will show up as a standard device but it's size ist only reported with 512bytes.
Next step is to configure your ESXi hosts to use the new VASA 2.0 provider. To do that you need the URL of the VSAS provider from the storage system. Connect to the CLI of the 3PAR and enter "showvasa"
Check if the service status is "Enabled". If not, enter "startvasa" to start the service. It will take some time for the service to start and you will see a raising MemUsage up to 450MB as in my case.
Copy the VASA_API2_URL and go back to your vSphere web client. Select your vCenter server and goto Manage > Storage Providers. Click on the green + button an enter your information.
I used the 3paradm user to connect to the storage but only because I'm in a demo lab where security isn't a concern. In a production environment you should use a service user.
After clicking on OK your storage provider will be listed in the overwiew
Make sure the state is "Active".
For a simple integration that's all you have to do. In a more complex environment you would now create CPGs for special use cases but for me the default CPGs every 3PAR has are enough.
No it's time to create some storage profiles in vCenter. As the 3PAR only offers some storage characteristica, we have to define a bit more to get a fully usable storage profile. Goto Home -> VM Storage Policies. In my case I already have some policies defined. If your environment is new only the first two default policies will be there at the moment.
Now it's time to define a new storage policy we will use for our first vVol based VM. Click on the "Create a new VM storage policy" button in the upper left. Give the new policy a name and description. I will use "vVol_Performance". Click Next 2x.
Now we have to choose which VASA provider we will use.
I use the upper one "com.hp.3par.spbm" as the other is the v1 VASA provider that won't allow me to use vVols.
Next choose one or more tags to create rules:
For this test rule I choose CPG FC_r1 to store all my VM data on RAID1 protected volumes from the FC CPG. If you created other CPGs they will show up too.
With this wizard you can build simple up to complex profiles and the storage system will take care about them. Once created you can use these profiles as much as you wish making storage configuration extremely easy.
Let's deploy a VM using vVols. To do that, simply open the "add VM" wizard as you would normally do. Nothing special here, give the VM a name (I choose "vVolTest", select the cluster it should run on. Now here comes the vVol magic. From within the next window "2c Select Storage" you can still select datastores or you select your newly created storage profile from the "VM Storage Policy" drop-down menu. As you choose your storage policy the list of datastores will get updated and will show you "Compatible" and "Incompatible" datastores.
That means, only the vVol "datastore" is compatible with my choosen storage policy, all other datastores do not offer the tags I configured.
The size shown under "Capacity" "Provisioned" and "Free" is 3PAR system wide so it will not show me if I have enough space left in CPG FC_r1 to store my VM but rather the total free and used space within ALL my CPGs.
The size of the vVol is determined by the size of the virtual disks I will configre later in the wizard. After successfully clikcing through the wizard the vVol will get automatically provided and the VM can be started.
For the vSphere admin, a VM on a vVol is nothing special. It can be treated as a standard datastore-based VM.
On the storage system there is a vVol for every config item (configuration file vmx, virtual harddisk file vmdk and virtual swap file swp).
One more note here: vVols are quite new and vSphere 6 is also new on the market. Not all bugs have been resolved and not all 3rd party products already support vSphere 6 and vVols. Veeam for example will support vSphere 6 end April 2015, other backup products probably will have the same issues. So please check if vSphere 6 is really 100% supported within your environment!