ESXi'de rsync ile gerçek diferansiyel senkronizasyonu gerçekleştiren oldu mu?


11

Daha sonra ESXi'de bir şey yapmak için servis konsolunu kullandığım için beni dövün ...

ESXi 4.1U1'de kullanabileceğim çalışan bir rsync ikili dosyası (v3.0.4) var. VM'leri veya yedekleri bir yerel veri deposundan başka bir yerel veri deposuna kopyalarken rsync'i cp üzerinde kullanma eğilimindeyim. Bir ESXi kutusundan diğerine veri kopyalamak için rsync kullandım ama bu sadece küçük dosyalar içindi.

Şimdi birincil ESXi makinem ve ikincil makine arasında gettoVCB aracılığıyla alınan yedeklemelerin gerçek diferansiyel senkronizasyonlarını yapmaya çalışıyorum . Ancak bunu yerel olarak yaptığımda bile (bir veri deposu aynı ESXi makinesindeki başka bir veri deposuna) rsync dosyaları tamamen kopyalıyor gibi görünüyor. İki VMDK'nın toplam 80GB'lık boyutu var ve rsync hala 1 ila 2 saat arasında bir yer kaplıyor, ancak VMDK'lar her gün bu kadar büyümiyor.

Aşağıda yürüttüğüm rsync komutu var. Yerel olarak kopyalıyorum çünkü sonuçta bu dosyalar uzak bir sistemde LUN'dan oluşturulan bir veri deposuna kopyalanacak. Uzak bir sistemde rsync arka plan programı tarafından servis edilecek bir rsync değil.

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

ESXi'nin kendisi VMDK'larda rsync söz konusu olduğunda tüm dosyanın yeniden iletilmesi gerektiği kadar çok değişiklik yaptığı için mi?

Gerçekten ESXi ile gerçek diff senkronizasyonu başardı mı?


rsynce varsayılan olarak artımlıdır. İnanması zor, ama gerçek. ESXi'de çalışan rsynce için indirmeyi nereye gittiğini merak ediyorum. ESXi 4.1

Yanıtlar:


6

Görünüşe göre yalnızca 2 GB'lık artımlı değişiklikler aktardınız. Rsync'in bir dosyada hala okuması gerektiğini ve 80GB veriyi okumak zorunda kaldığını kontrol etmek gerektiğini unutmayın. Rsync sırasında sunucu istatistiklerinizi kontrol edin. İşlem sırasında cpu veya GÇ bağlı mısınız? 80GB dosyasını diskten ne kadar hızlı okuyabilirsiniz? Bu, mutlak minimum aktarım sürenize yakın olacaktır.

Ayrıca, rsync'in aktarım sırasında dosyanın bir kopyasını oluşturduğunu ve son dosyayı bir atomik işlemde yerine taşıdığını unutmayın. Hedef dizine aktarım sırasında rasgele bir sonek ile benzer bir dosya adı görerek bunu görebilirsiniz. Bu, 160 GB veri (her kaynak ve hedef için 80 GB) okumanız ve hedef tarafa 80 GB yazmanız gerektiği anlamına gelir. --İnplace seçeneğine baktınız mı? Burada faydalı olabilir.

Kısacası sadece 2GB değişiklikleriniz olabilir, ancak rsync çok iş yapıyor. Muhtemelen aynı diskte okuma ve yazma çok çekişmeye ve yavaşlamaya neden olabileceğinden IO'ya bağlısınız.


Yanıtınız için teşekkürler bot403. Aktarılan baytların önemli ölçüde düşük olduğunu fark ettim, ancak hala 30-45 + dakikalık bekleme süresine bakıyordum. Ben de dosyaları bütünüyle yeniden göndermiş olabilirim. Burada bir IO şişe boynu olabilir ama bence bu ESXi içinde ve donanım kadar değil. Onu bir LUN'a taşıyacağım ve orada test edeceğim. Çok teşekkürler.
JuliusPIV

4

Bu Konu çok eski, ama birinin yardım etmesine yardımcı olabilir.

ESX, dosya sistemini yeni blokların her yazımında kilitlediğinden, performans o kadar da iyi değildir, Option - inplace ile daha iyi sonuçlar alabilirsiniz, ancak senkronizasyonu iptal ederseniz dosyanın tutarlı olmayacağını unutmayın. Daha. Tutarlılık hakkında, açık bir dosyanın rsync'i herhangi bir şekilde tutarsız olabilir -> rsync'ten önce anlık görüntüyü daha iyi kullanın.

Saygılarımızla Marc


2

Görünüşe göre, yerel-yerel bir kopyasını yapıyorsunuz rsync. Bu durumda, varsayılan davranışı rsyncdelta aktarım algoritmasını kapatmak ve "tüm dosya" aktarımlarını yapmaktır. Bu varsayılan davranışın mantığı, delta-xfer algoritmasını kullanan yerel-yerel aktarımların genellikle tüm dosyaları kopyalamaktan daha yavaş olacağı yönündedir, çünkü delta algoritması sadece tam dosya kopyalama yapmaktan çok daha fazla CPU çatırmasını içerir.

Yerel-yerel kopyanın delta-xfer algoritmasını kullanmanın fayda sağlayacağını rsyncdüşünüyorsanız, --no-W(veya --no-whole-file) seçeneğini belirterek kullanmaya zorlayabilirsiniz .


Yanıt için teşekkürler Steven! Haklısın: Sadece test amacıyla yerel bir kopya yapıyorum (aslında farklı bir senkronizasyon yapacağını doğrulamak için aka). Sonuçta dosyalar yerel bir veri deposuna, uzak bir makinede bulunan bir LUN'a kopyalanır. Aslında bir rsync-rsync daemon türü senkronizasyon olmaz. Onun değeri için --no-whole-fileseçeneği rsync komutunun bir parçası olarak kullanıyorum ; ekran görünümünün ötesinde.
JuliusPIV

@Julius: Hata! Yatay kaydırma çubuğunu kaçırdım! Ah, zamanını harcadığın için üzgünüm.
Steven Pazartesi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.