5 novembre 2026
Logo Linux

Mise en place d’une réplication NFS automatisée entre deux serveurs RHEL 9 avec rsync et systemd‑timer

Mise en place d’une réplication NFS automatisée entre deux serveurs RHEL 9 avec rsync et systemd‑timerlinux
Photo: Tochukwu Ekeh / Pexels
🖥️ Illustration
root@rhel‑src:~# rsync_nfs.sh
root@rhel-src:~# rsync -az --delete /export/data/ root@10.0.0.2:/mnt/nfs_data/
sending incremental file list
./
file1.txt
subdir/
subdir/file2.log

sent 12.34K bytes  received 8.56K bytes  42.00K bytes/sec
total size is 45.67K  speedup is 2.23
root@rhel-src:~#

Contexte 📄

Dans un environnement multi‑sites, il est fréquent de devoir répliquer des partages NFS afin d’assurer la disponibilité et la résilience des données. Sous RHEL 9, rsync couplé à un systemd‑timer permet d’automatiser cette réplication de façon fiable, sans dépendre de services externes.

réplication nfs rsync systemdlinux
Photo: panumas nikhomkhai / Pexels

Quand l’utiliser ⏰

  • Vous avez un répertoire NFS critique à garder synchronisé entre deux datacenters.
  • Vous souhaitez une solution légère, sans besoin d’un outil de réplication dédié.
  • Vous avez besoin d’une planification flexible (ex. toutes les 15 minutes).

Pré‑requis ✅

  • Deux serveurs RHEL 9 (ex. rhel‑src et rhel‑dst) avec accès root.
  • Le partage NFS exporté depuis rhel‑src et monté sur rhel‑dst (ex. /export/data).
  • Le paquet rsync installé sur les deux machines.

🔹 Étape 1 – Installer rsync et créer le point de montage NFS

# Sur les deux serveurs
yum install -y rsync nfs-utils

# Sur rhel‑src : export du répertoire
echo "/export/data 10.0.0.2(rw,sync,no_root_squash)" >> /etc/exports
exportfs -ra

# Sur rhel‑dst : créer et monter le point
mkdir -p /mnt/nfs_data
mount -t nfs 10.0.0.1:/export/data /mnt/nfs_data

🔹 Étape 2 – Créer le script de réplication rsync

Le script sera stocké sur rhel‑src et exécuté via systemd.

cat > /usr/local/bin/rsync_nfs.sh <<'EOF'
#!/bin/bash
SRC="/export/data/"
DST="root@10.0.0.2:/mnt/nfs_data/"

# Options : -a (archive), -z (compression), --delete (purge)
rsync -az --delete "$SRC" "$DST"
EOF
chmod +x /usr/local/bin/rsync_nfs.sh

🔹 Étape 3 – Créer le service systemd

cat > /etc/systemd/system/rsync-nfs.service <<'EOF'
[Unit]
Description=Synchronisation NFS avec rsync
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/rsync_nfs.sh
EOF

🔹 Étape 4 – Créer le timer systemd (exécution toutes les 15 minutes)

cat > /etc/systemd/system/rsync-nfs.timer <<'EOF'
[Unit]
Description=Timer pour rsync‑nfs.service toutes les 15 minutes

[Timer]
OnBootSec=5min
OnUnitActiveSec=15min
Persistent=true

[Install]
WantedBy=timers.target
EOF

# Activer le timer
systemctl daemon-reload
systemctl enable --now rsync-nfs.timer

⚠️ Bonnes pratiques de sécurité

  • SSH keys limitées : Utilisez une clé SSH dédiée sans mot de passe, restreinte à l’utilisateur root ou à un compte limité avec sudo uniquement pour rsync. Placez la clé dans /root/.ssh/authorized_keys sur la machine destination.
  • Chiffrement du trafic : Activez rsync -e "ssh -c aes256-gcm@openssh.com" si le réseau n’est pas dédié.
  • Vérification d’intégrité : Ajoutez --checksum à rsync en phase de test pour détecter les corruptions.
  • Journalisation : Redirigez la sortie vers /var/log/rsync-nfs.log dans le service pour audit.

✅ Conclusion

Vous disposez maintenant d’une réplication NFS fiable, automatisée toutes les 15 minutes, grâce à rsync et systemd‑timer. Cette approche légère évite l’ajout de logiciels tiers tout en offrant flexibilité et contrôle. N’oubliez pas de surveiller les logs et d’ajuster la fréquence selon vos besoins de RTO/RPO.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *