Bump version and use mariabackup
We're currently deploying 10.2.17 which is quite old and we seem to be having issues in the gate with some database sync's causing MariaDB to crash, as well as personal experience with similar crashes around Cinder database syncs In addition, this change implements the usage of mariabackup for SST transfers which eliminates the need for the Percona repos. The compression is no longer recommended by upstream now, therefore, we remove it. Change-Id: I59a0e225205be43b5bfc76c4bc3381b6e9c54cfd
This commit is contained in:
parent
bd3fb46921
commit
94640cd215
|
@ -40,8 +40,8 @@ galera_debconf_items: []
|
|||
galera_mariadb_server_package: "{{ _galera_mariadb_server_package }}"
|
||||
|
||||
# The major version used to select the repo URL path
|
||||
galera_major_version: 10.2
|
||||
galera_minor_version: 17
|
||||
galera_major_version: 10.3
|
||||
galera_minor_version: 13
|
||||
|
||||
# Set the URL for the MariaDB repository
|
||||
galera_repo_host: "downloads.mariadb.com"
|
||||
|
@ -61,12 +61,6 @@ galera_repo: "{{ _galera_repo }}"
|
|||
# validate_certs: no
|
||||
galera_gpg_keys: "{{ _galera_gpg_keys | default([]) }}"
|
||||
|
||||
# Set the rpo information for the Percona Xtrabackup repository
|
||||
galera_percona_xtrabackup_repo: "{{ _galera_percona_xtrabackup_repo | default({}) }}"
|
||||
|
||||
# Enable the use of the upstream percona repo
|
||||
use_percona_upstream: "{{ _use_percona_upstream }}"
|
||||
|
||||
galera_monitoring_user: monitoring
|
||||
galera_monitoring_user_password: ""
|
||||
|
||||
|
@ -125,16 +119,14 @@ galera_wsrep_slave_threads_max: 16
|
|||
galera_wsrep_slave_threads: "{{ [[ansible_processor_vcpus|default(2), 2] | max, galera_wsrep_slave_threads_max] | min }}"
|
||||
galera_wsrep_retry_autocommit: 3
|
||||
galera_wsrep_debug: 0
|
||||
galera_wsrep_sst_method: xtrabackup-v2
|
||||
galera_wsrep_sst_method: mariabackup
|
||||
galera_wsrep_provider_options:
|
||||
- { option: "gcache.size", value: "{{ galera_gcache_size }}" }
|
||||
galera_wsrep_sst_auth_user: "root"
|
||||
galera_wsrep_sst_auth_password: "{{ galera_root_password }}"
|
||||
|
||||
# Enable compression of backups.
|
||||
galera_xtrabackup_compression: "{{ (ansible_architecture == 'x86_64') or (ansible_architecture == 'ppc64le' and ansible_distribution == 'Ubuntu') }}"
|
||||
# xtrabackup parallel/compression/sync threads
|
||||
galera_xtrabackup_threads: 4
|
||||
# mariabackup parallel/sync threads
|
||||
galera_mariabackup_threads: 4
|
||||
|
||||
# Galera slow/unindexed query logging
|
||||
galera_slow_query_logging: 0
|
||||
|
@ -156,16 +148,6 @@ galera_server_distro_package_pins:
|
|||
- package: '*'
|
||||
release: MariaDB
|
||||
priority: 1001
|
||||
# Blacklist 10.1.27 release due to https://jira.mariadb.org/browse/MDEV-13908
|
||||
# which causes MariaDB to segfault with galera enabled.
|
||||
- package: mariadb-server
|
||||
version: 10.1.27+maria-1~xenial
|
||||
priority: -1
|
||||
# TODO(evrardjp): Remove pin when clustering issue is figured out
|
||||
# Clustering issue
|
||||
- package: mariadb-server
|
||||
version: 10.1.31+maria-1~xenial
|
||||
priority: -1
|
||||
|
||||
# Galera Server SSL functionality.
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
deprecations:
|
||||
- The compression option has been removed due to the fact that it's not
|
||||
recommended by MariaDB anymore. This means that all the dependencies from
|
||||
Percona such as QPress are no longer necessary.
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- The role now uses mariabackup in order to complete SST operations due to
|
||||
the fact that this is the recommended choice from MariaDB.
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
features:
|
||||
- This role now ships with the latest MariaDB release of 10.3.13.
|
|
@ -15,23 +15,7 @@
|
|||
|
||||
- name: Prepare the package list
|
||||
set_fact:
|
||||
galera_packages_list: |-
|
||||
{% set packages = galera_server_required_distro_packages + galera_server_mariadb_distro_packages %}
|
||||
{% if ansible_architecture == 'x86_64' %}
|
||||
{% set _ = packages.extend(galera_server_percona_distro_packages) %}
|
||||
{% endif %}
|
||||
{% if ansible_architecture == 'ppc64le' and ansible_distribution == 'Ubuntu' %}
|
||||
{% for extra_package in galera_server_percona_distro_packages_alt_arch[ansible_architecture] %}
|
||||
{% set _package_path = galera_server_extra_package_path ~ '/' ~ ansible_architecture %}
|
||||
{% set _ = packages.append(_package_path ~ '/' ~ extra_package['url'] | basename) %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{{ packages }}
|
||||
|
||||
- name: Download the extra packages
|
||||
include_tasks: galera_install_download_extra_packages.yml
|
||||
when:
|
||||
- ansible_architecture == 'ppc64le'
|
||||
galera_packages_list: "{{ galera_server_required_distro_packages + galera_server_mariadb_distro_packages }}"
|
||||
|
||||
- include_tasks: "galera_install_{{ ansible_pkg_mgr }}.yml"
|
||||
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
state: absent
|
||||
with_items:
|
||||
- { name: "MariaDB", repo: "{{ galera_repo.repo }}" }
|
||||
- { name: "Percona", repo: "{{ galera_percona_xtrabackup_repo.repo }}" }
|
||||
|
||||
- name: Add galera repo
|
||||
apt_repository:
|
||||
|
@ -52,14 +51,6 @@
|
|||
update_cache: "no"
|
||||
register: add_galera_repo
|
||||
|
||||
- name: Add percona repo
|
||||
apt_repository:
|
||||
repo: "{{ galera_percona_xtrabackup_repo.repo }}"
|
||||
filename: "{{ galera_percona_xtrabackup_repo.filename | default(omit) }}"
|
||||
state: "{{ galera_percona_xtrabackup_repo.state }}"
|
||||
update_cache: "no"
|
||||
register: add_percona_repo
|
||||
|
||||
- name: Preseed galera password(s)
|
||||
debconf:
|
||||
name: "{{ item.name }}"
|
||||
|
@ -81,7 +72,7 @@
|
|||
apt:
|
||||
update_cache: yes
|
||||
when:
|
||||
- add_galera_repo is changed or add_percona_repo is changed
|
||||
- add_galera_repo is changed
|
||||
register: update_apt_cache
|
||||
until: update_apt_cache is success
|
||||
retries: 5
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Ensure that galera_server_extra_package_paths exist
|
||||
file:
|
||||
path: "{{ galera_server_extra_package_path }}/{{ item.key }}"
|
||||
state: directory
|
||||
with_dict: "{{ galera_server_percona_distro_packages_alt_arch }}"
|
||||
delegate_to: "{{ (galera_server_extra_package_downloader == 'deployment-host') | ternary('localhost', inventory_hostname) }}"
|
||||
|
||||
- name: Download extra packages
|
||||
get_url:
|
||||
url: "{{ item.url }}"
|
||||
dest: "{{ galera_server_extra_package_path }}/{{ galera_server_percona_distro_packages_alt_arch.keys()[0] }}/"
|
||||
checksum: "{{ item.checksum | default(omit) }}"
|
||||
force: "{{ item.checksum is not defined }}"
|
||||
validate_certs: "{{ galera_server_extra_package_validate_certs }}"
|
||||
with_items: "{{ galera_server_percona_distro_packages_alt_arch.values() | flatten | list }}"
|
||||
register: fetch_url
|
||||
until: fetch_url is success
|
||||
retries: 3
|
||||
delay: 10
|
||||
delegate_to: "{{ (galera_server_extra_package_downloader == 'deployment-host') | ternary('localhost', inventory_hostname) }}"
|
||||
|
||||
- name: Copy downloaded packages from deployment-host to target-host
|
||||
copy:
|
||||
src: "{{ galera_server_extra_package_path }}/{{ item.key }}/{{ item.value.url | basename }}"
|
||||
dest: "{{ galera_server_extra_package_path }}/{{ item.key }}/"
|
||||
with_dict: "{{ galera_server_percona_distro_packages_alt_arch }}"
|
||||
when:
|
||||
- galera_server_extra_package_downloader == "deployment-host"
|
||||
register: file_copy
|
||||
until: file_copy is success
|
||||
retries: 5
|
||||
delay: 10
|
|
@ -115,20 +115,6 @@
|
|||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install percona repo
|
||||
yum_repository:
|
||||
name: 'percona-release-$basearch'
|
||||
description: 'Percona-Release YUM repository - $basearch'
|
||||
baseurl: "{{ galera_percona_xtrabackup_repo.repo }}"
|
||||
enabled: true
|
||||
gpgcheck: true
|
||||
state: "{{ galera_percona_xtrabackup_repo.state }}"
|
||||
priority: 25
|
||||
register: add_percona_repos
|
||||
until: add_percona_repos is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
# When changing the repo URL, the metadata does
|
||||
# not reliably update, resulting in the right
|
||||
# URL being used, but the wrong package list.
|
||||
|
@ -138,7 +124,7 @@
|
|||
command: "{{ ansible_pkg_mgr }} clean metadata"
|
||||
args:
|
||||
warn: no
|
||||
when: (add_galera_repos is changed) or (add_percona_repos is changed)
|
||||
when: add_galera_repos is changed
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
|
|
|
@ -71,11 +71,6 @@
|
|||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Fail if upstream Percona is selected
|
||||
fail:
|
||||
msg: "Using upstream Percona packages is unsupported on SUSE"
|
||||
when: use_percona_upstream
|
||||
|
||||
- name: Add galera repo
|
||||
zypper_repository:
|
||||
name: "{{ galera_repo.name }}"
|
||||
|
@ -89,19 +84,6 @@
|
|||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install percona repo
|
||||
zypper_repository:
|
||||
name: "{{ galera_percona_xtrabackup_repo.name }}"
|
||||
description: "{{ galera_percona_xtrabackup_repo.description }}"
|
||||
repo: "{{ galera_percona_xtrabackup_repo.repo }}"
|
||||
autorefresh: yes
|
||||
auto_import_keys: yes
|
||||
state: "{{ galera_percona_xtrabackup_repo.state }}"
|
||||
register: add_repos
|
||||
until: add_repos is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install galera_server role remote packages (zypper)
|
||||
zypper:
|
||||
name: "{{ galera_packages_list }}"
|
||||
|
|
|
@ -29,15 +29,6 @@
|
|||
tags:
|
||||
- always
|
||||
|
||||
- name: Fail if compression is enabled on unsupported architecture/distro
|
||||
fail:
|
||||
msg: |
|
||||
qpress compression is only supported for x86_64 and for Ubuntu/ppc64le
|
||||
when:
|
||||
- galera_xtrabackup_compression | bool
|
||||
- (ansible_architecture != 'x86_64') and
|
||||
not (ansible_architecture == 'ppc64le' and ansible_distribution == 'Ubuntu')
|
||||
|
||||
- name: Gather variables for each operating system
|
||||
include_vars: "{{ item }}"
|
||||
with_first_found:
|
||||
|
|
|
@ -46,10 +46,5 @@ wsrep_cluster_name = "{{ galera_cluster_name }}"
|
|||
# how many times to retry deadlocked autocommits
|
||||
wsrep_retry_autocommit = {{ galera_wsrep_retry_autocommit }}
|
||||
|
||||
[xtrabackup]
|
||||
{% if galera_xtrabackup_compression | bool %}
|
||||
compress
|
||||
compress-threads = {{ galera_xtrabackup_threads }}
|
||||
{% endif %}
|
||||
parallel = {{ galera_xtrabackup_threads }}
|
||||
rebuild-threads = {{ galera_xtrabackup_threads }}
|
||||
[mariabackup]
|
||||
parallel = {{ galera_mariabackup_threads }}
|
||||
|
|
|
@ -47,12 +47,6 @@ galera_server_upgrade_packages_remove:
|
|||
|
||||
galera_mariadb_service_name: "mariadb"
|
||||
|
||||
galera_server_percona_distro_packages:
|
||||
- dev-db/percona-toolkit
|
||||
- dev-db/percona-xtrabackup-bin
|
||||
- "{{ (galera_xtrabackup_compression | bool) | ternary('app-arch/qpress', '') }}"
|
||||
|
||||
galera_wsrep_provider: "/usr/lib64/galera/libgalera_smm.so"
|
||||
|
||||
_use_percona_upstream: no
|
||||
mysql_service_name: mariadb
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
_galera_gpg_keys:
|
||||
# MariaDB Package Signing Key <package-signing-key@mariadb.org>
|
||||
- key: /etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB
|
||||
# Percona MySQL Development Team <mysql-dev@percona.com>
|
||||
- key: /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
|
||||
- key: /etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
|
||||
|
||||
# Default private device setting
|
||||
# This provides some additional security, but it causes problems with creating
|
||||
|
@ -47,6 +44,7 @@ _galera_mariadb_server_package: "MariaDB-server"
|
|||
galera_server_mariadb_distro_packages:
|
||||
- which
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- MariaDB-backup
|
||||
- MariaDB-shared
|
||||
- rsync
|
||||
- socat
|
||||
|
@ -70,15 +68,4 @@ _galera_repo:
|
|||
description: "MariaDB Repo"
|
||||
baseurl: "{{ galera_repo_url }}"
|
||||
|
||||
_galera_percona_xtrabackup_repo:
|
||||
repo: "http://{{ galera_percona_xtrabackup_repo_host | default('repo.percona.com') }}/release/$releasever/RPMS/$basearch"
|
||||
state: "{{ (use_percona_upstream | bool) | ternary('present', 'absent') }}"
|
||||
|
||||
galera_server_percona_distro_packages:
|
||||
- percona-toolkit
|
||||
- percona-xtrabackup-24
|
||||
- "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}"
|
||||
|
||||
galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so"
|
||||
|
||||
_use_percona_upstream: "{{ ansible_architecture == 'x86_64' }}"
|
||||
|
|
|
@ -41,6 +41,7 @@ _galera_mariadb_server_package: "MariaDB-server"
|
|||
galera_server_mariadb_distro_packages:
|
||||
- which
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- MariaDB-backup
|
||||
- MariaDB-shared
|
||||
- rsync
|
||||
- socat
|
||||
|
@ -66,24 +67,9 @@ _galera_repo:
|
|||
description: "MariaDB Repo"
|
||||
baseurl: "{{ galera_repo_url }}"
|
||||
|
||||
# NOTE(hwoarang): Extra repository is only needed for 42.3. If this starts failig due to network issues we should
|
||||
# simply pin 10.1.31 to Leap 42.3
|
||||
_galera_percona_xtrabackup_repo:
|
||||
name: "OBS:home:markoschandras:osa"
|
||||
description: "OBS OpenStack Ansible repository"
|
||||
repo: "https://download.opensuse.org/repositories/home:/markoschandras:/osa/openSUSE_Leap_{{ ansible_distribution_version }}"
|
||||
state: "{{ (ansible_distribution_major_version == '42') | ternary('present', 'absent') }}"
|
||||
|
||||
galera_server_percona_distro_packages:
|
||||
- percona-toolkit
|
||||
- percona-xtrabackup
|
||||
- "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}"
|
||||
|
||||
galera_wsrep_provider: "/usr/lib64/galera/libgalera_smm.so"
|
||||
|
||||
mariadb_delete_etc_conf_files:
|
||||
- default_plugins.cnf
|
||||
- galera.cnf
|
||||
- error_log.cnf
|
||||
|
||||
_use_percona_upstream: no
|
||||
|
|
|
@ -24,9 +24,6 @@ _galera_gpg_keys:
|
|||
# MariaDB Signing Key <signing-key@mariadb.org>
|
||||
- id: C74CD1D8
|
||||
file: /etc/ssl/mariadb-key
|
||||
# Percona MySQL Development Team (Packaging key) <mysql-dev@percona.com>
|
||||
- id: 8507EFA5
|
||||
file: /etc/ssl/percona-pkg-key
|
||||
|
||||
galera_server_required_distro_packages:
|
||||
- apt-transport-https
|
||||
|
@ -56,6 +53,7 @@ _galera_mariadb_server_package: "mariadb-server-{{ galera_major_version }}"
|
|||
galera_server_mariadb_distro_packages:
|
||||
- libmariadb-dev
|
||||
- mariadb-client
|
||||
- mariadb-backup
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- galera-3
|
||||
- rsync
|
||||
|
@ -78,30 +76,11 @@ galera_debconf_items:
|
|||
value: "{{ galera_root_password }}"
|
||||
vtype: "string"
|
||||
|
||||
galera_server_percona_distro_packages:
|
||||
- percona-toolkit
|
||||
- percona-xtrabackup-24
|
||||
- "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}"
|
||||
|
||||
# Repositories
|
||||
_galera_percona_xtrabackup_repo:
|
||||
repo: "deb http://{{ galera_percona_xtrabackup_repo_host | default('repo.percona.com') }}/apt {{ ansible_distribution_release }} main"
|
||||
state: "{{ (use_percona_upstream | bool) | ternary('present', 'absent') }}"
|
||||
filename: "Percona"
|
||||
|
||||
_galera_repo_url: "http://{{ galera_repo_host }}/MariaDB/mariadb-{{ galera_major_version }}.{{ galera_minor_version }}/repo/ubuntu"
|
||||
_galera_repo:
|
||||
repo: "deb {{ galera_repo_url }} {{ ansible_distribution_release }} main"
|
||||
state: "present"
|
||||
filename: "MariaDB"
|
||||
|
||||
galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so"
|
||||
|
||||
_use_percona_upstream: "{{ ansible_architecture == 'x86_64' }}"
|
||||
|
||||
galera_server_percona_distro_packages_alt_arch:
|
||||
ppc64le:
|
||||
- url: "http://public.dhe.ibm.com/systems/virtualization/Novalink/misc/percona-xtrabackup/percona-xtrabackup-24_2.4.5-1_ppc64el.deb"
|
||||
checksum: "sha256:3d4e4112f4c8020c9190a91d962dabed1dfaad307160a939e121208887eaee2a"
|
||||
- url: "http://public.dhe.ibm.com/systems/virtualization/Novalink/misc/qpress/qpress_11-1_ppc64el.deb"
|
||||
checksum: "sha256:a31d3e00dbcec9b3f98eae82b261d054d0b80a57f4a38967d0e953811cb082f3"
|
||||
galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so"
|
Loading…
Reference in New Issue