Update fuel plugin repo with new UI changes

Change-Id: I9dfc95bdb70adf31242aa272dafdb20295d31f52
Co-Authored-By: Chaithanya Kopparthi<chaithanyak@biarca.com>
This commit is contained in:
Pradip Rawat 2016-11-30 10:42:13 +05:30
parent 550e506082
commit c0ac92b035
17 changed files with 747 additions and 667 deletions

View File

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

View File

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

View File

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

View File

@ -5,6 +5,6 @@ package { 'krest':
ensure => installed,
provider => pip,
require => Package['python-pip'],}
package { 'git':
package { 'git':
ensure => installed,}
}

View File

@ -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}"],
}
}
}
}
}
}
}
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

View File

@ -16,4 +16,4 @@ Contents:
installation
plugin_configuration
guide
troubleshooting

View File

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

File diff suppressed because it is too large Load Diff

View File

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