On 15/12/2021 08:16, Michele Baldessari wrote:
Hi,

On Tue, Dec 14, 2021 at 03:09:56PM +0000, lejeczek via Users wrote:
I failed to find any good or any for that matter info, on present-day
mariadb/mysql galera cluster setups - would you know of any docs which
discuss such scenario comprehensively?
I see there among resources are 'mariadb' and 'galera' but which one to use
I'm still confused.
in the deployment of OpenStack via TripleO[1] we set up galera in
multi-master mode using the galera resource agent[2] (it runs in bundles
aka containers in our specific case, but that is tangential).

Here is an example of the pcs commands we use to start it (these are
a bit old, things might have changed since):

pcs property set --node controller-1 galera-role=true
pcs resource bundle create galera-bundle container docker 
image=192.168.24.1:8787/rhosp13/openstack-mariadb:pcmklatest replicas=3 masters=3 
options="--user=root --log-driver=journald -e KOLLA_CONFIG_STRATEGY=COPY_ALWAYS" 
run-command="/bin/bash /usr/local/bin/kolla_start" network=host storage-map 
id=mysql-cfg-files source-dir=/var/lib/kolla/config_files/mysql.json 
target-dir=/var/lib/kolla/config_files/config.json options=ro storage-map id=mysql-cfg-data 
source-dir=/var/lib/config-data/puppet-generated/mysql/ target-dir=/var/lib/kolla/config_files/src 
options=ro storage-map id=mysql-hosts source-dir=/etc/hosts target-dir=/etc/hosts options=ro 
storage-map id=mysql-localtime source-dir=/etc/localtime target-dir=/etc/localtime options=ro 
storage-map id=mysql-lib source-dir=/var/lib/mysql target-dir=/var/lib/mysql options=rw storage-map 
id=mysql-log-mariadb source-dir=/var/log/mariadb target-dir=/var/log/mariadb options=rw storage-map 
id=mysql-log source-dir=/var/log/containers/mysql ta
rget-dir=/var/log/mysql options=rw storage-map id=mysql-dev-log 
source-dir=/dev/log target-dir=/dev/log options=rw network control-port=3123 
--disabled

pcs constraint location galera-bundle rule resource-discovery=exclusive score=0 
galera-role eq true

pcs resource create galera ocf:heartbeat:galera log='/var/log/mysql/mysqld.log' 
additional_parameters='--open-files-limit=16384' enable_creation=true 
wsrep_cluster_address='gcomm://controller-0.internalapi.localdomain,controller-1.internalapi.localdomain,controller-2.internalapi.localdomain'
 
cluster_host_map='controller-0:controller-0.internalapi.localdomain;controller-1:controller-1.internalapi.localdomain;controller-2:controller-2.internalapi.localdomain'
 meta master-max=3 ordered=true container-attribute-target=host op promote 
timeout=300s on-fail=block bundle galera-bundle

I don't think we have any docs discussing tradeoffs around this setup,
but maybe this is a start. If you want multi-master galera then you can
do it with the galera RA. If you need to look at more recent configs
check out [3] (Click on a job and the logs and you can check something
like [4] for the full pcs config)

hth,
Michele

[1] https://docs.openstack.org/tripleo-docs/latest/
[2] 
https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/galera.in
[3] 
https://review.rdoproject.org/zuul/builds?job_name=periodic-tripleo-ci-centos-8-ovb-3ctlr_1comp-featureset035-master
[4] 
https://logserver.rdoproject.org/openstack-periodic-integration-main/opendev.org/openstack/tripleo-ci/master/periodic-tripleo-ci-centos-8-ovb-3ctlr_1comp-featureset035-master/31594c2/logs/overcloud-controller-0/var/log/extra/pcs.txt.gz
I had used 'galera' OCF resource which worked, following man page for it but if I can share an opinion - it's seems that most(if not all developers) "suffer" from the same problem - namely, inability to write a solid, very good man/docs pages, which is the case with HA/Pacemaker. (there are exceptions such as 'lvm2', 'systemd', 'firewalld' & more (I'm a CentOS/Fedora user))

Especially man pages suffer - while developers know that it's first place user/admin goes to.

So I struggle with multi-master setup - many thanks for the examples - "regular" master/slave works, but that gives out only one node having 'mariadb' up&running, whereas remaining nodes keep resource in 'standby' mode - as I understand it. When I try to fiddle with similar to you configs then 'galera' tells me:
..
Galera must be configured as a multistate Master/Slave resource.
..
and my setup should be simpler - no containers, no bundles - only 3 nodes.

many thanks, L
_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/

Reply via email to