galera

MariaDB Galera cluster SST sync from specified donor is impossible


Galera cluster documentation states that you can use preferred donor in galera cluster, as rsync SST is blocking, thus you can prefer less used node:

https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-sst-donor

but in conf file, providing donor parameter like this:

wsrep_sst_donor="192.168.0.33,192.168.0.32"

gives an error like this:

db4 mariadbd[14970]: ... 0 [Warning] WSREP: Member 4.0 (db4) requested state transfer from '192.168.0.33', but it is impossible to select State Transfer donor: No route to host

ping destination host works without any problem, no network issues at all.


Solution

  • The documentation is little bit shy. If an example would be provided, this would be clear from the beginning. The issue is, that galera cluster threats wsrep_sst_donor as text and tries to resolve literal IP address to network IP address, and this "IP-host" does not resolve.

    Use galera cluster node name to the value, like this:

    wsrep_sst_donor="db3,db2"
    

    Then it works ok:

    db4 mariadbd[17621]: ... 0 [Note] WSREP: Member 4.0 (db4) requested state transfer from 'db3,db2'. Selected 1.0 (db3)(SYNCED) as donor.
    db4 mariadbd[17621]: ... 0 [Note] WSREP: Shifting PRIMARY -> JOINER (TO: 1874846)