Adakah yang telah mencapai sinkronisasi diferensial sejati dengan rsync di ESXi?

11

Berate saya kemudian pada kenyataan bahwa saya menggunakan konsol layanan untuk melakukan apa pun di ESXi ...

Saya punya biner rsync yang berfungsi (v3.0.4) yang dapat saya gunakan di ESXi 4.1U1. Saya cenderung menggunakan rsync lebih dari cp ketika menyalin VM atau cadangan dari satu datastore lokal ke datastore lokal lainnya. Saya telah menggunakan rsync untuk menyalin data dari satu kotak ESXi ke kotak lain tapi itu hanya untuk file kecil.

Sekarang saya mencoba untuk melakukan sinkronisasi diferensial sejati dari backup yang diambil melalui ghettoVCB antara mesin ESXi utama saya dan yang sekunder. Tetapi bahkan ketika saya melakukan ini secara lokal (satu datastore ke datastore lain pada mesin ESXi yang sama) rsync tampaknya menyalin file secara keseluruhan. Aku punya dua VMDK ini benar-benar 80GB dalam ukuran, dan rsync masih membutuhkan manapun antara 1 dan 2 jam tapi VMDK ini tidak tumbuh yang banyak setiap hari.

Di bawah ini adalah perintah rsync yang saya jalankan. Saya menyalin secara lokal karena pada akhirnya file-file ini akan disalin ke datastore yang dibuat dari LUN pada sistem jarak jauh. Ini bukan rsync yang akan dilayani oleh daemon rsync pada sistem jarak jauh.

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

Apakah ini karena ESXi sendiri membuat begitu banyak perubahan pada VMDK sehingga sejauh menyangkut rsync seluruh file harus ditransmisikan ulang?

Adakah yang benar-benar mencapai sinkronisasi beda aktual dengan ESXi?

JuliusPIV
sumber
rsynce adalah incremental secara default. Sulit dipercaya, tetapi benar. Saya ingin tahu ke mana Anda pergi mengunduh untuk rsynce yang berfungsi pada ESXi. Saya punya ESXi 4.1

Jawaban:

6

Sepertinya Anda baru saja mentransfer perubahan tambahan sebesar 2GB. Ingatlah bahwa rsync masih harus membaca dalam satu file lengkap dan checksum sehingga harus membaca data 80GB. Periksa statistik server Anda selama rsync. Apakah Anda cpu atau IO terikat selama operasi? Seberapa cepat Anda bisa membaca file 80GB dari disk? Itu akan mendekati waktu transfer minimum absolut Anda.

Yang juga perlu diperhatikan adalah rsync membuat salinan file saat mentransfer kemudian memindahkan file terakhir ke tempatnya dalam operasi atom. Anda dapat melihat ini dengan melihat nama file yang sama dengan akhiran acak selama transfer di direktori tujuan. Ini berarti Anda harus membaca 160GB data (masing-masing 80GB untuk setiap sumber dan tujuan) dan menuliskan 80GB di sisi tujuan. Sudahkah Anda melihat opsi --inplace? Mungkin bermanfaat di sini.

Singkatnya Anda mungkin hanya memiliki 2GB perubahan tetapi rsync melakukan banyak pekerjaan. Anda mungkin terikat IO karena semua membaca dan menulis pada disk yang sama akan menyebabkan banyak pertengkaran dan perlambatan.

bot403
sumber
Terima kasih bot403 atas tanggapan Anda. Saya memang memperhatikan bahwa byte yang ditransfer secara signifikan lebih rendah, tetapi saya masih melihat waktu tunggu 30-45 menit. Saya mungkin juga baru saja mengirim ulang file secara keseluruhan. Mungkin ada leher botol IO di sini tapi saya pikir itu dalam ESXi & tidak begitu banyak perangkat keras. Saya akan memindahkannya ke LUN & menguji di sana. Terima kasih banyak semuanya.
JuliusPIV
4

Utas ini sudah sangat lama, tetapi semoga membantu seseorang.

Karena ESX mengunci sistem file pada setiap penulisan blok baru, kinerjanya tidak terlalu bagus, dengan Opsi --di tempat Anda mungkin mendapatkan hasil yang lebih baik, tetapi berhati-hatilah, jika Anda membatalkan sinkronisasi, file tidak akan konsisten apa pun lebih. Tentang konsistensi, rsync dari file yang terbuka mungkin tidak konsisten - - lebih baik gunakan snapshot sebelum rsync.

Salam, Marc

Nessi
sumber
2

Dengan kelihatannya, Anda melakukan salinan lokal-ke-lokal rsync. Dalam hal ini, perilaku default rsyncadalah mematikan algoritma delta-transfer, dan melakukan transfer "seluruh file". Alasan untuk perilaku default ini adalah bahwa transfer lokal ke lokal menggunakan algoritma delta-xfer biasanya akan lebih lambat daripada hanya menyalin seluruh file, karena algoritma delta melibatkan lebih banyak CPU berderak daripada hanya melakukan menyalin seluruh file.

Jika Anda merasa bahwa salinan lokal-ke-lokal akan mendapat manfaat dari menggunakan algoritma delta-xfer, Anda dapat memaksa rsyncuntuk menggunakannya dengan menentukan opsi --no-W(atau --no-whole-file).

Steven Monday
sumber
Terima kasih atas tanggapannya Steven! Anda benar: Saya sedang membuat salinan lokal murni untuk tujuan pengujian (alias untuk mengkonfirmasi itu sebenarnya akan melakukan sinkronisasi diferensial). Pada akhirnya file-file itu akan disalin ke datastore lokal, suatu LUN yang saya paparkan yang berada di mesin jarak jauh. Sebenarnya ini bukan jenis sinkronisasi daemon rsync-to-rsync. Untuk apa nilainya saya menggunakan --no-whole-fileopsi sebagai bagian dari perintah rsync; itu di luar tampilan layar.
JuliusPIV
@ Julius: Aduh, saya ketinggalan bilah gulir horizontal itu! Oh well, maaf sudah membuang-buang waktu.
Steven Monday