The Storage Management Initiative Specification (SMI-S) is a popular standard that provides a common set of tools for enterprises to manage their storage. Developed by SNIA (the Storage Networking Industry Association), SMI-S compliant products provide users with a standardized interface, so they can deploy arrays from their storage vendors of choice while retaining the ability to use native management tools.
Let’s take a look at how Nimble Storage has implemented SMI-S, focusing on how incredibly easy it is to use to manage Nimble arrays in a Hyper-V environment with Microsoft’s SCVMM (System Center Virtual Machine Manager).
Starting in Nimble OS 2.2, Nimble Storage arrays are natively SMI-S compliant and can be managed directly from SCVMM. What follows is a comprehensive list of steps you need to take in order to enable SMI-S on your Nimble array:
- You're done.
Yes, you read that right – there are no software agents that need to be installed, and no additional hardware required on which to run them. Everything needed for SMI-S is baked right into the Nimble array itself and is ready to go right out of the box. There are a couple of components that were added to Nimble OS in 2.2 which make this happen, which we’ll cover in the next section.
In order to become SMI-S compliant, an SMI-S provider and a Common Information Model (CIM) Object Manager (CIMOM) were added to the software stack on the Nimble array. The CIMOM server is based on Open Pegasus, which is an open source implementation of CIM and Web Based Enterprise Management (WBEM) standards. Both of these run on the array and communicate with the Windows Standards-Based Storage Management Service via the CIM-XML protocol. If you have multiple Nimble arrays grouped in a scale-out configuration, the group leader runs these processes on behalf of the entire group. The full stack from SCVMM 2012R2 to Nimble looks something like this:
Alright, we've introduced the Nimble SMI-S provider and described how it's implemented. Now how do you turn it on, and what can you do with it? There's nothing needed on the array itself, it's ready to go. When we add the array to SCVMM, it will discover the available storage capacity and any existing volumes which have been tagged with the “smis” agent type. All new volumes which SCVMM creates on the Nimble array will have this attribute. If you have existing volumes that you’d like to manage with SCVMM, you can modify the agent_type attribute for those volumes so that they can be discovered by SCVMM. We’ll go ahead and manually create and tag a volume before adding the array so that SCVMM has something to discover. Since Nimble arrays are dynamic target iSCSI arrays, this is a necessary step.
Now let’s add the provider to SCVMM. From within the SCVMM GUI, we’ll select the “Fabric” option in the navigation pane, right-click “Providers” and select “Add Storage Devices”.
This opens up the Add Storage Devices Wizard. On the first screen, we’ll select the option for “SAN and NAS devices discovered and managed by a SMI-S provider” and click Next.
For the discovery scope, we’ll specify the CIMXML protocol, enter the management IP address of our array, and check the option for SSL. We’ve already set up a run-as account with the appropriate credentials for our array. You can specify credentials by clicking “Browse…” and defining a new run-as account.
Our storage device has been discovered, and things are looking good so far.
Now we get to select the storage pools to manage with SCVMM and assign a classification to it. Here we’ve defined a simple “Nimble” classification. You can use the “Create Classification…” button to create whatever classifications are meaningful to you. Gold, Silver, Bronze, Platinum, Adamantium, whatever makes sense.
Lastly, we review our choices and click Finish to finish the discovery.
Now you should see the Nimble SMI-S provider listed under “Storage -> Providers”, and the Nimble array itself listed under “Storage -> Arrays”. Clicking on “Classifications and Pools” will allow us to review the storage which has been discovered.
To make the discovered storage usable by our Hyper-V cluster, we click on the “Allocated Capacity” icon and choose to “Allocate Storage Pools” to “All Hosts”.
We then select the Nimble storage pool we discovered, click “Add” and then “OK”.
Congratulations! You’ve now enabled your Nimble array for management by SCVMM, discovered storage objects, created a classification, and allocated your storage for use by any hosts being managed by SCVMM.
Now you can freely create, map, unmask, mask, and remove volumes as you see fit. With a few clicks, you can provision a Cluster Shared Volume to all of the hosts in your Hyper-V cluster.
We’ve captured these tasks in the following video on YouTube:
Have a look and let us know what you think!