Bouw een robuust Nextcloud-cluster met Galera

Bouw eerst het databasecluster en plaats vervolgens meerdere identieke Nextcloud-applicatieknooppunten achter een load balancer met health checks. Voor een stabiele configuratie moeten alle applicatieknooppunten dezelfde duurzame bestandsopslag, configuratie, Redis- of Valkey-vergrendelingsservice en een database-eindpunt gebruiken dat schrijfbewerkingen alleen naar een gezond Galera-lid routeert. De huidige beheerdershandleiding van Nextcloud vermeldt MariaDB als een ondersteunde database, maar publiceert geen Galera-specifieke implementatiehandleiding; controleer uw exacte Nextcloud-, MariaDB-, Galera- en proxyversies bij de leveranciers voordat u de applicatie in productie neemt.

Op 9 oktober 2026 vermeldt de pagina met systeemvereisten voor Nextcloud 35 MariaDB 10.11, 11.4, 11.8 en 12.3, waarbij 12.3 als aanbevolen wordt aangemerkt. Dit is een lijst met Nextcloud-databaseversies, geen garantie dat elke Galera- of proxycombinatie gecertificeerd is. Begin met de systeemvereisten voor Nextcloud 35 en de Galera-ondersteuningsmatrix van uw MariaDB-distributie.

1. Definieer de faalgrenzen

Een high-availability cluster heeft meer dan alleen een gerepliceerde database. Galera beschermt de databaselaag; het repliceert niet de gebruikersbestanden, PHP-sessies, Redis-vergrendelingen of applicatiecode van Nextcloud. Een enkele gedeelde database kan ook niet compenseren voor een mislukte opslagkoppeling of een load balancer die verkeer blijft doorsturen naar een defecte applicatie-node.

Plan deze onderdelen voordat u ze installeert:

  • Minimaal twee applicatieservers die dezelfde Nextcloud-release, PHP-versie, ingeschakelde apps en webconfiguratie draaien.
  • Een load balancer of reverse proxy met een stabiele publieke hostnaam, HTTPS en health checks voor de applicatieservers.
  • Gedeelde, duurzame Nextcloud-gegevensopslag die op elke applicatieserver op hetzelfde pad en met de juiste machtigingen zichtbaar is. De Nextcloud-gegevensmap moet tijdens de installatie worden ingesteld; in de installatiehandleiding wordt gewaarschuwd dat het later verplaatsen ervan lastig is.
  • Een Galera-cluster met een oneven aantal stemdatabaseknooppunten, doorgaans drie, zo geplaatst dat het uitvallen van één host de meerderheid niet uitschakelt.
  • Een gedeelde Redis- of Valkey-service voor gedistribueerde caching en transactionele bestandsvergrendelingen.

Kies voor opslag- en netwerkontwerpen met eigen redundantie en geteste herstelmogelijkheden. Een gedeeld pad is niet automatisch zeer beschikbaar, alleen omdat meerdere webservers er verbinding mee kunnen maken.

2. Installeer en valideer eerst MariaDB Galera.

Kies een MariaDB-release die voldoet aan de huidige vereisten van Nextcloud en een bijbehorend Galera-pakket dat wordt ondersteund door uw MariaDB-leverancier. Volg de MariaDB Galera-implementatiedocumentatie voor nodeconfiguratie, netwerkpoorten, overdracht van statussnapshots, TLS en de initiële bootstrap. Start niet elke lege node als een nieuw cluster; bootstrap één node en voeg vervolgens de andere nodes toe aan dat cluster.

Nextcloud vereist InnoDB en het READ-COMMITTEDtransactie-isolatieniveau voor MySQL of MariaDB. De huidige Nextcloud-databasepagina raadt ook binaire logging op rijen aan. Controleer de waarden op elke databasenode, niet alleen op de node die momenteel verkeer ontvangt. Zie de configuratievereisten voor MariaDB van Nextcloud .

Voordat u Nextcloud verbindt, controleert u de clusterstatus op elk knooppunt. Voer bijvoorbeeld de commando's `cluster_status` SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';en `cluster_status` uit SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';. Het cluster zou een Primarycomponent, de verwachte clustergrootte en de Syncedstatus van de knooppunten moeten rapporteren. MariaDB legt uit dat een quorum meer dan de helft van het laatst bekende aantal leden van het cluster vereist; een cluster met drie knooppunten kan daarom één knooppuntverlies tolereren, maar niet twee. Raadpleeg de richtlijnen voor quorum en herstel .

3. Geef Nextcloud een database-eindpunt dat rekening houdt met de status van de database.

Configureer Nextcloud om verbinding te maken met een stabiel databaseproxyadres, en niet met een round-robinlijst van Galera IP-adressen. Hoewel Galera schrijfbewerkingen over het cluster repliceert, hebben applicaties nog steeds voorspelbare transactieverwerking nodig. Een proxy die het Galera-lidmaatschap bewaakt, kan voorkomen dat er naar knooppunten wordt gerouteerd die niet beschikbaar of niet gesynchroniseerd zijn en in plaats daarvan een schrijfknooppunt selecteren. De Galera Monitor van MariaDB MaxScale is een gedocumenteerde optie; het exacte gedrag en de ondersteunde routeringsmodi zijn afhankelijk van de MaxScale-versie en -configuratie.

Gebruik het gedocumenteerde verbindings-eindpunt van de proxy als dat van Nextcloud dbhost. Maak aparte accounts met minimale privileges aan voor monitoring en applicatietoegang, bescherm inloggegevens en versleutel databaseverkeer wanneer dit een onbetrouwbaar netwerk overschrijdt. Schakel het splitsen van lees- en schrijfbewerkingen niet in als een veronderstelde prestatieverbetering: de replicatiefunctie van Nextcloud zelf stuurt leesbewerkingen naar replica's, terwijl schrijfbewerkingen en incidentele leesbewerkingen op de standaardverbinding blijven, maar Galera is geen gewone asynchrone replica-opstelling. Gebruik een routeringsontwerp dat specifiek voor uw stack is getest.

4. Zorg ervoor dat elk app-knooppunt dezelfde Nextcloud-instantie ziet.

Installeer dezelfde Nextcloud-code en app-set op elke app-server. Zorg ervoor dat de instellingen van elke node config.phpconsistent zijn voor de gedeelde instantie, inclusief het database-eindpunt, geheime waarden, vertrouwde domeinen en het pad naar de gegevensdirectory. Voer geen upgrade onafhankelijk uit op meerdere nodes. Maak eerst een back-up, plaats de instantie in de onderhoudsmodus, voer de upgrade uit via één gecontroleerd pad en hervat het verkeer pas nadat alle nodes dezelfde versie draaien.

Configureer alle app-nodes om dezelfde Redis- of Valkey-service te gebruiken voor gedistribueerde caching en vergrendeling. Een lokale cache zoals APCu kan node-lokaal blijven, maar memcache.distributedmoet memcache.lockingverwijzen naar een gemeenschappelijke service, niet naar die van elke server afzonderlijk localhost. De Redis-configuratie van Nextcloud kan bijvoorbeeld gebruikmaken 'memcache.locking' => '\OC\Memcache\Redis'van een gedeelde Redis-host in de redisconfiguratie. Volg de huidige handleiding voor cacheconfiguratie en de handleiding voor transactionele bestandsvergrendeling . Memcached is niet geschikt voor transactionele bestandsvergrendeling in Nextcloud.

Als u PHP-sessies ook centraliseert in Redis, moet u dat als een aparte PHP-configuratietaak beschouwen. De handleiding van Nextcloud waarschuwt dat sessievergrendeling niet standaard is ingeschakeld voor de Redis-sessiehandler; pas de vergrendelingsinstellingen toe en test het sessiegedrag voordat u erop vertrouwt. Verwar databasereplicatie of bestandsvergrendeling niet met sessiecontinuïteit.

5. Test de failover voordat u deze als zeer beschikbaar beschouwt.

Controleer eerst of het systeem normaal functioneert via de openbare hostnaam: meld u aan, upload en download een testbestand en controleer of het zichtbaar is nadat een verzoek een andere applicatie-node heeft bereikt. Sluit vervolgens één web-node af en controleer of de verzoeken via de andere node worden verwerkt. Herstel de node en controleer of deze opnieuw verbinding maakt zonder een verouderde code- of configuratieversie te serveren.

Gebruik vervolgens een onderhoudsvenster om een ​​storing van een databaseknooppunt te simuleren volgens de handleiding van uw leverancier. Controleer of de proxy het defecte of niet-gesynchroniseerde lid verwijdert, of Nextcloud nog steeds kan lezen en schrijven, en of het terugkerende knooppunt de verbinding verbreekt Syncedvoordat het verkeer accepteert. Monitor de primaire status van Galera, de clustergrootte, de knooppuntsynchronisatie, de status van de proxy, app-fouten en de status van de opslagkoppelingen.

Een quorumverlies is een veiligheidsmaatregel, geen bewijs dat de gegevens verloren zijn gegaan. Forceer geen bootstrapping op meerdere knooppunten en kies er niet willekeurig één. De herstelhandleiding van MariaDB adviseert om het meest geavanceerde knooppunt te identificeren en alleen dat knooppunt te bootstrappen, en vervolgens de andere knooppunten weer toe te voegen. Controleer of u ook back-ups van de database en de bestandsopslag hebt getest; Galera-replicatie spiegelt databasewijzigingen en vervangt geen momentopnamen.

Controleer het resultaat.

De configuratie is pas klaar voor productie wanneer één applicatieknooppunt en één databaseknooppunt kunnen worden verwijderd zonder dat de normale bestandsbewerkingen worden onderbroken, alle overgebleven Galera-knooppunten in een primaire component blijven en de gedeelde bestandsopslag en de Redis- of Valkey-service bereikbaar blijven. Als een test mislukt, moet u vaststellen welke laag de aanvraag niet meer verwerkt voordat u de time-outs of herhaalinstellingen wijzigt. De Nextcloud-handleiding beschrijft de ondersteunde database- en applicatie-instellingen, terwijl de compatibiliteitsmatrix van de leverancier en uw failover-tests bepalen of deze specifieke Galera-implementatie wordt ondersteund.

Laat een reactie achter

Beheers de CPU-pieken van Nextcloud Preview met een geplande wachtrij.

Verplaats het genereren van miniaturen naar een gecontroleerd achtergrondschema, verklein ongebruikte voorbeeldformaten en controleer de wachtrij zonder uw Nextcloud-server te overbelasten.

Nextcloud Desktop Sync: Voorbij het "Bestanden verwerken"-scherm

Zoek naar het bestand, de uitsluitingsregel, het verbindingsprobleem of de status van de clientdatabase die de Nextcloud-synchronisatie blokkeert, en controleer vervolgens of uploads en downloads veilig verlopen.

Verwijder de Nextcloud OPcache-waarschuwing door de rechterlimiet aan te passen.

Zoek de PHP OPcache-limiet die de waarschuwing van Nextcloud veroorzaakt, werk de juiste web-PHP-configuratie bij, herstart de server veilig en controleer het resultaat.

Nextcloud verbinden met CODE Docker: installatie en afwegingen

Nextcloud verbinden met CODE Docker: installatie en afwegingen

Vergelijk de ingebouwde en op Docker gebaseerde code en verbind Collabora Online vervolgens met Nextcloud via een beveiligde HTTPS-reverseproxy.

Bouw een robuust Nextcloud-cluster met Galera

Plan een betrouwbare Nextcloud HA-implementatie met gedeelde opslag, Redis-vergrendeling, quorum-bewuste MariaDB-routering en praktische failover-controles.

Krijg Nextcloud Talk-gesprekken tot stand wanneer directe media niet werkt.

Krijg Nextcloud Talk-gesprekken tot stand wanneer directe media niet werkt.

Configureer en verifieer een bereikbare TURN-relais voor Nextcloud Talk wanneer firewalls of restrictieve NAT directe gespreksmedia blokkeren.

Verwijder Nextcloud-integriteitswaarschuwingen door de juiste bestanden te herstellen.

Gebruik het rapport met ongeldige bestanden om gewijzigde, ontbrekende of extra Nextcloud-code te identificeren, vertrouwde bestanden veilig te herstellen en het resultaat te controleren.

Verbind Gmail of Microsoft 365 met Nextcloud Mail via OAuth2.

Stel OAuth2 in voor Nextcloud Mail met Gmail of Microsoft 365, verifieer het ontvangen en verzenden van e-mails en los veelvoorkomende toestemmings- en SMTP-problemen op.

Definieer de vastgelopen Nextcloud-onderhoudsmodus veilig met OCC.

Definieer de vastgelopen Nextcloud-onderhoudsmodus veilig met OCC.

Gebruik OCC om de toegang tot Nextcloud te herstellen, de status van de databasemigratie te controleren en de juiste opdracht te kiezen voor archivering, Docker- of Snap-installaties.

Nextcloud LDAP- en Active Directory-aanmelding instellen

Verbind Nextcloud met LDAP of Active Directory, beperk de toegang met gebruikers- en groepsfilters en verifieer de veilige authenticatie vóór de uitrol.