Implantar Failover Automático de IP Virtual

O Corosync e o Pacemaker devem ser instalados em clusters antes da integração com o Private Cloud Appliance e do failover de teste do IP secundário.

Instalar em Clusters

  1. Instale os pacotes Corosync e Pacemaker.
    yum install corosync pacemaker pcs
    yum install python36-oci-cli
    Configure o proxy de acordo com os requisitos de laboratório para acessar o repositório yum.
  2. Faça o backup da configuração de heartback dos clusters.
    sudo cp /usr/lib/ocf/resource.d/heartbeat/IPaddr2 /usr/lib/ocf/resource.d/heartbeat/IPaddr2.bck
  3. Execute firewalld, definido de acordo com as necessidades de segurança do cliente para o cluster.
  4. Atualize o arquivo /etc/hosts para adicionar as informações de IP e nome do host do nó para todos os nós do cluster para configurar um sistema DNS local.
    Exemplo:
    <Instance-Node1 Private IP> node1-name
    <Instance-Node2 Private IP> node2-name
  5. Crie um usuário e defina uma senha.
    sudo passwd hacluster
  6. Inicie e ative os serviços de cluster.
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    sudo systemctl enable corosync
    sudo systemctl enable pcsd
  7. Verifique a autenticação do cluster.
    sudo pcs cluster auth <node1-name> <node2-name>
    <node1-name> : Cluster Node1/Hostname
    <node2-name> : Cluster Node1/Hostname
    Exemplo:
    sudo pcs cluster auth a-node1 a-node2
    Username: hacluster
    Password: 
    a-node1: Authorized
    a-node2: Authorized
  8. Configuração 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
    Exemplo:
    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. Inicie o cluster para todos os nós do cluster de qualquer um dos nós do cluster.
    sudo pcs cluster start --name clustername -–all
    Exemplo:
    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. Definir propriedade do marca-passo.
    sudo pcs property set stonith-enabled=false
    sudo pcs property set no-quorum-policy=ignore
  11. Verifique o status do cluster em execução.
    sudo pcs cluster status
    Exemplo:
    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 a configuração do OCI de acordo com as definições do Private Cloud Appliance em todos os nós do cluster. A configuração do perfil de configuração é muito importante para estabelecer conexão com o Private Cloud Appliance.
    Exemplo: i.e. /root/.oci/config
    [DEFAULT]
    user=<User-ocid1>
    fingerprint=<fingerprint>
    key_file=<Key-Location>
    tenancy=<Tenancy ocid1>
    region=<PCA FQDN>

Defina as Definições de Heartbeat em Clusters e Integre com o Private Cloud Appliance X9-2 Instâncias para Failover VIP

  1. Para executar o 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
    Em vez disso, você pode informar o certificado do Private Cloud Appliance com o comando assign-private-ip. Por exemplo: opção --cert-bundle <Certification Location for Private Cloud Appliance>.
    Veja um exemplo do Oracle Linux 7.9. Para sistemas operacionais Oracle Linux 8 e Centos, procure o número da linha de função add_interface () em IPaddr2 e altere o número da linha de acordo ao atualizar as entradas de recurso IPaddr2 do 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. Implemente modificações de código em IPaddr2.
    • Substitua ocid1.vnic.pca.NODE1-vNIC-OCID e ocid1.vnic.pca.NODE2-vNIC-OCID pelos OCIDs (placa de interface de rede virtual) da sua própria VNIC do OCI.
    • Substitua as entradas de nome de host node1 e node2 por seus próprios nomes de host clusternodes.
    • Em OCI_CLI_CERT_BUNDLE, defina a localização do pacote CERT para o Private Cloud Appliance.
    • Para o IP da VNIC, defina o IP da VNIC de acordo com sua configuração, sub-rede, VCN e certifique-se de que esse seja um IP exclusivo e não alocado para nenhuma outra VNIC.

Configurar o Recurso de Cluster

Para configurar o recurso de cluster, execute:

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

Observação:

  • O cidr_netmask=24 no comando Pacemaker depende do tamanho da sub-rede ser /24.
  • O ip=10.212.15.13 é o IP privado secundário.

Exemplo:

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

Testar Failover do IP Secundário

Para testar o failover da execução de IP secundário:

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

Por exemplo:

sudo pcs resource move HAFailover a-node2

Verificar Failover Bem-sucedido

Os recursos devem ser iniciados em node2. Para verificar o failover bem-sucedido, execute:

# pcs status