Primeiro, crie o cluster de banco de dados e, em seguida, coloque vários nós idênticos da aplicação Nextcloud atrás de um balanceador de carga com verificação de integridade. Para uma configuração estável, todos os nós da aplicação devem usar o mesmo armazenamento de arquivos durável, configuração, serviço de bloqueio Redis ou Valkey e um endpoint de banco de dados que direcione as gravações apenas para um membro Galera íntegro. O Manual de Administração atual do Nextcloud lista o MariaDB como um banco de dados compatível, mas não publica um procedimento de implantação específico para o Galera; verifique as versões exatas do Nextcloud, MariaDB, Galera e proxy com os fornecedores antes de colocar o produto em produção.
Em 9 de outubro de 2026, a página de requisitos de sistema do Nextcloud 35 listava o MariaDB 10.11, 11.4, 11.8 e 12.3, com o 12.3 marcado como recomendado. Essa é uma lista de versões do banco de dados do Nextcloud, não uma garantia de que todas as combinações de Galera ou proxy sejam certificadas. Comece consultando os requisitos de sistema do Nextcloud 35 e a matriz de suporte do Galera da sua distribuição MariaDB.
1. Defina os limites de falha.
Um cluster de alta disponibilidade oferece mais do que apenas um banco de dados replicado. O Galera protege a camada de banco de dados; ele não replica os arquivos de usuário do Nextcloud, as sessões PHP, os bloqueios do Redis ou o código do aplicativo. Um único banco de dados compartilhado também não consegue compensar uma falha na montagem de um armazenamento ou um balanceador de carga que continua enviando tráfego para um nó de aplicativo com problemas.
Planeje esses componentes antes da instalação:
- Pelo menos dois servidores de aplicativos executando a mesma versão do Nextcloud, versão do PHP, aplicativos habilitados e configuração web.
- Um balanceador de carga ou proxy reverso com um nome de host público estável, HTTPS e verificações de integridade para os servidores de aplicativos.
- Armazenamento de dados Nextcloud compartilhado e durável, visível no mesmo caminho e com as permissões corretas em todos os servidores de aplicativos. O diretório de dados do Nextcloud deve ser configurado durante a instalação; as instruções de instalação alertam que movê-lo posteriormente é difícil.
- Um cluster Galera com um número ímpar de nós de banco de dados de votação, normalmente três, posicionados de forma que a falha de um único host não remova a maioria.
- Um serviço Redis ou Valkey compartilhado para cache distribuído e bloqueios de arquivos transacionais.
Escolha projetos de armazenamento e rede que possuam redundância própria e recuperação testada. Um caminho compartilhado não é automaticamente altamente disponível apenas porque vários servidores web podem acessá-lo.
2. Primeiro, instale e valide o MariaDB Galera.
Escolha uma versão do MariaDB que atenda aos requisitos atuais do Nextcloud e um pacote Galera compatível com o seu fornecedor do MariaDB. Siga a documentação de implantação do Galera para MariaDB para configuração de nós, portas de rede, transferência de snapshots de estado, TLS e inicialização. Não inicie cada nó vazio como um novo cluster; inicialize um nó e, em seguida, adicione os outros a esse cluster.
O Nextcloud requer InnoDB e o READ-COMMITTEDnível de isolamento de transação para MySQL ou MariaDB. A página atual do banco de dados Nextcloud também recomenda o registro binário baseado em linhas. Confirme os valores em todos os nós do banco de dados, não apenas no nó que está recebendo tráfego no momento. Consulte os requisitos de configuração do MariaDB para o Nextcloud .
Antes de conectar o Nextcloud, verifique o estado do cluster em cada nó. Por exemplo, execute `cluster status` SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';e ` cluster status` SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';. O cluster deve reportar um Primarycomponente, o tamanho esperado do cluster e os nós no Syncedestado em que se encontram. O MariaDB explica que o quorum requer mais da metade dos últimos membros conhecidos do cluster; portanto, um cluster de três nós pode tolerar a perda de um nó, mas não de dois. Consulte as diretrizes de quorum e recuperação do MariaDB .
3. Forneça ao Nextcloud um endpoint de banco de dados com reconhecimento de integridade.
Configure o Nextcloud para se conectar a um endereço proxy de banco de dados estável, e não a uma lista rotativa de endereços IP do Galera. Embora o Galera replique as gravações em todo o cluster, os aplicativos ainda precisam de um tratamento de transações previsível. Um proxy que monitora a associação ao Galera pode interromper o roteamento para nós indisponíveis ou não sincronizados e selecionar um nó de gravação. O Galera Monitor do MariaDB MaxScale é uma opção documentada; seu comportamento exato e os modos de roteamento suportados dependem da versão e da configuração do MaxScale.
Use o endpoint de conexão documentado do proxy como o do Nextcloud dbhost. Crie contas separadas com privilégios mínimos para monitoramento e acesso ao aplicativo, proteja as credenciais e criptografe o tráfego do banco de dados quando ele atravessar uma rede não confiável. Evite habilitar a divisão de leitura/gravação como um atalho de desempenho presumido: o próprio recurso de replicação do Nextcloud envia leituras para as réplicas, mantendo as gravações e leituras causais na conexão padrão, mas o Galera não é um arranjo de réplicas assíncronas comum. Use um design de roteamento testado especificamente para sua infraestrutura.
4. Faça com que todos os nós do aplicativo vejam a mesma instância do Nextcloud.
Instale o mesmo código e conjunto de aplicativos do Nextcloud em cada servidor de aplicativos. Mantenha a config.phpconsistência em cada nó da instância compartilhada, incluindo o endpoint do banco de dados, valores secretos, domínios confiáveis e caminho do diretório de dados. Não execute uma atualização de forma independente em vários nós. Faça um backup primeiro, coloque a instância em modo de manutenção, atualize por meio de um caminho controlado e restabeleça o tráfego somente depois que todos os nós estiverem executando a mesma versão.
Configure todos os nós do aplicativo para usar o mesmo serviço Redis ou Valkey para cache e bloqueio distribuídos. Um cache local, como o APCu, pode permanecer local ao nó, mas memcache.distributeddeve memcache.lockingapontar para um serviço comum, não para o de cada servidor localhost. Por exemplo, a configuração do Redis no Nextcloud pode usar 'memcache.locking' => '\OC\Memcache\Redis'um host Redis compartilhado na configuração. Siga o guia de configuração de cache e o guia de bloqueio de arquivos transacionaisredis atuais . O Memcached não é adequado para bloqueios de arquivos transacionais do Nextcloud.
Se você também centraliza as sessões PHP no Redis, trate isso como uma tarefa de configuração PHP separada. O manual do Nextcloud alerta que o bloqueio de sessão não está habilitado por padrão para o gerenciador de sessões do Redis; aplique as configurações de bloqueio e teste o comportamento da sessão antes de confiar nele. Não confunda replicação de banco de dados ou bloqueio de arquivos com continuidade de sessão.
5. Teste o failover antes de considerá-lo altamente disponível.
Primeiro, confirme o uso normal através do nome de host público: faça login, carregue e baixe um arquivo de teste e verifique se ele está visível após uma solicitação chegar a outro nó do aplicativo. Em seguida, esvazie um nó da web e confirme se as solicitações continuam passando pelo outro. Restaure-o e confirme se ele se reconecta sem servir uma versão de código ou configuração desatualizada.
Em seguida, utilize uma janela de manutenção para simular a falha de um nó de banco de dados, conforme o manual de procedimentos do seu fornecedor. Confirme se o proxy remove o membro com falha ou dessincronizado, se o Nextcloud ainda consegue ler e gravar dados e se o nó que retorna consegue acessar o servidor Syncedantes de aceitar tráfego. Monitore o status do nó primário do Galera, o tamanho do cluster, a sincronização dos nós, a integridade do proxy, os erros de aplicativos e a integridade da montagem do armazenamento.
A perda de quorum é uma medida de segurança, não uma prova de que os dados foram perdidos. Não force a inicialização de vários nós nem escolha um aleatoriamente. O guia de recuperação do MariaDB recomenda identificar o nó mais avançado e inicializar apenas esse nó, reconectando os demais em seguida. Confirme também se você testou os backups do banco de dados e do armazenamento de arquivos; a replicação Galera espelha as alterações do banco de dados e não substitui backups pontuais.
Verifique o resultado
A configuração estará pronta para produção somente quando um nó de aplicativo e um nó de banco de dados puderem ser removidos sem interromper as operações normais de arquivo, todos os nós Galera restantes permanecerem em um componente Primário e o armazenamento de arquivos compartilhado e o serviço Redis ou Valkey permanecerem acessíveis. Se um teste falhar, identifique qual camada parou de atender à solicitação antes de alterar os tempos limite ou as configurações de repetição. O manual do Nextcloud documenta as configurações de banco de dados e aplicativo suportadas, enquanto a matriz de compatibilidade do fornecedor e seus testes de failover determinam se esta implantação Galera específica é suportada.