Desplegar failover de IP virtual automático

Corosync y Pacemaker deben estar instalados en clusters antes de integrarse con Private Cloud Appliance y probar el failover de la IP secundaria.

Instalar en clusters

  1. Instale los paquetes Corosync y Pacemaker.
    yum install corosync pacemaker pcs
    yum install python36-oci-cli
    Configure el proxy según los requisitos de laboratorio para acceder a los repositorios de yum.
  2. Realice la copia de seguridad de la configuración de Heartback de los clusters.
    sudo cp /usr/lib/ocf/resource.d/heartbeat/IPaddr2 /usr/lib/ocf/resource.d/heartbeat/IPaddr2.bck
  3. Ejecute firewalld, definido por las necesidades de seguridad del cliente para el cluster.
  4. Actualice el archivo /etc/hosts para agregar la información de nombre de host y IP del nodo para todos los nodos del cluster a fin de configurar un sistema DNS local.
    Ejemplo:
    <Instance-Node1 Private IP> node1-name
    <Instance-Node2 Private IP> node2-name
  5. Cree un usuario y defina una contraseña.
    sudo passwd hacluster
  6. Inicie y active los servicios de cluster.
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    sudo systemctl enable corosync
    sudo systemctl enable pcsd
  7. Verifique la autenticación del cluster.
    sudo pcs cluster auth <node1-name> <node2-name>
    <node1-name> : Cluster Node1/Hostname
    <node2-name> : Cluster Node1/Hostname
    Ejemplo:
    sudo pcs cluster auth a-node1 a-node2
    Username: hacluster
    Password: 
    a-node1: Authorized
    a-node2: Authorized
  8. Configuración de cluster.
    sudo pcs cluster setup --name <clustername> <node1-name> <node2-name>
    <clustername> : Cluster Name
    <node1-name> : Cluster Node1/Hostname
    <node2-name> : Cluster Node1/Hostname
    Ejemplo:
    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. Iniciar el cluster para todos los nodos del cluster desde cualquiera de los nodos del cluster.
    sudo pcs cluster start --name clustername -–all
    Ejemplo:
    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. Defina la propiedad de marcapasos.
    sudo pcs property set stonith-enabled=false
    sudo pcs property set no-quorum-policy=ignore
  11. Verifique el estado del cluster en ejecución.
    sudo pcs cluster status
    Ejemplo:
    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. Defina la configuración de OCI según la configuración de Private Cloud Appliance en todos los nodos de cluster. La configuración del perfil de configuración es muy importante para conectarse a Private Cloud Appliance.
    Ejemplo: i.e. /root/.oci/config
    [DEFAULT]
    user=<User-ocid1>
    fingerprint=<fingerprint>
    key_file=<Key-Location>
    tenancy=<Tenancy ocid1>
    region=<PCA FQDN>

Definición de la configuración de latido en clusters e integración con instancias de Private Cloud Appliance X9-2 para failover de VIP

  1. Para ejecutar Private Cloud Appliance:
    sudo sed -i '633i\export OCI_CLI_CERT_BUNDLE=/root/.oci/ca-chain.cert.pem\' /usr/lib/ocf/resource.d/heartbeat/IPaddr2
    En su lugar, puede transferir el certificado de Private Cloud Appliance con el comando assign-private-ip. Por ejemplo: opción --cert-bundle <Certification Location for Private Cloud Appliance>.
    A continuación, se muestra un ejemplo de Oracle Linux 7.9. Para los sistemas operativos Oracle Linux 8 y Centos, busque el número de línea de función add_interface () en IPaddr2 y cambie el número de línea según corresponda al actualizar las entradas del recurso IPaddr2 de Linux HA.
    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. Implante modificaciones para el código en IPaddr2.
    • Sustituya ocid1.vnic.pca.NODE1-vNIC-OCID y ocid1.vnic.pca.NODE2-vNIC-OCID por sus propios OCID de VNIC de OCI (tarjeta de interfaz de red virtual).
    • Sustituya las entradas de nombre de host node1 y node2 por sus propios nombres de host clusternodes.
    • En OCI_CLI_CERT_BUNDLE, defina la ubicación del paquete CERT para Private Cloud Appliance.
    • Para la IP de VNIC, defina la IP de VNIC de acuerdo con su configuración, subred y VCN, y asegúrese de que esta sea una IP única y no esté asignada a ninguna otra VNIC.

Configuración del recurso de cluster

Para configurar el recurso de cluster, ejecute:

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

Nota:

  • cidr_netmask=24 en el comando Pacemaker depende de que el tamaño de la subred sea /24.
  • ip=10.212.15.13 es la IP privada secundaria.

Ejemplo:

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

Prueba de failover de la IP secundaria

Para probar el failover de la ejecución de IP secundaria:

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

Por ejemplo:

sudo pcs resource move HAFailover a-node2

Verificación de Failover Correcto

Los recursos se deben iniciar en node2. Para verificar el failover correcto, ejecute:

# pcs status