Pure Storage SMI-S Provider Overview

With the release of Purity 4.6 we introduce support for the Storage Management Initiative Specification (SMI-S).This specification was created by the Storage Networking Industry Association (SNIA) to provide a unified interface for multiple storage vendors within a network. With the introduction of SMI-S support, FlashArray administrators can manage the array via an SMI-S client over HTTPS. A great example of an SMI-S client is Windows Server 2012 R2, and we will be discussing this in more detail later. Functionality provided by the SMI-S provider supports in the areas of inventory, configuration, provisioning, capacity, and alerting. Keeping with our message of simplicity, the SMI-S provider is embedded within Purity vs using a Proxy which requires more complex management. An administrator has just two services to enable as shown below, these are disabled by default.

  1. Service Location Protocol (port 427) — This protocol is used by SMI-S clients as a directory service to identify resources.
  2. SMI-S Provider (HTTPS, port 5989) — FlashArray administrators use the SMI-S provider to manage the array through an SMI-S client.

Purity Services

The SMI-S provider is optional and must be enabled before its first use. The services can be enabled through the Web Management interface or via the Purity Command Line Interface (CLI) using the puresmis commands. Below is an example of using the puresmis command, this shows that the Service Location Protocol enabled and the SMI-S Provider enabled shown as WBEM-HTTPS.

Puresmis CLI

Now that the SMI-S services have been enabled let’s take a look at how an SMI-S client can manage the Pure Storage FlashArray. The SMI-S client we will use is Windows Server 2012 R2. To enable Windows Server as an SMI-S client there is a specific feature called Windows Standards-Based Storage Management that needs to be installed using either the Server Manager or via Windows PowerShell with Add-WindowsFeature WindowsStorageManagement.

WindowsStorageManagement

Once this feature is added to the instance of Windows Server, using the SMI-S Provider is very straightforward. The first task is to register the SMI-S Provider. The PowerShell to register the provider is below. The Get-Credential will provide a prompt and in my case I am just using the standard pureuser account and password.

Register SMiSProvider

Now that we have the SMI-S Provider registered there are a few cmdlets we can run to check that we have access to the FlashArray. Using Get-StorageProvider will show that the FlashArray registered is from the Manufacturer PureStorage and it is of Type SMI-S. The Get-StorageSubSystem will retrieve details about the FlashArray’s HealthStatus, OperationalStatus and FriendlyName

Get StorageInformation

Provider is registered and now we can update the cache of the PureStorage provider and associated child objects from the FlashArray. A very important detail to point out is that if you have multiple storage vendors within your environment and use the DiscoveryLevel = Full and do not set a specific vendor this will access all storage providers which can be an expensive operation.

Update StorageProviderCache

Now there are other tasks that can be performed such as viewing the physical disks specific to a storage vendor. In the below example the display shows all of the drive bays and the details.

Get PhysicalDisk

The last example to show is how to provision a new volume. The name of the volume is SMIS-VOL and will be 2 TB in size. Along with showing how to create a new volume the Web Management interface shows that the volume has been created and ready for use.

New StorageSubsystemVirtualDisk

WebMgmt View

The final step is to unregister the SMI-S Provider.

Unregister SmisProvider

Below is a video demonstration showing all of the above operations.

The details discussed in this article are by no means an exhaustive list of operations that can be performed. With the multiple ways of managing our FlashArray combining the use of the SMI-S Provider and the PowerShell SDK offer a lot of different options for automation.

References

Thanks,
Barkz