Add E-Series storage familly support
- added E-Series storage family support - the plugin UI was refactored for better visibility - fields screenshots were updated Change-Id: Ibcc9dd51a86803e45ed334a46d97f29224e5ba5c
12
README.md
|
@ -13,6 +13,7 @@ LVM is the default volume backend that uses local volumes managed by LVM.
|
|||
The plugin support following storage familly mode:
|
||||
- 7 Mode
|
||||
- Cluster Mode
|
||||
- E-Series
|
||||
|
||||
This repo contains all necessary files to build Cinder NetApp Fuel plugin.
|
||||
|
||||
|
@ -307,6 +308,11 @@ Here is a screenshot of the fields
|
|||
|
||||
![Cinder-netapp 7 Mode iscsi fields](./figures/cinder-netapp-7mode-iscsi-plugin.png "Cinder-netapp 7 Mode iscsi fields")
|
||||
|
||||
e) E-Series and iscsi
|
||||
|
||||
Here is a screenshot of the fields
|
||||
![Cinder-netapp E-Series iscsi fields](./figures/cinder-netapp-eseries-iscsi-plugin.png "Cinder-netapp E-Series iscsi fields")
|
||||
|
||||
3) Assign Cinder role to one of the nodes
|
||||
4) For more information on NetApp integration into Cinder, configuration and API issues, see [the Official Netapp Guide for Openstack](http://docs.openstack.org/juno/config-reference/content/netapp-volume-driver.html).
|
||||
|
||||
|
@ -325,6 +331,12 @@ None.
|
|||
Release Notes
|
||||
-------------
|
||||
|
||||
**3.2.0**
|
||||
|
||||
* add E-Series storage familly support
|
||||
|
||||
* fix the plugin UI
|
||||
|
||||
**3.1.0**
|
||||
|
||||
* add high availability of operations with Volumes
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
$fuel_settings = parseyaml(file('/etc/astute.yaml'))
|
||||
class {'plugin_cinder_netapp::cinder': }
|
||||
$fuel_settings = parseyaml($astute_settings_yaml)
|
||||
class {'plugin_cinder_netapp::cinder': }
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
$fuel_settings = parseyaml(file('/etc/astute.yaml'))
|
||||
class {'plugin_cinder_netapp::compute': }
|
||||
$fuel_settings = parseyaml($astute_settings_yaml)
|
||||
class {'plugin_cinder_netapp::compute': }
|
||||
|
|
|
@ -11,36 +11,34 @@
|
|||
#
|
||||
define plugin_cinder_netapp::backend::netapp (
|
||||
$section = $name,
|
||||
$backends ="",
|
||||
$backends = "",
|
||||
$mutlibackends = false,
|
||||
$cinder_node = false
|
||||
$cinder_node = false
|
||||
) {
|
||||
include cinder::client
|
||||
#Ensure that $ symbole is correctly escaped in netapp password
|
||||
$netapp_password = regsubst($::fuel_settings['cinder_netapp']['netapp_password'],'\$','$$','G')
|
||||
$backend_name='cinder_netapp'
|
||||
$backend_name = 'cinder_netapp'
|
||||
cinder::backend::netapp { "${backend_name}":
|
||||
volume_backend_name => $section,
|
||||
netapp_login => $::fuel_settings['cinder_netapp']['netapp_login'],
|
||||
netapp_password => $netapp_password,
|
||||
netapp_server_hostname => $::fuel_settings['cinder_netapp']['netapp_server_hostname'],
|
||||
volume_backend_name => $section,
|
||||
netapp_server_port => $::fuel_settings['cinder_netapp']['netapp_server_port'],
|
||||
netapp_size_multiplier => $::fuel_settings['cinder_netapp']['netappsize_multiplier'],
|
||||
netapp_transport_type => $::fuel_settings['cinder_netapp']['netapp_transport_type'],
|
||||
netapp_storage_family => $::fuel_settings['cinder_netapp']['netapp_storage_family'],
|
||||
netapp_storage_protocol => $::fuel_settings['cinder_netapp']['netapp_storage_protocol'],
|
||||
netapp_transport_type => $::fuel_settings['cinder_netapp']['netapp_transport_type'],
|
||||
netapp_vserver => $::fuel_settings['cinder_netapp']['netapp_vserver'],
|
||||
netapp_controller_ips => $::fuel_settings['cinder_netapp']['netapp_controller_ips'],
|
||||
netapp_sa_password => $::fuel_settings['cinder_netapp']['netapp_sa_password'],
|
||||
netapp_storage_pools => $::fuel_settings['cinder_netapp']['netapp_storage_pools'],
|
||||
netapp_size_multiplier => $::fuel_settings['cinder_netapp']['netapp_size_multiplier'],
|
||||
netapp_vfiler => $::fuel_settings['cinder_netapp']['netapp_vfiler'],
|
||||
netapp_volume_list => $::fuel_settings['cinder_netapp']['netapp_volume_list'],
|
||||
netapp_vserver => $::fuel_settings['cinder_netapp']['netapp_vserver'],
|
||||
expiry_thres_minutes => $::fuel_settings['cinder_netapp']['expiry_thres_minutes'],
|
||||
thres_avl_size_perc_start => $::fuel_settings['cinder_netapp']['thres_avl_size_perc_start'],
|
||||
thres_avl_size_perc_stop => $::fuel_settings['cinder_netapp']['thres_avl_size_perc_stop'],
|
||||
nfs_shares_config => "/etc/cinder/shares.conf",
|
||||
netapp_copyoffload_tool_path => $::fuel_settings['cinder_netapp']['netapp_copyoffload_tool_path'],
|
||||
#netapp_controller_ips => '',
|
||||
#netapp_sa_password => '',
|
||||
#netapp_storage_pools => '',
|
||||
#netapp_webservice_path => '/devmgr/v2',
|
||||
}
|
||||
$index = $::fuel_settings['cinder_netapp']['nb_share']
|
||||
if $mutlibackends{
|
||||
|
|
|
@ -6,18 +6,40 @@ attributes:
|
|||
weight: 35
|
||||
type: "checkbox"
|
||||
|
||||
# Storage Type
|
||||
netapp_storage_family:
|
||||
value: "ontap_cluster"
|
||||
values:
|
||||
- data: "ontap_cluster"
|
||||
label: "Ontap cluster"
|
||||
description: "Clustered data ONTAP storage family"
|
||||
label: "Ontap Cluster"
|
||||
description: "Data ONTAP operating in Clustered storage family"
|
||||
- data: "ontap_7mode"
|
||||
label: "Ontap 7 mode"
|
||||
description: "Data ONTAP operating in 7_mode storage family"
|
||||
label: "Ontap 7mode"
|
||||
description: "Data ONTAP operating in 7Mode storage family"
|
||||
- data: "eseries"
|
||||
label: "E-Series"
|
||||
description: "E-Series storage family"
|
||||
label: "Netapp storage family"
|
||||
weight: 40
|
||||
type: "radio"
|
||||
netapp_storage_protocol:
|
||||
value: "iscsi"
|
||||
values:
|
||||
- data: "iscsi"
|
||||
label: "iscsi"
|
||||
description: ""
|
||||
- data: "nfs"
|
||||
label: "nfs"
|
||||
description: ""
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_family.value == 'eseries'"
|
||||
action: "hide"
|
||||
label: "Netapp storage protocol"
|
||||
description: 'The storage protocol to be used on the data path with the storage system'
|
||||
weight: 42
|
||||
type: "radio"
|
||||
|
||||
# Authorisation
|
||||
netapp_login:
|
||||
value: ''
|
||||
label: 'Username'
|
||||
|
@ -28,69 +50,22 @@ attributes:
|
|||
value: ''
|
||||
label: 'Password'
|
||||
description: 'Password for the administrative user account specified in the netapp_login option.'
|
||||
weight: 45
|
||||
weight: 46
|
||||
type: "password"
|
||||
|
||||
# Connection
|
||||
netapp_server_hostname:
|
||||
value: ''
|
||||
label: 'NetApp Hostname/IP'
|
||||
description: 'The hostname (or IP address) for the storage system or proxy server.'
|
||||
weight: 55
|
||||
type: "text"
|
||||
nfs_server_ip:
|
||||
netapp_server_port:
|
||||
value: ''
|
||||
label: 'NetApp NFS server Hostname/IP'
|
||||
description: 'The hostname (or IP address) for NFS server started on NetApp apliance'
|
||||
weight: 65
|
||||
label: 'NetApp server port'
|
||||
description: 'The TCP port to use for communication with the storage system or proxy server. If not specified, Data ONTAP drivers will use 80 for HTTP and 443 for HTTPS; E-Series will use 8080 for HTTP and 8443 for HTTPS.'
|
||||
weight: 56
|
||||
type: "text"
|
||||
nb_share:
|
||||
type: "select"
|
||||
weight: 72
|
||||
value: "1"
|
||||
label: "Number of Netapp NFS share"
|
||||
description: ""
|
||||
values:
|
||||
- data: "1"
|
||||
label: "1"
|
||||
- data: "2"
|
||||
label: "2"
|
||||
- data: "3"
|
||||
label: "3"
|
||||
- data: "4"
|
||||
label: "4"
|
||||
nfs_server_share1:
|
||||
value: ''
|
||||
label: 'NetApp NFS share'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 75
|
||||
type: "text"
|
||||
nfs_server_share2:
|
||||
value: ''
|
||||
label: 'NetApp NFS share 2'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 75
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.nb_share.value != '2' and settings:cinder_netapp.nb_share.value != '3' and settings:cinder_netapp.nb_share.value != '4' "
|
||||
|
||||
action: "hide"
|
||||
nfs_server_share3:
|
||||
value: ''
|
||||
label: 'NetApp NFS share 3'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 75
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.nb_share.value != '3' and settings:cinder_netapp.nb_share.value != '4' "
|
||||
action: "hide"
|
||||
nfs_server_share4:
|
||||
value: ''
|
||||
label: 'NetApp NFS share 4'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 75
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.nb_share.value != '4' "
|
||||
action: "hide"
|
||||
netapp_transport_type:
|
||||
value: "http"
|
||||
values:
|
||||
|
@ -102,100 +77,179 @@ attributes:
|
|||
description: ""
|
||||
label: "Netapp transport type"
|
||||
description: 'The transport protocol used for communication with the storage system or proxy server'
|
||||
weight: 76
|
||||
type: "radio"
|
||||
netapp_server_port:
|
||||
value: '80'
|
||||
label: 'NetApp server port'
|
||||
description: 'The TCP port to use for communication with the storage system or proxy server'
|
||||
weight: 77
|
||||
type: "text"
|
||||
netapp_storage_protocol:
|
||||
value: "nfs"
|
||||
values:
|
||||
- data: "nfs"
|
||||
label: "nfs"
|
||||
description: ""
|
||||
- data: "iscsi"
|
||||
label: "iscsi"
|
||||
description: ""
|
||||
label: "Netapp storage protocol"
|
||||
description: 'The storage protocol to be used on the data path with the storage system'
|
||||
weight: 78
|
||||
weight: 57
|
||||
type: "radio"
|
||||
|
||||
netapp_vserver:
|
||||
# NFS
|
||||
nfs_server_ip:
|
||||
value: ''
|
||||
label: 'Vserver'
|
||||
description: 'This option specifies the virtual storage server (Vserver) name on the storage cluster on which provisioning of block storage volumes should occur. (Cluster-Mode only and mandatory for NFS Storage protocol)'
|
||||
weight: 75
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_family.value != 'ontap_cluster'"
|
||||
action: "hide"
|
||||
|
||||
expiry_thres_minutes:
|
||||
value: '720'
|
||||
label: 'Expiry thres minutes'
|
||||
description: 'This option specifies the threshold for last access time for images in the NFS image cache (NFS protocol only)'
|
||||
weight: 85
|
||||
label: 'NetApp NFS server'
|
||||
description: 'The hostname (or IP address) for NFS server started on NetApp apliance'
|
||||
weight: 70
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs'"
|
||||
action: "hide"
|
||||
netapp_copyoffload_tool_path:
|
||||
nb_share:
|
||||
type: "select"
|
||||
weight: 71
|
||||
value: "1"
|
||||
label: "NFS shares"
|
||||
description: "Number of Netapp NFS shares"
|
||||
values:
|
||||
- data: "1"
|
||||
label: "1"
|
||||
- data: "2"
|
||||
label: "2"
|
||||
- data: "3"
|
||||
label: "3"
|
||||
- data: "4"
|
||||
label: "4"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs'"
|
||||
action: "hide"
|
||||
nfs_server_share1:
|
||||
value: ''
|
||||
label: 'NetApp copyoffload tool path'
|
||||
description: '(Optionnal) This option specifies the path of the Netapp copy ofload tool binary (NFS protocol only)'
|
||||
weight: 85
|
||||
label: 'NFS share'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 72
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs'"
|
||||
action: "hide"
|
||||
nfs_server_share2:
|
||||
value: ''
|
||||
label: 'NFS share 2'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 73
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs' or settings:cinder_netapp.nb_share.value != '2' and settings:cinder_netapp.nb_share.value != '3' and settings:cinder_netapp.nb_share.value != '4'"
|
||||
action: "hide"
|
||||
nfs_server_share3:
|
||||
value: ''
|
||||
label: 'NFS share 3'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 74
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs' or settings:cinder_netapp.nb_share.value != '3' and settings:cinder_netapp.nb_share.value != '4'"
|
||||
action: "hide"
|
||||
nfs_server_share4:
|
||||
value: ''
|
||||
label: 'NFS share 4'
|
||||
description: 'The NFS share path (e.g. /vol2)'
|
||||
weight: 75
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs' or settings:cinder_netapp.nb_share.value != '4'"
|
||||
action: "hide"
|
||||
expiry_thres_minutes:
|
||||
value: '720'
|
||||
label: 'NFS expiry thres minutes'
|
||||
description: 'This option specifies the threshold for last access time for images in the NFS image cache (NFS protocol only)'
|
||||
weight: 76
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs'"
|
||||
action: "hide"
|
||||
thres_avil_size_perc_start:
|
||||
value: '20'
|
||||
label: 'Thres avl size perc start'
|
||||
label: 'NFS thres avl size perc start'
|
||||
description: 'The percentage of available space from which the NFS image cache will be cleaned (NFS protocol only)'
|
||||
weight: 85
|
||||
weight: 77
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs'"
|
||||
action: "hide"
|
||||
thres_avil_size_perc_stop:
|
||||
value: '60'
|
||||
label: 'Thres avl size perc stop'
|
||||
label: 'NFS thres avl size perc stop'
|
||||
description: 'The percentage of available space from which the driver will stop cleaning the NFS image cache (NFS protocol only)'
|
||||
weight: 85
|
||||
weight: 78
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs'"
|
||||
action: "hide"
|
||||
|
||||
netapp_size_multiplier:
|
||||
value: '1.2'
|
||||
label: 'NetApp size multiplier'
|
||||
description: 'Mutiplication factor used to chack available space on the virtual storage server (iSCSI configuration only)'
|
||||
weight: 90
|
||||
# Ontap Cluster
|
||||
netapp_vserver:
|
||||
value: ''
|
||||
label: 'CMode vserver'
|
||||
description: 'This option specifies the virtual storage server (Vserver) name on the storage cluster on which provisioning of block storage volumes should occur. (Cluster-Mode only and mandatory for NFS Storage protocol)'
|
||||
weight: 80
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi'"
|
||||
- condition: "settings:cinder_netapp.netapp_storage_family.value != 'ontap_cluster'"
|
||||
action: "hide"
|
||||
|
||||
# Ontap Cluster with NFS
|
||||
netapp_copyoffload_tool_path:
|
||||
value: ''
|
||||
label: 'CMode copyoffload tool path'
|
||||
description: '(Optionnal) This option specifies the path of the Netapp copy offload tool binary (NFS protocol only)'
|
||||
weight: 81
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'nfs' or settings:cinder_netapp.netapp_storage_family.value != 'ontap_cluster'"
|
||||
action: "hide"
|
||||
|
||||
# Ontap 7Mode with iSCSI
|
||||
netapp_vfiler:
|
||||
value: ''
|
||||
label: 'Netapp vfiler'
|
||||
label: '7Mode vfiler'
|
||||
description: '(Optionnal) The vFiler unti on which provisioning of block storage volumes will be done (iSCSI configuration in 7-Mode only)'
|
||||
weight: 90
|
||||
weight: 81
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi' or settings:cinder_netapp.netapp_storage_family.value != 'ontap_7mode'"
|
||||
action: "hide"
|
||||
netapp_volume_list:
|
||||
value: ''
|
||||
label: 'Netapp volume list'
|
||||
label: '7Mode volume list'
|
||||
description: '(Optionnal) This option is used to restrict provisionning to the specified controller volumes (iSCSI configuration in 7-Mode only)'
|
||||
weight: 90
|
||||
weight: 82
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi' or settings:cinder_netapp.netapp_storage_family.value != 'ontap_7mode'"
|
||||
action: "hide"
|
||||
|
||||
# Ontap Cluster or 7Mode with iSCSI
|
||||
netapp_size_multiplier:
|
||||
value: '1.2'
|
||||
label: 'NetApp size multiplier'
|
||||
description: 'Mutiplication factor used to chack available space on the virtual storage server (iSCSI configuration only)'
|
||||
weight: 83
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi' or settings:cinder_netapp.netapp_storage_family.value == 'eseries'"
|
||||
action: "hide"
|
||||
|
||||
# E-Series
|
||||
netapp_controller_ips:
|
||||
value: ''
|
||||
label: 'E-Series controller IPs'
|
||||
description: 'This option is used to restrict provisioning to the specified controllers. Specify the value of this option to be a comma separated list of controller hostnames or IP addresses to be used for provisioning.'
|
||||
weight: 80
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_family.value != 'eseries' or settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi'"
|
||||
action: "hide"
|
||||
netapp_sa_password:
|
||||
value: ''
|
||||
label: 'E-Series storage array password'
|
||||
description: 'Password for the NetApp E-Series storage array.'
|
||||
weight: 81
|
||||
type: "password"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_family.value != 'eseries' or settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi'"
|
||||
action: "hide"
|
||||
netapp_storage_pools:
|
||||
value: ''
|
||||
label: 'E-Series storage pools'
|
||||
description: 'This option is used to restrict provisioning to the specified storage pools. Only dynamic disk pools are currently supported. Specify the value of this option to be a comma separated list of disk pool names to be used for provisioning.'
|
||||
weight: 82
|
||||
type: "text"
|
||||
restrictions:
|
||||
- condition: "settings:cinder_netapp.netapp_storage_family.value != 'eseries' or settings:cinder_netapp.netapp_storage_protocol.value != 'iscsi'"
|
||||
action: "hide"
|
||||
|
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 106 KiB |
|
@ -3,7 +3,7 @@ name: cinder_netapp
|
|||
# Human-readable name for your plugin
|
||||
title: Cinder and NetApp integration
|
||||
# Plugin version
|
||||
version: 3.1.0
|
||||
version: 3.2.0
|
||||
# Description
|
||||
description: Enable to use NetApp nfs driver as a Cinder backend
|
||||
# Required fuel version
|
||||
|
|