readme.md changes

This commit is contained in:
Tower committed 2026-05-28 20:06:50 +02:00
1 parent 6524fb3fbd
commit 25f115c279
1 file changed
+27 -26
+27 -26
View File
@@ -3,53 +3,54 @@
Dieses Setup ist für den Betrieb auf drei separaten Servern optimiert.
## Server-Struktur
- **Server 1:** 10.233.1.101 (Bootstrap)
- **Server 2:** 10.233.1.102 (Joiner)
- **Server 3:** 10.233.1.103 (Joiner)
- **Server 1:** 10.233.1.101 (Bootstrap-Knoten)
- **Server 2:** 10.233.1.102 (Cluster-Knoten)
- **Server 3:** 10.233.1.103 (Cluster-Knoten)
## Vorbereitung
1. Stelle sicher, dass auf allen Servern **Docker** installiert ist.
2. Die Firewall muss folgende Ports zwischen den Servern erlauben:
- `3306` (MySQL/MariaDB)
- `4567` (Galera Cluster)
- `4568` (IST)
- `4444` (SST)
- `4567` (Galera Cluster Kommunikation)
- `4568` (Incremental State Transfer - IST)
- `4444` (State Snapshot Transfer - SST)
## Installations-Ablauf
Kopiere das `docker/` Verzeichnis auf alle drei Server.
### 1. Auf Server 1 (10.233.1.101)
Kopiere das Verzeichnis `docker/mariadb/n1` auf diesen Server.
Initialisiere den Cluster (Bootstrap). Dieser Knoten wird der erste Master.
```bash
cd n1
# Cluster initialisieren
GALERA_BOOTSTRAP="--wsrep-new-cluster" docker compose up -d
bash docker/scripts/init_cluster_n1.sh
```
### 2. Auf Server 2 (10.233.1.102)
Kopiere das Verzeichnis `docker/mariadb/n2` auf diesen Server.
Tritt dem bestehenden Cluster bei.
```bash
cd n2
# Dem Cluster beitreten
docker compose up -d
bash docker/scripts/init_cluster_n2.sh
```
### 3. Auf Server 3 (10.233.1.103)
Kopiere das Verzeichnis `docker/mariadb/n3` auf diesen Server.
Tritt dem bestehenden Cluster bei.
```bash
cd n3
# Dem Cluster beitreten
docker compose up -d
bash docker/scripts/init_cluster_n3.sh
```
## Status prüfen
Führe auf einem beliebigen Server folgenden Befehl aus:
Nachdem alle Knoten gestartet sind, kannst du den Status mit dem bereitgestellten Skript prüfen:
```bash
docker exec -it mariadb mariadb -p"bBHofurUJWKzPE8Z" -e "SHOW STATUS LIKE 'wsrep_cluster_size';"
bash docker/scripts/check_nodes.sh
```
Die `wsrep_cluster_size` muss **3** sein.
Die Ausgabe sollte **`wsrep_cluster_size | 3`** anzeigen.
## Besonderheit: Network Mode Host
Die Container nutzen `network_mode: host`. Das bedeutet:
- Beste Performance (kein Docker-NAT-Overhead).
- MariaDB lauscht direkt auf der IP des Servers.
- Keine Port-Mappings in der `docker-compose.yml` nötig.
## Wichtige Hinweise
### Network Mode Host
Die Container nutzen `network_mode: host`. Das sorgt für maximale Performance, da kein Docker-Netzwerk-Overhead entsteht. MariaDB ist direkt über die IP des Host-Servers erreichbar.
### Neustart des Clusters
Falls der gesamte Cluster gestoppt wurde, muss der erste Knoten immer wieder mit dem `init_cluster_n1.sh` Skript (Bootstrap) gestartet werden, um den Cluster neu zu initialisieren. Die anderen Knoten können danach normal mit ihren jeweiligen Skripten beitreten.
### Verzeichnisstruktur
Die Skripte erwarten, dass die Verzeichnisstruktur (`docker/scripts/` und `docker/mariadb/n*/`) erhalten bleibt, da sie intern mit relativen Pfaden arbeiten.