Я делал это несколько лет назад. (редактировать: VMWare работает на хостах CentOS, а не ESXi)
Каждую ночь у меня был сценарий, который приостанавливал работу виртуальной машины, выполнял синхронизацию файлов с диска на сервер резервного копирования и затем снова запускал виртуальные машины. Это работало довольно хорошо, кроме ...
Rsync не очень хорошо работает с файлом 2 ГБ.
Дело не в том, что rsync не блестящий, а в том, что каждый vmdk-файл размером 2 ГБ изменяется очень непрозрачно для rsync, даже небольшие изменения во вложенной файловой системе приводят к изменениям в vmdk (или по каким-то причинам во всех vmdks), которые я обвинил Windows, либо автоматически дефрагментируя, либо иным образом выполняет все остальные действия, которые не имеют значения, если вы работаете в реальной системе, но появляются, когда вы пытаетесь синхронизировать виртуальную машину!
Я думаю, что механизм rsync для обнаружения изменений не очень хорошо работает с файлом 2 ГБ, хотя он довольно часто пропускает фрагменты запуска vmdk, и когда он начинает находить разницу, он просто копирует остальную часть файла. Я не знаю, является ли проблема в том, что rsync не может обнаружить перемещенный фрагмент двоичных данных, или нехватка памяти в окне исходного кода, или только что vmdk только что обновился полностью. Неважно, как результат был тот же - большинство vmdk были скопированы.
В конце я просто скопировал любые измененные файлы и переписал их, все еще используя rsync. У меня также была лучшая производительность, просто перезаписывая файл резервной копии вместо того, чтобы позволить rsync скопировать и заменить то, что было там.
Наш резервный сервер тоже не был самым быстрым, и он дошел до того, что за одну ночь оказалось недостаточно времени для резервного копирования всех работающих виртуальных машин.
Однако, когда нам нужно было восстановить виртуальную машину, это было действительно легко и прекрасно работало.