Reprenez-moi plus tard sur le fait que j'utilise la console de service pour faire quoi que ce soit dans ESXi ...
J'ai un binaire rsync fonctionnel (v3.0.4) que je peux utiliser dans ESXi 4.1U1. J'ai tendance à utiliser rsync sur cp lors de la copie de VM ou de sauvegardes d'une banque de données locale vers une autre banque de données locale. J'ai utilisé rsync pour copier des données d'une boîte ESXi à une autre, mais c'était uniquement pour les petits fichiers.
En essayant maintenant de faire de vraies synchronisations différentielles de sauvegardes prises via ghettoVCB entre ma machine ESXi principale et une secondaire. Mais même lorsque je le fais localement (une banque de données vers une autre banque de données sur la même machine ESXi), rsync semble copier les fichiers dans leur intégralité. J'ai deux VMDK totalement de 80Go taille et rsync prend encore quelque part entre 1 et 2 heures , mais les années VMDK ne grandissez pas que beaucoup par jour.
Ci-dessous se trouve la commande rsync que j'exécute. Je copie localement car, finalement, ces fichiers seront copiés sur une banque de données créée à partir d'un LUN sur un système distant. Ce n'est pas un rsync qui sera géré par un démon rsync sur un système distant.
rsync -avPSI VMBACKUP_2011-06-10_02-27-56/* VMBACKUP_2011-06-01_06-37-11/ --stats --itemize-changes --existing --modify-window=2 --no-whole-file
sending incremental file list
>f..t...... VM-flat.vmdk
42949672960 100% 15.06MB/s 0:45:20 (xfer#1, to-check=5/6)
>f..t...... VM.vmdk
556 100% 4.24kB/s 0:00:00 (xfer#2, to-check=4/6)
>f..t...... VM.vmx
3327 100% 25.19kB/s 0:00:00 (xfer#3, to-check=3/6)
>f..t...... VM_1-flat.vmdk
42949672960 100% 12.19MB/s 0:56:01 (xfer#4, to-check=2/6)
>f..t...... VM_1.vmdk
558 100% 2.51kB/s 0:00:00 (xfer#5, to-check=1/6)
>f..t...... STATUS.ok
30 100% 0.02kB/s 0:00:01 (xfer#6, to-check=0/6)
Number of files: 6
Number of files transferred: 6
Total file size: 85899350391 bytes
Total transferred file size: 85899350391 bytes
Literal data: 2429682778 bytes
Matched data: 83469667613 bytes
File list size: 129
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 2432530094
Total bytes received: 5243054
sent 2432530094 bytes received 5243054 bytes 295648.92 bytes/sec
total size is 85899350391 speedup is 35.24
Est-ce parce que ESXi apporte lui-même tant de modifications aux VMDK qu'en ce qui concerne rsync, le fichier entier doit être retransmis?
Quelqu'un a-t-il réellement réussi la synchronisation des diff avec ESXi?
la source
Réponses:
Il semble que vous n'ayez transféré que 2 Go de modifications incrémentielles. N'oubliez pas que rsync doit toujours lire dans un fichier entier et le contrôler afin qu'il doive lire 80 Go de données. Vérifiez les statistiques de votre serveur pendant la rsync. Êtes-vous lié au processeur ou aux entrées-sorties pendant l'opération? À quelle vitesse pouvez-vous lire le fichier de 80 Go sur le disque? Ce sera près de votre temps de transfert minimum absolu.
Il convient également de noter que rsync effectue une copie du fichier lors du transfert, puis déplace le fichier final en place dans une opération atomique. Vous pouvez le voir en voyant un nom de fichier similaire avec un suffixe aléatoire lors du transfert dans le répertoire de destination. Cela signifie que vous devez lire 160 Go de données (80 Go chacun pour chaque source et destination) et écrire 80 Go du côté de la destination. Avez-vous envisagé l'option --inplace? Cela peut être bénéfique ici.
En bref, vous ne pouvez avoir que 2 Go de modifications, mais rsync fait BEAUCOUP de travail. Vous êtes probablement lié aux E / S car tout ce que la lecture et l'écriture sur le même disque pourraient causer beaucoup de conflits et de ralentissements.
la source
Ce fil est très ancien, mais qu'il aide quelqu'un.
Comme ESX verrouille le système de fichiers à chaque écriture de nouveaux blocs, les performances ne sont pas excellentes, avec l'option --inplace vous pouvez obtenir de meilleurs résultats, mais sachez que si vous annulez la synchronisation, le fichier ne sera pas cohérent plus. À propos de la cohérence, rsync d'un fichier ouvert pourrait être incohérent de toute façon -> mieux utiliser l'instantané avant rsync.
Cordialement Marc
la source
À première vue, vous effectuez une copie de local à local avec
rsync
. Dans ce cas, le comportement par défaut dersync
est de désactiver l'algorithme de transfert delta et d'effectuer des transferts "de fichiers entiers". La raison de ce comportement par défaut est que les transferts locaux à locaux utilisant l'algorithme delta-xfer seraient généralement plus lents que la simple copie de tous les fichiers, car l'algorithme delta implique beaucoup plus de crunching CPU que la simple copie de fichiers entiers.Si vous pensez qu'une copie de local à local gagnerait à utiliser l'algorithme delta-xfer, vous pouvez forcer
rsync
à l'utiliser en spécifiant l' option--no-W
(ou--no-whole-file
).la source
--no-whole-file
option dans le cadre de la commande rsync; son au-delà de la vue de l'écran.