Procedure for Percona XtraDB-Cluster 5.5 --> 5.7 and CentOS update

Hi

I have a 3-nodes Percona XtraDB-Cluster. Each node runs CentOS 6.6 and Percona XtraDB-Cluster v5.5. These are the installed Percona rpms:

Percona-Server-shared-compat-51-5.1.73-rel14.12.624.rhel6.x86_64
Percona-XtraDB-Cluster-galera-3-3.11-1.rhel6.x86_64
Percona-Server-shared-55-5.5.44-rel37.3.el6.x86_64
Percona-XtraDB-Cluster-client-55-5.5.41-25.11.853.el6.x86_64
Percona-XtraDB-Cluster-server-55-5.5.41-25.11.853.el6.x86_64

I’d like to update this cluster to CentOS 7 and to the latest (5.7) version of Percona XtraDB-Cluster.

In case I don’t want a service downtime, I think the procedure should be:

  • reinstall from scratch each node, one by one, with CentOS 7.x and Percona XtraDB-Cluster v5.5 (I assume there are no problems if the different nodes of the cluster run different operating systems)
  • Migrate Percona XtraDB-Cluster from v5.5 to v5.6
  • Migrate Percona XtraDB-Cluster from v5.6 to v5.7

Is this correct or are there better options ?

What about if instead I could afford some downtime ?

Thanks, Massimo

Hi,

Yes, it is not supported to upgrade by skipping one major version, so the steps look OK.
You should check also the documentation, as there are many small details that may hit you, as well as many significant differences between 5.5 and 5.7:
https://www.percona.com/doc/percona-xtradb-cluster/5.6/upgrading_guide_55_56.html
https://www.percona.com/doc/percona-xtradb-cluster/LATEST/howtos/upgrade_guide.html
and this blog post:
https://www.percona.com/blog/2014/05/08/rolling-upgrade-percona-xtradb-cluster-5-5-5-6/
where using async slave method is also mentioned, which may be useful.

You should also check the MySQL official upgrade notes, especially in terms of all the incompatible changes between these versions.

how about joining 5.6 new installation into existing 5.5 cluster?

  1. 3 x 5.5 + 1 x 5.6, so total four nodes, one is version 5.6, another three are 5.5
  2. once 5.6 in sync with 5.5, switch off outside access with all 5.5 nodes (maybe disable it on load balancer), 4 nodes still synchronize but only 5.6 could have write access
  3. Keep adding 5.6 nodes until total 3 x 5.6 nodes is synchronize with all databases
  4. shutdown all 5.5 nodes, leave only 5.6 running
  5. Cycle continue for 5.6 -> 5.7

Any flaws behind these steps?