Dela via


Konfigurera alwayson-tillgänglighetsgrupper och redundansklusterinstanser för flera undernät

gäller för:SQL Server – Linux

När en AlwaysOn-tillgänglighetsgrupp (AG) eller redundansklusterinstans (FCI) sträcker sig över mer än en plats, har varje plats vanligtvis ett eget nätverk, vilket ofta innebär att varje plats har sin egen IP-adress.

Till exempel börjar plats A-adresserna med 192.168.1.<x>, och plats B-adresserna börjar med 192.168.2.<x>, där <x> är den del av IP-adressen som är unik för servern. Utan någon form av routning på plats i nätverksskiktet kan dessa servrar inte kommunicera med varandra.

Det finns två sätt att hantera det här scenariot:

  • konfigurera ett nätverk som överbryggar de två olika undernäten (kallas för VLAN)
  • konfigurera routning mellan undernäten

VLAN-baserad lösning

Krav: För en VLAN-baserad lösning behöver varje server som deltar i en tillgänglighetsgrupp eller FCI två nätverkskort (nätverkskort) för korrekt tillgänglighet (ett NIC med dubbla portar skulle vara en felpunkt på en fysisk server), så att den kan tilldelas IP-adresser i sitt interna undernät samt en på VLAN. Det här kravet är utöver alla andra nätverksbehov, till exempel iSCSI, som också behöver ett eget nätverk.

Skapande av IP-adress för tillgänglighetsgruppen eller FCI görs på VLAN. I följande exempel har VLAN ett undernät med 192.168.3.<x>, så IP-adressen som skapats för tillgänglighetsgruppen eller FCI:n är 192.168.3.104. Inget mer behöver konfigureras eftersom det finns en enda IP-adress tilldelad till tillgänglighetsgruppen eller FCI:n.

diagram som visar hur du konfigurerar flera undernät med VLAN.

Konfiguration med Pacemaker

I Windows stöder ett Windows Server-redundanskluster (WSFC) inbyggt flera undernät och hanterar flera IP-adresser via ett ELLER-beroende av IP-adressen. I Linux finns det inget OR-beroende, men det finns ett sätt att uppnå ett korrekt multiundernät internt med Pacemaker, även om du inte kan använda den normala Pacemaker-kommandoraden. I stället måste du ändra klusterinformationsbasen (CIB). CIB är en XML-fil med Pacemaker-konfigurationen.

diagram som visar hur du konfigurerar flera undernät med Pacemaker.

Uppdatera CIB

  1. Exportera CIB.

    sudo pcs cluster cib <filename>
    

    Där <filename> är namnet som du vill ge CIB.

  2. Redigera filen som genererades. Leta efter avsnittet <resources>. Du ser de olika resurser som skapades för AG eller FCI. Hitta den som är associerad med IP-adressen. Lägg till ett <instance_attributes> avsnitt med information för den andra IP-adressen antingen före eller efter den befintliga, men innan <operations>. Den liknar följande syntax:

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

    där <NameForAttribute> är det unika namnet för det här attributet, <NameForIP> är namnet som är associerat med IP-adressen, <IPAddress> är IP-adressen för det andra undernätet.

    Följande visar ett exempel.

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

    Som standard finns det bara en <instance_attributes /> i CIB XML-filen som exporteras. Om det finns två undernät behöver du två <instance_attributes /> poster.

    Här är ett exempel på poster för två undernät:

    <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>
    

    Du skulle använda boolean-op="or" när undernätet har fler än en server.

  3. Importera den ändrade CIB:n och konfigurera om Pacemaker.

    sudo pcs cluster cib-push <filename>
    

    Där <filename> är namnet på CIB-filen med den ändrade IP-adressinformationen.

Kontrollera och verifiera failover

  1. När CIB har tillämpats med den uppdaterade konfigurationen pingar du dns-namnet som är associerat med IP-adressresursen i Pacemaker. Den bör återspegla IP-adressen som är associerad med det undernät som för närvarande är värd för tillgänglighetsgruppen eller FCI:n.

  2. Misslyckas AG eller FCI till det andra undernätet.

  3. När AG eller FCI är fullt online, pingar du DNS-namnet som är associerat med IP-adressen. Den bör återspegla IP-adressen i det andra undernätet.

  4. Om du vill kan du överlämna tillgänglighetsgruppen eller FCI:n tillbaka till det ursprungliga undernätet.