Zum Hauptinhalt springen
Eine Multi-Root-Einrichtung ermöglicht es dir, Minecraft-Server über mehrere physische oder virtuelle Maschinen zu betreiben, die alle von einem einzigen SimpleCloud-Controller verwaltet werden. Diese Anleitung behandelt das Hinzufügen von Serverhosts und die Synchronisierung von Dateien zwischen ihnen.

Voraussetzungen

  • Ein bestehendes SimpleCloud-Netzwerk mit mindestens einem Serverhost
  • Zusätzliche Maschinen, auf denen Serverhosts ausgeführt werden sollen
  • Root- oder sudo-Zugriff auf jeder Maschine

Teil 1: Serverhosts hinzufügen

SimpleCloud auf jeder Maschine installieren

Installiere auf jeder Maschine, die einen Serverhost ausführen soll, die SimpleCloud CLI:
/bin/bash -c "$(curl -fsSL https://get.simplecloud.app)"

Serverhost zum Netzwerk hinzufügen

Verwende die CLI, um einen neuen Serverhost zu deinem bestehenden Netzwerk hinzuzufügen:
sc serverhost add
Die CLI wird dich auffordern:
  1. Wähle dein Netzwerk - Wähle das Netzwerk, das dein Controller verwaltet
  2. Authentifizierung - Melde dich mit deinem SimpleCloud-Konto an
  3. Konfiguriere den Serverhost - Lege Portbereiche und andere Optionen fest
Jeder Serverhost benötigt eine eindeutige Identität. Die CLI generiert automatisch Anmeldedaten und speichert sie im Verzeichnis secrets/.

Verbindung überprüfen

Überprüfe nach dem Hinzufügen, ob die lokale Serverhost-Komponente läuft:
sc status serverhost
Der neue Serverhost sollte außerdem im Dashboard erscheinen, sobald er mit dem Controller verbunden ist.

Teil 2: Dateien synchronisieren

Bei mehreren Serverhosts musst du Templates und Workflows synchron halten. Wir empfehlen die Verwendung von Syncthing für die automatische Dateisynchronisierung.

Was synchronisiert werden soll

VerzeichnisZweckSync?
templates/Server-Templates, Plugins, ConfigsJa
workflows/Workflow-DefinitionenJa
options/Konfigurator-EinstellungenJa
secrets/Netzwerk-AnmeldedatenNein - eindeutig pro Host
running/Aktive Server-InstanzenNein - nur lokal
logs/Serverhost-LogsNein - nur lokal
Synchronisiere niemals das Verzeichnis secrets/. Jeder Serverhost benötigt seine eigenen eindeutigen Identitäts-Anmeldedaten.

Dein SimpleCloud-Verzeichnis finden

Der Installationspfad ist benutzerkonfigurierbar. Dein Serverhost-Verzeichnis enthält:
simplecloud
templates
Dies synchronisieren
workflows
Dies synchronisieren
running

Sync auf dem primären Serverhost initialisieren

Führe dies auf dem Serverhost aus, der als primärer Sync-Host dienen soll:
sc sync init --name serverhost-1
Die CLI bereitet die verwalteten Verzeichnisse vor, ignoriert templates/cache/, konfiguriert Syncthing für templates/, workflows/ und options/, speichert die Ordner-IDs in .simplecloud-sync.json und gibt einen sc sync join ...-Befehl für den nächsten Serverhost aus.
Wenn du SimpleCloud als root ausführst, füge --as-root hinzu, damit die CLI syncthing@root.service verwendet.

Von einem weiteren Serverhost beitreten

Führe auf dem neuen Serverhost den sc sync join ...-Befehl aus, den sc sync init oder sc sync add ausgegeben hat.
sc sync join \
  --primary-device-id PRIMARY_DEVICE_ID \
  --primary-name serverhost-1 \
  --templates-id TEMPLATES_FOLDER_ID \
  --workflows-id WORKFLOWS_FOLDER_ID \
  --options-id OPTIONS_FOLDER_ID \
  --name serverhost-2
Nach Abschluss gibt der Join-Befehl einen sc sync approve ...-Befehl aus.

Beitretenden Serverhost genehmigen

Führe den ausgegebenen Approve-Befehl auf dem primären Serverhost aus:
sc sync approve --device-id JOINING_DEVICE_ID --name serverhost-2
Für weitere Serverhosts erzeugst du später auf dem primären Serverhost einen neuen Join-Befehl:
sc sync add --join-name serverhost-3
Prüfe den Synchronisierungsstatus auf einem beliebigen Host:
sc sync status

Synchronisierung überprüfen

Teste, ob die Synchronisierung funktioniert:
# Auf Serverhost 1
echo "sync test" > $CLOUD_DIR/templates/sync-test.txt

# Warte ein paar Sekunden, dann prüfe auf Serverhost 2
cat $CLOUD_DIR/templates/sync-test.txt

# Aufräumen
rm $CLOUD_DIR/templates/sync-test.txt

Best Practices

Server-Verteilung

Konfiguriere Gruppen, um festzulegen, welche Serverhosts sie ausführen können:
StrategieAnwendungsfall
Beliebiger HostLastverteilung über alle Maschinen
Spezifische HostsDedizierte Hardware für ressourcenintensive Server
GeografischSpieler verbinden sich mit dem nächstgelegenen Serverhost

Dateisynchronisierungs-Einstellungen

EinstellungEmpfohlenGrund
OrdnertypSenden & EmpfangenErlaubt Änderungen von jedem Serverhost
DateiversionierungEinfachBehält Backup-Kopien
Berechtigungen ignorierenAktiviertVermeidet Berechtigungskonflikte

Cache von der Synchronisierung ausschließen

Der Ordner templates/cache/ enthält lokal generierte Dateien. Erwäge, ihn von der Synchronisierung auszuschließen, um unnötige Übertragungen zu vermeiden.

Fehlerbehebung

Symptom: Nach sc serverhost add wird der Host nicht angezeigt.Lösungen:
  1. Überprüfe, ob der Serverhost läuft: sc status serverhost
  2. Überprüfe die Netzwerkverbindung zum Controller
  3. Überprüfe, ob Anmeldedaten im Verzeichnis secrets/ vorhanden sind
  4. Überprüfe die Serverhost-Logs: sc logs serverhost
Symptom: Geräte werden als “Getrennt” angezeigt.Lösungen:
  1. Stelle sicher, dass die Firewall Port 22000 TCP und UDP erlaubt
  2. Führe sc sync status auf jedem Host aus
  3. Prüfe, ob der sc sync approve ...-Befehl auf dem primären Host ausgeführt wurde
  4. Wenn du als root arbeitest, verwende --as-root bei jedem sc sync-Befehl
Symptom: Template-Änderungen erscheinen nicht auf anderen Serverhosts.Lösungen:
  1. Führe sc sync status aus und prüfe, ob templates, workflows und options konfiguriert sind
  2. Prüfe, ob die Ordner-IDs in .simplecloud-sync.json auf allen Hosts übereinstimmen
  3. Bestätige, dass der beitretende Host mit sc sync approve genehmigt wurde
  4. Prüfe die von sc sync status gemeldeten Syncthing-Verbindungsfehler
Symptom: Server starten auf unerwarteten Serverhosts.Lösungen:
  1. Überprüfe die Gruppenkonfiguration für Host-Beschränkungen
  2. Überprüfe, ob alle Serverhosts die erforderlichen Templates synchronisiert haben
  3. Überprüfe die Serverhost-Verfügbarkeit im Dashboard
Symptom: Dateien mit .sync-conflict im Namen erscheinen.Ursache: Dieselbe Datei wurde gleichzeitig auf mehreren Hosts geändert.Lösungen:
  1. Überprüfe Konfliktdateien und wähle die richtige Version
  2. Vermeide es, dieselbe Datei gleichzeitig auf mehreren Hosts zu bearbeiten
  3. Bestimme einen Host als “primär” für die Template-Bearbeitung

Verwandte Themen