Add Storwize/SVC configuration attributes

Change-Id: Ica5513abdc8bed298edb475f0c44e2eabf50b93b
This commit is contained in:
Luis A. Garcia 2014-01-08 23:21:27 +00:00
parent fbe9320f77
commit d2363a7a9c
6 changed files with 125 additions and 10 deletions

View File

@ -5,6 +5,7 @@ This file is used to list changes made in each version of the openstack-block-st
## 8.0.0
### New version
* Upgrade to upstream Havana release
* Add support for Storwize/SVC configuration attributes
## 7.2.2
### Bug

View File

@ -69,6 +69,9 @@ TODO: move rabbit parameters under openstack["block-storage"]["mq"]
* `openstack["block-storage"]["mq"]["qpid"]["protocol"]` - Protocol to use. Default tcp.
* `openstack["block-storage"]["mq"]["qpid"]["tcp_nodelay"]` - Disable the Nagle algorithm. default disabled.
Cinder attributes
-----------------
* `openstack["block-storage"]["service_tenant_name"]` - name of tenant to use for the cinder service account in keystone
* `openstack["block-storage"]["service_user"]` - cinder service user in keystone
* `openstack["block-storage"]["service_role"]` - role for the cinder service user in keystone
@ -108,6 +111,24 @@ TODO: move rabbit parameters under openstack["block-storage"]["mq"]
* `openstack["block-storage"]["rpc_conn_pool_size"]` - Size of RPC connection pool
* `openstack["block-storage"]["rpc_response_timeout"]` - Seconds to wait for a response from call or multicall
### Storwize/SVC attributes ###
* `openstack['block-storage']['san']['san_ip'] - IP address of SAN controller
* `openstack['block-storage']['san']['san_login'] - Username for SAN controller
* `openstack['block-storage']['san']['san_private_key'] - Filename of private key to use for SSH authentication
* `openstack['block-storage']['storwize']['storwize_svc_volpool_name'] - Storage system storage pool for volumes
* `openstack['block-storage']['storwize']['storwize_svc_vol_rsize'] - Storage system space-efficiency parameter for volumes
* `openstack['block-storage']['storwize']['storwize_svc_vol_warning'] - Storage system threshold for volume capacity warnings
* `openstack['block-storage']['storwize']['storwize_svc_vol_autoexpand'] - Storage system autoexpand parameter for volumes
* `openstack['block-storage']['storwize']['storwize_svc_vol_grainsize'] - Storage system grain size parameter for volumes
* `openstack['block-storage']['storwize']['storwize_svc_vol_compression'] - Storage system compression option for volumes
* `openstack['block-storage']['storwize']['storwize_svc_vol_easytier'] - Enable Easy Tier for volumes
* `openstack['block-storage']['storwize']['storwize_svc_vol_iogrp'] - The I/O group in which to allocate volumes
* `openstack['block-storage']['storwize']['storwize_svc_flashcopy_timeout'] - Maximum number of seconds to wait for FlashCopy to be prepared
* `openstack['block-storage']['storwize']['storwize_svc_connection_protocol'] - Connection protocol (iSCSI/FC)
* `openstack['block-storage']['storwize']['storwize_svc_iscsi_chap_enabled'] - Configure CHAP authentication for iSCSI connections
* `openstack['block-storage']['storwize']['storwize_svc_multipath_enabled'] - Connect with multipath (FC only; iSCSI multipath is controlled by Nova)
* `openstack['block-storage']['storwize']['storwize_svc_multihostmap_enabled'] - Allows vdisk to multi host mapping
Testing
=====

View File

@ -127,6 +127,24 @@ default['openstack']['block-storage']['nfs']['mount_point_base'] = '/mnt/cinder-
default['openstack']['block-storage']['nfs']['nfs_disk_util'] = 'df'
default['openstack']['block-storage']['nfs']['nfs_sparsed_volumes'] = 'true'
# Storwize/SVC Support
default['openstack']['block-storage']['san']['san_ip'] = '127.0.0.1'
default['openstack']['block-storage']['san']['san_login'] = 'admin'
default['openstack']['block-storage']['san']['san_private_key'] = '/v7000_rsa'
default['openstack']['block-storage']['storwize']['storwize_svc_volpool_name'] = 'volpool'
default['openstack']['block-storage']['storwize']['storwize_svc_vol_rsize'] = '2%'
default['openstack']['block-storage']['storwize']['storwize_svc_vol_warning'] = 0
default['openstack']['block-storage']['storwize']['storwize_svc_vol_autoexpand'] = true
default['openstack']['block-storage']['storwize']['storwize_svc_vol_grainsize'] = 256
default['openstack']['block-storage']['storwize']['storwize_svc_vol_compression'] = false
default['openstack']['block-storage']['storwize']['storwize_svc_vol_easytier'] = true
default['openstack']['block-storage']['storwize']['storwize_svc_flashcopy_timeout'] = 120
default['openstack']['block-storage']['storwize']['storwize_svc_vol_iogrp'] = 0
default['openstack']['block-storage']['storwize']['storwize_svc_connection_protocol'] = 'iSCSI'
default['openstack']['block-storage']['storwize']['storwize_svc_iscsi_chap_enabled'] = true
default['openstack']['block-storage']['storwize']['storwize_svc_multipath_enabled'] = false
default['openstack']['block-storage']['storwize']['storwize_svc_multihostmap_enabled'] = true
# logging attribute
default['openstack']['block-storage']['syslog']['use'] = false
default['openstack']['block-storage']['syslog']['facility'] = 'LOG_LOCAL2'

View File

@ -86,6 +86,13 @@ when "cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver"
end
end
when "cinder.volume.drivers.storwize_svc.StorwizeSVCDriver"
file node['openstack']['block-storage']['san']['san_private_key'] do
mode "0400"
owner node["openstack"]["block-storage"]["user"]
group node["openstack"]["block-storage"]["group"]
end
when "cinder.volume.drivers.lvm.LVMISCSIDriver"
if node["openstack"]["block-storage"]["volume"]["create_volume_group"]
volume_size = node["openstack"]["block-storage"]["volume"]["volume_group_size"]

View File

@ -83,6 +83,40 @@ describe "openstack-block-storage::volume" do
expect(n).to eq "rbd-pass"
end
it "configures storewize private key" do
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set["openstack"]["block-storage"]["volume"]["driver"] = "cinder.volume.drivers.storwize_svc.StorwizeSVCDriver"
end
chef_run.converge "openstack-block-storage::volume"
san_key = chef_run.file chef_run.node["openstack"]["block-storage"]["san"]["san_private_key"]
expect(san_key.mode).to eq('0400')
end
it "configures storewize with iscsi" do
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set["openstack"]["block-storage"]["volume"]["driver"] = "cinder.volume.drivers.storwize_svc.StorwizeSVCDriver"
n.set["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] = "iSCSI"
end
conf = "/etc/cinder/cinder.conf"
chef_run.converge "openstack-block-storage::volume"
# Test that the FC specific options are not set when connected via iSCSI
expect(chef_run).not_to render_file(conf).with_content("storwize_svc_multipath_enabled")
end
it "configures storewize with fc" do
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set["openstack"]["block-storage"]["volume"]["driver"] = "cinder.volume.drivers.storwize_svc.StorwizeSVCDriver"
n.set["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] = "FC"
end
conf = "/etc/cinder/cinder.conf"
chef_run.converge "openstack-block-storage::volume"
# Test that the iSCSI specific options are not set when connected via FC
expect(chef_run).not_to render_file(conf).with_content("storwize_svc_iscsi_chap_enabled")
end
it "starts cinder volume" do
expect(@chef_run).to start_service "cinder-volume"
end

View File

@ -694,6 +694,18 @@ nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["nfs"]["nfs_sparsed_v
######## defined in cinder.volume.san ########
<% if node["openstack"]["block-storage"]["volume"]["driver"] == "cinder.volume.drivers.storwize_svc.StorwizeSVCDriver" %>
san_ip=<%= node["openstack"]["block-storage"]["san"]["san_ip"] %>
#### (StrOpt) IP address of SAN controller
san_login=<%= node["openstack"]["block-storage"]["san"]["san_login"] %>
#### (StrOpt) Username for SAN controller
san_private_key=<%= node["openstack"]["block-storage"]["san"]["san_private_key"] %>
#### (StrOpt) Filename of private key to use for SSH authentication
<% else %>
# san_thin_provision=true
#### (BoolOpt) Use thin provisioning for SAN volumes?
@ -721,7 +733,7 @@ nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["nfs"]["nfs_sparsed_v
# san_zfs_volume_base=rpool/
#### (StrOpt) The ZFS path under which to create zvols for volumes.
<% end %>
######## defined in cinder.volume.solidfire ########
@ -740,35 +752,57 @@ nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["nfs"]["nfs_sparsed_v
# sf_allow_tenant_qos=true
#### (BoolOpt) Allow tenants to specify QOS on create
<% if node["openstack"]["block-storage"]["volume"]["driver"] == "cinder.volume.drivers.storwize_svc.StorwizeSVCDriver" %>
######## defined in cinder.volume.storwize_svc ########
# storwize_svc_volpool_name=volpool
storwize_svc_volpool_name=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_volpool_name"] %>
#### (StrOpt) Storage system storage pool for volumes
# storwize_svc_vol_rsize=2%
storwize_svc_vol_rsize=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_rsize"] %>
#### (StrOpt) Storage system space-efficiency parameter for volumes
# storwize_svc_vol_warning=0
storwize_svc_vol_warning=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_warning"] %>
#### (StrOpt) Storage system threshold for volume capacity warnings
# storwize_svc_vol_autoexpand=true
storwize_svc_vol_autoexpand=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_autoexpand"] %>
#### (BoolOpt) Storage system autoexpand parameter for volumes (True/False)
# storwize_svc_vol_grainsize=256
storwize_svc_vol_grainsize=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_grainsize"] %>
#### (StrOpt) Storage system grain size parameter for volumes
#### (32/64/128/256)
# storwize_svc_vol_compression=false
storwize_svc_vol_compression=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_compression"] %>
#### (BoolOpt) Storage system compression option for volumes
# storwize_svc_vol_easytier=true
storwize_svc_vol_easytier=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_easytier"] %>
#### (BoolOpt) Enable Easy Tier for volumes
# storwize_svc_flashcopy_timeout=120
# The I/O group in which to allocate volumes (integer value)
storwize_svc_vol_iogrp=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_iogrp"] %>
storwize_svc_flashcopy_timeout=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_flashcopy_timeout"] %>
#### (StrOpt) Maximum number of seconds to wait for FlashCopy to be
#### prepared. Maximum value is 600 seconds (10 minutes).
# Connection protocol (iSCSI/FC) (string value)
storwize_svc_connection_protocol=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] %>
<% if node["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] == "iSCSI" %>
# Configure CHAP authentication for iSCSI connections
# (Default: Enabled) (boolean value)
storwize_svc_iscsi_chap_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_iscsi_chap_enabled"] %>
<% else %>
# Connect with multipath (FC only; iSCSI multipath is
# controlled by Nova) (boolean value)
storwize_svc_multipath_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_multipath_enabled"] %>
<% end %>
# Allows vdisk to multi host mapping (boolean value)
storwize_svc_multihostmap_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_multihostmap_enabled"] %>
<% end %>
######## defined in cinder.volume.xiv ########