Robocopy copie-t-il efficacement les gros fichiers?

1

dans notre petite entreprise, nous utilisons VMware. Nous sauvegardons la VM avec Veeam. Les fichiers résultants sont dans l'ordre de 200 à 300 gigaoctets par machine virtuelle, pour un total de 1 / 1,2 téraoctet de données. J'utilise robocopy pour copier des fichiers de machine virtuelle sauvegardés sur un disque dur externe. J'aimerais savoir si Robocopy utilise quelque chose comme rsync pour copier uniquement les "blocs" de données modifiés à la place du fichier entièrement. Merci

vigoureux
la source

Réponses:

1

Robocopy n'utilise aucune méthode pour transmettre uniquement les blocs de données modifiés.

Si vous devez transmettre vos fichiers via un réseau lent, utilisez simplement rsync.
Si vous devez transmettre vos fichiers via un réseau "à une vitesse raisonnable", aucun algorithme ne peut accélérer le processus, car rsync (par exemple) doit lire l'intégralité du fichier sur le client et sur le serveur pour rechercher le contenu en double. Donc, si votre réseau est Gigabit, ou si vous faites une copie locale, il vous suffit de copier les fichiers et le tour est joué. Vous ne pouvez pas obtenir quelque chose de mieux, excepté s'il est supporté par le système de fichiers (comme ZFS, mais ne fonctionne que sur la même partition).

Grégory MOUSSAT
la source
4

@ Gregory MOUSSAT:

aucun algorithme ne peut accélérer le processus, car rsync (par exemple) doit lire l'intégralité du fichier sur le client et sur le serveur pour rechercher le contenu en double.

... Je pense que cela ne concerne que les transferts pour lesquels un seul serveur rsync fonctionne, par exemple. copier entre un partage et un disque local. Ici, ce seul et unique serveur rsync doit bien sûr "extraire" le fichier entier du partage vers le client pour effectuer sa comparaison / copie.

Cependant, si vous utilisez deux rsyncs différents sur la machine source et la machine cible, vous obtiendrez une vitesse très rapide! Les deux rsync séparés construisent leurs sommes de contrôle du fichier en question localement (sans en transférer le moindre morceau!), Comparent ces sommes de contrôle sur le réseau, puis décident des parties (modifiées) de l'énorme fichier à transférer.

Cela peut être réalisé en utilisant un démon rsync sur le serveur de fichiers (n'oubliez pas d'ouvrir son port rsyncd dans le pare-feu) ou en utilisant ssh comme support de transport entre les deux machines. Ce dernier nécessite bien sûr que vous ayez des droits de connexion locaux sur la machine distante.

À votre santé

Christian
la source
Si votre réseau est capable de transférer des fichiers à la même vitesse que les disques pouvant être lus, vous pouvez utiliser n'importe quelle quantité de rsync, ils ne peuvent pas être plus rapides que les disques. Donc, ils ne peuvent pas être plus rapides que le réseau. Rsync n'est utile que lorsque la vitesse de transmission est inférieure à la vitesse de lecture / écriture.
Gregory MOUSSAT
3
... ce n'était pas la question et ce n'est pas pertinent. Dans le cas de deux rsyncs séparés, ceux-ci communiquent uniquement les modifications sur le réseau, pas le fichier entier. Imaginez un fichier de 500 Go comportant 2 octets modifiés à la fin. Deux processus rsync en communication ne transfèrent qu'un seul bloc de 512 octets avec les deux octets modifiés sur le fil, et le récepteur rsync n'écrira que ce bloc modifié sur le disque. Ce comportement intelligent accélèrerait même les copies de disk2disk locales et ne dépendrait pas de la vitesse du disque par rapport à la vitesse du réseau ;-)
Christian
5 ans plus tard - oui, mais comment rsync va-t-il savoir que ces deux octets ont changé sans lire le fichier en entier?
tomfanning
J'admets que la vitesse de transfert ne peut bien sûr jamais dépasser la vitesse du plus lent des deux disques. Même avec deux rsync aux deux extrémités, les deux doivent lire localement dans tout le fichier pour construire leurs sommes de contrôle respectives à des fins de comparaison. C'est vrai! J'aurais peut-être dû dire que le "volume de transfert" sur le réseau serait beaucoup plus petit et que, dans le cas des disques rapides, le temps de transfert serait réduit. De toute façon, le réseau est moins chargé en rsync si seulement quelques octets
Christian