Freigeben über


Konfigurieren von Always On-Verfügbarkeitsgruppen für und Failoverclusterinstanzen für Multisubnetze

Gilt für:SQL Server – Linux

Wenn eine Always On-Verfügbarkeitsgruppe (Availability Group, AG) oder eine Failoverclusterinstanz (FCI) sich über mehr als einen Standort erstreckt, verfügt in der Regel jeder Standort über eigene Netzwerkfunktionen – das bedeutet, dass in jedem Standort eine eigene IP-Adressierung verwendet wird.

Beispielsweise beginnen die Adressen von Standort A mit 192.168.1.<x> und die Adressen von Standort B mit 192.168.2.<x>, wobei <x> der Teil der IP-Adresse ist, der für den Server eindeutig ist. Wenn auf der Netzwerkebene kein Routing stattfindet, sind diese Server nicht in der Lage, miteinander zu kommunizieren.

Dieses Szenario lässt sich auf zwei Arten verarbeiten:

  • Einrichten eines Netzwerks, das die beiden verschiedenen Subnetze überbrückt (dieses Setup wird als VLAN bezeichnet)
  • Konfigurieren des Routings zwischen den Subnetzen

VLAN-basierte Lösung

Voraussetzung: Bei einer VLAN-basierten Lösung benötigt jeder Server, der zu einer Verfügbarkeitsgruppe oder FCI gehört, zwei Netzadapter (NICs) für die ordnungsgemäße Verfügbarkeit (ein Dualanschluss-NIC wäre auf einem physischen Server ein Single Point of Failure), sodass Ihm IP-Adressen sowohl in seinem nativen Subnetz als auch dem VLAN zugewiesen werden können. Diese Anforderung gilt zusätzlich zu allen anderen Netzwerkanforderungen, z. B. iSCSI, die auch ein eigenes Netzwerk benötigen.

Die IP-Adresserstellung für die Verfügbarkeitsgruppe oder FCI erfolgt im VLAN. Im folgenden Beispiel hat das VLAN ein Subnetz von 192.168.3.<x>, daher lautet die für die Verfügbarkeitsgruppe oder FCI erstellte IP-Adresse 192.168.3.104. Es müssen keine zusätzlichen Elemente konfiguriert werden, da der AG bzw. der FCI eine einzelne IP-Adresse zugewiesen ist.

Diagram showing how to configure multiple subnets with VLAN.

Konfiguration mit Pacemaker

Unter Windows unterstützt ein Windows Server-Failovercluster (WSFC) nativ mehrere Subnetze und verarbeitet mehrere IP-Adressen über eine OR-Abhängigkeit der IP-Adresse. Unter Linux gibt es keine OR-Abhängigkeit, aber es gibt eine Möglichkeit, mit Pacemaker nativ ein ordnungsgemäßes Multi-Subnetz einzurichten. Allerdings können Sie dafür nicht die normale Pacemaker-Befehlszeile verwenden. Stattdessen müssen Sie die Clusterinformationsbasis (CIB) ändern. Die CIB ist eine XML-Datei mit der Pacemaker-Konfiguration.

Diagram showing how to configure multiple subnets with Pacemaker.

Aktualisieren der CIB

  1. Exportieren Sie die CIB.

    sudo pcs cluster cib <filename>
    

    Wobei <filename> der Name ist, den Sie als CIB bezeichnen möchten.

  2. Bearbeiten Sie die generierte Datei. Suchen Sie nach dem <resources>-Abschnitt. Hier sehen Sie die verschiedenen Ressourcen, die für die AG oder die FCI erstellt wurden. Suchen Sie diejenige, die der IP-Adresse zugeordnet ist. Fügen Sie einen <instance_attributes>-Abschnitt mit den Informationen für die zweite IP-Adresse hinzu, entweder vor oder nach der vorhandenen IP-Adresse, jedoch vor <operations>. Dies ähnelt der folgenden Syntax:

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

    Hier entspricht <NameForAttribute> dem eindeutigen Namen dieses Attributs, <NameForIP> entspricht dem Namen, der der IP-Adresse zugeordnet ist, und <IPAddress> entspricht der IP-Adresse für das zweite Subnetz.

    Die Folgenden wird ein Beispiel gezeigt.

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

    Standardmäßig enthält die exportierte CIB XML-Datei nur einen <instance_attributes />-Eintrag. Wenn zwei Subnetze vorhanden sind, brauchen Sie zwei <instance_attributes />-Einträge.

    Hier sehen Sie ein Beispiel für die Einträge für zwei Subnetze:

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

    Wenn das Subnetz mehrere Server enthält, verwenden Sie boolean-op="or".

  3. Importieren Sie die geänderte CIB, und konfigurieren Sie Pacemaker neu.

    sudo pcs cluster cib-push <filename>
    

    Wobei <filename> der Name der CIB-Datei mit den geänderten IP-Adressinformationen ist.

Überprüfen des Failovers

  1. Nachdem die CIB mit der aktualisierten Konfiguration erfolgreich angewendet wurde, pingen Sie den DNS-Namen, der mit der IP-Adressressource in Pacemaker verknüpft ist. Dies sollte die IP-Adresse des Subnetzes widerspiegeln, das zurzeit die Verfügbarkeitsgruppe oder FCI hostet.

  2. Führen Sie ein Failover der Verfügbarkeitsgruppe oder FCI zum anderen Subnetz aus.

  3. Nachdem die Verfügbarkeitsgruppe oder FCI vollständig online ist, pingen Sie den DNS-Namen, der der IP-Adresse zugeordnet ist. Er sollte die IP-Adresse im zweiten Subnetz widerspiegeln.

  4. Falls gewünscht, führen Sie ein Failback der Verfügbarkeitsgruppe oder FCI zum ursprünglichen Subnetz aus.