I set up a Galera cluster using only ipv6 with addresses based mostly on these links:
https://docs.openstack.org/ha-guide/shared-database-manage.html
https://www.globo.tech/learning-center/install-galera-ubuntu-16/
https://bugs.launchpad.net/galera/+bug/1130595
https://blog.widodh.nl/2016/02/mariadb-galera-cluster-on-ipv6/
https://mariadb.com/kb/en/mariadb/systemd/
I ran into some problems with SST and rsync; I resolved those for my use case as follows:
# diff -u wsrep_sst_rsync /usr/bin/wsrep_sst_rsync
--- wsrep_sst_rsync 2017-05-23 15:37:30.596302338 -0700
+++ /usr/bin/wsrep_sst_rsync 2017-05-23 15:37:41.508184365 -0700
@@ -270,7 +270,8 @@
rm -rf "$RSYNC_PID"
ADDR=$WSREP_SST_OPT_ADDR
- RSYNC_PORT=$(echo $ADDR | awk -F ':' '{ print $2 }')
+ #RSYNC_PORT=$(echo $ADDR | awk -F ':' '{ print $2 }')
+ RSYNC_PORT=4444
if [ -z "$RSYNC_PORT" ]
then
RSYNC_PORT=4444
Of course, this is not a good patch and will probably break things for people using alternate ports, but it made me able to finally get the rsync daemon to start and allow nodes to do SST, so my cluster is finally in sync. I added this here, because I saw some similar issues but no answers that worked for me because I can't use the hosts file or hostnames as a workaround in my test environment. I hope this helps someone else trying to build a Galera cluster on single stack ipv6.
The relevant/galera part of my config is something like this:
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
#galera settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider_options = "gmcast.listen_addr=tcp://[::]:4567;ist.recv_addr=[2001:DB8::4]:4568"
wsrep_cluster_name="theramonesareprettycool"
wsrep_cluster_address=gcomm://2001:DB8::6:4567,2001:DB8::5:4567,2001:DB8::4:4567
wsrep_sst_method=rsync
wsrep_node_name=os102
wsrep_node_address = "[2001:DB8::4]:4567"
wsrep_sst_receive_address = "[2001:DB8::4]:4444"
Thank you developers and community! :)