Primero, configure el clúster de base de datos y, a continuación, coloque varios nodos de aplicación Nextcloud idénticos detrás de un balanceador de carga con comprobación de estado. Para una configuración estable, todos los nodos de aplicación deben usar el mismo almacenamiento de archivos persistente, la misma configuración, el mismo servicio de bloqueo Redis o Valkey y un punto final de base de datos que dirija las escrituras únicamente a un miembro Galera en buen estado. El manual de administración actual de Nextcloud incluye MariaDB como base de datos compatible, pero no publica una receta de implementación específica para Galera; verifique las versiones exactas de Nextcloud, MariaDB, Galera y proxy con los proveedores antes de la puesta en producción.
A fecha de 9 de octubre de 2026, la página de requisitos del sistema de Nextcloud 35 enumera MariaDB 10.11, 11.4, 11.8 y 12.3, con la versión 12.3 marcada como recomendada. Esta es una lista de versiones de bases de datos de Nextcloud, no una garantía de que todas las combinaciones de Galera o proxy estén certificadas. Comience consultando los requisitos del sistema de Nextcloud 35 y la matriz de compatibilidad de Galera de su distribución de MariaDB.
1. Definir los límites de fallo
Un clúster de alta disponibilidad ofrece más que una base de datos replicada. Galera protege la capa de base de datos; no replica los archivos de usuario de Nextcloud, las sesiones PHP, los bloqueos de Redis ni el código de la aplicación. Una única base de datos compartida tampoco puede compensar un fallo en el montaje del almacenamiento ni un balanceador de carga que siga enviando tráfico a un nodo de aplicación averiado.
Planifique estos componentes antes de la instalación:
- Al menos dos servidores de aplicaciones que ejecuten la misma versión de Nextcloud, versión de PHP, aplicaciones habilitadas y configuración web.
- Un balanceador de carga o un proxy inverso con un nombre de host público estable, HTTPS y comprobaciones de estado para los servidores de aplicaciones.
- El almacenamiento de datos compartido y persistente de Nextcloud es visible en la misma ruta y con los permisos correctos en todos los servidores de aplicaciones. El directorio de datos de Nextcloud debe configurarse durante la instalación; las instrucciones de instalación advierten que moverlo posteriormente es complicado.
- Un clúster Galera con un número impar de nodos de base de datos de votación, normalmente tres, colocados de forma que el fallo de un host no elimine la mayoría.
- Un servicio compartido de Redis o Valkey para almacenamiento en caché distribuido y bloqueos de archivos transaccionales.
Elija diseños de almacenamiento y red que cuenten con redundancia propia y recuperación probada. Una ruta compartida no garantiza automáticamente una alta disponibilidad solo porque varios servidores web puedan montarla.
2. Instale y valide primero MariaDB Galera.
Seleccione una versión de MariaDB que cumpla con los requisitos actuales de Nextcloud y un paquete Galera compatible con su proveedor de MariaDB. Siga la documentación de implementación de MariaDB Galera para la configuración de nodos, puertos de red, transferencia de instantáneas de estado, TLS y arranque inicial. No inicie cada nodo vacío como un clúster nuevo; inicie un nodo y luego incorpore los demás a ese clúster.
Nextcloud requiere InnoDB y el READ-COMMITTEDnivel de aislamiento de transacciones para MySQL o MariaDB. La página actual de la base de datos de Nextcloud también recomienda el registro binario basado en filas. Confirme los valores en cada nodo de la base de datos, no solo en el que recibe tráfico actualmente. Consulte los requisitos de configuración de MariaDB de Nextcloud .
Antes de conectar Nextcloud, verifique el estado del clúster en cada nodo. Por ejemplo, ejecute SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';y SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';. El clúster debería informar un Primarycomponente, el tamaño esperado del clúster y los nodos en el Syncedestado. MariaDB explica que el quórum requiere más de la mitad de la última membresía conocida del clúster; por lo tanto, un clúster de tres nodos puede tolerar la pérdida de un nodo, no de dos. Revise su guía de quórum y recuperación .
3. Proporcionar a Nextcloud un punto final de base de datos que tenga en cuenta el estado.
Configure Nextcloud para que se conecte a una dirección proxy de base de datos estable, no a una lista rotativa de direcciones IP de Galera. Aunque Galera replica las escrituras en todo el clúster, las aplicaciones aún necesitan un manejo de transacciones predecible. Un proxy que supervise la membresía de Galera puede dejar de enrutar a nodos no disponibles o no sincronizados y seleccionar un nodo de escritura. El Monitor de Galera de MariaDB MaxScale es una opción documentada; su comportamiento exacto y los modos de enrutamiento compatibles dependen de la versión y la configuración de MaxScale.
Utilice el punto final de conexión documentado del proxy como el de Nextcloud dbhost. Cree cuentas separadas con privilegios mínimos para la monitorización y el acceso a las aplicaciones, proteja las credenciales y cifre el tráfico de la base de datos cuando atraviese una red no confiable. Evite habilitar la división de lectura/escritura como un atajo de rendimiento: la función de replicación propia de Nextcloud envía las lecturas a las réplicas mientras mantiene las escrituras y las lecturas causales en la conexión predeterminada, pero Galera no es una configuración de réplica asíncrona común. Utilice un diseño de enrutamiento probado específicamente para su pila.
4. Asegúrese de que todos los nodos de la aplicación vean la misma instancia de Nextcloud.
Instale el mismo código y conjunto de aplicaciones de Nextcloud en cada servidor de aplicaciones. Mantenga la coherencia en cada nodo config.phpde la instancia compartida, incluyendo el punto final de la base de datos, los valores secretos, los dominios de confianza y la ruta del directorio de datos. No ejecute la actualización de forma independiente en varios nodos. Realice una copia de seguridad primero, ponga la instancia en modo de mantenimiento, actualice mediante una ruta controlada y restablezca el tráfico solo después de que todos los nodos ejecuten la misma versión.
Configure todos los nodos de la aplicación para que utilicen el mismo servicio Redis o Valkey para el almacenamiento en caché y el bloqueo distribuidos. Una caché local como APCu puede permanecer en el nodo, pero memcache.distributeddebe memcache.lockingapuntar a un servicio común, no al de cada servidor localhost. Por ejemplo, la configuración de Redis de Nextcloud puede usar 'memcache.locking' => '\OC\Memcache\Redis'un host Redis compartido en la configuración. Siga la guía de configuración de caché y la guía de bloqueo de archivos transaccionalredis vigentes . Memcached no es adecuado para los bloqueos de archivos transaccionales de Nextcloud.
Si también centraliza las sesiones PHP en Redis, considérelo como una tarea de configuración PHP independiente. El manual de Nextcloud advierte que el bloqueo de sesiones no está habilitado por defecto para el gestor de sesiones de Redis; aplique su configuración de bloqueo y pruebe el comportamiento de la sesión antes de confiar en él. No confunda la replicación de la base de datos o el bloqueo de archivos con la continuidad de la sesión.
5. Pruebe la conmutación por error antes de declararla de alta disponibilidad.
Primero, confirme el funcionamiento normal a través del nombre de host público: inicie sesión, cargue y descargue un archivo de prueba y verifique que sea visible después de que una solicitud llegue a otro nodo de la aplicación. Luego, vacíe un nodo web y confirme que las solicitudes continúen a través del otro. Restáurelo y confirme que se reincorpora sin servir una versión de código o configuración obsoleta.
A continuación, utilice una ventana de mantenimiento para simular un fallo en un nodo de la base de datos según el manual de procedimientos de su proveedor. Confirme que el proxy elimina el miembro que ha fallado o no está sincronizado, que Nextcloud aún puede leer y escribir, y que el nodo que regresa alcanza el estado correcto Syncedantes de aceptar tráfico. Supervise el estado del nodo principal de Galera, el tamaño del clúster, la sincronización de nodos, el estado del proxy, los errores de la aplicación y el estado del montaje del almacenamiento.
La pérdida de quórum es una medida de seguridad, no una prueba de que los datos se hayan perdido. No fuerce el arranque de varios nodos ni elija uno al azar. La guía de recuperación de MariaDB recomienda identificar el nodo más avanzado y arrancar solo ese nodo, para luego volver a unir los demás. Confirme que también ha probado las copias de seguridad de la base de datos y del almacenamiento de archivos; la replicación de Galera refleja los cambios en la base de datos y no reemplaza las copias de seguridad puntuales.
Verificar el resultado
La configuración estará lista para producción solo cuando se pueda desconectar un nodo de aplicación y un nodo de base de datos sin interrumpir las operaciones normales de archivos, todos los nodos Galera restantes permanezcan en un componente principal y el almacenamiento de archivos compartido y el servicio Redis o Valkey sigan estando accesibles. Si una prueba falla, identifique qué nivel dejó de atender la solicitud antes de modificar los tiempos de espera o la configuración de reintentos. El manual de Nextcloud documenta la configuración de base de datos y aplicación compatible, mientras que la matriz de compatibilidad del proveedor y sus pruebas de conmutación por error determinarán si esta implementación específica de Galera es compatible.