📄 Remplacement d'une VM par son réplicat

Remplacement d'une VM par son réplicat

Contexte

Cette procédure vise à décrire la remise en service du réplicat d'une VM dont l'original n'est plus en état de démarrer.

Recommandations

ℹ️Le réplicat n'est pas une sauvegarde ; la fraîcheur des données correspond à la dernière réplication réussie.

⚠️Si le système a subi une modification compromettant le redémarrage suivant et qu'une réplication a eu lieu ensuite, le réplicat sera incapable de redémarrer.

▶️Une bonne pratique consiste à redémarrer régulièrement la source et à procéder au différentiel de la réplication ensuite.

Pré requis

La VM doit avoir un réplicat créé avec une sauvegarde en mode "réplication continue"

Actions

S'assurer que la VM source soit bien arrêtée.
Supprimer la réplication continue
  • Dans XOA, onglet “Backup → Continuous Replication”.
  • Trouver le job lié à cette VM.
  • Cliquer sur “Delete job” (pas juste pause). Cela supprime le lien de CR sans toucher la VM répliquée.
Nettoyer les tags et métadonnées de réplication
  • Dans la VM réplicat → onglet Advanced → Tags, puis “Delete tag(s)”.
Renommer la VM répliquée pour correspondre au nom original
Optionnel : vérifier que les noms de disques (VDI) sont cohérents dans le SR.

Nettoyer les métadonnées de la réplication avec le script
# UUID de la VM à récupérer sur XoA
VMUUID=""

echo "=== Nettoyage des métadonnées de réplication pour la VM $VMUUID ==="

# 1. Supprimer les clés 'xo:replication' dans other-config
for key in $(xe vm-param-list uuid=$VMUUID | grep -oP '(?<=other-config\(key\)=)xo:replication[^; ]*'); do
echo " - Suppression de la clé $key"
xe vm-param-remove uuid=$VMUUID param-name=other-config param-key=$key
done

# 2. Supprimer les anciennes clés de backup XO (si présentes)
for key in $(xe vm-param-list uuid=$VMUUID | grep -oP '(?<=other-config\(key\)=)xo:backup[^; ]*'); do
echo " - Suppression de la clé $key"
xe vm-param-remove uuid=$VMUUID param-name=other-config param-key=$key
done

# 3. Supprimer les tags de réplication restants
for tag in $(xe vm-list uuid=$VMUUID params=tags --minimal | tr ',' ' '); do
if [[ $tag == *replication* || $tag == *xo* ]]; then
echo " - Suppression du tag $tag"
xe vm-param-remove uuid=$VMUUID param-name=tags param-key="$tag"
fi
done

# 4. Vérifier qu'il ne reste plus rien
echo "=== Vérification finale ==="
xe vm-param-list uuid=$VMUUID | egrep "replication|backup|tag" || echo "Nettoyage OK ✅"

Vérifier d’abord que la nouvelle VM fonctionne bien (réseau, UUID SR, snapshots, etc.).

(Optionnel) Supprimer la VM source dans le pool initial
Une fois validée en prod, supprimer l’ancienne VM et ses disques.

(Optionnel) Mettre à jour le backup / plan de sauvegarde

La VM répliquée est considérée comme “nouvelle” pour XOA, donc créer un nouveau job de backup si besoin.