HA / CLUSTER
- Keepalived HA
- Verifier l'état d'un cluster sous PaceMaker
- Correction d'erreur drbd resynchronisation de la réplication
- HAproxy.conf
- Commande Tshoot Cluster NFS/PACEMAKER/COROSYNC
- Script de Nettoyage ressource sur un cluster NFS
- Patroni cluster
Keepalived HA
Nous avons setup un Keepalived pour les base de donnée avec une VIP (virtual adresse IP), pour qu'en cas de shutdown sur la base de donnée MAITRE, le standby reprennent directement le rélais
Configuration numéro 1, MAITRE dans /etc/keepalived/keepalived.conf
Configuration numéro 2, SLAVE dans /etc/keepalived/keepalived.conf
Nous avons focaliser notre flipping de VIP sur le service Pgsql14 via script :
Si il est down sur le maitre, il partira sur les intervalle définit dans le fichier de conf sur le slave.
La BDD sera donc hautement disponible le tant de débuger le nœud 1
Une meilleur config pour apache 1 / master – check sur le service httpd.
Une meilleur config pour apache 2 / backup – check sur le service httpd.
Verifier l'état d'un cluster sous PaceMaker
Pour l'alerte suivante : App-DRBD-Monitor --> DRBD: 1 crit, 0 okay:
Le service drbd ne doit pas être démarré manullement : il est géré par pacemaker via les commandes pcs
Identifier l'état du cluster :
drbdadm status
drbdmon (ne doit pas afficher d'alerte )
Mettre les sonde drbd en maintenance et procéder à une resynchronisation drbd
Déplacement des ressoures action préreboot/maj :
Vérifier l'etat du cluster
pcs status --full drbdadm status
drbdmon (ne doit pas afficher d'alerte )
Si drbd ok: déplacer les ressources sur le nœud sur lequel il n'y aura pas d'opération pcs resource move NOM_DU_GROUP_DE_RESOURCE (exemple ci dessus : MYSQL )
Vérifier le déplacement des resource avec pcs status mettre le nœud secondaire (sur lequel on va faire la mise à jour ou le reboot) en maintenance
pcs node maintenance nomdunoeud
mettre ensuite le nœud en standby
pcs node standby nomdunoeud
procéder aux opérations de maintenance
Correction d'erreur drbd resynchronisation de la réplication
Correction d'erreur drbd resynchronisation de la réplication :
Identifier le noeud maitre
pcs status --full
mettre le nœud secondaire en maintenance avec pcs
pcs node maintenance nomdunoeudpcs
Identifier la ou les ressources drbd avec la commande :
drbdadm dump
sur le nœud secondaire invalider les données de réplication drbd pour chacune des ressources :
drbdadm invalidate Nom_de_ressource_drbd
Sur le nœud primaire préparer pour une resynchronisation forcée
drbdadm invalidate-remote Nom_de_ressource_drbd
Sortir le nœud secondaire de maintenance
pcs node unmaintenance nomdunoeudpcs
Vérifier la synchronisation drbd sur les deux nœud avec d'un coté :
drbdmon
et sur l'autre nœud:
watch -n1 drbdadm status
HAproxy.conf
Config sur les machines proxy
Format json pour vérification :
Commande Tshoot Cluster NFS/PACEMAKER/COROSYNC
lors de l'installation de votre cluster il faut que cette requête soit en état OK sur les 2 nœuds sinon votre cluster ne basculeras pas, j'ai eu le problème sur mes proxy ouvert, j'ai du les désactivé pour que la bascule fonctionne:
curl -k https://*****.fr:2224/remote/status/
Commande pour cleanup vos ressource si elles sont KO:
crm_resource --cleanup -r p_drbd_ha_nfs
crm_resource --cleanup -r p_fs_drbd1
Commande pour disable ou remettre un noeud dans le cluster:
sudo pcs cluster standby <nom_du_nœud>
sudo pcs cluster unstandby <nom_du_nœud>
disable les ressource sur un noeuds isolé:
pcs resource disable p_exportfs_openshift_prod
pcs resource disable p_exportfs_prod
pcs resource disable p_nfsserver
pcs resource disable p_fs_drbd1
pcs resource disable p_drbd_ha_nfs
crm_resource --resource p_drbd_ha_nfs --node ****.fr --demote
réactiver les ressource sur un noeuds isolé:
pcs resource enable p_drbd_ha_nfs
pcs resource enable p_fs_drbd1
pcs resource enable p_nfsserver
pcs resource enable p_exportfs_prod
pcs resource enable p_exportfs_openshift_prod
crm_resource --resource p_drbd_ha_nfs --node ****.fr --promote
deconnecter ou connecter drbd sur le noeud isolé
drbdadm disconnect ha_nfs
sudo drbdadm connect ha_nfs
Forcer la synchronisation avec les données du nœud primaire
drbdadm connect --discard-my-data ha_nfs
Status du drbd
drbdadm status
Script de Nettoyage ressource sur un cluster NFS
Script à appliquer sur une crontab de 24h pour effectuer un nettoyage de vos ressource, si le NFS est consommé fréquemment, toujours choisir la première ressource de votre cluster cela nettoieras le reste à la suite peu importe le nombre de ressource derrière, le script rajoute un print sur des logs si cela a bien fonctionner :
#!/bin/bash
# Variable pour le fichier de log
LOG_FILE="/var/log/cleanup_p_drbd_ha_nfs.log"
# Bloc conditionnel pour exécuter le nettoyage
if sudo crm_resource -cleanup -r p_drbd_ha_nfs && sudo crm_resource -cleanup -r p_exportsfs_pprod; then
# Si les deux commandes se sont exécutées avec succès
echo "$(date +'%Y-%m-%d %H:%M:%S') - Clean up successful" >> "$LOG_FILE"
else
# Si au moins une des commandes a échoué
echo "$(date +'%Y-%m-%d %H:%M:%S') - Clean up failed" >> "$LOG_FILE"
fi
Patroni cluster
Lister un cluster patroni :
patronictl -c /etc/patroni/patroni.yml list