What is Virtual Volumes?
From VMware KB-2113013
Virtual Volumes (VVols) is a new integration and management framework that virtualizes SAN/NAS arrays, enabling a more efficient operational model that is optimized for virtualized environments and centered on the application instead of the infrastructure. Virtual Volumes simplifies operations through policy-driven automation that enables more agile storage consumption for virtual machines and dynamic adjustments in real time, when they are needed.
VVOL was first introduced in vSphere 6.0 and it changed the way how virtual machines are stored on storage. Before VVOL’s, the underlying datastores/LUN’s were provisioned and tagged as gold, silver and bronze type of model that forces a virtualization administrator to pick the storage tier that most closely matches their needs.
VVOL’s enables an administrator to apply a policy to a VM which defines the various performance and service-level agreement requirements, such as RAID level, replication or deduplication. The VM is then automatically placed on the storage array that fits those requirements.
Graphic thanks to www.tintri.com
How VVOL works?
VVOL creates a layer of abstraction and control between the Esxi host and attached storage. It separates storage’s data plane from the control plane. The underlying storage should have support for vSphere API’s for Storage Awareness (VASA) 2.0.
Storage data plane use Protocol Endpoint (PE’s) to transfer data between storage and hypervisor. Protocol Endpoints are part of the physical storage fabric, and they establish a data path from virtual machines to their respective virtual volumes on demand. Storage systems enables data services on virtual volumes.
VASA is used by storage data plane which allows a dialog to occur between the storage hardware and storage consumer. VMware sends a request to the storage hardware saying “Hey bud this is my requirement”. The storage hardware in turn can either accommodate the request or respond with a “Your request can’t be accommodated, but here is what I can give you” type of message.
VASA 2.0 supports bidirectional communication from/to vSphere and the attached storage. By allowing bidirectional communication, the storage can surface attributes (also known as storage capabilities) from the storage back to vSphere.
Using VVOL’s VMs and vDisks can be associated with storage entities, which allows vSphere to offload some storage management functions, like snapshots and clones to storage.
Virtual volumes are not pre-provisioned, but created automatically when operations like VM creation, cloning, and snapshotting is performed by administrator. ESXi and vCenter Server associate one or more virtual volumes to a virtual machine.
- vCenter Server 6.0 or later. Both windows based VC and VCSA supports VVOL’s
- ESXi 6.0 or later
- vSphere Web Client.
The use of vSphere Virtual Volumes requires the following license:
- vSphere Standard
- vSphere Enterprise Plus
Deployment of VVOL starts right from storage side. On the storage array, the storage administrator carves out pools of storage into storage containers (SCs) and these storage containers have attributes such as performance, replication, encryption and protection. Once a PE has been attached to vSphere, the SCs are used to create a VVOL datastore; a storage policy can then be created based on the SC attributes.
An SC can have more than one policy attached to it. When a VM is created a storage policy is selected; all the datastores that can meet the requirements are displayed, and one can be selected for use.
In my lab, the storage (openfiler) which I am using do not provide VVOL’s capabilities, so I can’t demonstrate the tasks which are done at storage level by storage administrator. I used VMware HOL to capture some screenshots for demonstration purpose. Below are the steps which needs to be followed on vSphere side to use VVOL’s.
1: Login to vSphere Web Client and Select vCenter server and navigate to Manage > Storage Providers
2: Click green plus button to register a new VASA provider. Typically the URL used to register the vasa provider will be provided by the storage administrator.
3: Once the VASA provider has been registered, you will see the list getting populated. Select the registered VASA provider and look for additional info about the provider by selecting appropriate tabs.
4: Create a new datastore.
5: Select type as VVOL and hit next.
6: Provide a name for the datastore and hit Next.
7: Select the hosts to which this new VVOL datastore will be exposed.
8: On Ready to complete page, review your settings and hit finish.
9: Select Cluster > Related Objects > Datastores and verify newly created VVOL datastore is in healthy state.
and that’s it. I am not covering the steps for creating VM storage policies and assigning them to VM at the time of VM creation, so that VM can take advantage of capabilities provided by VVOL’s. This I will explore later some time.
I hope you find this post informational. Feel free to share this on social media if it is worth sharing. Be sociable 🙂