Enable Multipath

This commit is contained in:
chaithanyak 2016-09-27 16:49:17 +05:30
parent 25e93d0f2a
commit 131e48d949
6 changed files with 350 additions and 27 deletions

View File

@ -0,0 +1 @@
include multipath

View File

@ -0,0 +1,18 @@
require 'hiera'
require 'facter'
hiera = Hiera.new(:config => '/etc/hiera.yaml')
cinder_kaminario=hiera.lookup('cinder_kaminario', {}, {},'nil')
5.times do |i|
add_backend = "add_backend_" + i.to_s
type_name = "type_name_" + i.to_s
if cinder_kaminario[add_backend] == true
default_type = cinder_kaminario[type_name]
end
end
Facter.add("default_volume_type") do
setcode do
default_type
end
end

View File

@ -3,6 +3,7 @@ $num = [ '0', '1', '2', '3', '4', '5' ]
$plugin_settings = hiera('cinder_kaminario') $plugin_settings = hiera('cinder_kaminario')
each($num) |$value| { each($num) |$value| {
config {"plugin_${value}": config {"plugin_${value}":
add_backend => $plugin_settings["add_backend_${value}"],
cinder_node => $plugin_settings["cinder_node_${value}"], cinder_node => $plugin_settings["cinder_node_${value}"],
storage_protocol => $plugin_settings["storage_protocol_${value}"], storage_protocol => $plugin_settings["storage_protocol_${value}"],
backend_name => $plugin_settings["backend_name_${value}"], backend_name => $plugin_settings["backend_name_${value}"],
@ -14,17 +15,23 @@ config {"plugin_${value}":
replication_login => $plugin_settings["replication_login_${value}"], replication_login => $plugin_settings["replication_login_${value}"],
replication_rpo => $plugin_settings["replication_rpo_${value}"], replication_rpo => $plugin_settings["replication_rpo_${value}"],
replication_password => $plugin_settings["replication_password_${value}"], replication_password => $plugin_settings["replication_password_${value}"],
enable_multipath => $plugin_settings["enable_multipath_${value}"],
suppress_logs => $plugin_settings["suppress_logs_${value}"],
filter_function => $plugin_settings["filter_function_${value}"],
oversubscription_ratio => $plugin_settings["oversubscription_ratio_${value}"],
num => $value num => $value
} }
} }
} }
define config($storage_protocol,$backend_name,$storage_user,$storage_password,$storage_ip,$num,$cinder_node,$enable_replication,$replication_ip,$replication_login,$replication_rpo,$replication_password) { define config($add_backend,$storage_protocol,$backend_name,$storage_user,$storage_password,$storage_ip,$num,$cinder_node,$enable_replication,$replication_ip,$replication_login,$replication_rpo,$replication_password,$enable_multipath,$suppress_logs,$filter_function,$oversubscription_ratio) {
$sec_name = section_name( $storage_ip , $backend_name ) $sec_name = section_name( $storage_ip , $backend_name )
$config_file = "/etc/cinder/cinder.conf" $config_file = "/etc/cinder/cinder.conf"
if $cinder_node == hiera(user_node_name) { if $cinder_node == hiera(user_node_name) {
if $add_backend == true {
if $storage_protocol == 'FC'{ if $storage_protocol == 'FC'{
ini_subsetting {"enable_backend_${num}": ini_subsetting {"enable_backend_${num}":
ensure => present, ensure => present,
section => 'DEFAULT', section => 'DEFAULT',
@ -40,6 +47,7 @@ define config($storage_protocol,$backend_name,$storage_user,$storage_password,$s
"$sec_name/san_ip" : value => $storage_ip; "$sec_name/san_ip" : value => $storage_ip;
"$sec_name/san_login" : value => $storage_user; "$sec_name/san_login" : value => $storage_user;
"$sec_name/san_password" : value => $storage_password; "$sec_name/san_password" : value => $storage_password;
"$sec_name/filter_function" : value => $filter_function;
} }
if $enable_replication == true { if $enable_replication == true {
@ -47,8 +55,26 @@ define config($storage_protocol,$backend_name,$storage_user,$storage_password,$s
cinder_config { cinder_config {
"$sec_name/replication_device" : value => $replication_device; "$sec_name/replication_device" : value => $replication_device;
} }
}
if $enable_multipath == true {
cinder_config {
"$sec_name/use_multipath_for_image_xfer" : value => "True";
"$sec_name/enforce_multipath_for_image_xfer" : value => "True";
}
}
if $suppress_logs == true {
cinder_config {
"$sec_name/suppress_requests_ssl_warnings" : value => "True";
}
}
if $oversubscription_ratio == true {
cinder_config {
"$sec_name/auto_calc_max_oversubscription_ratio" : value => "True";
}
}
}
} }
if $storage_protocol == 'ISCSI'{ if $storage_protocol == 'ISCSI'{
ini_subsetting {"enable_backend_${num}": ini_subsetting {"enable_backend_${num}":
@ -66,17 +92,34 @@ define config($storage_protocol,$backend_name,$storage_user,$storage_password,$s
"$sec_name/san_ip" : value => $storage_ip; "$sec_name/san_ip" : value => $storage_ip;
"$sec_name/san_login" : value => $storage_user; "$sec_name/san_login" : value => $storage_user;
"$sec_name/san_password" : value => $storage_password; "$sec_name/san_password" : value => $storage_password;
"$sec_name/filter_function" : value => $filter_function;
} }
if $enable_replication == true { if $enable_replication == true {
$replication_device = get_replication_device($replication_ip, $replication_login , $replication_password , $replication_rpo) $replication_device = get_replication_device($replication_ip, $replication_login , $replication_password , $replication_rpo)
cinder_config { cinder_config {
"$sec_name/replication_device" : value => $replication_device; "$sec_name/replication_device" : value => $replication_device;
} }
}
if $enable_multipath == true {
cinder_config {
"$sec_name/use_multipath_for_image_xfer" : value => "True";
"$sec_name/enforce_multipath_for_image_xfer" : value => "True";
}
}
if $suppress_logs == true {
cinder_config {
"$sec_name/suppress_requests_ssl_warnings" : value => "True";
}
}
if $oversubscription_ratio == true {
cinder_config {
"$sec_name/auto_calc_max_oversubscription_ratio" : value => "True";
}
}
} }
} }
} }
} }

View File

@ -0,0 +1,12 @@
class multipath {
$multipath_packages = [ 'sg3-utils', 'multipath-tools' ]
package { $multipath_packages: ensure => 'installed' }
nova_config {
'libvirt/iscsi_use_multipath' : value => True,
}~> Exec[cinder_volume]
exec {'cinder_volume':
command => '/usr/sbin/service nova-compute restart',}
}

View File

@ -2,8 +2,8 @@
type: puppet type: puppet
version: 2.1.0 version: 2.1.0
groups: [cinder,primary-controller,controller] groups: [cinder,primary-controller,controller]
requires: [top-role-cinder] requires: [openstack-cinder,top-role-cinder,netconfig]
required_for: [kaminario_cinder] required_for: [kaminario_cinder,kaminario_types]
condition: condition:
yaql_exp: "changedAny($.storage, $.cinder_kaminario)" yaql_exp: "changedAny($.storage, $.cinder_kaminario)"
parameters: parameters:
@ -15,7 +15,7 @@
type: puppet type: puppet
version: 2.1.0 version: 2.1.0
groups: [cinder] groups: [cinder]
requires: [kaminario_parser] requires: [kaminario_parser,top-role-cinder]
required_for: [deploy_end] required_for: [deploy_end]
condition: condition:
yaql_exp: "changedAny($.storage, $.cinder_kaminario)" yaql_exp: "changedAny($.storage, $.cinder_kaminario)"
@ -28,7 +28,7 @@
type: puppet type: puppet
version: 2.1.0 version: 2.1.0
groups: [primary-controller] groups: [primary-controller]
requires: [openstack-cinder] requires: [kaminario_parser]
required_for: [deploy_end] required_for: [deploy_end]
condition: condition:
yaql_exp: "changedAny($.storage, $.cinder_kaminario)" yaql_exp: "changedAny($.storage, $.cinder_kaminario)"
@ -37,3 +37,13 @@
puppet_modules: puppet/modules:/etc/puppet/modules puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 360 timeout: 360
- id: kaminario_multipath
type: puppet
version: 2.1.0
groups: [compute]
requires: [top-role-compute]
required_for: [deploy_end]
parameters:
puppet_manifest: puppet/manifests/cinder_multipath.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 360

View File

@ -150,9 +150,9 @@ attributes:
- data: "enable_replication_type" - data: "enable_replication_type"
label: "Enable Replication" label: "Enable Replication"
- data: "enable_dedup" - data: "enable_dedup"
label: "Enable Deduplication" label: "Enable Non Deduplication"
- data: "replication_dedup" - data: "replication_dedup"
label: "Enable both Replication and Deduplication" label: "Enable both Replication and Non Deduplication"
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_0.value == false" - condition: "settings:cinder_kaminario.create_type_0.value == false"
action: 'hide' action: 'hide'
@ -164,9 +164,38 @@ attributes:
weight: 80 weight: 80
type: 'checkbox' type: 'checkbox'
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_0.value == false or (settings:cinder_kaminario.default_type_0.value == false or settings:cinder_kaminario.default_type_1.value == false or settings:cinder_kaminario.default_type_2.value == false or settings:cinder_kaminario.default_type_3.value == false or settings:cinder_kaminario.default_type_4.value == false or settings:cinder_kaminario.default_type_5.value == false)" - condition: "settings:cinder_kaminario.create_type_0.value == false "
action: 'hide' action: 'hide'
enable_multipath_0:
value: false
label: 'Enable Multipath'
description: 'Enable multipath for cinder volumes'
weight: 85
type: 'checkbox'
suppress_logs_0:
value: false
label: 'Suppress Logs'
description: 'Suppress Additional logs created by krest'
weight: 86
type: 'checkbox'
filter_function_0:
value: ""
label: 'Filter Function'
description: 'Filter function for backend'
weight: 87
type: "text"
oversubscription_ratio_0:
value: false
label: 'Oversubscription Ratio'
description: 'Enable Oversubscription Ratio for backend'
weight: 88
type: 'checkbox'
add_backend_1: add_backend_1:
value: false value: false
label: 'Add a new kaminario backend or scale an existing backend' label: 'Add a new kaminario backend or scale an existing backend'
@ -330,9 +359,9 @@ attributes:
- data: "enable_replication_type" - data: "enable_replication_type"
label: "Enable Replication" label: "Enable Replication"
- data: "enable_dedup" - data: "enable_dedup"
label: "Enable Deduplication" label: "Enable Non Deduplication"
- data: "replication_dedup" - data: "replication_dedup"
label: "Enable both Replication and Deduplication" label: "Enable both Replication and Non Deduplication"
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_1.value == false" - condition: "settings:cinder_kaminario.create_type_1.value == false"
action: 'hide' action: 'hide'
@ -344,9 +373,51 @@ attributes:
weight: 165 weight: 165
type: 'checkbox' type: 'checkbox'
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_1.value == false or (settings:cinder_kaminario.default_type_0.value == false or settings:cinder_kaminario.default_type_1.value == false or settings:cinder_kaminario.default_type_2.value == false or settings:cinder_kaminario.default_type_3.value == false or settings:cinder_kaminario.default_type_4.value == false or settings:cinder_kaminario.default_type_5.value == false)" - condition: "settings:cinder_kaminario.create_type_1.value == false"
action: 'hide' action: 'hide'
enable_multipath_1:
value: false
label: 'Enable Multipath'
description: 'Enable multipath for cinder volumes'
weight: 170
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
suppress_logs_1:
value: false
label: 'Suppress Logs'
description: 'Suppress Additional logs created by krest'
weight: 171
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
filter_function_1:
value: ""
label: 'Filter Function'
description: 'Filter function for backend'
weight: 172
type: "text"
restrictions:
- condition: "settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
oversubscription_ratio_1:
value: false
label: 'Oversubscription Ratio'
description: 'Enable Oversubscription Ratio for backend'
weight: 173
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
add_backend_2: add_backend_2:
value: false value: false
@ -513,9 +584,9 @@ attributes:
- data: "enable_replication_type" - data: "enable_replication_type"
label: "Enable Replication" label: "Enable Replication"
- data: "enable_dedup" - data: "enable_dedup"
label: "Enable Deduplication" label: "Enable Non Deduplication"
- data: "replication_dedup" - data: "replication_dedup"
label: "Enable both Replication and Deduplication" label: "Enable both Replication and Non Deduplication"
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_2.value == false" - condition: "settings:cinder_kaminario.create_type_2.value == false"
action: 'hide' action: 'hide'
@ -527,9 +598,52 @@ attributes:
weight: 250 weight: 250
type: 'checkbox' type: 'checkbox'
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_2.value == false or (settings:cinder_kaminario.default_type_0.value == false or settings:cinder_kaminario.default_type_1.value == false or settings:cinder_kaminario.default_type_2.value == false or settings:cinder_kaminario.default_type_3.value == false or settings:cinder_kaminario.default_type_4.value == false or settings:cinder_kaminario.default_type_5.value == false)" - condition: "settings:cinder_kaminario.create_type_2.value == false"
action: 'hide' action: 'hide'
enable_multipath_2:
value: false
label: 'Enable Multipath'
description: 'Enable multipath for cinder volumes'
weight: 260
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
suppress_logs_2:
value: false
label: 'Suppress Logs'
description: 'Suppress Additional logs created by krest'
weight: 261
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
filter_function_2:
value: ""
label: 'Filter Function'
description: 'Filter function for backend'
weight: 262
type: "text"
restrictions:
- condition: "settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
oversubscription_ratio_2:
value: false
label: 'Oversubscription Ratio'
description: 'Enable Oversubscription Ratio for backend'
weight: 263
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
add_backend_3: add_backend_3:
value: false value: false
label: 'Add a new kaminario backend or scale an existing backend' label: 'Add a new kaminario backend or scale an existing backend'
@ -694,9 +808,9 @@ attributes:
- data: "enable_replication_type" - data: "enable_replication_type"
label: "Enable Replication" label: "Enable Replication"
- data: "enable_dedup" - data: "enable_dedup"
label: "Enable Deduplication" label: "Enable Non Deduplication"
- data: "replication_dedup" - data: "replication_dedup"
label: "Enable both Replication and Deduplication" label: "Enable both Replication and Non Deduplication"
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_3.value == false" - condition: "settings:cinder_kaminario.create_type_3.value == false"
action: 'hide' action: 'hide'
@ -708,9 +822,51 @@ attributes:
weight: 335 weight: 335
type: 'checkbox' type: 'checkbox'
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_3.value == false or (settings:cinder_kaminario.default_type_0.value == false or settings:cinder_kaminario.default_type_1.value == false or settings:cinder_kaminario.default_type_2.value == false or settings:cinder_kaminario.default_type_3.value == false or settings:cinder_kaminario.default_type_4.value == false or settings:cinder_kaminario.default_type_5.value == false)" - condition: "settings:cinder_kaminario.create_type_3.value == false"
action: 'hide' action: 'hide'
enable_multipath_3:
value: false
label: 'Enable Multipath'
description: 'Enable multipath for cinder volumes'
weight: 340
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
suppress_logs_3:
value: false
label: 'Suppress Logs'
description: 'Suppress Additional logs created by krest'
weight: 341
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
filter_function_3:
value: ""
label: 'Filter Function'
description: 'Filter function for backend'
weight: 342
type: "text"
restrictions:
- condition: "settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
oversubscription_ratio_3:
value: false
label: 'Oversubscription Ratio'
description: 'Enable Oversubscription Ratio for backend'
weight: 343
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
add_backend_4: add_backend_4:
value: false value: false
label: 'Add a new kaminario backend or scale an existing backend' label: 'Add a new kaminario backend or scale an existing backend'
@ -877,9 +1033,9 @@ attributes:
- data: "enable_replication_type" - data: "enable_replication_type"
label: "Enable Replication" label: "Enable Replication"
- data: "enable_dedup" - data: "enable_dedup"
label: "Enable Deduplication" label: "Enable Non Deduplication"
- data: "replication_dedup" - data: "replication_dedup"
label: "Enable both Replication and Deduplication" label: "Enable both Replication and Non Deduplication"
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_4.value == false" - condition: "settings:cinder_kaminario.create_type_4.value == false"
action: 'hide' action: 'hide'
@ -891,9 +1047,52 @@ attributes:
weight: 420 weight: 420
type: 'checkbox' type: 'checkbox'
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_4.value == false or (settings:cinder_kaminario.default_type_0.value == false or settings:cinder_kaminario.default_type_1.value == false or settings:cinder_kaminario.default_type_2.value == false or settings:cinder_kaminario.default_type_3.value == false or settings:cinder_kaminario.default_type_4.value == false or settings:cinder_kaminario.default_type_5.value == false)" - condition: "settings:cinder_kaminario.create_type_4.value == false"
action: 'hide' action: 'hide'
enable_multipath_4:
value: false
label: 'Enable Multipath'
description: 'Enable multipath for cinder volumes'
weight: 425
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
suppress_logs_4:
value: false
label: 'Suppress Logs'
description: 'Suppress Additional logs created by krest'
weight: 426
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
filter_function_4:
value: ""
label: 'Filter Function'
description: 'Filter function for backend'
weight: 427
type: "text"
restrictions:
- condition: "settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
oversubscription_ratio_4:
value: false
label: 'Oversubscription Ratio'
description: 'Enable Oversubscription Ratio for backend'
weight: 428
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
add_backend_5: add_backend_5:
value: false value: false
label: 'Add a new kaminario backend or scale an existing backend' label: 'Add a new kaminario backend or scale an existing backend'
@ -1060,9 +1259,9 @@ attributes:
- data: "enable_replication_type" - data: "enable_replication_type"
label: "Enable Replication" label: "Enable Replication"
- data: "enable_dedup" - data: "enable_dedup"
label: "Enable Deduplication" label: "Enable Non Deduplication"
- data: "replication_dedup" - data: "replication_dedup"
label: "Enable both Replication and Deduplication" label: "Enable both Replication and Non Deduplication"
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_5.value == false" - condition: "settings:cinder_kaminario.create_type_5.value == false"
action: 'hide' action: 'hide'
@ -1074,5 +1273,45 @@ attributes:
weight: 505 weight: 505
type: 'checkbox' type: 'checkbox'
restrictions: restrictions:
- condition: "settings:cinder_kaminario.create_type_5.value == false or (settings:cinder_kaminario.default_type_0.value == false or settings:cinder_kaminario.default_type_1.value == false or settings:cinder_kaminario.default_type_2.value == false or settings:cinder_kaminario.default_type_3.value == false or settings:cinder_kaminario.default_type_4.value == false or settings:cinder_kaminario.default_type_5.value == false)" - condition: "settings:cinder_kaminario.create_type_5.value == false"
action: 'hide' action: 'hide'
enable_multipath_5:
value: false
label: 'Enable Multipath'
description: 'Enable multipath for cinder volumes'
weight: 510
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_5.value != true or settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
suppress_logs_5:
value: false
label: 'Suppress Logs'
description: 'Suppress Additional logs created by krest'
weight: 511
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_5.value != true or settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
filter_function_5:
value: ""
label: 'Filter Function'
description: 'Filter function for backend'
weight: 512
type: "text"
restrictions:
- condition: "settings:cinder_kaminario.add_backend_5.value != true or settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'
oversubscription_ratio_5:
value: false
label: 'Oversubscription Ratio'
description: 'Enable Oversubscription Ratio for backend'
weight: 513
type: 'checkbox'
restrictions:
- condition: "settings:cinder_kaminario.add_backend_5.value != true or settings:cinder_kaminario.add_backend_4.value != true or settings:cinder_kaminario.add_backend_3.value != true or settings:cinder_kaminario.add_backend_2.value != true or settings:cinder_kaminario.add_backend_1.value != true"
action: 'hide'