Revert "patches, docs: Remove MySQL WSREP SST provider" 39/21039/1
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 13 Sep 2016 15:07:20 +0000 (15:07 +0000)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 13 Sep 2016 15:07:20 +0000 (15:07 +0000)
This reverts commit 8a696682b3fd0cb5f32ddaca8ede5db7b001a57f.

Change-Id: Ib1698643639436243768f4a8209c4d68314a97ca

docs/img/fuelwsrepsst.png [new file with mode: 0644]
docs/installation-instruction.rst
patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch [new file with mode: 0644]
patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch [new file with mode: 0644]

diff --git a/docs/img/fuelwsrepsst.png b/docs/img/fuelwsrepsst.png
new file mode 100644 (file)
index 0000000..90ded44
Binary files /dev/null and b/docs/img/fuelwsrepsst.png differ
index b7edd91..356f411 100644 (file)
@@ -582,6 +582,29 @@ that can be used for installation / deployment of openstack.
 Target specific configuration
 -----------------------------
 
+#. [AArch64 specific] Configure MySQL WSREP SST provider
+
+   **NOTE**: This option is only available for ArmbandFuel@OPNFV, since it
+   currently only affects AArch64 targets (see *Reference 15*).
+
+   When using some AArch64 platforms as controller nodes, WSREP SST
+   synchronisation using default backend provider (xtrabackup-v2) might fail,
+   so a mechanism that allows selecting a different WSREP SST provider
+   has been introduced.
+
+   In the FUEL UI of your Environment, click the <Settings> tab, click
+   <OpenStack Services> on the left side pane (see figure below), then
+   select one of the following options:
+
+   - xtrabackup-v2 (default provider, AArch64 stability issues);
+
+   - rsync (AArch64 validated, better or comparable speed to xtrabackup,
+     takes the donor node offline during state transfer);
+
+   - mysqldump (untested);
+
+   .. figure:: img/fuelwsrepsst.png
+
 #. Set up targets for provisioning with non-default "Offloading Modes"
 
    Some target nodes may require additional configuration after they are
diff --git a/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch b/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch
new file mode 100644 (file)
index 0000000..6d9bc8c
--- /dev/null
@@ -0,0 +1,58 @@
+From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Date: Wed, 20 Apr 2016 14:54:42 -0700
+Subject: [PATCH] Allow configuring MySQL WSREP SST provider
+
+On some arm64 platforms xtrabackup is broken due to an outdated
+MySQL/InnoDB code that it uses which is missing. To work around that
+this patch allows choosing which WSREP SST provider to use. Aside of
+already supported `xtrabackup-v2` and `mysqldump`, the `rsync` method
+has been added as it is comparable to xtrabackup in terms of speed (or
+is faster), has been validated to work on arm64 platforms where
+xtrabackup is broken and it doesn't rely on db mechanisms to perform the
+state transfer.
+
+This patch is tied to a patch in fuel-web that introduces configuration
+options for WSREP SST provider and in case nothing is specified, it
+will choose `xtrabackup-v2`.
+
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+---
+ deployment/puppet/osnailyfacter/manifests/database/database.pp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp
+index 1755c34..0cfbc8c 100644
+--- a/deployment/puppet/osnailyfacter/manifests/database/database.pp
++++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp
+@@ -8,4 +8,5 @@ class osnailyfacter::database::database {
+   $use_syslog               = hiera('use_syslog', true)
+   $primary_controller       = hiera('primary_controller')
+   $mysql_hash               = hiera_hash('mysql', {})
++  $wsrep_hash               = hiera_hash('mysql_wsrep', {})
+   $debug                    = pick($mysql_hash['debug'], hiera('debug', false))
+@@ -22,6 +23,7 @@ class osnailyfacter::database::database {
+   $mysql_root_password       = $mysql_hash['root_password']
+   $enabled                   = pick($mysql_hash['enabled'], true)
++  $wsrep_sst_method          = pick($wsrep_hash['wsrep_method'], 'xtrabackup-v2')
+   $galera_node_address       = get_network_role_property('mgmt/database', 'ipaddr')
+   $galera_nodes              = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('database_nodes'), 'mgmt/database'))
+@@ -216,7 +218,7 @@ class osnailyfacter::database::database {
+         'wsrep_cluster_name'             => $galera_cluster_name,
+         'wsrep_provider_options'         => $wsrep_provider_options,
+         'wsrep_slave_threads'            => $wsrep_slave_threads,
+-        'wsrep_sst_method'               => 'xtrabackup-v2',
++        'wsrep_sst_method'               => $wsrep_sst_method,
+         #TODO (sgolovatiuk): fix this, should be a specific user not root
+         'wsrep_sst_auth'                 => "\"root:${mysql_root_password}\"",
+         'wsrep_node_address'             => $galera_node_address,
+@@ -269,7 +271,7 @@ class osnailyfacter::database::database {
+       wsrep_group_comm_port => $wsrep_group_comm_port,
+       bind_address          => $galera_node_address,
+       local_ip              => $galera_node_address,
+-      wsrep_sst_method      => 'xtrabackup-v2',
++      wsrep_sst_method      => $wsrep_sst_method,
+       override_options      => $override_options,
+     }
diff --git a/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch b/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch
new file mode 100644 (file)
index 0000000..87f0a2f
--- /dev/null
@@ -0,0 +1,45 @@
+From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Date: Wed, 20 Apr 2016 15:05:15 -0700
+Subject: [PATCH] Add configuration item for WSREP SST provider
+
+This patch adds a radio button in "OpenStack Services" tab of the
+environment settings to configure which WSREP SST provider to use for
+MySQL.
+
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+---
+ nailgun/nailgun/fixtures/openstack.yaml | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
+index 62e6b73..4b123b9 100644
+--- a/nailgun/nailgun/fixtures/openstack.yaml
++++ b/nailgun/nailgun/fixtures/openstack.yaml
+@@ -918,6 +918,27 @@
+             description: "Name for Mongo replication set"
+             weight: 30
+             type: "text"
++        mysql_wsrep:
++          metadata:
++            label: "Database configuration"
++            weight: 15
++            group: "openstack_services"
++          wsrep_method:
++            value: "xtrabackup-v2"
++            label: "WSREP SST provider"
++            description: "This setting changes the wsrep_sst_method switch in the MySQL Galera cluster configuration."
++            weight: 10
++            type: "radio"
++            values:
++              - data: "xtrabackup-v2"
++                label: "xtrabackup-v2"
++                description: "Use Percona xtrabackup v2 provider. This is broken on some ARM64 platforms due to outdated MySQL/InnoDB code used by xtrabackup."
++              - data: "rsync"
++                label: "rsync"
++                description: "Use rsync provider. Use if xtrabackup is broken on your platform."
++              - data: "mysqldump"
++                label: "mysqldump"
++                description: "Use mysqldump provider (untested)."
+         additional_components:
+           metadata:
+             label: "Additional Components"