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
This commit is contained in:
Andrey Volochay 2015-09-21 20:03:26 +03:00
parent 5f6860004b
commit 08ac970aab
11 changed files with 191 additions and 127 deletions

View File

@ -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

View File

@ -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': }

View File

@ -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': }

View File

@ -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{

View File

@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -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