Galera Cluster

juju deploy galera-cluster

14.04 LTS

Discuss this charm

Share your thoughts on this charm with the community on discourse.

Join the discussion

Overview

Galera Cluster is a high availability and high scalability solution for MySQL clustering. Galera Cluster integrates MySQL with the Galera library of MySQL high availability solutions in a single product package which enables you to create a cost-effective MySQL cluster.

This charm deploys Galera Cluster onto Ubuntu.

Usage

WARNING: Its critical that you follow the bootstrap process detailed in this document in order to end up with a running Active/Active Galera Cluster.

Configuration

The following configuration parameters are required:

  • root-password - Due to the multi-master nature of Galera Cluster, the root-password needs to be specified in advance so that all nodes have the same root password.

  • sst-password - This password is used as a shared secret between nodes when performing whole-database transfers between nodes during node deployment.

Proxy Configuration

If you are deploying this charm on MAAS or in an environment without direct access to the internet, you will need to allow access to releases.galeracluster.com as the charm installs packages directly from the Galera repositories. If you are using squid-deb-proxy, follow the steps below:

echo "releases.galeracluster.com" | sudo tee /etc/squid-deb-proxy/mirror-dstdomain.acl.d/40-galera
sudo service squid-deb-proxy restart

Deployment

The first service unit deployed acts as the seed node for the rest of the cluster; in order for the cluster to function correctly, the same MySQL passwords must be used across all nodes:

cat > galera.yaml << EOF
galera-cluster:
    root-password: my-root-password
    sst-password: my-sst-password
EOF

Once you have created this file, you can deploy the first seed unit:

juju deploy --config galera.yaml cs:~codership/galera-cluster

Once this node is full operational, you can add extra units one at a time to the deployment:

juju add-unit galera-cluster

A minimum cluster size of three units is recommended.

In order to access the cluster, you can use the hacluster charm in multicast-capable deployments to provide a single IP address:

juju set galera-cluster vip=10.0.3.200
juju deploy hacluster
juju add-relation hacluster galera-cluster

Clients can then access using the vip provided. This vip will be passed to related services:

juju add-relation keystone galera-cluster

Limitations

Note that Galera Cluster is not a 'scale-out' MySQL solution; reads and writes are channeled through a single service unit and synchronously replicated to other nodes in the cluster; reads/writes are as slow as the slowest node you have in your deployment.