Overview
The Rackspace Private Cloud Software (RPCS) powered by OpenStack, provides the opportunity to easily build and configure an OpenStack based private cloud with both off the shelf and enterprise class hardware. This document describes how to take your Rackspace Private Cloud compute cluster and using Cinder, the OpenStack block storage project, connect it to a NetApp shared storage back end. The following diagram depicts the design and configuration:

Figure 1 – Rackspace Private Cloud Mass Compute Cluster with iSCSI back end by NetApp
To provide enterprise grade availability and performance for block-based workloads, users may choose from a wide variety of storage providers to use with OpenStack. The RPCS has been certified to work with NetApp storage. This document describes the process as well as the details for implementing Cinder with NetApp storage on the RPCS. NetApp specific details are provided in their documents referenced in the document.
Prerequisites
This document assumes the following:
- A RPCS cluster (at least one opencenter server, one chef server, one controller, and one compute node)
- A NetApp 2040 or above array running Ontap 8.1
- Familiarity with the following Rackspace Knowledge Center post: Configuring Openstack Block Storage
Procedure
In our example we start by applying the cinder-all chef role to the controller node of your cluster:
1. SSH to the controller node, sudo to root
2. source openrc
3. knife node list
aio.netapp.lab
c1.netapp.lab
c2.netapp.lab
4. knife node run_list add aio.netapp.lab 'role[cinder-all]'
5. chef-client
6. knife node run_list remove aio.netapp.lab 'role[cinder-all]'
7. chef-client
Note: We add and then remove the role to ensure the services are installed but not clobbered by Chef.
Now that we have the Cinder role applied, the next steps are NetApp specific. For the most up to date version of the NetApp Cinder driver as well as installation and configuration instructions, please refer to the following site: https://communities.netapp.com/docs/DOC-21887. What follows is a high level overview of the steps required to configure the NetApp Cinder plugin with some additional call-outs for RPCS specific.
1. Download the netapp.py file from: https://communities.netapp.com/docs/DOC-21887
2. Copy the netapp.py file to /usr/share/pyshared/cinder/volume/ on the controller
3. Edit the cinder.conf file
The following values need to be added to the cinder.conf file:
volume_driver = cinder.volume.netapp.NetAppISCSIDriver
netapp_wsdl_url = http://1.2.3.4:8080/dfm.wsdl
netapp_login = user
netapp_password = password!
netapp_server_hostname = 1.2.3.4
netapp_server_port = 8088
netapp_storage_service = CinderStorageService
4. Restart the cinder-volume service
5. Remove the NetApp driver from automatic updates:
Note: You will need to obtain the wsdl URL and credentials from your NetApp administrator.
Caveats
- The cinder-all can be applied to any node in your cluster as it is functioning as a pass-through to the NetApp storage back-end. In this example, we used the Controller node for simplicity.
- The cinder-all role must be added, and then removed from the run list. This is to prevent Chef from clobbering your configuration.
Resources
For more information on OpenStack, please refer to the following links:
http://www.openstack.org/
http://www.openstack.org/software/start/
For more information about the RPCS:
Rackspace Private Cloud Openstack Software
Rackspace Private Cloud
Summary
This document described the process by which you can configure NetApp storage to work with Cinder on the RPCS.