btrfs özellikli yedekleme çözümü


14

Btrfs bu ay Oracle EL 14'te üretime girdiğinde (Linux 3.2'den çalışan fsck ve ovalama ile birlikte) mevcut yedekleme çözümümü kullanmak için yeniden tasarlamayı düşünüyordum. Ben 10 TB daha az, küçük miktarlarda veri için düşünüyorum düşünüyorum bu oldukça statik (günlük 1% daha az değişti). Kısacası bir SMB / SOHO yedekleme çözümü.

Yedekleme ne yapmalı:

  1. üretim sunucusunda ext [234] / XFS / JFS'nin LVM anlık görüntüsünü yapma
  2. rsync/ değiştirilen verileri yedekleme sunucusundaki btrfs'ye aktarma
  3. btrfs dosya sisteminin anlık görüntüsü
  4. boş alan azaldığında eski fotoğrafları düşür

Artıları:

  • Tüm dosyalar kolayca kullanılabilir, açma veya döngü montajına gerek yoktur
  • Geçmiş görüntüler de kolayca kullanılabilir ...
  • ... böylece salt okunur Samba paylaşımları olarak paylaşabilirim (gölge kopya desteği ile)
  • Yazarken kopyalama özelliği sayesinde anlık görüntüler çok az yer kaplar (değişiklik yapılmayan anlık görüntü, diskte tam olarak az KiB alır)
  • Yüksek yedekleme tutarlılığı: dosyalar üzerinde sağlama toplamları, tüm verilerin silinmesi ve yerleşik artıklık

Sorular:

  • Yazarken kopyala dosya sisteminin farkında olan veya kolayca yapılabilen bir yedekleme çözümü (Bacula, BackupPC, vb. Şeklinde) var mı?
  • Yoksa evde rsyncçözüm kullanmam gerekecek mi?
  • Yedeklemeye adanmış ZFS kutuları olan insanlar Linux makinelerini yedeklemek için ne yapar?

Göremiyorum cons! Bunlardan biri, Btrfs anlık görüntülerinin yalnızca artımlı yedeklemelere eşdeğer olmasıdır (dosyanızın diskteki yedeklemesi başına fiziksel kopya yoktur). Disk yüzey sorunlarıyla karşılaşıldığında bu önemli olabilir. Btrfs'de bulunan yerel RAID1 desteğiyle bir çoğaltmayı zorlayabileceğinizi unutmayın.
vaab

1
@vaab: Bu bir pro- sağlama toplamları varsa ve FS'yi aktif olarak fırçalarsanız, ikiden fazla kopyaya gerçekten gerek yoktur, üçü muhtemelen RAID6 desteği ile birlikte gelir. Söylediğim gibi, FS içinde tek bir bilgisayarda "yedekleme" kopyaları için değil, özel yedekleme sistemi için bir kurulum. Bu "RAID yedek değildir" ve "anlık görüntüler yedek değildir" olacaktır. cp -ave rsyncbunun için ...
Hubert Kario

Ben de btrfs yedeklemeyi düşünüyorum, ama sadece rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create- yedekledikten sonra bir anlık görüntü oluşturmak dışında, COW farkında ne demek istiyorsun?
unhammer

1
@unhammer: kullanmadan rsyncolmadan --inplacesize uzak dosya sisteminde aynı verinin birden çok kopyasını elde edersiniz. (rsync normalde verileri geçici bir gizli dosyaya kopyalar ve daha sonra Yazma Kopyalama dosya sistemi ile eski dosyanın üzerine taşır, bu şekilde değiştirilmemiş verilerde iki kopya alırsınız)
Hubert Kario

Yanıtlar:


5

Geçen hafta benzer bir şey için kapsamlı bir araştırma yaptım. 4 adımı da uygulamak için hiçbir çözüm bulamadım. Ev kullanıcılarından ' rsync to btrfs ' yedekleme türlerini deneyen çok sayıda blog var ve tüm büyük Btrfs wikisleri Btrfs anlık görüntülerinin nasıl gerçekleştirileceğini kapsar.

Ayrıca Btrfs anlık görüntülerini döndürmenin farklı yollarını deneyen birkaç kişi var . Ancak, disk alanına göre anlık görüntüleri döndürmek isteyen ilk kişi sizsiniz. Saatlik, haftalık ve aylık anlık görüntüler oluşturan btrfs-snap ile oynuyorum ve güzel ve basit.

Dirvish proje sizin gereklerinin çoğunu karşılayan görünüyor. Bazı geliştiriciler Dirvish'i Btrfs ile entegre etmeye çalışıyor . Ancak, Dirvish projesi biraz durmuş görünüyor .

Bu noktada, eğrinin önündesiniz.


Eh, sadece BackupPC kadar acısız bir yedekleme çözümü istiyorum: disk alanı az olduğunda, sadece eski verileri (eski anlık görüntüler) siler. Eğrinin önünde olduğumdan korkarken, ZFS son birkaç yıldır bizimle birlikte olmamış gibi değil ...
Hubert Kario

3

Avi Miller'a (LinuxConf.AU sırasında yaptığı konuşma) göre bir btrfs gönderme / alma üzerinde çalışılıyor. Dosyalarda değişiklik bulmak için dizinler arasında geçiş yapması gerekmediğinden rsync'den daha hızlı olacaktır .. Henüz beklenen bir çıkış tarihi olup olmadığını bilmiyorum.

Ancak, anlık görüntüler / vb. Arasında değişen her dosyayı listeleyen btrfs-progs içine yerleşik bir yardımcı program vardır. Btrfs subvolume find-new


2
Ben yedekleme istiyorum için Btrfs değil itibaren ...
Hubert Kario

2

BackupPC'ye benzer bir işletim sistemi yedekleme sistemi üzerinde çalışıyorum. Bunu düşündüm. Beni gerçekten uygulamadan alıkoyan şey, alt hacimler arasında bağlantı kuramayacağınızdır. Ayrıca yalnızca alt hacimlerin anlık görüntülerini oluşturabilirsiniz -> Her yedekleme istemcisi için bir alt hacim. Dolayısıyla, dosya düzeyinde veri tekilleştirme özelliği bu yaklaşımla bir arada bulunamaz. Ve bu dosya düzeyinde veri tekilleştirme genellikle çok fazla yer tasarrufu sağlar. Yalnızca bir sunucuyu yedeklemek istiyor musunuz?

Btrfs'de blok düzeyinde veri tekilleştirme varsa, bu sorun muhtemelen önlenebilir, ancak bu da genellikle yeterince yavaş değildir ...

O zaman böyle bir yaklaşım elbette bir dosya sistemi (btrfs) ile sıkı bir entegrasyon gerektirecektir, bu yüzden bu isteğe bağlı bir özellik olmalıdır.

Soruyorum çünkü böyle bir inek özelliği eklemeyi düşünüyorum, ama yukarıda listelenen dezavantajlar nedeniyle yapmam gerekip gerekmediğini bilmiyorum.

Düzenleme: UrBackup şimdi Linux çekirdeği> = 3.6 (çapraz hacim yansıtma desteği ile) ile soruda olduğu gibi yedekleri destekler. Nasıl ayarlayacağınıza bakın .


1
ciltler arası yansıma kopyası (tarafından yapılan yarı sabit bağlantı cp --reflink) zaten uygulanmış veya yakın gelecekte uygulanacaktır. FS'deki çevrimiçi tekilleştirme yavaştır (lessfs) veya büyük miktarda RAM (ZFS) gerektirir, bu nedenle yedekleme yazılımında gerçekten kötü bir özellik olacaktır . Her iki durumda da, btrfs odaklı yedekleme yazılımı büyük bir kitleye sahip olacak, sonuçta bir sonraki ext3 olması gerekiyordu.
Hubert Kario

Bir şey daha var: tüm sunucuları tek bir alt hacimde tutarak bu soruna geçici bir çözüm bulabilirsiniz - anlık görüntü özelliğini korurken aralarındaki kopyayı (tekilleştirmek için) yansıtabilirsiniz. Tekilleştirmeden sonra anlık görüntü almanız yeterlidir, yalnızca tek bir sunucuyu yedekledikten sonra anlık görüntü alabilirsiniz! Yedekleri birer birer yaparsanız yedeklemeler daha fazla yer kaplamaz. Alternatif olarak tüm sunucuları yedekleyebilir, tekilleştirebilir ve yalnızca anlık görüntü alabilirsiniz. Bu şekilde aynı anda birkaç sunucuyu yedekleyebilirsiniz.
Hubert Kario

Haklısın. Bunu düşünmedim. Kolaylık sağlamak için daha sonra başka bir ciltte doğru anlık görüntüleri işaretleyebilirsiniz. Ayrıca, çapraz hacimli sabit bağlantı (veya --reflink) için bir yama gördüm ama bunu yaptı / veya ana hatta yapacak gibi görünmüyordu. Buna gerçekten bakacağım! Şimdi muhtemelen yedeklerinizi ssh üzerinden yapıyorsunuz.
Projem

Evet, yama canlı ve çalışıyor, maalesef ana hatlarında değil, neden bilmiyorum. Chris Mason'u bu konuda rahatsız etmeye çalışıyorum. Projenize gelince, bana bir satır bırakmaktan çekinmeyin, memnuniyetle beta testi yapacağım (izin verilen süre). Kulağa ilginç geliyor.
Hubert Kario

Sonunda bu yama, Linux çekirdeği 3.6'ya indi. Cihazlar arası yansıma ile aslında o kadar da işe yaramadı. Burada bunun hakkında yazdım: urbackup.org/blog/?p=83 Kod git deposundaki "sonraki" dalında. Şu anda test ediyorum.
UrOni

1

" Kullanım Durumları " btrfs wiki sayfasında bazı araçlar listelenir: SnapBtr , Snapper, btrfs-time-machine, UrBackup.

Autosnap adlı yerleşik bir araç için bir teklif var :

Otomatik tarama özelliğini kullanarak, btrfs'yi normal veya olay tabanlı anlık görüntüler alacak ve anlık görüntüleri otomatik olarak daha fazla yönetecek şekilde yapılandırabilirsiniz.

Autosnap sadece anlık görüntüyü almakla kalmaz, aynı zamanda oluşturulan anlık görüntüleri de yönetir, şu andan itibaren otomatik dosya haritasını, kullanılan dosya sistemi alanına dayalı anlık görüntüleri silmek için yapılandırabilirsiniz.

Bununla birlikte, Ekim 2013 itibariyle, wiki "Otomatik bağlantı işlevselliğinin şu anda btrfs'nin yukarı akış sürümüne dahil edilmediğini" belirtmektedir .


1

Benzer hayal kırıklıkları yaşadım, bu yüzden snazzer dediğim birkaç komut dosyası oluşturdum . Birlikte ssh ile anlık görüntü alma, budama, ölçüm ve taşıma hizmeti sunarlar (ancak bugün itibariyle yerel dosya sistemlerine de gönderebilir / alabilirler). Ölçümler sadece anlık görüntü yollarının sha512sum ve PGP imzalarının raporlarıdır. Serbest bırakılmaya hazır değil, ancak bu erken aşamada gözden geçirecek kimse varsa geri bildirim duymak isterim.

Tipik ben için ayrı alt hacimleri var - sadece CLI bu noktada, ama kolay birçok btrfs alt hacimler sistemlerde kullanmak için yapmak için biraz zaman ayırdıktan /var/cache, /home/ daha az daha bir anlık görüntü alma dışında gerekebilir veya sahip olabilir vs. agresif budama çizelgeleri.

Budama algoritmasının tamamen anlık görüntüler ve tarihleri ​​hakkında kararlar vermesinden korkuyorum, bir disk kullanım kısıtlaması karşılanıncaya kadar budama tutmak için hiçbir şey yok - önce hangisini siliyorsunuz? Önce saat sayısını mı yoksa gün sayısını mı azaltın? Belki de en eskisini bırak, örneğin. yearlies? Farklı dağıtımların farklı öncelikleri olacaktır; ve bunun tek yedekleme katmanı olup olmadığını bilmiyorum (bu durumda yasal / sigorta yükümlülükleri durumunda en eski yedekleri bırakmamalısınız) veya sadece bir ara aşama (bu durumda muhtemelen bu yılların güvenli bir yerde arşivlendiğini bilmiyorum) başka yerde).

Bir noktada ZFS desteği ve / veya birlikte çalışabilirlik ekleyeceğim; şu anda "sıfır" bağımlılıklar için güçlü bir istek nedeniyle çoğunlukla posix-ish kabuk ve perl yazılmış, umarım bir noktada paralel olarak temiz bir python alternatif uygulama olacak.


FS'niz çok büyük ve sık sık değişmedikçe, bir ay öncesinden bir anlık görüntü tutmak ve geçen haftadan günde sadece 1 adet olmak üzere tüm ay için günde bire kıyasla çok az fark vardır - btrfs arasındaki farkı saklamak gerekir şimdiki durum ve bir ay önce zaten - Ben sadece günlükleri tutmak, ama onun sıkıştırılmış ve farklı çünkü ben kolayca yarım yıl geri tutabilir - daha sonra en az bir yer boşaltmak için en eski garantileri bırakarak
Hubert Kario

Peki, takip etmek için önemsiz sayıda VM'lerim var - bazılarının önerdiği gibi ara anlık görüntülerin budamasından faydalanabilecek büyük geçici dosyaları (benzersiz uzantılara sahip anlık görüntüler). Bu yüzden budama aralarının en eski diski bırakmak kadar disk boşaltmadığı doğru olsa da, ne diyebilirim ki ... sadece minimum sayıda anlık görüntüyü tutmak ve btrfs gibi COW dosya sistemi ile bunu yapmak kadar verimli görünüyor alır, ama bundan daha uygun bir çözüm seçmek için daha fazla şey olduğunu
anlıyorum

@ csirac2 snazzer'ı koruyor musunuz? Bu tür bir çözüm arıyorum. Aktif olarak korunuyorsa snazzer ile ilgileniyorum. GitHub son etkinliği göstermiyor ...
MountainX

@MountainX Snazzer hakkında çok fazla ilk geri bildirim alamadığım zaman, coşku kaybettim .. Yazmaya başladığımda, gerçekten sadece OpenSUSE'nin balığı ve btrfs'leri otomatikleştirmek için etrafta yüzen bir avuç kabuk / python komut dosyası vardı. Dünyayla paylaşmaya geldiğimde, diğer birçok seçenek ortaya çıktı ve btrbk'nin çok fazla bir momentuma sahip olduğunu söyleyebilirim (otomatik test eksikliği [belki şimdi düzeltildi mi?] Olsa da). Hepsini tekrar yapmak zorunda kalsaydım, sanırım orada btrfs uyumluluğu eklemek için sanoid yazarla işbirliği yapmış olurdum. Düşüncelerinizi duymak ister.
csirac2
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.