Je faisais cela il y a quelques années. (modifier: avec VMWare fonctionnant sur des hôtes CentOS, pas ESXi certes)
Chaque nuit, j'avais un script qui suspendait une machine virtuelle, resynchronisait les fichiers du disque vers le serveur de sauvegarde, puis redémarrait les machines virtuelles. Cela a plutôt bien fonctionné sauf ...
Rsync ne fonctionne pas très bien avec un fichier de 2 Go.
Ce n'est pas parce que rsync n'est pas brillant, mais plus que chaque fichier vmdk de 2 Go change de manière très opaque pour rsync, même de petites modifications du système de fichiers inclus produisent des changements dans le vmdk (ou tous les vmdks pour une raison quelconque) que je blâmais Windows, soit la défragmentation automatique, soit toutes les autres choses qu'il fait, peu importe si vous utilisez un vrai système, mais apparaissent lorsque vous essayez de rsynchroniser une VM!
Je pense que le mécanisme rsync pour détecter les changements ne fonctionne pas très bien sur un fichier de 2 Go, alors qu'il saute assez souvent des morceaux du début du vmdk, une fois qu'il a commencé à trouver une différence, il copiera simplement le reste du fichier. Je ne sais pas si c'est un problème avec rsync ne pouvant pas détecter un bloc de données binaires déplacé, ou avec un manque de mémoire sur la boîte source, ou si le vmdk vient d'être mis à jour tout au long. Cela n'a pas d'importance car le résultat était le même - la majorité du vmdk a été copiée.
Au final, j'ai simplement copié tous les fichiers modifiés et les écrasé, toujours en utilisant rsync. J'ai également eu de meilleures performances en remplaçant simplement le fichier de sauvegarde au lieu de laisser rsync copier et remplacer ce qui était là.
Notre serveur de sauvegarde n'était pas non plus le plus rapide et il est arrivé au point où la nuit n'était pas assez longue pour sauvegarder toutes les machines virtuelles en cours d'exécution.
Cependant, lorsque nous avons eu besoin de restaurer une machine virtuelle, c'était vraiment facile et fonctionnait à merveille.