Der Galera Cluster läuft sowohl auf physischen Maschinen als auch auf virtuellen Systemen einwandfrei. Das empfohlene Setup besteht aus drei Knoten. Dementsprechend kann der Admin, der den Cluster einmal testen möchte, auf der Virtualisierungslösung seiner Wahl drei Linux-Knoten hochfahren. Im Idealfall gibt es pro Knoten zwei Interfaces: Eines für die Inter-Knoten-Kommunikation und eines für Kommunikation mit den Applikationen. Das folgende Beispiel verwendet CentOS 6.2 auf dem aktuellsten Stand.
Zunächst sollte der Installateur sicherstellen, dass er alle Knoten im Cluster sieht. Im folgenden Setup werden folgende IP-Adressen verwendet ( Tabelle 1 ).
Tabelle 1
Ip-Adressen
Knoten |
internes Interface |
externes Interface |
---|---|---|
node1 |
192.168.56.101 (eth1) |
10.0.2.1 (eth0) |
node2 |
192.168.56.102 (eth1) |
10.0.2.2 (eth0) |
node3 |
192.168.56.103 (eth1) |
10.0.2.3 (eth0) |
Von Knoten
»node1
«
wird die Netzwerkverbindung auf die andern beiden Knoten getestet:
node1> ping 192.168.56.102 -I eth1 node1> ping 192.168.56.103 -I eth1
Und dasselbe anschließend in umgekehrter Richtung.
Um Konflikte zu vermeiden, empfiehlt es sich, eventuell installierte MySQL-5.1-Pakete vorher zu entfernen:
rpm -e mysql-libs-5.1.61-1.el6_2.1.x86_64
Anschließend müssen die entsprechenden MySQL 5.5 Pakete [2] wieder installiert werden:
rpm -i MySQL-shared-compat-5.5.22-2.el6.x86_64.rpm rpm -i MySQL-client-5.5.22-1.el6.x86_64.rpm
Folgendes Paket ist auf CentOS 6 zusätzlich erforderlich:
yum install openssl098e.x86_64
Dann gilt es, die Galera-Binaries zu organisieren. Am besten geht das über die Codership Website [1] . Man braucht sowohl die gepatchten MySQL-Binaries als auch das Galera-Replication-Plugin:
wget https://launchpad.net/codership-mysql/5.5/5.5.20-23.4/+download/MySQL-server-5.5.20_wsrep_23.4-1.rhel5.x86_64.rpm wget https://launchpad.net/galera/2.x/23.2.0/+download/galera-23.2.0-1.rhel5.x86_64.rpm rpm -i MySQL-server-5.5.20_wsrep_23.4-1.rhel5.x86_64.rpm rpm -i galera-23.2.0-1.rhel5.x86_64.rpm
Anschließend lässt sich MySQL bereits starten. So geht der Admin sicher, dass die Datenbank läuft:
/etc/init.d/mysql start Starting MySQL.. SUCCESS!
Natürlich ist der Galera Cluster jetzt noch nicht einsatzbereit. Zumindest läuft aber MySQL auf allen Knoten ( Listing 1 ).
Listing 1
MySQL läuft
Der folgende Befehl zeigt, dass die Galera-Replikation noch nicht bereit ist ( Listing 2 ).
Listing 2
Keine Replikation
Jeder Knoten, der dem Cluster beitreten will, muss den initialen Datenbestand des Clusters übernehmen. Dieser Vorgang wird als State Snapshop Transfer (SST) bezeichnet. Für diesen SST wird ein User benötigt. Dabei benutzt man ungern den MySQL-User
»root
«
, also muss man sich einen eigenen User auf allen drei Knoten anlegen:
GRANT ALL PRIVILEGES ON *.* TO 'sst'@'localhost' IDENTIFIED BY 'secret'; GRANT ALL PRIVILEGES ON *.* TO 'sst'@'%' IDENTIFIED BY 'secret';