Déployer la gestion automatique des incidents d'adresse IP virtuelle

Corosync et Pacemaker doivent être installés sur les clusters avant l'intégration à Private Cloud Appliance et le test du basculement de l'adresse IP secondaire.

Installation sur les clusters

  1. Installez les packages Corosync et Pacemaker.
    yum install corosync pacemaker pcs
    yum install python36-oci-cli
    Configurez un proxy selon les exigences du laboratoire pour atteindre les référentiels yum.
  2. Effectuez la sauvegarde de la configuration de coeur arrière des clusters.
    sudo cp /usr/lib/ocf/resource.d/heartbeat/IPaddr2 /usr/lib/ocf/resource.d/heartbeat/IPaddr2.bck
  3. Exécutez firewalld, défini selon les besoins de sécurité du client pour le cluster.
  4. Mettez à jour le fichier /etc/hosts pour ajouter les informations d'adresse IP et de nom d'hôte du noeud pour tous les noeuds de cluster afin de configurer un système DNS local.
    Par exemple :
    <Instance-Node1 Private IP> node1-name
    <Instance-Node2 Private IP> node2-name
  5. Créez un utilisateur et définissez un mot de passe.
    sudo passwd hacluster
  6. Démarrez et activez les services du cluster.
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    sudo systemctl enable corosync
    sudo systemctl enable pcsd
  7. Vérifiez l'authentification du cluster.
    sudo pcs cluster auth <node1-name> <node2-name>
    <node1-name> : Cluster Node1/Hostname
    <node2-name> : Cluster Node1/Hostname
    Par exemple :
    sudo pcs cluster auth a-node1 a-node2
    Username: hacluster
    Password: 
    a-node1: Authorized
    a-node2: Authorized
  8. Configuration 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
    Par exemple :
    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. Démarrage du cluster pour tous les noeuds de cluster à partir de n'importe lequel.
    sudo pcs cluster start --name clustername -–all
    Par exemple :
    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. Définissez la propriété pacemaker.
    sudo pcs property set stonith-enabled=false
    sudo pcs property set no-quorum-policy=ignore
  11. Vérifiez le statut du cluster en cours d'exécution.
    sudo pcs cluster status
    Par exemple :
    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. Définissez la configuration OCI en fonction de vos paramètres Private Cloud Appliance sur tous les noeuds de cluster. La configuration du profil de configuration est très importante pour la connexion à Private Cloud Appliance.
    Exemple : i.e. /root/.oci/config
    [DEFAULT]
    user=<User-ocid1>
    fingerprint=<fingerprint>
    key_file=<Key-Location>
    tenancy=<Tenancy ocid1>
    region=<PCA FQDN>

Définition des paramètres de signal d'activité sur les clusters et intégration aux instances Private Cloud Appliance X9-2 pour le basculement d'adresse IP virtuelle

  1. Pour l'exécution de 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
    Vous pouvez transmettre le certificat Private Cloud Appliance à l'aide de la commande assign-private-ip. Par exemple : option --cert-bundle <Certification Location for Private Cloud Appliance>.
    Voici un exemple pour Oracle Linux 7.9. Pour les systèmes d'exploitation Oracle Linux 8 et Centos, recherchez le numéro de ligne de fonction add_interface () dans IPaddr2 et modifiez le numéro de ligne en conséquence lors de la mise à jour des entrées de ressource Linux HA IPaddr2.
    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. Implémentez des modifications pour le code dans IPaddr2.
    • Remplacez ocid1.vnic.pca.NODE1-vNIC-OCID et ocid1.vnic.pca.NODE2-vNIC-OCID par vos propres OCID de carte d'interface réseau virtuelle OCI (carte d'interface réseau virtuelle).
    • Remplacez les entrées de nom d'hôte node1 et node2 par vos propres noms d'hôte de clusternodes.
    • Dans OCI_CLI_CERT_BUNDLE, définissez l'emplacement du groupe CERT pour Private Cloud Appliance.
    • Pour votre adresse IP de VNIC, définissez l'adresse IP de VNIC en fonction de votre configuration, de votre sous-réseau, de votre VCN et assurez-vous qu'il s'agit d'une adresse IP unique et non allouée à une autre VNIC.

Configuration de la ressource de cluster

Pour configurer la ressource de cluster, exécutez la commande suivante :

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

Remarques :

  • La valeur cidr_netmask=24 dans la commande Pacemaker dépend de la taille du sous-réseau /24.
  • ip=10.212.15.13 est l'adresse IP privée secondaire.

Par exemple :

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 de basculement de l'adresse IP secondaire

Pour tester le basculement de l'exécution de l'adresse IP secondaire :

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

Exemple :

sudo pcs resource move HAFailover a-node2

Vérification du basculement réussi

Les ressources doivent être démarrées sur node2. Pour vérifier que le basculement a réussi, exécutez :

# pcs status