Rsync : sauvegarde incrémentale de gros fichiers

kortex
2014-11-20T14:26:41+01:00
Linux.général, sauvegarde, incrémentale, mongodb, rsync

Bonjour,

Je sollicite la communauté car j'ai un soucis avec RSYNC.
J'ai une base de données MongoDB qui contient un bon To de données.

Cette base est sauvegardée via "mongodump" toutes les nuits localement sur la machine qui l'héberge (nous l'appellerons "srvMaster" pour faciliter la compréhension).
Je conserve deux dumps : celui du jour précédent et celui du jour J.
Le fichier produit par mongodump est purement binaire.

Le lendemain matin, un deuxième serveur "srvSlave" vient chercher la sauvegarde du jour J la rapatrie en local.

L'arborescence est la suivante :

sur srvMaster :

dernière sauvegarde : /home/backup/mongo/

sauvegarde J-1 : /home/backup/mongo_prev/

sur srvSlave :

dernière sauvegarde : /home/backup/mongo/

sauvegarde J-1 : /home/backup/mongo_prev/

Le problème est que RSYNC télécharge l'ensemble des gros fichiers binaires et non le delta. Ma base de données ne fait que de l'insertion (aucun delete, aucun update) donc j'imagine (selon les mécanismes de MongoDB) que les nouvelles données sont toujours en fin de dump.

Au début, je faisais transiter le RSYNC sur un montage NFS mais on me l'a déconseillé. Je me suis donc orienté sur RSYNC over SSH : même soucis.

Les commandes sont toujours exécutées depuis srvSlave donc je tire les données.
Voici quelques essais :

d'abord des essais en local : /usr/bin/sudo -u nobody /usr/bin/rsync -av --delete /home/backup/mongo/* /home/backup/mongo/. /usr/bin/sudo -u nobody /usr/bin/rsync -av --stats --delete --partial --inplace --no-whole-file --checksum /home/backup/mongo/* /home/backup/mongo/.

puis à distance : /usr/bin/sudo -u nobody /usr/bin/rsync -av --stats --delete --partial --inplace --no-whole-file --checksum -e "ssh -o StrictHostKeyChecking=no -i /key/id_rsa_for_backup" backup@srvMaster:/home/backup/mongo/* /home/backup/mongo/. /usr/bin/sudo -u nobody /usr/bin/rsync -av --delete -e "ssh -o StrictHostKeyChecking=no -i /key/id_rsa_for_backup" backup@srvMaster:/home/backup/mongo/* /home/backup/mongo/. J'ai essayé d'autres combinaisons (sans --checksum par exemple) mais j'ai toujours le soucis. Les deux machines sont sur Gentoo ; le shell par défaut est bash ; la version de RSYNC est 3.0.9-r3.

Est-ce que quelqu'un aurait une idée ? En sachant que ça ne vient pas du transfert via le réseau puisqu'en local j'ai également le soucis.

J'ai posé la question sur les forums Gentoo : on m'a juste dit de ne pas transférer via NFS mais le soucis reste le même en passant par SSH.

Je vous remercie d'avance