Compartilhar via


Configurar instâncias de cluster de failover e grupos de disponibilidade Always On com várias sub-redes

Aplica-se a:SQL Server – Linux

Quando um Grupo de Disponibilidade Always On ou FCI (Instância de Cluster de Failover) abrange mais de um site, cada site geralmente tem seu próprio endereço IP.

Por exemplo, os endereços do site A começam com 192.168.1.<x>, e os endereços do site B começam com192.168.2.<x>, em que<x> x é a parte do endereço IP que é exclusiva para o servidor. Sem algum tipo de roteamento em vigor na camada de rede, esses servidores não poderão se comunicar entre si.

Há duas maneiras para controlar essa situação:

  • configurar uma rede que conecta as duas sub-redes diferentes (conhecidas como VLAN)
  • configurar o roteamento entre as sub-redes.

Solução baseada em VLAN

Pré-requisito: Para uma solução baseada em VLAN, cada servidor que participa de um grupo de disponibilidade ou FCI precisa de duas NICs (placas de rede) para disponibilidade adequada (uma NIC de porta dupla seria um ponto único de falha em um servidor físico), para que endereços IP possam ser atribuídos a esse servidor em sua sub-rede nativa, bem como um na VLAN. Isso se soma às outras necessidades de rede, assim como o iSCSI, que também precisa de sua própria rede.

A criação do endereço IP para o AG ou FCI é feita na VLAN. No exemplo a seguir, a VLAN tem uma sub-rede de 192.168.3.<x>, portanto, o endereço IP criado para o AG ou FCI é 192.168.3.104. Nenhuma configuração adicional é necessária, já que há um único endereço IP atribuído ao grupo de disponibilidade ou FCI.

Diagram showing how to configure multiple subnets with VLAN.

Configuração com o Pacemaker

No mundo do Windows, o WSFC (Cluster de Failover do Windows Server) dá suporte nativamente a várias sub-redes e manipula vários endereços IP por meio de uma dependência OR no endereço IP. No Linux, não há dependência OR, mas há uma maneira de obter uma sub-rede adequada nativamente com o Pacemaker, embora você não possa usar a linha de comando normal do Pacemaker. Você precisa modificar a CIB (base de informações do cluster). O CIB é um arquivo XML com a configuração do Pacemaker.

Diagram showing how to configure multiple subnets with Pacemaker.

Atualize o CIB

  1. Exporte o CIB.

    sudo pcs cluster cib <filename>
    

    Em que <filename> é o nome pelo qual você deseja chamar o CIB.

  2. Edite o arquivo que foi gerado. Procure a seção <resources>. Você verá os vários recursos que foram criados para o AG ou o FCI. Localize aquele associado ao endereço IP. Adicione uma seção <instance_attributes> com as informações para o segundo endereço IP acima ou abaixo do existente, mas antes de <operations>. Ela é semelhante à seguinte sintaxe:

    <instance_attributes id="<NameForAttribute>">
        <nvpair id="<NameForIP>" name="ip" value="<IPAddress>"/>
    </instance_attributes>
    

    em que <NameForAttribute> é o nome exclusivo desse atributo, <NameForIP> é o nome associado ao endereço IP, <IPAddress> é o endereço IP da segunda sub-rede.

    Um exemplo é mostrado a seguir.

    <instance_attributes id="virtualip-instance_attributes">
        <nvpair id="virtualip-instance_attributes-ip" name="ip" value="192.168.1.102"/>
    </instance_attributes>
    

    Por padrão, há apenas um <instance_attributes /> no arquivo XML CIB exportado. Se houver duas sub-redes, você precisará de duas <instance_attributes /> entradas.

    Veja um exemplo de entradas para duas sub-redes:

    <instance_attributes id="virtualip-instance_attributes1">
        <rule id="Subnet1-IP" score="INFINITY" boolean-op="or">
            <expression id="Subnet1-Node1" attribute="#uname" operation="eq" value="Node1" />
            <expression id="Subnet1-Node2" attribute="#uname" operation="eq" value="Node2" />
        </rule>
        <nvpair id="IP-In-Subnet1" name="ip" value="192.168.1.102"/>
    </instance_attributes>
    <instance_attributes id="virtualip-instance_attributes2">
        <rule id="Subnet2-IP" score="INFINITY">
            <expression id="Subnet2-Node1" attribute="#uname" operation="eq" value="Node3" />
        </rule>
        <nvpair id="IP-In-Subnet2" name="ip" value="192.168.2.102"/>
    </instance_attributes>
    

    Você usaria boolean-op="or" quando a sub-rede tivesse mais de um servidor.

  3. Importe o CIB modificado e reconfigure o Pacemaker.

    sudo pcs cluster cib-push <filename>
    

    em que <filename> é o nome do arquivo do CIB com as informações de endereço IP modificadas.

Checar e verificar o failover

  1. Depois que o CIB for aplicado com êxito com a configuração atualizada, execute ping no nome DNS associado ao recurso de endereço IP no Pacemaker. Ele deve refletir o endereço IP associado à sub-rede que atualmente hospeda o grupo de disponibilidade ou o FCI.

  2. Faça failover do grupo de disponibilidade ou do FCI para a outra sub-rede.

  3. Depois que o grupo de disponibilidade ou o FCI estiver totalmente online, execute ping no nome DNS associado ao endereço IP. Ele deve refletir o endereço IP na segunda sub-rede.

  4. Se desejar, faça failback do grupo de disponibilidade ou FCI para a sub-rede original.