OpenStack Compute Volume Driver (Essex) READ ME

by Frequent Contributor on ‎2012-10-10 08:57 PM

Introduction

This guide explains how to configure and make use of the NetApp driver included with the Essex release of OpenStack.

Requirements

  • The driver requires NetApp OnCommand (OC) 5.x or later.
  • At least one NetApp storage controller running Data ONTAP 8.0 or later (under 7-mode).
  • The storage controller(s) should be discovered by OnCommand
  • OnCommand should have the login/password configured for all storage controllers to enable active management
  • The OpenStack controller node(s) must have network connectivity to the OnCommand management instance. The OpenStack Compute nodes must have network connectivity to all storage controllers that are part of the resource pool(s) associated with the OpenStack storage service in OnCommand.

Overview

The NetApp OpenStack driver relies on OnCommand Provisioning Manager to make decisions about where to provision new storage. Each "project" in OpenStack will map to a "dataset" in Provisioning Manager. Datasets are created from a "storage service", which specifies what policies will be applied to the datasets, and also specifies which resource pools will be available for provisioning new storage.

The driver makes calls to Provisioning Manager to provision each new volume. If a dataset already exists corresponding to the project for the new volume, the dataset is reused, otherwise, a new dataset is created before the provisioning operation proceeds.

The driver requires that the storage service has a SAN provisioning policy with LUN storage containers. The rest of the provisioning policy options and all of the protection policy options are up to the user.

The driver uses Provisioning Manager to perform LUN provisioning (and deletion) but does all LUN mapping/masking operations via pass-thru operations to the storage controllers. In particular, creation of igroups and mapping of LUNs to igroups is done outside of Provisioning Manager.

Preparation

Prior to OnCommand and Nova configuration, it's recommended that the OpenStack Compute Volume Driver for Essex be updated over what's included in the Essex release itself.  The latest is presently available here:

https://github.com/NetApp/nova/blob/essexport/nova/volume/netapp.py

Before configuring the OpenStack driver, NetApp OnCommand needs to be configured and running correctly.  The software can be obtained from:

http://support.netapp.com/portal/download

A storage service should be configured specifically for use by OpenStack. The storage service should have a SAN provisioning policy with a LUN container type, at a minimum. Make note of the storage service name, as you will need to enter it in nova.conf. Detailed instructions follow:

FILER_IP=<IP of storage system>

FILER_PASSWORD=<root password of storage system>

Direct DFM to discover the storage system:

dfm host add -N $FILER_IP

dfm host set $FILER_IP hostLogin=root hostPassword=$FILER_PASSWORD

Wait for the aggregates to be discovered (tyically ~1-2 minutes):

while [ `dfm aggr list -q | wc -l` -eq 0 ] ; do sleep 10 ; done

Create a resource pool:

dfpm respool create EssexResPool

List the discovered aggregates:

dfm aggr list $FILER_IP

Add an aggregate to the resource pool (repeat if there are multiple):

dfpm respool add EssexResPool $FILER_IP:aggr0

Wait for DFM to discover the licenses:

while [ -z `dfm details $FILER_IP | grep sysInfoTimestamp | awk '{print $2}'` ] ; do sleep 10 ; done

Wait for DFM to see that the iSCSI service is up:

dfm host discover $FILER_IP

while [ "No" == `dfm details $FILER_IP | grep hostIscsiStatus | awk '{print $2}'` ] ; do sleep 10 ; done

Create a provisioning policy:

dfpm policy create -t san EssexProvPolicy

dfpm policy set EssexProvPolicy diskFailureReliability=any thinProvisionSpace=enabled guaranteeSpaceForLUNWrites=disabled storageContainerType=lun

Create a storage service:

dfpm service create -v "Primary data&colon;EssexProvPolicy" -r "Primary data&colon;EssexResPool" EssexStorageService

Also, you need to make the WSDL file for DFM server available to OpenStack. There are a variety of ways to do this, including copying the WSDL file to a place where OpenStack can read it directly or making the file available over an HTTP interface. One simple way to do the latter would be to use the Operations Manager (OM) web server, and to simply copy the file into the web root. On Linux, the command to do this would be:

cp /opt/NTAPdfm/misc/dfm.wsdl /opt/NTAPdfm/web

Setup

To setup the NetApp OpenStack driver, the following lines must be added to nova.conf:

--volume_driver=nova.volume.netapp.NetAppISCSIDriver

--netapp_wsdl_url=http://${DFM_HOSTNAME}:8080/dfm.wsdl

--netapp_login=${DFM_LOGIN}

--netapp_password=${DFM_PASSWORD}

--netapp_server_hostname=${DFM_HOSTNAME}

--netapp_server_port=8088

--netapp_storage_service=${STORAGE_SERVICE}

The above assumes default port numbers, and you just need to supply the hostname and login details for the DFM server, as well as the storage service name.

After these modifications are made to the nova.conf file, you should be able to restart the nova-volume service and start provisioning storage using the driver.

Support

The NetApp Volume Driver for OpenStack Compute is community supported here:

http://communities.netapp.com/groups/openstack

For more rigorous production-level support please contact your NetApp Sale Representative for customized options.

Warning!

This NetApp Community is public and open website that is indexed by search engines such as Google. Participation in the NetApp Community is voluntary. All content posted on the NetApp Community is publicly viewable and available. This includes the rich text editor which is not encrypted for https.

In accordance to our Code of Conduct and Community Terms of Use DO NOT post or attach the following:

  • Software files (compressed or uncompressed)
  • Files that require an End User License Agreement (EULA)
  • Confidential information
  • Personal data you do not want publicly available
  • Another’s personally identifiable information
  • Copyrighted materials without the permission of the copyright owner

Files and content that do not abide by the Community Terms of Use or Code of Conduct will be removed. Continued non-compliance may result in NetApp Community account restrictions or termination.