Pour synchroniser des fichiers volumineux ou des blocs-périphériques avec des différences faibles à modérées, vous pouvez soit faire une copie simple ou utiliser bdsync , rsync n'est absolument pas adapté à ce cas particulier *.
bdsync
a fonctionné pour moi, semble assez mature, son histoire de bugs est encourageante (petits problèmes, résolution rapide). Dans mes tests, sa vitesse était proche du maximum théorique que vous pourriez obtenir ** (c'est-à-dire que vous pouvez synchroniser environ le temps dont vous avez besoin pour lire le fichier). Enfin, c'est open source et ne coûte rien.
bdsync
lit les fichiers des hôtes et échange des sommes de contrôle pour les comparer et détecter les différences. Tout cela en même temps . Il crée enfin un fichier patch compressé sur l'hôte source. Ensuite, vous déplacez ce fichier vers l'hôte de destination et exécutez bdsync une deuxième fois pour patcher le fichier de destination.
Lorsque vous l'utilisez sur une liaison plutôt rapide (par exemple, Ethernet 100 Mbit) et pour les fichiers avec de petites différences (comme c'est le plus souvent le cas sur les disques VM), cela réduit le temps de synchronisation avec le temps dont vous avez besoin pour lire le fichier. Sur une liaison lente, vous avez besoin d'un peu plus de temps car vous devez copier les modifications compressées d'un hôte à l'autre (il semble que vous puissiez gagner du temps en utilisant une astuce intéressante mais que vous n'avez pas testé).
*: rsync est extrêmement inefficace avec des fichiers volumineux. Même avec --inplace, il lira d'abord le fichier entier sur l'hôte de destination, AFTERWARDS commencera à lire le fichier sur l'hôte source et finalement transférera les différences (exécutez simplement dstat ou similaire tout en exécutant rsync et observez). Le résultat est que même pour les fichiers avec de petites différences, il faut environ le double du temps nécessaire pour lire le fichier afin de le synchroniser.
**: En supposant que vous n'avez aucun autre moyen de savoir quelles parties des fichiers ont changé. Les instantanés LVM utilisent des bitmaps pour enregistrer les blocs modifiés afin qu'ils puissent être extrêmement plus rapides (le fichier Lisezmoi de lvmsync contient plus d'informations).