Skip to main content
Pure Technical Services

Storage Management Initiative Specification - SMI-S

Currently viewing public documentation. Please login to access the full scope of documentation.



The release of Purity 4.6 introduced support for the Storage Management Initiative Specification (SMI-S). The SMI-S 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 from an SMI-S client over HTTPS. A great example of an SMI-S client is Windows Server which introduced the Windows Storage Based Management feature starting with Windows Server 2012. 

Functionality provided by the Pure Storage SMI-S provider includes the following profiles:

  • Block Services Package -- Models existing storage capacity, the assignment of capacity to storage pools, and the allocation of capacity to be used by external devices or applications.
  • Copy Services -- Provides a way to manage local mirrors, local snapshots and clones.
  • Disk Drive Lite Subprofile -- Models disk drive devices.
  • FC Target Ports -- Models the Fibre Channel specific aspects of a target storage system. Specializes the Generic Target Ports Profile.
  • Location Subprofile -- Models location information.
  • Masking and Mapping Subprofile -- Provides a way to manage which logical units (LUNs) are visible (exposed) to specific initiators through specific target ports.
  • Multiple Computer System Subprofile -- Models multiple systems that cooperate to present a “virtual” computer system with additional capabilities or redundancy.
  • Physical Package -- Models information about a storage system’s physical package and optionally about internal sub-packages.
  • Software Subprofile -- Models software or firmware installed on a computer system.
  • iSCSI Initiator Profile -- Models a network interface that acts as a client to an iSCSI target device. 
  • Indications Profile -- Provides support for event notifications. This can be a component profile of any other profile, and is a specialization of the DMTF Indications profile that adds SNIA elements and constraints.

Read the SMI-S Provider Guide for further details.

Managing SMI-S

The implementation model with our 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 FlashArray through an SMI-S client (Eg. Windows Server, System Center Virtual Machine Manager, SolarWinds, ServiceNow).

The SMI-S provider is optional and must be enabled before use. The services can be enabled through the Web Management interface or via the Purity Command Line Interface (CLI) using puresmis. Below is an example of using the Web Management interface and puresmis command.


Example of enabling using the Purity CLI:

pureuser@solutions-lab-m20-c09-29> puresmis list
Name                      SLP       WBEM-HTTPS
solutions-lab-m20-c09-29  disabled  disabled  
pureuser@solutions-lab-m20-c09-29> puresmis enable
Name                      SLP      WBEM-HTTPS
solutions-lab-m20-c09-29  enabled  enabled   

Another option is to use a Pure Storage PowerShell cmdlet, New-PfaCliCommand,this runs a command from PowerShell which passes the CLI command to the FlashArray for configuration.

PS C:\> New-PfaCLICommand -EndPoint -UserName pureuser -CommandText "puresmis enable"

cmdlet New-PfaCLICommand at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
Password: ********
Name                      SLP      WBEM-HTTPS
solutions-lab-m20-c09-29  enabled  enabled

Windows Server SMI-S Client

Windows Server 2012, 2012 R2 and 2016 can function as an SMI-S client using the Windows Standards-Based Storage Management feature that is included with Windows Server. This is a quick and simple way to test the functionality of the Pure Storage SMI-S provider. To enable Windows Server as an SMI-S client the Windows Standards-Based Storage Management feature needs to be installed using either the Server Manager or Windows PowerShell.

Installing on Windows Server 2012, 2012 R2, 2016 and 2019

Server Manager

  1. Open up Server Manager. By default Server Manager starts when logging into Windows Server. 
  2. Click Manage and select Add Roles and Features to start the Add Roles and Features Wizard.
  3. Navigate to the Features step of the wizard.
  4. Scroll down in the list of Features and check the Windows Standards-Based Storage Management feature.
  5. Click Next and Install.

The below screenshot is from Windows Server 2016, but Windows Server 2012, 2012 R2, and 2019 are the same with the exception of the dialog borders.


Windows PowerShell 

The Windows Feature name was changed to WindowsStorageManagementService

PS C:\> Add-WindowsFeature -Name 'WindowsStorageManagementService'

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Windows Standards-Based Storage Management}

Using the SMI-S Provider with Windows PowerShell

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 dialog to enter credentials that will be used with the Register-SmisProvider cmdlet.

 PS C:\> $Creds = Get-Credential

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
PS C:\> Register-SmisProvider -ConnectionUri -Credential $Creds

The SMI-S Provider is registered there are a few cmdlets that can be used to check 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.

PS C:\> Get-StorageProvider

Type    Name                                                        Manufacturer
----    ----                                                        ------------
SMP     Windows Storage Management Provider                         Microsoft Corporation
SMI-S                                                    PureStorage

PS C:\> Get-StorageSubSystem

FriendlyName                HealthStatus OperationalStatus
------------                ------------ -----------------
Windows Storage on SERVER01 Healthy      OK
solutions-lab-m20-c09-29    Healthy      OK

Next is to update the cache of the PureStorage provider and associated child objects from the FlashArray.

If there are multiple storage vendors registered within the environment and DiscoveryLevel Full is used and a Manufacturer (Eg. PureStorage) is not specified this will attempt to query all registered storage providers which can be an expensive operation.

 Update-StorageProviderCache -Name -DiscoveryLevel Full -Manufacturer PureStorage

The below screenshot illustrates the tasks being performed as indicated by the Windows PowerShell progress notifications.


Now the physical disks can be viewed from a specific storage vendor. In the below example the display shows all of the drives and details for the FlashArray//M20.

PS C:\> Get-PhysicalDisk -Manufacturer PureStorage | Format-Table -AutoSize

FriendlyName SerialNumber CanPool OperationalStatus HealthStatus Usage      Size
------------ ------------ ------- ----------------- ------------ -----      ----
CH0.BAY0     N/A          False   OK                Healthy            476.45 GB
CH0.BAY1     N/A          False   OK                Healthy            476.45 GB
CH0.BAY10    N/A          False   OK                Healthy            476.45 GB
CH0.BAY11    N/A          False   OK                Healthy            476.45 GB
CH0.BAY12    N/A          False   OK                Healthy            476.45 GB
CH0.BAY13    N/A          False   OK                Healthy            476.45 GB
CH0.BAY14    N/A          False   OK                Healthy            476.45 GB
CH0.BAY15    N/A          False   OK                Healthy            476.45 GB
CH0.BAY16    N/A          False   OK                Healthy            476.45 GB
CH0.BAY17    N/A          False   OK                Healthy            476.45 GB
CH0.BAY18    N/A          False   OK                Healthy            476.45 GB
CH0.BAY19    N/A          False   OK                Healthy            476.45 GB
CH0.BAY2     N/A          False   OK                Healthy            476.45 GB
CH0.BAY3     N/A          False   OK                Healthy            476.45 GB
CH0.BAY4     N/A          False   OK                Healthy            476.45 GB
CH0.BAY5     N/A          False   OK                Healthy            476.45 GB
CH0.BAY6     N/A          False   OK                Healthy            476.45 GB
CH0.BAY7     N/A          False   OK                Healthy            476.45 GB
CH0.BAY8     N/A          False   OK                Healthy            476.45 GB
CH0.BAY9     N/A          False   OK                Healthy            476.45 GB
CH0.NVB0     N/A          False   OK                Healthy                 7 GB
CH0.NVB1     N/A          False   OK                Healthy                 7 GB

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.

 PS C:\> New-StorageSubsystemVirtualDisk -StorageSubSystemFriendlyName solutions-lab-m20-c09-29 -FriendlyName 'VOLUME01' -Size 2.5TB

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach   Size
------------ --------------------- ----------------- ------------ --------------   ----
VOLUME01                           OK                Healthy                     2.5 TB

The below screenshot of the FlashArray management interface shows the new volume, VOLUME01, has been created. 


The final task is to unregister the SMI-S provider. 

 Unregister-SmisProvider -ConnectionUri