aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2016-09-13 15:07:20 +0000
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2016-09-13 15:47:52 +0000
commitabefc47e8d09108764959bddb08187c5bc78b662 (patch)
tree0b06ce92aa249bc723cb07b40192ac44581ccc07
parent28df98dee0fd9f8d4edfbbfe6d6b8c04e282be9d (diff)
Revert "patches, docs: Remove MySQL WSREP SST provider"
This reverts commit 8a696682b3fd0cb5f32ddaca8ede5db7b001a57f. Change-Id: Ib1698643639436243768f4a8209c4d68314a97ca (cherry picked from commit f5e0922b9282dccb5d79c80c58801f455495c4ce)
-rw-r--r--docs/img/fuelwsrepsst.pngbin0 -> 59206 bytes
-rw-r--r--docs/installation-instruction.rst23
-rw-r--r--patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch58
-rw-r--r--patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch45
4 files changed, 126 insertions, 0 deletions
diff --git a/docs/img/fuelwsrepsst.png b/docs/img/fuelwsrepsst.png
new file mode 100644
index 00000000..90ded440
--- /dev/null
+++ b/docs/img/fuelwsrepsst.png
Binary files differ
diff --git a/docs/installation-instruction.rst b/docs/installation-instruction.rst
index b7edd91c..356f4110 100644
--- a/docs/installation-instruction.rst
+++ b/docs/installation-instruction.rst
@@ -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
index 00000000..6d9bc8c7
--- /dev/null
+++ b/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch
@@ -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
index 00000000..87f0a2fd
--- /dev/null
+++ b/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch
@@ -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"