J'utilise rsync 3.1.1 pour synchroniser deux disques, dont l'un est sur le réseau et monté en tant que partage samba /mnt/ROUTER_WD_2TB/
. Il s'agit de la source, avec une vitesse maximale de 30 à 40 Mo / s en raison des limitations du réseau. L'autre, la destination, est monté localement (crête 110 Mo / s) et l'est /mnt/BACKUP_HITACHI_2TB/
.
J'utilise la commande rsync suivante:
rsync -haAXi --quiet --append-verify --delete /mnt/ROUTER_WD_2TB/* /mnt/BACKUP_HITACHI_2TB/.
Les disques contiennent de nombreux fichiers, pour la plupart petits.
Le problème est que rsync prend assez de temps (10-20m) avant de commencer à déplacer des fichiers, je suppose parce qu'il doit calculer des listes de fichiers pour un très grand nombre de petits fichiers. Pendant cette période, l'utilisation de newtwork se situe à un faible 200-500KB / s, tandis que lors du transfert de fichiers, la vitesse est d'environ 40MB / s.
Il arrive généralement que rsync prenne environ 15 minutes pour finalement trouver quelque chose qu'il doit copier, puis 5 secondes pour le copier, puis continue de rechercher d'autres fichiers à copier pendant encore 5 minutes. Dans l'ensemble, une copie de fichier de 5 secondes finit par durer 20 minutes!
Existe-t-il une mesure que je pourrais prendre pour éviter cette longue période avant de copier les fichiers, à l'exception de l'exclusion des dossiers? Tout type de "cache" que je peux implémenter pour que rsync n'ait pas à reconstruire toute la liste des fichiers à partir de zéro?