Update fuel plugin repo with new UI changes
Change-Id: I9dfc95bdb70adf31242aa272dafdb20295d31f52 Co-Authored-By: Chaithanya Kopparthi<chaithanyak@biarca.com>
|
@ -1,6 +1,6 @@
|
|||
- name: 'storage:block:backend:kaminario'
|
||||
label: 'Kaminario'
|
||||
description: 'Cinder with Kaminario backend'
|
||||
description: 'Use Kaminario K2 as backend for Cinder volumes'
|
||||
compatible:
|
||||
- name: storage:block:lvm
|
||||
- name: storage:block:ceph
|
||||
|
|
|
@ -3,7 +3,7 @@ class kaminario::controller_config{
|
|||
$config_file='/etc/cinder/cinder.conf'
|
||||
$plugin_settings = hiera('cinder_kaminario')
|
||||
|
||||
if $plugin_settings['scheduler_default_filters'] != ''
|
||||
if ($plugin_settings['filter_function_0'] != '') or ($plugin_settings['filter_function_1'] != '') or ($plugin_settings['filter_function_2'] != '') or ($plugin_settings['filter_function_3'] != '') or ($plugin_settings['filter_function_4'] != '') or ($plugin_settings['filter_function_5'] != '')
|
||||
{
|
||||
ini_subsetting {'scheduler_default_filters':
|
||||
ensure => present,
|
||||
|
@ -11,23 +11,20 @@ $plugin_settings = hiera('cinder_kaminario')
|
|||
key_val_separator => '=',
|
||||
path => $config_file,
|
||||
setting => 'scheduler_default_filters',
|
||||
subsetting => $plugin_settings['scheduler_default_filters'],
|
||||
subsetting => 'DriverFilters',
|
||||
subsetting_separator => ',',
|
||||
}
|
||||
|
||||
ini_subsetting {'scheduler_default_filter':
|
||||
ensure => present,
|
||||
section => 'DEFAULT',
|
||||
key_val_separator => '=',
|
||||
path => $config_file,
|
||||
setting => 'scheduler_default_filters',
|
||||
subsetting => 'CapacityFilter',
|
||||
subsetting_separator => ',',
|
||||
}
|
||||
}
|
||||
if $plugin_settings['scheduler_default_weighers'] != ''
|
||||
{
|
||||
cinder_config {
|
||||
'DEFAULT/scheduler_default_weighers' : value => $plugin_settings['scheduler_default_weighers'];
|
||||
}
|
||||
}
|
||||
if $plugin_settings['rpc_response_timeout'] != ''
|
||||
{
|
||||
cinder_config {
|
||||
'DEFAULT/rpc_response_timeout' : value => $plugin_settings['rpc_response_timeout'];
|
||||
}
|
||||
}
|
||||
|
||||
cinder_config {
|
||||
'DEFAULT/default_volume_type' : value => $default_volume_type
|
||||
}
|
||||
|
|
|
@ -10,24 +10,24 @@ define recursion(
|
|||
$plugin_settings = hiera('cinder_kaminario')
|
||||
|
||||
config {"plugin_${value}":
|
||||
add_backend => $plugin_settings["add_backend_${value}"],
|
||||
cinder_node => $plugin_settings["cinder_node_${value}"],
|
||||
storage_protocol => $plugin_settings["storage_protocol_${value}"],
|
||||
backend_name => $plugin_settings["backend_name_${value}"],
|
||||
storage_user => $plugin_settings["storage_user_${value}"],
|
||||
storage_password => $plugin_settings["storage_password_${value}"],
|
||||
storage_ip => $plugin_settings["storage_ip_${value}"],
|
||||
enable_replication => $plugin_settings["enable_replication_${value}"],
|
||||
replication_ip => $plugin_settings["replication_ip_${value}"],
|
||||
replication_login => $plugin_settings["replication_login_${value}"],
|
||||
replication_rpo => $plugin_settings["replication_rpo_${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}"],
|
||||
goodness_function => $plugin_settings["goodness_function_${value}"],
|
||||
oversubscription_ratio => $plugin_settings["oversubscription_ratio_${value}"],
|
||||
num => $value
|
||||
add_backend => $plugin_settings["add_backend_${value}"],
|
||||
cinder_node => $plugin_settings["cinder_node_${value}"],
|
||||
storage_protocol => $plugin_settings["storage_protocol_${value}"],
|
||||
backend_name => $plugin_settings["backend_name_${value}"],
|
||||
storage_user => $plugin_settings["storage_user_${value}"],
|
||||
storage_password => $plugin_settings["storage_password_${value}"],
|
||||
storage_ip => $plugin_settings["storage_ip_${value}"],
|
||||
enable_replication => $plugin_settings["enable_replication_${value}"],
|
||||
replication_ip => $plugin_settings["replication_ip_${value}"],
|
||||
replication_login => $plugin_settings["replication_login_${value}"],
|
||||
replication_rpo => $plugin_settings["replication_rpo_${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}"],
|
||||
report_discard_supported => $plugin_settings["report_discard_supported_${value}"],
|
||||
num => $value
|
||||
}
|
||||
$minus1 = inline_template('<%= @value.to_i - 1 %>')
|
||||
if $minus1 < '0' {
|
||||
|
@ -41,7 +41,7 @@ $plugin_settings = hiera('cinder_kaminario')
|
|||
}
|
||||
|
||||
|
||||
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,$goodness_function) {
|
||||
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,$report_discard_supported) {
|
||||
|
||||
$sec_name = section_name( $storage_ip , $backend_name )
|
||||
$config_file = '/etc/cinder/cinder.conf'
|
||||
|
@ -99,17 +99,18 @@ define config($add_backend,$storage_protocol,$backend_name,$storage_user,$storag
|
|||
}
|
||||
}
|
||||
|
||||
if $goodness_function != '' {
|
||||
cinder_config {
|
||||
"${sec_name}/goodness_function" : value => $goodness_function;
|
||||
}
|
||||
}
|
||||
|
||||
if $oversubscription_ratio == true {
|
||||
cinder_config {
|
||||
"${sec_name}/auto_calc_max_oversubscription_ratio" : value => 'True';
|
||||
}
|
||||
}
|
||||
|
||||
if $report_discard_supported == true {
|
||||
cinder_config {
|
||||
"${sec_name}/report_discard_supported" : value => 'True';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,6 @@ package { 'krest':
|
|||
ensure => installed,
|
||||
provider => pip,
|
||||
require => Package['python-pip'],}
|
||||
package { 'git':
|
||||
package { 'git':
|
||||
ensure => installed,}
|
||||
}
|
||||
|
|
|
@ -7,54 +7,52 @@ define recursion(
|
|||
$value
|
||||
) {
|
||||
$plugin_settings = hiera('cinder_kaminario')
|
||||
|
||||
kaminario_type {"plugin_${value}":
|
||||
create_type => $plugin_settings["create_type_${value}"],
|
||||
options => $plugin_settings["options_${value}"],
|
||||
backend_name => $plugin_settings["backend_name_${value}"],
|
||||
type_name => $plugin_settings["type_name_${value}"]
|
||||
create_type => $plugin_settings["create_type_${value}"],
|
||||
backend_name => $plugin_settings["type_backendname_${value}"],
|
||||
type_enable_replication => $plugin_settings["type_enable_replication_${value}"],
|
||||
enable_nodedup => $plugin_settings["enable_nodedup_${value}"],
|
||||
type_name => $plugin_settings["type_name_${value}"]
|
||||
}
|
||||
$minus1 = inline_template('<%= @value.to_i - 1 %>')
|
||||
if $minus1 < '0' {
|
||||
|
||||
} else {
|
||||
if "${minus1}" < '0' {
|
||||
|
||||
} else {
|
||||
recursion { "value-${minus1}":
|
||||
value => $minus1,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define kaminario_type ($create_type,$options,$backend_name,$type_name) {
|
||||
define kaminario_type ($create_type,$backend_name,$type_name,$enable_nodedup,$type_enable_replication) {
|
||||
if $create_type == true {
|
||||
case $options {
|
||||
'enable_replication_type': {
|
||||
if ($enable_nodedup == true) and ($type_enable_replication == false) {
|
||||
cinder_type {$type_name:
|
||||
ensure => present,
|
||||
properties => ["volume_backend_name=${backend_name}"],
|
||||
}
|
||||
}
|
||||
if ($type_enable_replication == true) and ($enable_nodedup == false) {
|
||||
cinder_type {$type_name:
|
||||
ensure => present,
|
||||
properties => ["volume_backend_name=${backend_name}",'kaminario:replication=enabled', 'kaminario:thin_prov_type=nodedup'],
|
||||
}
|
||||
}
|
||||
if ($type_enable_replication == true) and ($enable_nodedup == true) {
|
||||
cinder_type {$type_name:
|
||||
ensure => present,
|
||||
properties => ["volume_backend_name=${backend_name}",'kaminario:replication=enabled'],
|
||||
}
|
||||
}
|
||||
'enable_dedup': {
|
||||
}
|
||||
|
||||
if ($type_enable_replication == false) and ($enable_nodedup == false) {
|
||||
|
||||
cinder_type {$type_name:
|
||||
ensure => present,
|
||||
properties => ["volume_backend_name=${backend_name}",'kaminario:thin_prov_type=nodedup'],
|
||||
}
|
||||
}
|
||||
'replication_dedup': {
|
||||
cinder_type {$type_name:
|
||||
ensure => present,
|
||||
properties => ["volume_backend_name=${backend_name}",'kaminario:thin_prov_type=nodedup','kaminario:replication=enabled'],
|
||||
}
|
||||
}
|
||||
'default': {
|
||||
cinder_type {$type_name:
|
||||
ensure => present,
|
||||
properties => ["volume_backend_name=${backend_name}"],
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
requires: [top-role-cinder]
|
||||
required_for: [deploy_end]
|
||||
condition:
|
||||
yaql_exp: "changedAny($.cinder, $.get('cinder_volume_group'), $.network_metadata.nodes.get(concat(\"node-\", $.uid)).network_roles.get('cinder/iscsi'), $.network_metadata.vips, $.debug, $.node_volumes, $.storage, $.rabbit, $.ceilometer, $.get('use_stderr'), $.get('use_syslog'), $.get('syslog_log_facility_cinder'), $.get('syslog_log_facility_ceph'), $.get('proxy_port'), $.get('kombu_compression'), $.get('use_ssl'), $.get('service_endpoint'), $.get('glance_api_servers'), $.get('amqp_hosts'), $.network_metadata.nodes.values().where(\n $.node_roles.any($.matches('controller'))).network_roles.select(\n $.get('mgmt/messaging')))\n"
|
||||
yaql_exp: "changedAny($.cinder_kaminario,$.cinder, $.get('cinder_volume_group'), $.network_metadata.nodes.get(concat(\"node-\", $.uid)).network_roles.get('cinder/iscsi'), $.network_metadata.vips, $.debug, $.node_volumes, $.storage, $.rabbit, $.ceilometer, $.get('use_stderr'), $.get('use_syslog'), $.get('syslog_log_facility_cinder'), $.get('syslog_log_facility_ceph'), $.get('proxy_port'), $.get('kombu_compression'), $.get('use_ssl'), $.get('service_endpoint'), $.get('glance_api_servers'), $.get('amqp_hosts'), $.network_metadata.nodes.values().where(\n $.node_roles.any($.matches('controller'))).network_roles.select(\n $.get('mgmt/messaging')))\n"
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/cinder_kaminario.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
|
|
After Width: | Height: | Size: 199 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 149 KiB |
After Width: | Height: | Size: 189 KiB |
|
@ -16,4 +16,4 @@ Contents:
|
|||
installation
|
||||
plugin_configuration
|
||||
guide
|
||||
|
||||
troubleshooting
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
Verification
|
||||
============
|
||||
|
||||
Login into the controller node from the Fuel-master node:
|
||||
|
||||
1. Verify the status of cinder-volume service for Kaminario backend
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cinder service-list
|
||||
|
||||
.. image:: ./images/service_list.png
|
||||
:width: 400pt
|
||||
:alt: service_list
|
||||
|
||||
|
||||
|
||||
2. Create a volume. Verify the volume and volume group from the Kaminario K2 all-flash array dashboard.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cinder create --name volume 1
|
||||
|
||||
.. image:: ./images/cinder_create_success.png
|
||||
:width: 400pt
|
||||
:alt: cinder_create_success
|
||||
|
||||
.. image:: ./images/iscsi_dashboard.png
|
||||
:width: 400pt
|
||||
:alt: iscsi_dashboard
|
||||
|
||||
*Note:* The volume name is **cv-<cinder-volume-id>** and volume group name is **cvg-<cinder-volume-id>**.
|
||||
|
||||
3. Run the OpenStack Test Framework (OSTF). From the Fuel web UI:
|
||||
|
||||
* Click the **Health Check** tab
|
||||
* Select the **Select All** checkbox
|
||||
* Click **Run Tests**.
|
||||
|
||||
*Note:* The Kaminario Fuel plugin verification is mainly based on the Functional tests.
|
||||
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
On failure of the verification of Kaminario Fuel plugin or any Cinder volume operations related to the Kaminario backend, check the following log files for identifying the root cause of the failure:
|
||||
|
||||
#. **/var/log/cinder/cinder-volume.log**
|
||||
#. **/var/log/cinder/cinder-api.log**
|
||||
#. **/var/log/cinder/cinder-scheduler.log**
|
||||
#. **/var/log/nova/nova-compute.log**
|
||||
|
||||
Check the status of cinder volume service for Kaminario backend.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cinder service-list
|
||||
|
||||
.. image:: ./images/cinder_service_list.png
|
||||
:width: 400pt
|
||||
:alt: cinder_service_list
|
||||
|
||||
The failures may be caused due to many possibilities, the following are few of them:
|
||||
|
||||
1. Kaminario rest-api version is less than 2.2.0.
|
||||
2. Kaminario K2 all-flash array version is less than 5.8.
|
||||
3. Data path between the Fuel nodes (having cinder and compute role) and the Kaminario K2 all-flash array is not present or inaccessible:
|
||||
|
||||
.. image:: ./images/FC_HBA.png
|
||||
:width: 400pt
|
||||
:alt: FC_HBA
|
||||
|
||||
.. image:: ./images/volume_attach.png
|
||||
:width: 400pt
|
||||
:alt: volume_attach
|
||||
|
||||
.. image:: ./images/wwn_wrong.png
|
||||
:width: 400pt
|
||||
:alt: wwn_wrong
|
||||
|
||||
|
||||
|
||||
4. Management IP of the Kaminario backend is not correct or inaccessible from the Fuel node having the Cinder role.
|
||||
5. Wrong credentials (username and password) used for the Kaminario backend.
|
||||
6. Not using the Kaminario Fuel plugin configuration options for; creating volume type and setting default volume type.
|
||||
7. No proper use of Kaminario Fuel plugin configuration options like Filter Function, Goodness Function, Scheduler weighers and Scheduler filters.
|
||||
8. Others.
|
|
@ -1,7 +1,7 @@
|
|||
# Plugin name
|
||||
name: cinder_kaminario
|
||||
# Human-readable name for your plugin
|
||||
title: Kaminario For Cinder
|
||||
title: Kaminario K2 For Cinder
|
||||
# Plugin version
|
||||
version: '1.0.0'
|
||||
# Description
|
||||
|
|