Instâncias de cluster de failover no Linux

Aplica-se a:SQL Server em Linux

Este artigo explica os conceitos relacionados às instâncias de cluster de failover (FCI) do SQL Server no Linux.

Para criar um FCI do SQL Server no Linux, consulte Configurar instância de cluster de failover no Linux (RHEL).

A camada de agrupamento

  • No Red Hat Enterprise Linux (RHEL), a camada de agrupamento baseia-se no suplemento HA do RHEL.

    Note

    O acesso ao complemento e à documentação do Red Hat HA requer uma assinatura.

  • No SUSE Linux Enterprise Server (SLES), a camada de clustering é baseada no SUSE Linux Enterprise High Availability Extension (HAE).

    Para obter mais informações sobre configuração de cluster, opções do agente de recursos, gerenciamento, práticas recomendadas e recomendações, consulte SUSE Linux Enterprise High Availability Extension 15.

Tanto o complemento RHEL HA quanto o SUSE HAE são construídos no Pacemaker.

Como mostra o diagrama a seguir, o armazenamento é apresentado para dois servidores. Os componentes de clustering - Corosync e Pacemaker - coordenam as comunicações e a gestão de recursos. Um dos servidores tem a conexão ativa com os recursos de armazenamento e o SQL Server. Quando o Pacemaker deteta uma falha, os componentes de agrupamento são responsáveis por mover os recursos para o outro nó.

Diagrama de um cluster de failover do SQL Server de disco partilhado no Linux.

A integração do SQL Server com o Pacemaker no Linux não é tão estreitamente associada como está ao Windows Server Failover Clustering (WSFC) no Windows. O SQL Server não tem conhecimento sobre a presença do cluster. Toda a orquestração é gerida externamente e o serviço é controlado como uma instância independente pelo Pacemaker. Além disso, o nome da rede virtual é específico do WSFC, que não tem equivalente no Pacemaker. Espera-se que @@SERVERNAME e sys.servers retornem o nome do nó, enquanto o cluster DMVs sys.dm_os_cluster_nodes e sys.dm_os_cluster_properties não retornem nenhum registo. Para usar uma cadeia de ligação que aponte para um nome de servidor e não usar o IP, têm de registar no seu servidor DNS o IP usado para criar o recurso IP virtual (como explicado nas secções seguintes) com o nome do servidor escolhido.

No SQL Server 2025 (17.x), com o Cumulative Update (CU) 3 e versões posteriores, está disponível um novo agente HA Pacemaker v2 para Red Hat Enterprise Linux (RHEL) e Ubuntu no pacote mssql-server-ha.

O Pacemaker HA agente v2 introduz melhorias de fiabilidade e desempenho em relação ao agente anterior, incluindo:

  • Melhoria do desempenho do failover para reduzir os tempos de failover planeados e não planeados.

  • Suporte para políticas automáticas flexíveis de failover, incluindo a configuração do timeout da verificação de saúde e do nível de condição de falha.

  • Suporte para TLS 1.3 para comunicação entre o cluster Pacemaker e SQL Server.

O agente Pacemaker HA v2 está atualmente em visualização prévia. O agente Pacemaker HA existente (v1) mantém-se totalmente suportado para implementações em produção.

Número de instâncias e nós

Uma diferença importante com o SQL Server no Linux é que só pode haver uma instalação do SQL Server por servidor Linux. Essa instalação é chamada de instância. Ao contrário do Windows Server, que suporta até 25 FCIs por WSFC, uma FCI baseada em Linux terá apenas uma única instância. Essa instância única também é uma instância padrão; não há nenhum conceito de uma instância nomeada no Linux.

Um cluster Pacemaker só pode ter até 16 nós quando o Corosync está envolvido, portanto, uma única FCI pode abranger até 16 servidores. Uma FCI implementada com o Standard Edition do SQL Server oferece suporte a até dois nós de um cluster, mesmo que o cluster Pacemaker tenha o máximo de 16 nós.

Num SQL Server FCI, a instância do SQL Server está ativa apenas num nó de cada vez.

Endereço IP e nome

Em um cluster Linux Pacemaker, cada FCI do SQL Server precisa de seu próprio endereço IP e nome exclusivos. Se a configuração FCI abranger várias sub-redes, será necessário um endereço IP por sub-rede. O nome exclusivo e o(s) endereço(s) IP(s) são usados para acessar a FCI para que os aplicativos e usuários finais não precisem saber qual servidor subjacente do cluster Pacemaker.

O nome da FCI no DNS deve ser o mesmo que o nome do recurso FCI que é criado no cluster Pacemaker. Tanto o nome como o endereço IP devem ser registados no DNS.

Armazenamento compartilhado

Todas as FCIs, sejam elas Linux ou Windows Server, requerem alguma forma de armazenamento compartilhado. Esse armazenamento é apresentado a todos os servidores que podem hospedar a FCI, mas apenas um único servidor pode usar o armazenamento para a FCI a qualquer momento. As opções disponíveis para armazenamento compartilhado no Linux são:

  • iSCSI
  • Sistema de arquivos de rede (NFS)
  • Bloco de Mensagem de Servidor (SMB)

No Windows Server, há opções ligeiramente diferentes. Uma opção atualmente sem suporte para FCIs baseadas em Linux é a capacidade de usar um disco local para o nó do tempdb, que é o espaço de trabalho temporário do SQL Server.

Em uma configuração que abrange vários locais, o que é armazenado em um data center deve ser sincronizado com o outro. No caso de um failover, a FCI é capaz de ficar online e o armazenamento é percebido como igual. Conseguir isso requer algum método externo para replicação de armazenamento, seja por meio do hardware de armazenamento subjacente ou de algum utilitário baseado em software.

Note

Para SQL Server, as implementações baseadas em Linux usando discos apresentados diretamente a um servidor devem ser formatadas com XFS ou ext4. Outros sistemas de arquivos não são suportados no momento.

O processo de apresentação do armazenamento compartilhado é o mesmo para os diferentes métodos suportados:

  • Configurar o armazenamento compartilhado
  • Monte o armazenamento como uma pasta para os servidores que servirão como nós do cluster Pacemaker para a FCI
  • Se necessário, mova os bancos de dados do sistema SQL Server para o armazenamento compartilhado
  • Teste se o SQL Server funciona a partir de cada servidor conectado ao armazenamento compartilhado

Uma grande diferença com o SQL Server no Linux é que, embora você possa configurar os dados do usuário padrão e o local do arquivo de log, os bancos de dados do sistema sempre devem existir em /var/opt/mssql/data. No Windows Server, você tem a capacidade de mover os bancos de dados do sistema, incluindo tempdb. Esse fato influencia a forma como o armazenamento compartilhado é configurado para uma FCI.

Os caminhos padrão para bancos de dados que não são do sistema podem ser alterados usando o mssql-conf utilitário. Para obter informações sobre como alterar os valores predefinidos, consulte Alterar a localização predefinida do diretório de dados ou de registo. Também pode armazenar dados e registos de transações do SQL Server noutros locais, desde que tenham a segurança adequada, mesmo que não seja um local predefinido; a localização teria de ser declarada.