From 71f6f3962ad62830bb6a8adf4562ef46c58ff114 Mon Sep 17 00:00:00 2001 From: Tellsanguis Date: Fri, 14 Nov 2025 22:12:38 +0100 Subject: [PATCH] =?UTF-8?q?Version=201.3:=20Fix=20premi=C3=A8re=20synchron?= =?UTF-8?q?isation=20-=20Options=20syncoid=20adaptatives?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problème résolu: - L'option --no-sync-snap était utilisée dans tous les cas, empêchant la première synchronisation de fonctionner correctement - Message d'erreur: "Removing zpool1 because no matching snapshots were found" Corrections: - Options syncoid maintenant conditionnelles selon le contexte: * Première sync: --recursive --force-delete --quiet (pas de --no-sync-snap pour permettre création snapshot initial) * Sync incrémentale: --recursive --no-sync-snap --quiet (utilise les snapshots Sanoid existants) Impact: - Permet la synchronisation initiale elitedesk → acemagician - Conserve l'optimisation des syncs incrémentales ultérieures --- zfs-nfs-replica.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/zfs-nfs-replica.sh b/zfs-nfs-replica.sh index 1c20a4e..d8d93f7 100644 --- a/zfs-nfs-replica.sh +++ b/zfs-nfs-replica.sh @@ -11,7 +11,7 @@ # - Gère l'activation/désactivation de Sanoid selon le nœud actif # # Auteur : BENE Maël -# Version : 1.2 +# Version : 1.3 # set -euo pipefail @@ -408,11 +408,10 @@ log "info" "Début de la réplication récursive: ${ZPOOL} → ${REMOTE_NODE_NAM export SSH="ssh -i ${SSH_KEY}" # Déterminer si c'est une première synchronisation -SYNCOID_OPTS="--recursive --no-sync-snap --quiet" - if check_common_snapshots "$REMOTE_NODE_IP" "$ZPOOL"; then # Snapshots en commun : réplication incrémentale normale log "info" "Mode: Réplication incrémentale (snapshots en commun détectés)" + SYNCOID_OPTS="--recursive --no-sync-snap --quiet" else # Pas de snapshots en commun : première synchronisation avec --force-delete log "warning" "Mode: Première synchronisation détectée" @@ -433,8 +432,11 @@ else exit 1 fi - log "info" "Note: Les blocs de données existants seront réutilisés (pas de transfert complet)" - SYNCOID_OPTS="${SYNCOID_OPTS} --force-delete" + log "info" "Note: Première synchronisation - syncoid va créer un snapshot initial" + log "info" " Les blocs de données existants seront réutilisés (pas de transfert complet)" + # Pour la première sync: pas de --no-sync-snap (on veut que syncoid crée un snapshot) + # mais on garde --force-delete pour écraser les datasets vides/incompatibles + SYNCOID_OPTS="--recursive --force-delete --quiet" fi # Lancer la réplication avec les options appropriées