Add NetApp Cinder backend support

Supports both iSCSI and NFS, and now both 7mode and cluster mode

Change-Id: If590a7a255268fcce4770c94956607251c36fdf5
This commit is contained in:
Dean Troyer 2014-06-12 18:45:42 -05:00
parent c6a5126f4a
commit a08ba1c5e3
2 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,64 @@
# lib/cinder_backends/netapp_iscsi
# Configure the NetApp iSCSI driver
# Enable with:
#
# iSCSI:
# CINDER_ENABLED_BACKENDS+=,netapp_iscsi:<volume-type-name>
# Dependencies:
#
# - ``functions`` file
# - ``cinder`` configurations
# ``CINDER_CONF``
# ``CINDER_CONF_DIR``
# ``CINDER_ENABLED_BACKENDS``
# configure_cinder_backend_netapp_iscsi - configure iSCSI
# Save trace setting
MY_XTRACE=$(set +o | grep xtrace)
set +o xtrace
# Entry Points
# ------------
# configure_cinder_backend_netapp_iscsi - Set config files, create data dirs, etc
function configure_cinder_backend_netapp_iscsi {
# To use NetApp, set the following in local.conf:
# CINDER_ENABLED_BACKENDS+=,netapp_iscsi:<volume-type-name>
# NETAPP_MODE=ontap_7mode|ontap_cluster
# NETAPP_IP=<mgmt-ip>
# NETAPP_LOGIN=<admin-account>
# NETAPP_PASSWORD=<admin-password>
# NETAPP_ISCSI_VOLUME_LIST=<volumes>
# In ontap_cluster mode, the following also needs to be defined:
# NETAPP_ISCSI_VSERVER=<vserver-name>
local be_name=$1
iniset $CINDER_CONF $be_name volume_backend_name $be_name
iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.netapp.common.NetAppDriver"
iniset $CINDER_CONF $be_name netapp_storage_family ${NETAPP_MODE:-ontap_7mode}
iniset $CINDER_CONF $be_name netapp_server_hostname $NETAPP_IP
iniset $CINDER_CONF $be_name netapp_login $NETAPP_LOGIN
iniset $CINDER_CONF $be_name netapp_password $NETAPP_PASSWORD
iniset $CINDER_CONF $be_name netapp_volume_list $NETAPP_ISCSI_VOLUME_LIST
iniset $CINDER_CONF $be_name netapp_storage_protocol iscsi
iniset $CINDER_CONF $be_name netapp_transport_type https
if [[ "$NETAPP_MODE" == "ontap_cluster" ]]; then
iniset $CINDER_CONF $be_name netapp_vserver $NETAPP_ISCSI_VSERVER
fi
}
# Restore xtrace
$MY_XTRACE
# Local variables:
# mode: shell-script
# End:

View File

@ -0,0 +1,75 @@
# lib/cinder_backends/netapp_nfs
# Configure the NetApp NFS driver
# Enable with:
#
# NFS:
# CINDER_ENABLED_BACKENDS+=,netapp_nfs:<volume-type-name>
# Dependencies:
#
# - ``functions`` file
# - ``cinder`` configurations
# ``CINDER_CONF``
# ``CINDER_CONF_DIR``
# ``CINDER_ENABLED_BACKENDS``
# configure_cinder_backend_netapp_nfs - configure NFS
# Save trace setting
MY_XTRACE=$(set +o | grep xtrace)
set +o xtrace
# Entry Points
# ------------
# configure_cinder_backend_netapp_nfs - Set config files, create data dirs, etc
function configure_cinder_backend_netapp_nfs {
# To use NetApp, set the following in local.conf:
# CINDER_ENABLED_BACKENDS+=,netapp_nfs:<volume-type-name>
# NETAPP_MODE=ontap_7mode|ontap_cluster
# NETAPP_IP=<mgmt-ip>
# NETAPP_LOGIN=<admin-account>
# NETAPP_PASSWORD=<admin-password>
# NETAPP_NFS_VOLUME_LIST=<export-volumes>
# In ontap_cluster mode, the following also needs to be defined:
# NETAPP_NFS_VSERVER=<vserver-name>
local be_name=$1
iniset $CINDER_CONF $be_name volume_backend_name $be_name
iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.netapp.common.NetAppDriver"
iniset $CINDER_CONF $be_name netapp_storage_family ${NETAPP_MODE:-ontap_7mode}
iniset $CINDER_CONF $be_name netapp_server_hostname $NETAPP_IP
iniset $CINDER_CONF $be_name netapp_login $NETAPP_LOGIN
iniset $CINDER_CONF $be_name netapp_password $NETAPP_PASSWORD
iniset $CINDER_CONF $be_name netapp_storage_protocol nfs
iniset $CINDER_CONF $be_name netapp_transport_type https
iniset $CINDER_CONF $be_name nfs_shares_config $CINDER_CONF_DIR/netapp_shares.conf
echo "$NETAPP_NFS_VOLUME_LIST" | tee "$CINDER_CONF_DIR/netapp_shares.conf"
if [[ "$NETAPP_MODE" == "ontap_cluster" ]]; then
iniset $CINDER_CONF $be_name netapp_vserver $NETAPP_NFS_VSERVER
fi
}
function cleanup_cinder_backend_netapp_nfs {
# Clean up remaining NFS mounts
# Be blunt and do them all
local m
for m in $CINDER_STATE_PATH/mnt/*; do
sudo umount $m
done
}
# Restore xtrace
$MY_XTRACE
# Local variables:
# mode: shell-script
# End: