Neden insanlar sadece vmware misafirlerini yedeklemek için rsync kullanmıyor?


13

Modern bir vmware ESXi sistemi çalıştırıyorsanız, statik olarak bağlı bir rsync ikili ve rsync dosyalarını SSH üzerinden herhangi bir hedefe bırakabilirim.

Neden vmware misafir çoğu (tüm?) Yedek bu şekilde yapılmaz anlamaya çalışıyorum.

VM çalışıyorsa, bir anlık görüntü oluşturmak için 'vim-cmd vmsvc / snapshot.create' komutunu kullanabilir ve ardından bu anlık görüntüyü uzak ana bilgisayara rsync edebilirsiniz. (anlık görüntüyü "sorgulamak" için bile bir seçenek vardır)

VEYA, daha sağlam bir yedekleme istiyorsanız, VM'yi ve rsync'i vmdk dosya (lar) ında yavaşça durdurabilirsiniz.

Yani ... basit eski rsync kullanarak basit ve kolay bir şekilde yapmak istediğim tüm yedeklemelerden uzakta basit bir kabuk betiğiyim.

Burada ne eksik?


1
Çünkü VM'de tek bir dosya değişirse vmdk'nin tamamını yedeklemeniz gerekecek mi?
faker

Hayır, rsync tek bir dosyayı yalnızca son aktarımdan sonraki değişikliklerle verimli bir şekilde güncelleyecektir. Kesinlikle VM operasyonları beklediğinizden çok daha fazla değişiklik üretebilir, ancak tüm vmdk tekrar göndermeye ...
user227963

Esxi kabuğunu bakım dışında bir şey için kullanmamanız dışında, esxi OS bu şekilde çalışmak için yapılmaz ve desteklenmezsiniz, sanırım bir anlık görüntü kavramını yanlış anlıyorsunuz. Bu durumda anlık görüntü bir delta. Bir çırpıda alır ve hemen kopyalarsanız, küçük olur ve neredeyse hiç bilgi içermez. Bir arka uç depolama anlık görüntüsü düşünüyorsunuz ve evet insanlar VM'leri bu şekilde
yedekliyorlar

1
@Rqomey - ESXi'de farklı türde "anlık görüntüler" vardır. VSphere Client üzerinden görülebilen türden bahsediyorsunuz - ancak API'yi kullanarak başka seçenekleriniz var, örneğin: tam klon.
masi

@MASI Anlık görüntünün aksine klon mu demek istediniz? ;)
Rqomey

Yanıtlar:


33
  • Çünkü ESXi konsolundan aktarım hızları bilerek sınırlandırılmıştır.
  • Çünkü bu hiçbir şekilde ölçeklenemez.
  • Çünkü statik olarak derlenmiş bir rsync ikili dosyasını ESXi ana bilgisayarına bırakmanız gerekir.
  • VM, VMDKs, onların Ramdiski dosya ve diğer bileşenler bir kaybetme önermeyi rsync yapmak için yeterli değiştirebilir Çünkü ... Eğer do gerçekten yeniden başlatılması ve dosyalar değişimin az sayıda vardı ki yeniden senkronizasyon 200GB VM istiyor?
  • Kaynak veya hedef üzerindeki CPU / bellek kaynağı gereksinimleri nedeniyle. Rsync ücretsiz değil.
  • Piyasada hem üçüncü taraf hem de VMware tarafından sağlanan başka ürünler olduğu için. Değişen Blok Takibi konusuna bakın .
  • Çünkü ESXi genel amaçlı bir işletim sistemi DEĞİLDİR .

Ayrıca bkz: VMware ESX 4.1 sunucusuna rsync yükleme


1
Mükemmel cevap.
EEAA

3
Onlar değil ... Yani, adı ghettoVCB . Orada daha iyi çözümler var. Veeam, vSphere Data Protection, vb.
ewwhite

2
Xen / kvm'ye geçerseniz kesinlikle rsync yöntemini kullanabilirsiniz.
Zoredache

9
@ user227963 Rsync, hem çok sayıda hem de büyük dosyalar için oldukça verimsizdir. Ve tüm dosyayı kablo üzerinden yeniden göndermek zorunda kalmasa da, kaynak ve hedef üzerinde yeniden okuması gerekecektir . CBT burada size yardımcı olacak, ancak rsync CBT hakkında hiçbir şey bilmiyor.
the-wabbit

2
@ user227963 dosyaları kopyalamak basittir. Şimdi küçük sabit değişikliklerle büyük dosyalarda bir kaynak domuzu değil, hızlı olun. rsync terbiyeli ama hangi blokların değiştiği içeriden bilgi ile hiçbir şeyin performansına yakın.
JamesRyan

4

Bunu birkaç yıl önce yapardım. (değiştir: VMWare, ESXi'de değil CentOS ana bilgisayarlarında çalışıyorken)

Her gece bir VM'yi askıya alacak, dosyaları diskten yedekleme sunucusuna rsync ve daha sonra VM'leri yeniden başlatan bir komut dosyası vardı. Dışında oldukça iyi çalıştı ...

Rsync, 2GB'lık bir dosyayla çok iyi çalışmıyor.

Bu rsync parlak olmadığı için değil, her 2GB vmdk dosyasının rsync'e çok opak şekilde değiştiği, kapalı dosya sistemindeki küçük değişiklikler bile suçladığım vmdk (veya tüm nedenlerden dolayı tüm vmdks) değişikliklerine neden oluyor Windows, otomatik olarak birleştirmek veya gerçek bir sistem çalıştırmanızın önemi yoktur, ancak bir VM'yi yeniden senkronize etmeye çalıştığınızda ortaya çıkan diğer tüm şeyleri otomatik olarak birleştirir!

Değişiklikleri tespit etmek için rsync mekanizmasının 2GB'lık bir dosyada çok iyi çalışmadığını düşünüyorum, ancak sık sık vmdk'nin başlangıcındaki parçaları atladı, bir fark bulmaya başladığında dosyanın geri kalanını kopyalayacaktı. Bu rsync bir ikili veri taşınan bir yığın tespit edememek ya da kaynak kutusunda bellek eksikliği ile bir sorun olup olmadığını ya da vmdk sadece sonuna kadar güncellenmiş olup olmadığını bilmiyorum. Sonuç aynı olduğu için önemli değil - vmdk'nin çoğunluğu kopyalandı.

Sonunda, sadece rsync kullanarak değiştirilen dosyaları kopyaladım ve üzerine yazdım. Ayrıca daha iyi bir performans rsync kopyalamak ve orada ne yerine izin izin yerine yedek dosyasının üzerine yazma vardı.

Yedekleme sunucumuz da en hızlı değildi ve bir gecede çalışan tüm VM'leri yedeklemek için yeterince uzun olmadığı noktaya geldi.

Ancak, bir VM'yi geri yüklememiz gerektiğinde, gerçekten kolaydı ve güzel çalıştı.


Tamam, bu çok yardımcı oldu. Ben rsync nasıl çalıştığı hakkında biraz biliyorum, ve ben size dosyanın boyutu ile ilgisi yoktur söyleyebilirim - ama açıkladığınız dosya beklediğinizden çok daha fazla değişiklik olduğunu ... yani diyelim ki, VM'yi bir gün boyunca çalıştırıyorsunuz ve onunla sadece birkaç küçük şey yapıyorsunuz ve sonra durduruyorsunuz ... ancak vmdk dosyası% 30-40 değişti (çok az yapmış olsanız bile). Yani rsync gayet iyi gidiyordu, sadece yapacak çok işi var ... beklediğinizden daha fazla. Teşekkürler!
user227963

1
Ama sonra ... bunun ortaya çıkardığı soru ... "profesyonel" araçlar bunu nasıl yapıyor? Ne tür bir sihir yapıyorlar ki rsync'in (veya scp'nin, hatta cp'nin) yaptıklarından bir şekilde daha uygun? Günün sonunda, bir unix ortamınız (ESXi konsolu) var ve bir dosyayı içine veya dışına taşımak istiyorsunuz ... bununla ilgili hangi sırlar olabilir?
user227963

@ user227963 Profesyonel araçlar, değiştirilen blok izleme gibi özelliklerden yararlanır veya diğer vSphere veya ESXi API'lerine erişebilir.
ewwhite

2

Tek bir dosyayı yeniden senkronize etmek bir yedekleme çözümü değildir,

vm'de bir şey olduğunda ve dosyalar silindiğinde ne yaparsınız, ancak bunu yalnızca rsync'iniz tekrar çalıştıktan sonra fark ettiniz mi? Şimdi kötü imaj ile dosyalarınızın iyi 'yedeklemesinin' üzerine yazmış olacaksınız.

Yedekleme istiyorsanız, eski sürümleri bir yerde veya diff'leri tutmanız gerekir. Rsync sizin için sadece diffs'yi kopyalar, ancak yalnızca diff'leri depolamaz, önceki dosyanın üzerine yazar.

Burada sizin için, rsync ve sürüm bilgisi içeren bir kopyala yazma dosya sistemi için seçenekler olabilir; Bu çözümler zaten biraz daha karmaşıklaşmaya başladı, bu yüzden insanlar bilinen çalışma çözümlerine başvuruyorlar.


Burada kesinlikle düşündüğümden çok daha fazla karmaşıklık var, ancak bahsettiğiniz şey bir sorun değil. Kesinlikle körü körüne tekrar tekrar koştuysanız, önerdiğiniz gibi sorun yaşarsınız, ancak rsync tarafından oluşturulan yedekleri (tek dosyalı olanları bile) klonlamak / döndürmek için birçok basit yol vardır ... bu sorun uzun süredir çözüldü zaman önce, çok şükür.
user227963

0

ESXi sunucusunda Rsync kullanamamanızın bir nedeni yoktur. Burada çok iyi çalışan https://33hops.com/rsync-for-vmware-vsphere-esxi.html şeklinde statik olarak derlenmiş bir sürüm sunuyoruz . Kendinizin nasıl derleneceğine dair bilgiler de var.

Bununla birlikte, bunu kullanmak isteyen herkes, Rsync ve Delta algoritmasının VM sabit diskleri gibi büyük sabit uzunluktaki seyrek dosyaları yedeklemediği, ancak değişken uzunluktaki daha küçük dosyaları senkronize ettiği düşünülmelidir. Yani, işe yarıyor, ancak diff verilerini hesaplamak çok zaman ve CPU gerektiriyor. Aslında, bant genişliğini CPU ile değiştirmenin sadece bir yolu. Her durumda, özellikle sanal diskleriniz birkaç on gigabayt civarındaysa, hala oldukça uygulanabilir.

Tüm konu ve eksileri ayrıntılı olarak burada konu hakkında tam bir yayın yayınladım https://33hops.com/blog_xsibackup-rsync-considerations.html

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.