In diesen Schritt werden zwei weitere Server als Loadbalancer für den Galera Cluster eingerichtet. Alle Anfragen der Nextcloud-Server gehen an die virtuelle IP der Loadbalancer.
Folgende Topologie wird installiert:

Auch hier wurde “platt” ein Oracle Linux 8.6 auf einer 20 GB Festplatte installiert.
Vom Clustercontroller müssen jetzt die SSH-Keys vom root User auf die Systeme kopiert werden.
1
2
[root@clumgm ~]# ssh-copy-id -i ~/.ssh/id_rsa 172.23.242.21
[root@clumgm ~]# ssh-copy-id -i ~/.ssh/id_rsa 172.23.242.22
Das Passwort vom root User der anderen Systeme einmal eingeben, anschließend sollte der Zugriff ohne Passwortabfrage funktionieren.
Es wird der Galera Cluster ausgewählt. Dann wird “Manage -> Load Balancer” ausgewählt. Achtung: Der Controller wird direkt nach einer Lizenz fragen. Bei Auswahl von HAProxy wird jedoch keine Lizenz benötigt. Die HAProxies werden jeweils einzelnd eingerichtet.

Der Port 3307 ist der virtuelle Datenbankserver Port. Dieser muss von den Nextcloud Servern verwendet werden.

Es werden alle Galera Server ausgewählt und auf “Deploy HAProxy” geklickt. Diese Schritte werden für den zweiten Loadbalancer wiederholt.
Damit wurde das Setup um zwei HAProxy erweitert.

Der Zugang zur Statusseite von HAProxy sollte noch angepasst werden, hierzu auf “Manage -> Configurations” klicken und die haproxy.cfg auswählen, unter userlist die Passwörter ändern.
Auf Save klicken, die Schritte für den zweiten HAProxy ebenfalls durchführen und die Server der Reihe nach rebooten.
Jetzt wird keepalived über den Controller ausgerollt, damit alle Clients nur eine IP-Adresse ansprechen können.
Es wird auf “Manage -> Load Balancer -> Keepalived” geklickt, beide HAProxy Server ausgewählt, als Interface die entsprechende Netzwerkkarte eingetragen und als virtuelle IP die 172.23.242.20. Anschließend wird auf Deploy Keepalived geklickt.
Anschließend sollte die IP 172.23.242.20 pingbar sein und die Datenbank Schicht ist fertig eingerichtet.
1
2
3
4
[root@dblb01 ~]# ping -c 2 172.23.242.20
PING 172.23.242.20 (172.23.242.20) 56(84) bytes of data.
64 bytes from 172.23.242.20: icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from 172.23.242.20: icmp_seq=2 ttl=64 time=0.031 ms