Ich habe das vor ein paar Jahren gemacht. (Bearbeiten: mit VMWare auf CentOS-Hosts, zugegebenermaßen nicht ESXi)
Jede Nacht hatte ich ein Skript, das eine VM anhielt, die Dateien von der Festplatte auf den Sicherungsserver synchronisierte und die VMs dann erneut startete. Es hat ganz gut funktioniert, außer ...
Rsync funktioniert mit einer 2-GB-Datei nicht sehr gut.
Es liegt nicht daran, dass rsync nicht brillant ist, sondern dass sich jede 2 GB große vmdk-Datei auf eine Weise ändert, die für rsync sehr undurchsichtig ist. Selbst kleine Änderungen am beiliegenden Dateisystem führen zu Änderungen in der vmdk (oder allen vmdks aus irgendeinem Grund), die ich beschuldigt habe Windows, das entweder automatisch defragmentiert oder auf andere Weise alle anderen Aktionen ausführt, spielt keine Rolle, wenn Sie ein reales System ausführen, sondern wenn Sie versuchen, eine VM zu synchronisieren!
Ich denke, der rsync-Mechanismus zum Erkennen von Änderungen funktioniert bei einer 2-GB-Datei nicht besonders gut, obwohl er häufig Teile des Starts von vmdk übersprungen hat. Sobald er einen Unterschied festgestellt hat, kopiert er einfach den Rest der Datei. Ich weiß nicht, ob dies ein Problem damit ist, dass rsync einen verschobenen Teil der Binärdaten nicht erkennen kann, der Quellcode nicht über genügend Speicher verfügt oder ob der VMDK gerade vollständig aktualisiert wurde. Es spielt keine Rolle, da das Ergebnis dasselbe war - die Mehrheit der vmdk wurde kopiert.
Am Ende habe ich einfach alle geänderten Dateien kopiert und überschrieben, immer noch mit rsync. Ich hatte auch eine bessere Leistung, indem ich einfach die Sicherungsdatei überschrieb, anstatt rsync kopieren und ersetzen zu lassen, was da war.
Unser Backup-Server war auch nicht der schnellste und es war nicht mehr lange genug, um über Nacht alle laufenden VMs zu sichern.
Als wir jedoch eine VM wiederherstellen mussten, war es wirklich einfach und hat wunderbar funktioniert.