Provision Storage like a Service Provider with NetApp Service Level Manager

As storage administrators, we often have responsibility to deliver the exact resources needed from a performance or capacity perspective for any specific workloads on demand. Do you find yourself saying “I have to deal with too many complexities and spend lot of effort to find out which storage pool has the required capacity and performance headroom to meet the provisioning requirements?”

If “YES” is the answer, then continue to read this blog to learn about an end to end automated management framework for service centric operations. The NetApp Service Level Manager is built for designing storage services that deliver predictable performance, capacity and data protection for any given workload.

NetApp Service Level Manager (NSLM) addresses this challenge and allows IT to simultaneously achieve multiple storage and data management goals without requiring armies of developers to create and manage customized IT infrastructures. It is a single consolidated interface which exposes RESTful APIs to integrate with many NetApp storage products. You can also integrate disparate software tools to simplify how you manage your on-premises and cloud storage. IT administrators gain a view of the entire storage infrastructure with a single tool and can define multiple storage service level classes that reflects the combinations of performance and capacity that exist in their IT environment. Isn’t this so cool. 😊

NSLM encapsulates standard practices employed by service providers and exposes three standard service levels based on service level objectives (SLOs). It also provides flexibility to custom create more service levels to suit your IT needs. These standard service levels specify objectives in terms of maximum latency permitted, peak IOPS allowed, including:

  1. Extreme performance service level, which can be compared to gold
  2. Performance service level, which can be compared to silver
  3. Value service level, which offers services like bronze

As the storage systems are registered with NSLM, automated discovery kicks in and the capabilities of controller and storage pools are recognized. Because of discovery task each storage pool is mapped against a specific service level. Once the storage systems are registered you can:

  • Integrate storage monitoring and reporting into one management interface
  • View inventory objects, configuration, and events collectively
  • Pull essential operational and performance metrics
  • Provision storage based on performance and service level requirements
  • And more!

Getting Started

From here on out it’s assumed that you already have NSLM installed. For more details, refer to the Installation and Administration Guide.

Using the built in Swagger documentation (available at https://<slm_server_ip>:<slm_server_port>) you can get a list of the available APIs. The Swagger interface also gives you the ability to try the APIs out, before you start coding them into your application:

To start using these APIs, the first thing you need to do is add one or more NetApp products to your NSLM deployment. You can do that through the admin web interface (or through the associated admin REST APIs) using https://<slm_server_ip>:<slm_server_port>/admin.

Now you are good to go ahead with the desired storage operation. We will see in next section how to provision a LUN using NSLM API.

Provision a LUN for database via NSLM

To provision LUNs for databases, you are aware that the workload is performance intensive, and you need storage that will meet the demand. If your storage system has a mix of storage pools with flash and non-flash it is no longer required to manually search which specific storage pool can provide the required performance and capacity. NSLM is intelligent and aware of the capabilities of the underlying storage pools. Using NSLM APIs you can provision an appropriate LUN quickly.

So, to provision a LUN via NSLM, we need to let NSLM know:

  • Storage Virtual Machine (SVM) that will host the LUN
  • Name of the LUN
  • Size of the LUN
  • Storage Service Level (SSL)

By providing these details to NSLM, you can rely on it to provision the LUN using a storage pool which can meet the SLA. In our example, I am provisioning a 10 GB LUN called “new_lun” at storage service level “extreme performance” in the “try_svm” SVM.

In NSLM, most objects are specified using a unique ID. To proceed to create a LUN we need to retrieve the unique ID for the SVM and storage service level, then provide those as input parameters when “POST”ing the LUN creation.

Sample code for LUN create:

Tracking the LUN create job:

After LUN create POST is issued, a job ID is created for the scheduled task and the details for it are available in the response headers. You can track the scheduled task with the job id at the given location to find the status of the job. You can also verify the new LUN from System Manager.

Sample response headers:

NSLM is Simplifying the Consumption of Storage

NetApp Service Level Manager enables you to manage applications or data by SLOs without worrying about storage platform nuances.

NSLM gives you the flexibility to use the development language, orchestrator and self-service portals of your choice. For users who do not want to start with programming right away, you can use the Swagger documentation available with the product to try out the APIs (available at https://<slm_server_ip>:<slm_server_port>). You can also try other tools like cURL and POSTMAN.

If you have questions please feel free to send them to ng-nslm-queries@netapp.com. Watch out for blog series in future for more on managing storage via NetApp Service Level Manager.

Priya Munshi

Leave a Reply