Software-Defined Storage Virtual Volumes (vVols)

Virtual Volumes on EMC Unity

I recently had the privilege of working with Daniel Chiu, a Principal Technical Marketing Manager at EMC, where he showed me just how simple yet powerful the new EMC Unity really is.  In this guest post Daniel provides insight into using Virtual Volumes (vVols) on EMC Unity.

EMC Unity made a big splash at EMC World last month.  It’s the new midrange storage platform to delight our current and prospect customers in the mid-markets with emphasis on simplicity, flexibility, modern data services, and affordability to meet the evolving needs how storage supports business operations today.  One area to highlight is the substantial hardware reduction in the platform that can result in significant power consumption saving.  Another emcunity2highlight is management simplicity in the user experience and proactive maintenance to streamline administration.  Those are just a couple of areas, but there is plenty more to be discussed.  While there is much more to talk about in Unity, let’s get to the focus of this post and that is an overview of Unity’s support for Virtual Volumes (vVols).  Unity is the first EMC midrange platform to officially to do so.  For those curious in learning more about Unity, you can go here.

To kick off the overview, we need to first understand the basics.  For a storage array to support vVols, its implementation needs to address the control path and the data path.

  • The control path is essentially the communication channel between the vCenter Server and the storage array. The storage array is responsible for advertising the capabilities of the storage presented to the ESXi hosts.  The Storage Policy-Based Management (SPBM) leverages this information to create and enforce storage policies applied to VMs.  Implementation of the control path involves support for VASA 2.0.
  • The data path is responsible for the I/O traffic. Data is ultimately stored on a physical device on the storage array.  When VMs are reading or writing data to the vVols (whether it be the configuration, swap space, snapshot, or VMDK), the Protocol Endpoints need to bind the path between VM and the location on the physical device in the storage array.

I’ll explain Unity’s implementation for the control and data paths before I get into the finer points such as advertised capabilities and configuration.

UnityArch

Unity Implementation Fundamentals

Unity’s VASA Provider is embedded in the controller.  That means there’s no need for a separate host to manage in a vVols environment.  That also means that the VASA Provider can take advantage of the inherent high availability feature of the Unity system.  Unity is a dual-controller system, if controller A goes down, controller B can take over thus the VASA connection is highly available.  The virtualization administrator enters the management IP of the Unity system along with the supporting account credentials to register the Unity VASA Provider on vCenter.

Unity supports NAS and SAN connectivity for vVols.  That means administrators have the flexibility to provision vVols Datastores on vSphere via NFS, iSCSI, or Fibre Channel.  Protocol Endpoints are the NAS Server interfaces, iSCSI initiators, and Fibre Channel ports zoned to the ESXi hosts.  The workflow to set up the vVols environment on the Unity system is well integrated into the re-designed array element manager, Unisphere.  The process of configuring Capability Profiles, Storage Containers, and presenting them to ESXi hosts are streamlined and easy to use.  I’ll get into the configuration process further down.

Advertised Capabilities

A Storage Container is the actual repository where data resides.  In Unity a Storage Container consists of one or more storage pools.  Each storage pool represents a mixture of drives (i.e. Flash, SAS, NL-SAS) with supporting data services (i.e. storage tiering).  The combination of drives and data services that defines the pool is encapsulated in a Capability Profile.  In Unity, a Storage Container can have multiple Capability Profiles.  The direct benefit a virtualization administrator gets from this feature is management simplification.  That leads to time saved and redirected to other things.  Why is that?  In the traditional paradigm of LUNs and file systems presented to the ESXi hosts, each of those storage objects represented a single Capability Profile.  In most cases, an administrator is not provisioning all the VMs with the same Capability Profile.  Engineering wants Capability Profile A.  Finance wants Capability Profile B.   Marketing wants Capability Profile C.  For each unique Capability Profile, it’s one or more LUNs or file systems to support it.  After a while, that’s a lot of storage objects to manage.

With Unity Storage Container, administrator can conceivably have just one Container for all of these different Capability Profiles.  At the very least, they can consolidate a few Capability Profiles and significantly reduce the amount of storage objects to manage.  Thus, it’s management simplification.  Less headaches, less time to manage.

Besides that, what are the actual capabilities Unity can advertise to vCenter?

  • Data services: Snapshots and Clones (they are not exposed in the Capability Profile but when snapshots or clones are requested on vCenter, the operations offloads to Unity via VASA)
  • Drive types: Indicates the type(s) of drives the storage pool contains
  • RAID types: Indicates RAID protection of the storage pool
  • FAST Cache: It’s a Boolean value to indicate whether FAST Cache is enabled for the storage pool
  • Tiering Policy: If FAST VP is enabled, there is a storage tiering policy assigned to the storage pool
  • Usage tag: Storage administrators can assign custom tags to the Capability Profile to indicate preferred uses of the storage pool (i.e. workloads, applications)
  • Service Level: Predefined descriptors to translate the Drive and RAID types of the storage pool into an indicator of service level, but not a service level objective.

Configuration

Next I’ll show you the workflow of setting up vVols from the storage perspective.

  1. On Unity Unisphere, the storage administrator will first create the storage pool(s) along with the associated Capability Profile(s). Notice that the Pool Creation Wizard also includes the option to create a Capability Profile in one single workflow.emc-1
  2. On Unity Unisphere, the storage administrator can then discover the ESXi hosts that are connected via the Protocol Endpoints by entering the vCenter address and supporting credentials.emc-2
  3. On Unity Unisphere, the storage administrator uses a wizard to create the Storage Container, which is also called a vVols Datastore in Unisphere. As you can see, this is a VMware specific wizard with options to provision a File, Block, or vVols Datastore (File or Block).emc-3

In the process of creating a Storage Container (a.k.a. vVols Datastore), the administrator can assign multiple Capability Profiles, as I mentioned earlier, with the corresponding capacities. Containers are thinly provisioned.  The capacity value behaves as maximum space allocation allowed for the Capability Profile in this Container.

emc-4

The wizard will proceed to configuring ESXi host access to the Storage Container.

4.  In vCenter Server, the virtualization administrator registers the Unity VASA Provider by entering the URL of the Unity system along with the supporting credentialsemc-6

With the storage part of the vVols environment configured, the virtualization administrator can now provision the vVols Datastores from the Storage Containers presented to the ESXi hosts.  From there, they can create storage policies using the advertised capabilities via Unity’s VASA Provider.  With SPBM, VMs can be created with the storage policies that will enforce appropriate storage is used to service the VM.  Compliance checks are available to ensure the underlying storage of the VM complies with the configured storage policy or policies.

Summary

This is just an overview of Unity’s implementation of vVols.  For more information, you can check out the Unity Virtualization Integration white paper and the Unity vVol configuration guide.  Unity’s implementation extends the value of enterprise data services such as storage-tiering and snapshots into a software-defined world enabled by vVols.  With management simplification to ease vVols setup, Unity is well equipped to support customers looking to make this transition.  For the ones interested in testing this capability, you can deploy UnityVSA on your vSphere environment.  UnityVSA is a software-based Unity product that can be installed as a virtual appliance in your vSphere environment.  It’s a FREE software download, and a perfect way to test the waters at no cost and low resource footprint.  Learn more here.