Storage Management Initiative Specification - SMI-S
Overview
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.
- Service Location Protocol (port 427) -- This protocol is used by SMI-S clients as a directory service to identify resources.
- 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 10.0.0.1 -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
- Open up Server Manager. By default Server Manager starts when logging into Windows Server.
- Click Manage and select Add Roles and Features to start the Add Roles and Features Wizard.
- Navigate to the Features step of the wizard.
- Scroll down in the list of Features and check the Windows Standards-Based Storage Management feature.
- 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: Credential PS C:\> Register-SmisProvider -ConnectionUri https://10.0.0.1 -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 10.0.0.1 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 10.0.0.1 -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 https://10.0.0.1
Technical References
- Storage Networking Industry Association (SNIA)
- Storage Management Initiative Specification (SMI-S) Releases
- SMI-S Conformance Testing Program Official Results
- Pure Storage SMI-S Provider Guide
- Storage Management Technical Specification, Part 1 Common Architecture Version 1.6.0, Revision 4
- Storage Management Technical Specification, Part 3 Common Profiles Version 1.6.1, Revision 5
- Storage Management Technical Specification, Part 4 Block Devices Version 1.6.1, Revision 5