Browse Source

Update fuel plugin repo with new UI changes

Change-Id: I9dfc95bdb70adf31242aa272dafdb20295d31f52
Co-Authored-By: Chaithanya Kopparthi<chaithanyak@biarca.com>
Pradip Rawat 2 years ago
parent
commit
c0ac92b035

+ 1
- 1
components.yaml View File

@@ -1,6 +1,6 @@
1 1
 - name: 'storage:block:backend:kaminario'
2 2
   label: 'Kaminario'
3
-  description: 'Cinder with Kaminario backend'
3
+  description: 'Use Kaminario K2 as backend for Cinder volumes'
4 4
   compatible:
5 5
     - name: storage:block:lvm
6 6
     - name: storage:block:ceph

+ 11
- 14
deployment_scripts/puppet/modules/kaminario/manifests/controller_config.pp View File

@@ -3,7 +3,7 @@ class kaminario::controller_config{
3 3
 $config_file='/etc/cinder/cinder.conf'
4 4
 $plugin_settings = hiera('cinder_kaminario')
5 5
 
6
-  if $plugin_settings['scheduler_default_filters'] != ''
6
+  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'] != '') 
7 7
   {
8 8
   ini_subsetting {'scheduler_default_filters':
9 9
     ensure               => present,
@@ -11,23 +11,20 @@ $plugin_settings = hiera('cinder_kaminario')
11 11
     key_val_separator    => '=',
12 12
     path                 => $config_file,
13 13
     setting              => 'scheduler_default_filters',
14
-    subsetting           => $plugin_settings['scheduler_default_filters'],
14
+    subsetting           => 'DriverFilters',
15 15
     subsetting_separator => ',',
16 16
   }
17
-  }
18
-  if $plugin_settings['scheduler_default_weighers'] != ''
19
-  {
20
-  cinder_config {
21
-    'DEFAULT/scheduler_default_weighers'       : value => $plugin_settings['scheduler_default_weighers'];
22
-  }
23
-  }
24
-  if $plugin_settings['rpc_response_timeout'] != ''
25
-  {
26
-  cinder_config {
27
-    'DEFAULT/rpc_response_timeout'             : value => $plugin_settings['rpc_response_timeout'];
17
+
18
+  ini_subsetting {'scheduler_default_filter':
19
+    ensure               => present,
20
+    section              => 'DEFAULT',
21
+    key_val_separator    => '=',
22
+    path                 => $config_file,
23
+    setting              => 'scheduler_default_filters',
24
+    subsetting           => 'CapacityFilter',
25
+    subsetting_separator => ',',
28 26
   }
29 27
   }
30
-
31 28
   cinder_config {
32 29
     'DEFAULT/default_volume_type'             : value => $default_volume_type
33 30
   }

+ 26
- 25
deployment_scripts/puppet/modules/kaminario/manifests/init.pp View File

@@ -10,24 +10,24 @@ define recursion(
10 10
 $plugin_settings = hiera('cinder_kaminario')
11 11
 
12 12
             config {"plugin_${value}":
13
-              add_backend            =>      $plugin_settings["add_backend_${value}"],
14
-              cinder_node            =>      $plugin_settings["cinder_node_${value}"],
15
-              storage_protocol       =>      $plugin_settings["storage_protocol_${value}"],
16
-              backend_name           =>      $plugin_settings["backend_name_${value}"],
17
-              storage_user           =>      $plugin_settings["storage_user_${value}"],
18
-              storage_password       =>      $plugin_settings["storage_password_${value}"],
19
-              storage_ip             =>      $plugin_settings["storage_ip_${value}"],
20
-              enable_replication     =>      $plugin_settings["enable_replication_${value}"],
21
-              replication_ip         =>      $plugin_settings["replication_ip_${value}"],
22
-              replication_login      =>      $plugin_settings["replication_login_${value}"],
23
-              replication_rpo        =>      $plugin_settings["replication_rpo_${value}"],
24
-              replication_password   =>      $plugin_settings["replication_password_${value}"],
25
-              enable_multipath       =>      $plugin_settings["enable_multipath_${value}"],
26
-              suppress_logs          =>      $plugin_settings["suppress_logs_${value}"],
27
-              filter_function        =>      $plugin_settings["filter_function_${value}"],
28
-              goodness_function      =>      $plugin_settings["goodness_function_${value}"],
29
-              oversubscription_ratio =>      $plugin_settings["oversubscription_ratio_${value}"],
30
-              num                    =>      $value
13
+              add_backend            	=>      $plugin_settings["add_backend_${value}"],
14
+              cinder_node            	=>      $plugin_settings["cinder_node_${value}"],
15
+              storage_protocol       	=>      $plugin_settings["storage_protocol_${value}"],
16
+              backend_name           	=>      $plugin_settings["backend_name_${value}"],
17
+              storage_user           	=>      $plugin_settings["storage_user_${value}"],
18
+              storage_password       	=>      $plugin_settings["storage_password_${value}"],
19
+              storage_ip             	=>      $plugin_settings["storage_ip_${value}"],
20
+              enable_replication     	=>      $plugin_settings["enable_replication_${value}"],
21
+              replication_ip         	=>      $plugin_settings["replication_ip_${value}"],
22
+              replication_login      	=>      $plugin_settings["replication_login_${value}"],
23
+              replication_rpo        	=>      $plugin_settings["replication_rpo_${value}"],
24
+              replication_password   	=>      $plugin_settings["replication_password_${value}"],
25
+              enable_multipath       	=>      $plugin_settings["enable_multipath_${value}"],
26
+              suppress_logs          	=>      $plugin_settings["suppress_logs_${value}"],
27
+              filter_function        	=>      $plugin_settings["filter_function_${value}"],
28
+              oversubscription_ratio 	=>      $plugin_settings["oversubscription_ratio_${value}"],
29
+              report_discard_supported	=>	$plugin_settings["report_discard_supported_${value}"],   
30
+              num                    	=>      $value
31 31
             }
32 32
     $minus1 = inline_template('<%= @value.to_i - 1 %>')
33 33
     if $minus1 < '0' {
@@ -41,7 +41,7 @@ $plugin_settings = hiera('cinder_kaminario')
41 41
 }
42 42
 
43 43
 
44
-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) {
44
+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) {
45 45
 
46 46
   $sec_name = section_name( $storage_ip , $backend_name )
47 47
   $config_file = '/etc/cinder/cinder.conf'
@@ -99,17 +99,18 @@ define config($add_backend,$storage_protocol,$backend_name,$storage_user,$storag
99 99
     }
100 100
     }
101 101
 
102
-    if $goodness_function != '' {
103
-    cinder_config {
104
-        "${sec_name}/goodness_function"                      : value => $goodness_function;
105
-    }
106
-    }
107
-
108 102
     if $oversubscription_ratio == true {
109 103
     cinder_config {
110 104
         "${sec_name}/auto_calc_max_oversubscription_ratio"   : value => 'True';
111 105
     }
112 106
     }
107
+
108
+    if $report_discard_supported == true {
109
+    cinder_config {
110
+        "${sec_name}/report_discard_supported"  : value => 'True';
111
+    }   
112
+    } 
113
+
113 114
 }
114 115
 }
115 116
 }

+ 1
- 1
deployment_scripts/puppet/modules/kaminario/manifests/krest.pp View File

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

+ 25
- 27
deployment_scripts/puppet/modules/kaminario/manifests/type.pp View File

@@ -7,54 +7,52 @@ define recursion(
7 7
     $value
8 8
 ) {
9 9
     $plugin_settings = hiera('cinder_kaminario')
10
-
11 10
     kaminario_type {"plugin_${value}":
12
-      create_type            =>      $plugin_settings["create_type_${value}"],
13
-      options                =>      $plugin_settings["options_${value}"],
14
-      backend_name           =>      $plugin_settings["backend_name_${value}"],
15
-      type_name              =>      $plugin_settings["type_name_${value}"]
11
+      create_type            	=>      $plugin_settings["create_type_${value}"],
12
+      backend_name           	=>      $plugin_settings["type_backendname_${value}"],
13
+      type_enable_replication	=>      $plugin_settings["type_enable_replication_${value}"],
14
+      enable_nodedup            =>	$plugin_settings["enable_nodedup_${value}"],
15
+      type_name              	=>      $plugin_settings["type_name_${value}"]
16 16
   }
17 17
     $minus1 = inline_template('<%= @value.to_i - 1 %>')
18
-    if $minus1 < '0' {
19
-
20
-  }  else {
18
+    if "${minus1}" < '0' {
19
+        
20
+   }  else {
21 21
         recursion { "value-${minus1}":
22 22
             value => $minus1,
23 23
         }
24
-      }
24
+    }
25 25
 }
26 26
 }
27 27
 
28
-define kaminario_type ($create_type,$options,$backend_name,$type_name) {
28
+define kaminario_type ($create_type,$backend_name,$type_name,$enable_nodedup,$type_enable_replication) {
29 29
 if $create_type == true {
30
-case $options {
31
-  'enable_replication_type': {
30
+if ($enable_nodedup == true) and ($type_enable_replication == false) {
32 31
     cinder_type {$type_name:
33 32
       ensure     => present,
34
-      properties => ["volume_backend_name=${backend_name}",'kaminario:replication=enabled'],
33
+      properties => ["volume_backend_name=${backend_name}"],
35 34
     }
36
-  }
37
-  'enable_dedup': {
35
+}
36
+if ($type_enable_replication == true) and ($enable_nodedup == false) {
38 37
     cinder_type {$type_name:
39 38
       ensure     => present,
40
-      properties => ["volume_backend_name=${backend_name}",'kaminario:thin_prov_type=nodedup'],
39
+      properties => ["volume_backend_name=${backend_name}",'kaminario:replication=enabled', 'kaminario:thin_prov_type=nodedup'],
41 40
     }
42
-  }
43
-  'replication_dedup': {
41
+}
42
+if ($type_enable_replication == true) and ($enable_nodedup == true) {
44 43
     cinder_type {$type_name:
45 44
       ensure     => present,
46
-      properties => ["volume_backend_name=${backend_name}",'kaminario:thin_prov_type=nodedup','kaminario:replication=enabled'],
45
+      properties => ["volume_backend_name=${backend_name}",'kaminario:replication=enabled'],
47 46
     }
48
-  }
49
-  'default': {
47
+}
48
+
49
+if ($type_enable_replication == false) and ($enable_nodedup == false) {
50
+
50 51
     cinder_type {$type_name:
51 52
       ensure     => present,
52
-      properties => ["volume_backend_name=${backend_name}"],
53
-  }
54
-  }
55
-
53
+      properties => ["volume_backend_name=${backend_name}",'kaminario:thin_prov_type=nodedup'],
54
+   }
56 55
 }
57
-
58 56
 }
59
-
60 57
 }
58
+

+ 1
- 1
deployment_tasks.yaml View File

@@ -5,7 +5,7 @@
5 5
   requires: [top-role-cinder]
6 6
   required_for: [deploy_end]
7 7
   condition:
8
-    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"
8
+    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"
9 9
   parameters:
10 10
     puppet_manifest: puppet/manifests/cinder_kaminario.pp
11 11
     puppet_modules:  puppet/modules:/etc/puppet/modules

BIN
doc/plugin guide/source/images/FC_HBA.png View File


BIN
doc/plugin guide/source/images/cinder_create_success.png View File


BIN
doc/plugin guide/source/images/cinder_service_list.png View File


BIN
doc/plugin guide/source/images/iscsi_dashboard.png View File


BIN
doc/plugin guide/source/images/service_list.png View File


BIN
doc/plugin guide/source/images/volume_attach.png View File


BIN
doc/plugin guide/source/images/wwn_wrong.png View File


+ 1
- 1
doc/plugin guide/source/index.rst View File

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

+ 87
- 0
doc/plugin guide/source/troubleshooting.rst View File

@@ -0,0 +1,87 @@
1
+Verification
2
+============
3
+
4
+Login into the controller node from the Fuel-master node:
5
+
6
+1. Verify the status of cinder-volume service for Kaminario backend
7
+
8
+   .. code-block:: console
9
+   
10
+      $ cinder service-list
11
+
12
+   .. image:: ./images/service_list.png
13
+      :width: 400pt
14
+      :alt: service_list
15
+
16
+
17
+
18
+2. Create a volume. Verify the volume and volume group from the Kaminario K2 all-flash array dashboard.
19
+
20
+   .. code-block:: console
21
+
22
+      $ cinder create --name volume 1
23
+
24
+   .. image:: ./images/cinder_create_success.png
25
+      :width: 400pt
26
+      :alt: cinder_create_success
27
+
28
+   .. image:: ./images/iscsi_dashboard.png
29
+      :width: 400pt
30
+      :alt: iscsi_dashboard
31
+
32
+*Note:* The volume name is **cv-<cinder-volume-id>** and volume group name is **cvg-<cinder-volume-id>**.
33
+
34
+3. Run the OpenStack Test Framework (OSTF). From the Fuel web UI:
35
+
36
+	* Click the **Health Check** tab
37
+        * Select the **Select All** checkbox
38
+        * Click **Run Tests**.
39
+
40
+	*Note:* The Kaminario Fuel plugin verification is mainly based on the Functional tests.
41
+
42
+
43
+Troubleshooting
44
+===============
45
+
46
+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:
47
+
48
+#. **/var/log/cinder/cinder-volume.log**
49
+#. **/var/log/cinder/cinder-api.log**
50
+#. **/var/log/cinder/cinder-scheduler.log**
51
+#. **/var/log/nova/nova-compute.log**
52
+
53
+Check the status of cinder volume service for Kaminario backend.
54
+
55
+   .. code-block:: console
56
+
57
+      $ cinder service-list
58
+
59
+   .. image:: ./images/cinder_service_list.png
60
+      :width: 400pt
61
+      :alt: cinder_service_list
62
+
63
+The failures may be caused due to many possibilities, the following are few of them:
64
+
65
+1. Kaminario rest-api version is less than 2.2.0.
66
+2. Kaminario K2 all-flash array version is less than 5.8.
67
+3. Data path between the Fuel nodes (having cinder and compute role) and the Kaminario K2 all-flash array is not present or inaccessible:
68
+
69
+   .. image:: ./images/FC_HBA.png
70
+      :width: 400pt
71
+      :alt: FC_HBA
72
+
73
+   .. image:: ./images/volume_attach.png
74
+      :width: 400pt
75
+      :alt: volume_attach
76
+
77
+   .. image:: ./images/wwn_wrong.png
78
+      :width: 400pt
79
+      :alt: wwn_wrong
80
+
81
+
82
+
83
+4. Management IP of the Kaminario backend is not correct or inaccessible from the Fuel node having the Cinder role.
84
+5. Wrong credentials (username and password) used for the Kaminario backend.
85
+6. Not using the Kaminario Fuel plugin configuration options for; creating volume type and setting default volume type.
86
+7. No proper use of Kaminario Fuel plugin configuration options like Filter Function, Goodness Function, Scheduler weighers and Scheduler filters.
87
+8. Others.

+ 565
- 568
environment_config.yaml
File diff suppressed because it is too large
View File


+ 1
- 1
metadata.yaml View File

@@ -1,7 +1,7 @@
1 1
 # Plugin name
2 2
 name: cinder_kaminario
3 3
 # Human-readable name for your plugin
4
-title: Kaminario For Cinder
4
+title: Kaminario K2 For Cinder
5 5
 # Plugin version
6 6
 version: '1.0.0'
7 7
 # Description

Loading…
Cancel
Save