Erstellen Sie einen ausfallsicheren Nextcloud-Cluster mit Galera

Erstellen Sie zuerst den Datenbankcluster und platzieren Sie anschließend mehrere identische Nextcloud-Anwendungsknoten hinter einem Load Balancer mit Integritätsprüfung. Für eine stabile Umgebung müssen alle Anwendungsknoten denselben persistenten Dateispeicher, dieselbe Konfiguration, denselben Redis- oder Valkey-Sperrdienst und denselben Datenbankendpunkt verwenden, der Schreibvorgänge ausschließlich an fehlerfreie Galera-Mitglieder weiterleitet. Das aktuelle Nextcloud-Administrationshandbuch führt MariaDB als unterstützte Datenbank auf, veröffentlicht jedoch keine Galera-spezifische Bereitstellungsanleitung. Überprüfen Sie daher vor dem Produktiveinsatz Ihre genauen Versionen von Nextcloud, MariaDB, Galera und Proxy bei den jeweiligen Anbietern.

Stand 9. Oktober 2026 listet die Seite mit den Systemanforderungen für Nextcloud 35 die MariaDB-Versionen 10.11, 11.4, 11.8 und 12.3 auf, wobei Version 12.3 als empfohlen gekennzeichnet ist. Diese Liste enthält die unterstützten Nextcloud-Datenbankversionen und garantiert nicht, dass jede Galera- oder Proxy-Kombination zertifiziert ist. Orientieren Sie sich daher an den Systemanforderungen für Nextcloud 35 und der Galera-Unterstützungsmatrix Ihrer MariaDB-Distribution.

1. Definieren Sie die Versagensgrenzen

Ein Hochverfügbarkeitscluster besteht aus mehr als nur einer replizierten Datenbank. Galera schützt die Datenbankebene; es repliziert weder Nextcloud-Benutzerdateien, PHP-Sitzungen, Redis-Sperren noch Anwendungscode. Eine einzelne gemeinsam genutzte Datenbank kann auch einen fehlgeschlagenen Speicherzugriff oder einen Load Balancer, der weiterhin Datenverkehr an einen defekten Anwendungsknoten sendet, nicht kompensieren.

Planen Sie diese Komponenten vor der Installation ein:

  • Mindestens zwei App-Server, auf denen dieselbe Nextcloud-Version, PHP-Version, aktivierte Apps und Webkonfiguration laufen.
  • Ein Load Balancer oder Reverse-Proxy mit einem stabilen öffentlichen Hostnamen, HTTPS und Integritätsprüfungen für die Anwendungsserver.
  • Gemeinsamer, dauerhafter Nextcloud-Datenspeicher, der auf jedem Anwendungsserver unter demselben Pfad und mit den korrekten Berechtigungen sichtbar ist. Das Nextcloud-Datenverzeichnis sollte während der Installation festgelegt werden; die Installationsanleitung weist darauf hin, dass ein späteres Verschieben schwierig ist.
  • Ein Galera-Cluster mit einer ungeraden Anzahl von Voting-Datenbankknoten, typischerweise drei, die so angeordnet sind, dass der Ausfall eines Hosts nicht die Mehrheit der Knoten entfernt.
  • Ein gemeinsam genutzter Redis- oder Valkey-Dienst für verteiltes Caching und transaktionale Dateisperren.

Wählen Sie Speicher- und Netzwerkarchitekturen mit eigener Redundanz und getesteter Wiederherstellung. Ein gemeinsam genutzter Pfad ist nicht automatisch hochverfügbar, nur weil mehrere Webserver ihn einbinden können.

2. Installieren und validieren Sie zuerst MariaDB Galera.

Wählen Sie eine MariaDB-Version, die den aktuellen Nextcloud-Anforderungen entspricht, und ein passendes Galera-Paket, das von Ihrem MariaDB-Anbieter unterstützt wird. Befolgen Sie die Dokumentation zur MariaDB-Galera-Bereitstellung hinsichtlich Knotenkonfiguration, Netzwerkports, Status-Snapshot-Übertragung, TLS und Initialisierung. Starten Sie nicht jeden leeren Knoten als neuen Cluster; initialisieren Sie zunächst einen Knoten und fügen Sie die anderen diesem Cluster hinzu.

Nextcloud benötigt InnoDB und die READ-COMMITTEDTransaktionsisolationsstufe für MySQL oder MariaDB. Die aktuelle Nextcloud-Datenbankseite empfiehlt außerdem zeilenbasiertes Binärlogging. Überprüfen Sie die Werte auf jedem Datenbankknoten, nicht nur auf dem, der aktuell Datenverkehr empfängt. Siehe die Konfigurationsanforderungen für MariaDB in Nextcloud .

SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';Bevor Sie Nextcloud verbinden, überprüfen Sie den Clusterstatus auf jedem Knoten. Führen Sie beispielsweise die Befehle `cluster status` und `cluster status` SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';aus. Der Cluster sollte eine PrimaryKomponente, die erwartete Clustergröße und die Knoten im SyncedStatus „Clusterstatus“ melden. MariaDB erklärt, dass für ein Quorum mehr als die Hälfte der zuletzt bekannten Clustermitglieder erforderlich ist; ein Cluster mit drei Knoten kann daher den Ausfall eines Knotens tolerieren, nicht aber den von zweien. Beachten Sie die Hinweise zu Quorum und Wiederherstellung in MariaDB .

3. Geben Sie Nextcloud einen datenbankintegrierten Endpunkt, der den Zustand überwacht.

Konfigurieren Sie Nextcloud so, dass es sich mit einer stabilen Datenbank-Proxy-Adresse verbindet, nicht mit einer Liste von Galera-IP-Adressen, die nach dem Round-Robin-Prinzip sortiert ist. Obwohl Galera Schreibvorgänge im gesamten Cluster repliziert, benötigen Anwendungen dennoch eine vorhersehbare Transaktionsverarbeitung. Ein Proxy, der die Galera-Mitgliedschaft überwacht, kann das Routing zu nicht verfügbaren oder nicht synchronisierten Knoten stoppen und einen Schreibknoten auswählen. Der Galera Monitor von MariaDB MaxScale ist eine dokumentierte Option; sein genaues Verhalten und die unterstützten Routing-Modi hängen von der MaxScale-Version und -Konfiguration ab.

Verwenden Sie den dokumentierten Verbindungsendpunkt des Proxys als Nextcloud-Endpunkt dbhost. Erstellen Sie separate Konten mit minimalen Berechtigungen für Monitoring und Anwendungszugriff, schützen Sie Zugangsdaten und verschlüsseln Sie den Datenbankverkehr, wenn er ein nicht vertrauenswürdiges Netzwerk durchläuft. Vermeiden Sie die Aktivierung der Lese-/Schreibaufteilung als vermeintliche Leistungsoptimierung: Die Replikationsfunktion von Nextcloud sendet Lesevorgänge an Replikate, während Schreibvorgänge und kausale Lesevorgänge über die Standardverbindung laufen. Galera ist jedoch keine gewöhnliche asynchrone Replikationsarchitektur. Verwenden Sie ein Routing-Design, das speziell für Ihre Systemarchitektur getestet wurde.

4. Stellen Sie sicher, dass jeder App-Knoten dieselbe Nextcloud-Instanz sieht.

Installieren Sie auf jedem Anwendungsserver denselben Nextcloud-Code und dasselbe App-Set. Stellen Sie sicher, dass die Konfiguration jedes Knotens config.phpfür die gemeinsam genutzte Instanz konsistent ist, einschließlich Datenbank-Endpunkt, geheimer Werte, vertrauenswürdiger Domänen und Datenverzeichnispfad. Führen Sie ein Upgrade nicht unabhängig auf mehreren Knoten durch. Erstellen Sie zuerst ein Backup, versetzen Sie die Instanz in den Wartungsmodus, führen Sie das Upgrade über einen kontrollierten Pfad durch und stellen Sie den Datenverkehr erst wieder her, wenn auf allen Knoten dieselbe Version ausgeführt wird.

Konfigurieren Sie alle Anwendungsknoten so, dass sie denselben Redis- oder Valkey-Dienst für verteiltes Caching und Sperren verwenden. Ein lokaler Cache wie APCu kann knotenlokal bleiben, muss aber memcache.distributedauf memcache.lockingeinen gemeinsamen Dienst verweisen, nicht auf den jeweiligen Server localhost. Beispielsweise kann Nextcloud für seine Redis-Konfiguration 'memcache.locking' => '\OC\Memcache\Redis'einen gemeinsam genutzten Redis-Host verwenden redis. Beachten Sie die aktuelle Anleitung zur Cache-Konfiguration und die Anleitung zur transaktionalen Dateisperrung . Memcached ist für transaktionale Dateisperren in Nextcloud nicht geeignet.

Wenn Sie PHP-Sessions ebenfalls in Redis zentralisieren, behandeln Sie dies als separate PHP-Konfigurationsaufgabe. Das Nextcloud-Handbuch weist darauf hin, dass die Session-Sperre für den Redis-Session-Handler nicht standardmäßig aktiviert ist. Wenden Sie daher die Sperreinstellungen an und testen Sie das Session-Verhalten, bevor Sie sich darauf verlassen. Verwechseln Sie nicht Datenbankreplikation oder Dateisperrung mit Session-Kontinuität.

5. Testen Sie den Failover, bevor Sie die Hochverfügbarkeit deklarieren.

Prüfen Sie zunächst die normale Nutzung über den öffentlichen Hostnamen: Melden Sie sich an, laden Sie eine Testdatei hoch und herunter und prüfen Sie, ob die Anwendung sichtbar ist, nachdem eine Anfrage einen anderen Anwendungsknoten erreicht hat. Leeren Sie anschließend einen Webknoten und prüfen Sie, ob Anfragen über den anderen Knoten weiterhin möglich sind. Stellen Sie den Knoten wieder her und prüfen Sie, ob er sich wieder verbindet, ohne eine veraltete Code- oder Konfigurationsversion auszuliefern.

Simulieren Sie anschließend mithilfe eines Wartungsfensters den Ausfall eines Datenbankknotens gemäß dem Runbook Ihres Anbieters. Stellen Sie sicher, dass der Proxy das ausgefallene oder nicht synchronisierte Mitglied entfernt, Nextcloud weiterhin Lese- und Schreibzugriffe durchführen kann und der zurückkehrende Knoten Syncedvor der Annahme von Datenverkehr erreichbar ist. Überwachen Sie den Status des Galera-Primärsystems, die Clustergröße, die Knotensynchronisierung, den Proxy-Status, Anwendungsfehler und den Status der Speichereinbindung.

Ein Quorumverlust ist ein Sicherheitsstopp, kein Beweis für Datenverlust. Führen Sie keinen erzwungenen Neustart mehrerer Knoten durch und wählen Sie keinen Knoten willkürlich aus. Laut MariaDB-Wiederherstellungsleitfaden sollten Sie den fortschrittlichsten Knoten identifizieren, nur diesen neu starten und anschließend die anderen wieder hinzufügen. Stellen Sie sicher, dass Sie auch Datenbank- und Dateispeichersicherungen getestet haben; die Galera-Replikation spiegelt Datenbankänderungen wider und ersetzt keine Point-in-Time-Backups.

Überprüfen Sie das Ergebnis

Die Konfiguration ist erst dann produktionsreif, wenn ein Anwendungsknoten und ein Datenbankknoten ohne Beeinträchtigung des normalen Dateibetriebs entfernt werden können, alle verbleibenden Galera-Knoten in einer primären Komponente verbleiben und der gemeinsame Dateispeicher sowie der Redis- oder Valkey-Dienst erreichbar bleiben. Schlägt ein Test fehl, ermitteln Sie, welche Ebene die Anfrage nicht mehr bearbeitet, bevor Sie Timeout- oder Wiederholungseinstellungen ändern. Das Nextcloud-Handbuch dokumentiert die unterstützten Datenbank- und Anwendungseinstellungen. Die Kompatibilitätsmatrix des Anbieters und Ihre Failover-Tests zeigen, ob diese spezielle Galera-Bereitstellung unterstützt wird.

Einen Kommentar hinterlassen

CPU-Spitzen in der Nextcloud-Vorschau durch eine geplante Warteschlange zähmen

Verlagern Sie die Bearbeitung von Miniaturansichten auf einen kontrollierten Hintergrundzeitplan, reduzieren Sie ungenutzte Vorschaubildgrößen und überprüfen Sie die Warteschlange, ohne Ihren Nextcloud-Server zu überlasten.

Nextcloud Desktop Sync: Schritte nach dem Vorgang „Dateien werden verarbeitet“

Ermitteln Sie die Datei, die Ausschlussregel, das Verbindungsproblem oder den Clientdatenbankstatus, der die Nextcloud-Synchronisierung blockiert, und überprüfen Sie anschließend, ob Uploads und Downloads sicher durchgeführt werden können.

Beheben Sie die Nextcloud OPcache-Warnung, indem Sie den richtigen Grenzwert anpassen.

Ermitteln Sie das PHP OPcache-Limit, das die Nextcloud-Warnung auslöst, aktualisieren Sie die entsprechende Web-PHP-Konfiguration, starten Sie Nextcloud sicher neu und überprüfen Sie das Ergebnis.

Nextcloud mit CODE Docker verbinden: Einrichtung und Abwägungen

Nextcloud mit CODE Docker verbinden: Einrichtung und Abwägungen

Vergleichen Sie integrierten und Docker-basierten CODE und verbinden Sie dann Collabora Online über einen sicheren HTTPS-Reverse-Proxy mit Nextcloud.

Erstellen Sie einen ausfallsicheren Nextcloud-Cluster mit Galera

Planen Sie eine zuverlässige Nextcloud HA-Bereitstellung mit gemeinsam genutztem Speicher, Redis-Sperren, Quorum-fähigem MariaDB-Routing und praktischen Failover-Prüfungen.

Nextcloud Talk-Anrufe auch bei Ausfall von Direct Media möglich

Nextcloud Talk-Anrufe auch bei Ausfall von Direct Media möglich

Konfigurieren und überprüfen Sie ein erreichbares TURN-Relay für Nextcloud Talk, wenn Firewalls oder restriktive NAT-Regeln direkte Anrufmedien blockieren.

Nextcloud-Integritätswarnungen durch Wiederherstellung der richtigen Dateien beseitigen

Mithilfe des Berichts über ungültige Dateien können Sie geänderten, fehlenden oder zusätzlichen Nextcloud-Code identifizieren, vertrauenswürdige Dateien sicher wiederherstellen und das Ergebnis überprüfen.

Verbinden Sie Gmail oder Microsoft 365 mit Nextcloud Mail mithilfe von OAuth2

Richten Sie OAuth2 für Nextcloud Mail mit Gmail oder Microsoft 365 ein, überprüfen Sie den Empfang und Versand und beheben Sie häufige Zustimmungs- und SMTP-Fehler.

Sicheres Beheben des Nextcloud-Wartungsmodus mit OCC

Sicheres Beheben des Nextcloud-Wartungsmodus mit OCC

Verwenden Sie OCC, um den Nextcloud-Zugriff wiederherzustellen, den Status der Datenbankmigration zu überprüfen und den richtigen Befehl für Archiv-, Docker- oder Snap-Installationen auszuwählen.

Nextcloud LDAP- und Active Directory-Anmeldung einrichten

Verbinden Sie Nextcloud mit LDAP oder Active Directory, beschränken Sie den Zugriff mit Benutzer- und Gruppenfiltern und überprüfen Sie die sichere Authentifizierung vor der Einführung.