Innanzitutto, create il cluster del database, quindi posizionate più nodi applicativi Nextcloud identici dietro un bilanciatore di carico con controllo di integrità. Per una configurazione stabile, tutti i nodi applicativi devono utilizzare lo stesso sistema di archiviazione file durevole, la stessa configurazione, lo stesso servizio di blocco Redis o Valkey e un endpoint del database che instradi le scritture solo verso un membro Galera funzionante. Il manuale di amministrazione di Nextcloud elenca MariaDB come database supportato, ma non pubblica una procedura di implementazione specifica per Galera; verificate le versioni esatte di Nextcloud, MariaDB, Galera e del proxy con i rispettivi fornitori prima di mettere in produzione.
Al 9 ottobre 2026, la pagina dei requisiti di sistema di Nextcloud 35 elenca MariaDB 10.11, 11.4, 11.8 e 12.3, con la versione 12.3 indicata come consigliata. Si tratta di un elenco di versioni del database Nextcloud, non di una garanzia che ogni combinazione di Galera o proxy sia certificata. Iniziate consultando i requisiti di sistema di Nextcloud 35 e la matrice di supporto di Galera della vostra distribuzione di MariaDB.
1. Definire i limiti di guasto
Un cluster ad alta disponibilità non si limita a replicare il database. Galera protegge il livello del database; non replica i file utente di Nextcloud, le sessioni PHP, i blocchi Redis o il codice dell'applicazione. Inoltre, un singolo database condiviso non può compensare un errore di montaggio dello storage o un bilanciatore di carico che continua a inviare traffico a un nodo dell'applicazione non funzionante.
Pianifica questi componenti prima dell'installazione:
- Almeno due server applicativi che eseguono la stessa versione di Nextcloud, la stessa versione di PHP, le stesse applicazioni abilitate e la stessa configurazione web.
- Un bilanciatore di carico o un proxy inverso con un hostname pubblico stabile, HTTPS e controlli di integrità per i server dell'applicazione.
- Archiviazione dati Nextcloud condivisa e durevole, accessibile allo stesso percorso e con le autorizzazioni corrette su ogni server dell'applicazione. La directory dei dati di Nextcloud deve essere configurata durante l'installazione; le istruzioni di installazione avvertono che spostarla in un secondo momento può risultare difficile.
- Un cluster Galera con un numero dispari di nodi del database di voto, in genere tre, posizionati in modo che il guasto di un host non comprometta la maggioranza.
- Un servizio Redis o Valkey condiviso per la memorizzazione nella cache distribuita e il blocco transazionale dei file.
Scegliete architetture di storage e di rete dotate di ridondanza e di sistemi di ripristino collaudati. Un percorso condiviso non è automaticamente ad alta disponibilità solo perché può essere montato da più server web.
2. Installa e convalida prima MariaDB Galera
Scegli una versione di MariaDB che soddisfi i requisiti attuali di Nextcloud e un pacchetto Galera compatibile supportato dal tuo fornitore di MariaDB. Segui la documentazione di distribuzione di MariaDB Galera per la configurazione dei nodi, le porte di rete, il trasferimento degli snapshot di stato, TLS e il bootstrap iniziale. Non avviare ogni nodo vuoto come un nuovo cluster; esegui il bootstrap di un nodo, quindi unisci gli altri a quel cluster.
Nextcloud richiede InnoDB e il READ-COMMITTEDlivello di isolamento delle transazioni per MySQL o MariaDB. La pagina relativa ai database di Nextcloud raccomanda inoltre la registrazione binaria a livello di riga. Verificare i valori su ogni nodo del database, non solo sul nodo che riceve attualmente il traffico. Consultare i requisiti di configurazione di MariaDB per Nextcloud .
Prima di connettere Nextcloud, verifica lo stato del cluster su ciascun nodo. Ad esempio, esegui i comandi SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';e SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';. Il cluster dovrebbe segnalare un Primarycomponente, la dimensione prevista del cluster e i nodi nello Syncedstato . MariaDB spiega che il quorum richiede più della metà dell'ultimo membro noto del cluster; un cluster a tre nodi può quindi tollerare la perdita di un nodo, non di due. Consulta le linee guida sul quorum e sul ripristino .
3. Fornire a Nextcloud un endpoint di database che tenga conto dello stato di salute.
Configura Nextcloud per connettersi a un indirizzo proxy di database stabile, non a un elenco round-robin di indirizzi IP di Galera. Sebbene Galera replichi le scritture in tutto il cluster, le applicazioni necessitano comunque di una gestione prevedibile delle transazioni. Un proxy che monitora l'appartenenza a Galera può interrompere il routing verso nodi non disponibili o non sincronizzati e selezionare un nodo di scrittura. Galera Monitor di MariaDB MaxScale è una delle opzioni documentate; il suo comportamento esatto e le modalità di routing supportate dipendono dalla versione e dalla configurazione di MaxScale.
Utilizza l'endpoint di connessione documentato del proxy come quello di Nextcloud dbhost. Crea account separati con privilegi minimi per il monitoraggio e l'accesso alle applicazioni, proteggi le credenziali e crittografa il traffico del database quando attraversa una rete non attendibile. Evita di abilitare la separazione tra lettura e scrittura come scorciatoia per migliorare le prestazioni: la funzionalità di replica di Nextcloud invia le operazioni di lettura alle repliche mantenendo le scritture e le letture causali sulla connessione predefinita, ma Galera non è una normale configurazione di replica asincrona. Utilizza un design di routing testato specificamente per il tuo stack.
4. Fai in modo che ogni nodo dell'app veda la stessa istanza di Nextcloud
Installa lo stesso codice Nextcloud e lo stesso set di app su ogni server delle app. Mantieni la coerenza tra i nodi config.phpdell'istanza condivisa, inclusi l'endpoint del database, i valori segreti, i domini attendibili e il percorso della directory dei dati. Non eseguire l'aggiornamento in modo indipendente su più nodi. Esegui prima un backup, metti l'istanza in modalità di manutenzione, esegui l'aggiornamento seguendo un percorso controllato e ripristina il traffico solo dopo che tutti i nodi eseguono la stessa versione.
Configura tutti i nodi dell'applicazione in modo che utilizzino lo stesso servizio Redis o Valkey per la cache distribuita e il blocco dei file. Una cache locale come APCu può rimanere locale al nodo, ma memcache.distributeddeve memcache.lockingpuntare a un servizio comune, non a quello di ciascun server localhost. Ad esempio, la configurazione Redis di Nextcloud può utilizzare 'memcache.locking' => '\OC\Memcache\Redis'un host Redis condiviso nella redisconfigurazione. Segui la guida corrente alla configurazione della cache e alla guida al blocco dei file transazionali . Memcached non è adatto per i blocchi dei file transazionali di Nextcloud.
Se si centralizzano anche le sessioni PHP in Redis, è necessario considerarlo come un'attività di configurazione PHP separata. Il manuale di Nextcloud avverte che il blocco delle sessioni non è abilitato di default per il gestore di sessioni Redis; applicare le relative impostazioni di blocco e testare il comportamento delle sessioni prima di farvi affidamento. Non confondere la replica del database o il blocco dei file con la continuità della sessione.
5. Testa il failover prima di definirlo ad alta disponibilità.
Innanzitutto, verifica il normale funzionamento tramite l'hostname pubblico: accedi, carica e scarica un file di prova e controlla che sia visibile dopo che una richiesta raggiunge un altro nodo dell'applicazione. Quindi, svuota un nodo web e verifica che le richieste continuino attraverso l'altro. Ripristinalo e verifica che si riconnetta senza servire una versione obsoleta del codice o della configurazione.
Successivamente, utilizza una finestra di manutenzione per simulare un errore di un nodo del database, seguendo le istruzioni del tuo fornitore. Verifica che il proxy rimuova il membro guasto o non sincronizzato, che Nextcloud sia ancora in grado di leggere e scrivere e che il nodo di ripristino raggiunga la velocità di accesso Syncedprima di accettare traffico. Monitora lo stato primario di Galera, le dimensioni del cluster, la sincronizzazione dei nodi, lo stato del proxy, gli errori dell'applicazione e lo stato del mount dello storage.
La perdita del quorum è un arresto di sicurezza, non la prova che i dati siano andati persi. Non forzare l'avvio di più nodi né sceglierne uno a caso. La guida al ripristino di MariaDB consiglia di identificare il nodo più avanzato ed avviare solo quello, quindi di ricollegare gli altri. Assicurati di aver testato anche i backup del database e dell'archiviazione dei file; la replica di Galera rispecchia le modifiche al database e non sostituisce i backup puntuali.
Verifica il risultato
La configurazione è pronta per la produzione solo quando è possibile rimuovere un nodo dell'applicazione e un nodo del database senza interrompere le normali operazioni sui file, tutti i nodi Galera rimanenti rimangono in un componente primario e l'archivio file condiviso e il servizio Redis o Valkey rimangono raggiungibili. Se un test fallisce, identificare quale livello ha smesso di gestire la richiesta prima di modificare i timeout o le impostazioni di retry. Il manuale di Nextcloud documenta le impostazioni del database e dell'applicazione supportate, mentre la matrice di compatibilità del fornitore e i test di failover determinano se questa specifica implementazione di Galera è supportata.