HA / 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.confimage.png

Configuration numéro 2, SLAVE dans /etc/keepalived/keepalived.conf

image.png

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 

image.png

Une meilleur config pour apache 1 / master – check sur le service httpd.

image.png

Une meilleur config pour apache 2 / backup – check sur le service httpd. 

image.png

Verifier l'état d'un cluster sous PaceMaker

image.png

image.png

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

image.png

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

image.png

image.png

image.png

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 

image.png

Format json pour vérification :

image.png

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

image.png