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:
parent
c6a5126f4a
commit
a08ba1c5e3
64
lib/cinder_backends/netapp_iscsi
Normal file
64
lib/cinder_backends/netapp_iscsi
Normal 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:
|
75
lib/cinder_backends/netapp_nfs
Normal file
75
lib/cinder_backends/netapp_nfs
Normal 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:
|
Loading…
Reference in New Issue
Block a user