I recently had the opportunity to test drive Virtual Volumes on Nimble Storage. This was my first time ever touching a Nimble Storage array, and if I had to summarize the experience in one word it would be simplicity. The array setup, vVols configuration, and eventually management of my vVols was extremely simple, highly available, and had some pretty differentiating functionality.
The purpose of this post is not to identify every configuration step and design consideration but I did want to share some of my takeaways with using vVols on Nimble Storage. As always for detailed information on the setup and configuration of any storage array I refer you to the respective vendor documentation. Product information for Nimble can be found at infosight.nimblestorage.com
vVols on Nimble Storage
For starters, all Nimble arrays from the earliest production adaptive flash models to their newer all-flash models are capable of supporting vVols as of NimbleOS 3. There is a GUI-driven registration of the VASA provider, auto-creation of protocol endpoints, and a simple folder creation wizard that makes storage container provisioning a breeze.
Availability is another theme that runs through the Nimble vVols offering. From the near six-nines availability of the vendor provider running directly on array hardware, to built-in protection policies via SPBM, deferred volume deletion, and options for business continuance using array based replication, availability is paramount. Yes Nimble is currently offering array based replication functionality when managed in Nimble OS. More on this later.
Like most vendor vVols implementations, Nimble vVols are tuned through SPBM to be an exact fit for the application that will run within them. Simple policies allow you to configure block size, compression, deduplication, flash usage policy, encryption, and data protection on a per-vVol basis. One of the interesting things with Nimble is how they provide application policies pre-configured for commonly used applications. Since Nimble is a block storage array providing storage over iSCSI and Fibre Channel protocols and not a NAS, I guess it goes without saying that there is no NFS support for vVols on Nimble.
The Nimble VASA Provider
Nimble has made the design choice of running the VASA provider directly on the Nimble array itself, rather than relying on an external virtual appliance to host the provider. Nimble arrays are highly available in an active/standby configuration and have demonstrated uptime as measured across thousands of arrays at over 8,100 customers to be 99.9997% available. As the VASA provider runs directly on the array, it is also highly available thanks to the availability of the underlying platform. Should the active controller in the Nimble array fail for some reason, the standby controller will take over and continue to provide data services without any resulting loss in performance. This holds true for the VASA provider as well, making the provider as highly available as the arrays themselves.
Nimble Storage arrays require Nimble OS 3 or greater for Virtual Volumes compatibility. The VASA vendor provider is built in to Nimble OS and runs on the array for high availability. Nimble Connection Manager for vSphere 6.0 version 3.0 is required for iSCSI connection management and the Nimble Directed PSP. Once the VASA provider is registered all capability profiles created in Nimble OS map native Nimble capabilities to VM storage Profiles. Incidentally, all VM workflows are supported – create, clone, snapshot, migrate, delete, HA/DRS.
Folders a.k.a. Storage Containers
Nimble OS 3 introduces the concept of folders. In vVols speak, a folder is essentially a storage container. When a vVols managed folder is created Nimble automatically creates a vVols Storage Container. Nimble folders are used to group volumes together for a common purpose. A folder can optionally impose a capacity limit for volumes which belong to the folder. In the case of vVols, a capacity limit is mandatory, although administrators can adjust the logical size of the container when necessary. From the Nimble UI, simply click “New Folder” and complete the wizard which pops up:
Array Storage Capability Profiles and Storage Profiles
The following data services are available when configuring storage capability profiles.
- Deduplication: Nimble arrays support inline deduplication which can be enabled on a per-vVol basis.
- Compression: Nimble arrays support inline compression which can be enabled on a per-vVol basis.
- Encryption: Nimble arrays support data encryption using the AES-256 algorithm which can be enabled for the entire array, or selectively on a volume by volume basis.
- Availability (RAID): Nimble arrays, which have a measured availability of 99.9997% across the entire install base use Triple Parity and Triple Parity+ RAID schemes for fast performance and high availability.
- Replication: Nimble arrays support bidirectional replication between arrays that have been designated as replication partners. (more on this below)
vSphere Web Client Integration
Although Nimble’s support for vVols is implemented completely within the native vSphere Web Client and does not require a plugin, Nimble provides a plugin that can be registered with either (or both) the Web Client or the Thick Client. This plugin allows for provisioning, snapshotting, cloning, and resizing datastores, monitoring of capacity and performance, and viewing of Nimble specific configuration settings.
A few differentiators
Nimble arrays support bidirectional replication between arrays that have been designated as replication partners. Downstream replicas can be used for recovery of VMware vVols in a couple of different ways.
The first means of recovery would be to reverse the replication, sending the set of vVols associated with a particular VM back from the destination to the original source. The volume metadata would be retained in this case, and the vVol would be present in the original folder. The user could then browse the vVols datastore and add the VM to inventory.
The second means of recovery could be quite useful in a business continuance situation. The downstream vVols replica can be brought online, imported into any Nimble folder on the destination array, and presented to any vCenter instance with which the downstream array has a VASA provider registered. Today, this is a Nimble support driven activity.
Pre-configured Application Policies
When configuring a policy for a VM you can either make your own custom VM storage policies or choose from the pre-configured application polices. In the example below I created some SPBM polices with the following attributes (SQL Logs Nimble Perf Policy, All-Flash Required and Deduplication enabled)
By default, a VM that is deleted will be taken offline and hidden from VMware instead of being immediately deleted. This helps safeguard against accidental deletion of virtual machines. After 24 hours, the VM is permanently deleted.
Before the deferred deletion period expires, it is possible to recover the VM using the “vm” command on the Nimble CLI. First, get a list of VMs:
Name Type Deleted Time Until Cleanup
Encrypted SQL VVol No N/A
MyImportantVM VVol Yes 23 hours
MyNotSoImportantVM VVol Yes 23 hours
Next, simply issue a restore command:
vm --restore MyImportantVM
This will bring the volumes associated with the VM back online and present them back to VMware within the original storage container. The user can then browse this container and add the VM to inventory.
It is also possible to force the immediate deletion of the VM:
vm --destroy MyNotSoImportantVM
Overall my experience with vVols on the Nimble storage array very positive. In addition to being simple to setup and configure I found the day to day management to be really straight forward. Behind the simple interface there are complex operations being handled for you i.e. creation of Protocol Endpoints, mapping of capability profiles to VM storage policies, and the seamless offloading of data services to the array. Lastly, Nimble is the first storage vendor to provide array based replication managed in Nimble OS. I want to extend a huge thanks to Julian Cates for showing me just how simple vVols on Nimble Storage really is.