Automatisches virtuelles IP-Failover bereitstellen

Corosync und Pacemaker müssen vor der Integration mit Private Cloud Appliance und dem Testen des Failovers der sekundären IP in Clustern installiert werden.

Auf Clustern installieren

  1. Installieren Sie Corosync- und Pacemaker-Pakete.
    yum install corosync pacemaker pcs
    yum install python36-oci-cli
    Richten Sie einen Proxy gemäß den Übungsanforderungen ein, um yum-Repositorys zu erreichen.
  2. Erstellen Sie ein Backup der Heartback-Konfiguration der Cluster.
    sudo cp /usr/lib/ocf/resource.d/heartbeat/IPaddr2 /usr/lib/ocf/resource.d/heartbeat/IPaddr2.bck
  3. Führen Sie firewalld aus, definiert nach Kundensicherheitsanforderungen für das Cluster.
  4. Aktualisieren Sie die Datei /etc/hosts, um die IP- und Hostnameninformationen des Knotens für alle Clusterknoten hinzuzufügen, um ein lokales DNS-System einzurichten.
    Beispiel:
    <Instance-Node1 Private IP> node1-name
    <Instance-Node2 Private IP> node2-name
  5. Erstellen Sie einen Benutzer, und legen Sie ein Kennwort fest.
    sudo passwd hacluster
  6. Cluster-Services starten und aktivieren
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    sudo systemctl enable corosync
    sudo systemctl enable pcsd
  7. Prüfen Sie die Clusterauthentifizierung.
    sudo pcs cluster auth <node1-name> <node2-name>
    <node1-name> : Cluster Node1/Hostname
    <node2-name> : Cluster Node1/Hostname
    Beispiel:
    sudo pcs cluster auth a-node1 a-node2
    Username: hacluster
    Password: 
    a-node1: Authorized
    a-node2: Authorized
  8. Cluster-Setup.
    sudo pcs cluster setup --name <clustername> <node1-name> <node2-name>
    <clustername> : Cluster Name
    <node1-name> : Cluster Node1/Hostname
    <node2-name> : Cluster Node1/Hostname
    Beispiel:
    sudo pcs cluster auth a-node1 a-node2
    Username: hacluster
    Password: 
    a-node1: Authorized
    a-node2: Authorized
    [root@a-node1 opc] # sudo pcs cluster setup HACluster a-node1 a-node2
    Error: A cluster name (--name <name>) is required to setup a cluster
    [root@a-node1 opc] # sudo pcs cluster setup --name HACluster a-node1 a-node2
    Destroying cluster on nodes: a-node1, a-node2...
    a-node1: Stopping Cluster (pacemaker)...
    a-node2: Stopping Cluster (pacemaker)...
    a-node2: Successfully destroyed cluster
    a-node1: Successfully destroyed cluster
    Sending 'pacemaker_remote authkey' to 'a-node1', 'a-node2'
    a-node1: successful distribution of the file 'pacemaker_remote authkey'
    a-node2: successful distribution of the file 'pacemaker_remote authkey'
    Sending cluster config files to the nodes...
    a-node1: Succeeded
    a-node2: Succeeded
    Synchronizing pcsd certificates on nodes a-node1, a-node2...
    a-node1: Success
    a-node2: Success
    Restarting pcsd on the nodes in order to reload the certificates...
    a-node1: Success
    a-node2: Success
  9. Starten Sie das Cluster für alle Clusterknoten von einem der Clusterknoten aus.
    sudo pcs cluster start --name clustername -–all
    Beispiel:
    sudo pcs cluster start --name HACluster --all
    a-node1: Starting Cluster (corosync)...
    a-node2: Starting Cluster (corosync)...
    a-node2: Starting Cluster (pacemaker)...
    a-node1: Starting Cluster (pacemaker)...
  10. Pacemaker-Eigenschaft festlegen.
    sudo pcs property set stonith-enabled=false
    sudo pcs property set no-quorum-policy=ignore
  11. Prüfen Sie den aktiven Clusterstatus.
    sudo pcs cluster status
    Beispiel:
    sudo pcs cluster status
    Cluster Status:
    Stack: corosync
    Current DC: a-node2 (version 1.1.23-1.0.1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Fri Aug 19 03:07:25 2022
    Last change: Fri Aug 19 03:06:13 2022 by root via cibadmin on a-node1
    2 nodes configured
    0 resource instances configured
    PCSD Status:
    a-node1: Online
    a-node2: Online
  12. Legen Sie die OCI-Konfiguration gemäß den Einstellungen für Private Cloud Appliance auf allen Clusterknoten fest. Die Einrichtung des Konfigurationsprofils ist für die Verbindung mit Private Cloud Appliance sehr wichtig.
    Beispiel: i.e. /root/.oci/config
    [DEFAULT]
    user=<User-ocid1>
    fingerprint=<fingerprint>
    key_file=<Key-Location>
    tenancy=<Tenancy ocid1>
    region=<PCA FQDN>

Heartbeat-Einstellungen für Cluster definieren und mit Private Cloud Appliance X9-2-Instanzen für VIP-Failover integrieren

  1. Führen Sie unter Private Cloud Appliance Folgendes aus:
    sudo sed -i '633i\export OCI_CLI_CERT_BUNDLE=/root/.oci/ca-chain.cert.pem\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    Sie können stattdessen das Private Cloud Appliance-Zertifikat mit dem Befehl assign-private-ip übergeben. Beispiel: Option --cert-bundle <Certification Location for Private Cloud Appliance>.
    Im Folgenden finden Sie ein Beispiel für Oracle Linux 7.9. Suchen Sie bei Oracle Linux 8- und Centos-Betriebssystemen nach der Positionsnummer der Funktion add_interface () in IPaddr2, und ändern Sie die Positionsnummer entsprechend, wenn Sie Linux HA IPaddr2-Ressourceneinträge aktualisieren.
    sudo sed -i '628i\server="`hostname -s`"\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '629i\node1vnic="ocid1.vnic.pca.NODE1-vNIC-OCID"\' 
    /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '630i\node2vnic="ocid1.vnic.pca.NODE2-vNIC-OCID"\' 
    /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '631i\vnicip="10.212.15.13"\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '632i\export LC_ALL=C.UTF-8\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '633i\export LANG=C.UTF-8\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '633i\export OCI_CLI_CERT_BUNDLE=/root/.oci/ca-chain.cert.pem\' 
    /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '634i\touch /tmp/error.log\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '635i\##### OCI/IPaddr Integration\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '636i\ if [ $server = "node1" ]; then\' 
    /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '637i\ oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $node1vnic --ip-address $vnicip >/tmp/error.log 2>&1\' 
    /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '638i\ else \' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '639i\ oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $node2vnic --ip-address $vnicip >/tmp/error.log 2>&1\' 
    /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    sudo sed -i '640i\ fi \' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    
  2. Implementieren Sie Änderungen für Code in IPaddr2.
    • Ersetzen Sie ocid1.VNIC.pca.NODE1-VNIC-OCID und ocid1.VNIC.pca.NODE2-VNIC-OCID durch die OCIDs Ihrer eigenen OCI-VNICs (virtuelle Netzwerkkarte).
    • Ersetzen Sie node1- und node2-Hostnamen durch Ihre eigenen Clusternodes-Hostnamen.
    • Definieren Sie in OCI_CLI_CERT_BUNDLE das CERT-Bundle-Verzeichnis für Private Cloud Appliance.
    • Definieren Sie für Ihre VNIC-IP die VNIC-IP entsprechend Ihrer Konfiguration, Ihrem Subnetz und Ihrem VCN. Stellen Sie sicher, dass es sich um eine eindeutige IP handelt, die keiner anderen VNIC zugewiesen ist.

Clusterressourcen einrichten

So richten Sie die Clusterressource ein:

pcs resource create <Cluster-Resource-Name> ocf:heartbeat:IPaddr2 ip=10.212.15.13 cidr_netmask=24 op monitor interval=20

Hinweis:

  • Die cidr_netmask=24 im Pacemaker-Befehl hängt von der Subnetzgröße von /24 ab.
  • ip=10.212.15.13 ist die sekundäre private IP.

Beispiel:

pcs status
Cluster name: HACluster
Stack: corosync
Current DC: a-node2 (version 1.1.23-1.0.1.el7_9.1-9acf116022) - partition with quorum
Last updated: Fri Aug 19 03:34:51 2022
Last change: Fri Aug 19 03:34:44 2022 by root via cibadmin on a-node1
2 nodes configured
1 resource instance configured
Online: [ a-node1 a-node2 ]
Full list of resources:
HAFailover (ocf::heartbeat:IPaddr2): Started a-node1
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled

Test-Failover der sekundären IP

So testen Sie das Failover der sekundären IP-Ausführung:

sudo pcs resource move <cluster-name> <node2-name>
<clustername> : Cluster Name
<node2-name> : Cluster Node1/Hostname

Beispiel:

sudo pcs resource move HAFailover a-node2

Erfolgreiches Failover prüfen

Ressourcen müssen auf node2 gestartet werden. Um ein erfolgreiches Failover zu prüfen, führen Sie folgenden Befehl aus:

# pcs status