ID #1351

How do I extend an OpenStack cluster with extra controller/network nodes?


How do I extend an OpenStack cluster with extra controller/network nodes?



You have installed OpenStack with one controller. Now you want to add two more controllers to expand the database cluster.

Adding one more controller/network to your OpenStack cluster can be done by following these steps:

  1. Decide on the nodes you want to use as controller/network nodes

  2. Make sure the interfaces are configured on the network nodes that you want to add

For example :

If you have a node001 with two interfaces -- one interface for the external OpenStack network, and the other interface for the internal network -- then make sure that you match the interfaces configuration on your new nodes.

Now, append both the  OpenStackControllers and OpenStackNetworkNodes configuration overlay to the new nodes:

[am-c-02-08-t-c7u2-1->configurationoverlay]% append openstackcontrollers nodes node002,node003

[am-c-02-08-t-c7u2-1->configurationoverlay*]% append openstacknetworknodes nodes node002,node003

[am-c-02-08-t-c7u2-1->configurationoverlay*]% commit

Make sure you restart both of your new nodes after you commit:

[am-c-02-08-t-c7u2-1->device]% reboot -n node002,node003

While you wait for your two nodes to be rebooted, log into your first controller/network node.

Then install xtradbackup,

on the controller/network node.

After installation,  execute the following :

On your head node :

#cat /root/.galerarc

#ssh controller-1

[root@node001 ~]# mkdir -p /cm/shared/apps/openstack/backup/

[root@node001 ~]# innobackupex --galera-info --user=root --password=password --socket=/var/lib/mysql/mysql.sock /cm/shared/apps/openstack/backup/

The previous command will create a backup directory under /cm/shared/apps/openstack/backup/

with a name derived from the date and time of the day.

[root@node001 ~]# innobackupex -apply-log --galera-info --user=root --password=2O1711H542KV24Kg --socket=/var/lib/mysql/mysql.sock /cm/shared/apps/openstack/backup/BACKUP DIRECTORY/

First we will add a file to this backup before we stream it to the new nodes

  1. [root@node001 2017-02-08_12-03-20]# cat xtrabackup_galera_info

  2. #touch grastate.dat

  3. #cat  xtrabackup_galera_info

  4. The content of xtrabackup_galera_info should be used to construct the content of grastate.dat, which should look like this:

# GALERA saved state

version: 2.1

uuid:    7c6112b1-ede7-11e6-9afb-fb7093d22da5

seqno: 6336

safe_to_bootstrap: 0

Notice that 6336 is the number after “:” in xtrabackup_galera_info

Now we need to copy this backup to /var/lib/mysql to both of your new nodes

#ssh node002

#cd /var/lib/mysql

# rm -rf *

#rsync -avzp --progress /cm/shared/apps/openstack/backup/2017-02-08_12-03-20/ .

#chown -R mysql.mysql /var/lib/mysql

Repeat the previous steps to also rsync it over to your third node

When done, go back to your head node and execute the following :

[root@am-c-02-08-t-c7u2-1 ~]# cmsh

[am-c-02-08-t-c7u2-1]% configurationoverlay

[am-c-02-08-t-c7u2-1->configurationoverlay]% append galeranodes nodes node002..node003

[am-c-02-08-t-c7u2-1->configurationoverlay*]% commit

To confirm the controllers are there, please log into any of your new controllers and execute the following :

[root@node001 ~]# mysql -uroot -ppassword

MariaDB [(none)]> show status like 'wsrep_cluster_size';

Your output should be :


| Variable_name      | Value |


| wsrep_cluster_size | 3     |


1 row in set (0.00 sec)

Tags: -

Related entries:

You cannot comment on this entry