From: Stanislaw Kardach 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 --- 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, }