Beschimpfe mich später darüber, dass ich die Servicekonsole verwende, um irgendetwas in ESXi zu tun ...
Ich habe eine funktionierende rsync-Binärdatei (v3.0.4), die ich in ESXi 4.1U1 verwenden kann. Ich neige dazu, rsync über cp zu verwenden, wenn VMs oder Sicherungen von einem lokalen Datenspeicher in einen anderen lokalen Datenspeicher kopiert werden. Ich habe rsync verwendet, um Daten von einer ESXi-Box in eine andere zu kopieren, aber das war nur für kleine Dateien.
Beim Versuch, echte differenzielle Synchronisierungen von Sicherungen durchzuführen, die über ghettoVCB zwischen meinem primären ESXi-Computer und einem sekundären Computer erstellt wurden. Aber selbst wenn ich dies lokal mache (ein Datenspeicher in einen anderen Datenspeicher auf demselben ESXi-Computer), scheint rsync die Dateien vollständig zu kopieren. Ich habe in der Größe zwei VMDKs total 80GB bekam, und rsync nimmt immer noch irgendwo zwischen 1 und 2 Stunden , aber die VMDKs wachsen nicht , dass viel täglich.
Unten ist der Befehl rsync, den ich ausführe. Ich kopiere lokal, weil diese Dateien letztendlich in einen Datenspeicher kopiert werden, der von einer LUN auf einem Remote-System erstellt wurde. Es ist kein Rsync, der von einem Rsync-Daemon auf einem Remote-System bedient wird.
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
Liegt das daran, dass ESXi selbst so viele Änderungen an den VMDKs vornimmt, dass für rsync die gesamte Datei erneut übertragen werden muss?
Hat jemand tatsächlich eine tatsächliche Diff-Synchronisierung mit ESXi erreicht?
quelle
Antworten:
Es sieht so aus, als hätten Sie nur 2 GB inkrementelle Änderungen übertragen. Denken Sie daran, dass rsync immer noch eine ganze Datei einlesen und die Prüfsumme prüfen muss, damit 80 GB Daten gelesen werden können. Überprüfen Sie Ihre Serverstatistiken während der Rsync. Sind Sie während der Operation an CPU oder E / A gebunden? Wie schnell können Sie die 80-GB-Datei von der Festplatte lesen? Das liegt in der Nähe Ihrer absoluten Mindestübertragungszeit.
Bemerkenswert ist auch, dass rsync während der Übertragung eine Kopie der Datei erstellt und dann die endgültige Datei in einer atomaren Operation an ihren Platz verschiebt. Sie können dies sehen, indem Sie während der Übertragung im Zielverzeichnis einen ähnlichen Dateinamen mit einem zufälligen Suffix sehen. Dies bedeutet, dass Sie 160 GB Daten lesen müssen (jeweils 80 GB für jede Quelle und jedes Ziel) und 80 GB auf der Zielseite ausschreiben müssen. Haben Sie sich die Option --inplace angesehen? Dies kann hier von Vorteil sein.
Kurz gesagt, Sie haben möglicherweise nur 2 GB Änderungen, aber rsync erledigt eine Menge Arbeit. Sie sind wahrscheinlich an E / A gebunden, da all das Lesen und Schreiben auf derselben Festplatte zu vielen Konflikten und Verlangsamungen führen kann.
quelle
Dieser Thread ist sehr alt, aber vielleicht hilft er jemandem.
Da ESX das Dateisystem bei jedem Schreiben neuer Blöcke sperrt, ist die Leistung nicht so gut. Mit der Option - an Ort und Stelle erhalten Sie möglicherweise bessere Ergebnisse. Beachten Sie jedoch, dass die Datei nicht konsistent ist, wenn Sie die Synchronisierung abbrechen Mehr. In Bezug auf die Konsistenz kann rsync einer geöffneten Datei in irgendeiner Weise inkonsistent sein -> verwenden Sie besser den Snapshot vor rsync.
Beste Grüße Marc
quelle
Wie es aussieht, erstellen Sie eine lokal-zu-lokal-Kopie mit
rsync
. In diesem Fall besteht das Standardverhalten vonrsync
darin, den Delta-Übertragungsalgorithmus auszuschalten und "Ganzdatei" -Transfers durchzuführen. Der Grund für dieses Standardverhalten ist, dass lokale Übertragungen unter Verwendung des Delta-Xfer-Algorithmus normalerweise langsamer sind als das einfache Kopieren der gesamten Dateien, da der Delta-Algorithmus viel mehr CPU-Crunching als nur das Kopieren der gesamten Datei umfasst.Wenn Sie der Meinung sind, dass eine lokal-zu-lokal-Kopie von der Verwendung des Delta-Xfer-Algorithmus profitieren würde, können Sie die
rsync
Verwendung erzwingen , indem Sie die Option--no-W
(oder--no-whole-file
) angeben.quelle
--no-whole-file
Option als Teil des Befehls rsync; Es ist jenseits der Sicht des Bildschirms.