Büyük sabit disklerimi yedeklemeyi planlıyorum rsync
ve birkaç gün alacağını tahmin ediyorum . Çalışırken orijinal HDD'yi (dosya ekleyerek) kullanmak güvenli rsync
midir? Veya bitene kadar HDD’leri el değmeden bırakmak daha mı iyi rsync
?
Büyük sabit disklerimi yedeklemeyi planlıyorum rsync
ve birkaç gün alacağını tahmin ediyorum . Çalışırken orijinal HDD'yi (dosya ekleyerek) kullanmak güvenli rsync
midir? Veya bitene kadar HDD’leri el değmeden bırakmak daha mı iyi rsync
?
Yanıtlar:
Diğerlerinin de belirttiği gibi, rsync çalışırken, kaynak diskten okumak veya hedef diskin dışındaki hedef diski kullanmak güvenlidir. Hedef dizin içinde, özellikle hedef dizin yalnızca rsync çalıştırması tarafından dolduruluyorsa okumak güvenlidir .
Olmayan ne genel olarak güvenli olan kaynak dizin içindeki yazma rsync çalışırken. "Yazıyor", kaynak dizinin içeriğini veya alt dizinlerini değiştiren herhangi bir şeydir, bu nedenle dosya güncellemelerini, silmeleri, oluşturma vb.
Bunu yapmak, aslında olmaz kırmak şey, ama değişim veya aslında hedef konuma kopyalamak için rsync tarafından yakalandı olabilir veya olmayabilir. Bu, değişimin türüne, rsync'nin belirli bir dizini henüz taramamış olup olmamasına ve rsync'nin söz konusu dosyayı veya dizini kopyalayıp kopyalamadığına bağlıdır.
Bununla birlikte, bunun kolay bir yolu var: Tamamlandığında, aynı parametrelerle rsync'i tekrar çalıştırın. (Bazı funky delete parametresine sahip değilseniz; yaparsanız, biraz daha dikkatli olun.) Bunu yapmak, kaynağın yeniden taranmasına ve orijinal çalıştırma sırasında toplanmayan farkların aktarılmasına neden olur.
İkinci çalıştırma yalnızca önceki rsync çalıştırması sırasında meydana gelen farkları transfer etmeli ve bu şekilde daha hızlı tamamlanacaktır. Bu nedenle, bilgisayarı ilk çalıştırma sırasında normal şekilde kullanmakta özgürsünüz, ancak ikinci çalıştırma sırasında kaynakta herhangi bir değişiklik yapmaktan kaçınmalısınız. Yapabiliyorsanız, ikinci rsync çalışmasına başlamadan önce kaynak dosya sistemini salt okunur olarak yeniden kurmayı düşünün . (Yapılması mount -o ro,remount /media/source
gereken bir şey var.)
@reboot root find / -print &>/dev/null
sistem crontab'ımdaki gibi önbelleği doldurmak için bir giriş yaptım. (Asıl giriş, kendi sistemimdeki birkaç özel durumu hesaba katmak için daha karmaşık.) Dizin ağacı taramasını biraz IME geliştirmek için başlangıçta erken bir saatte biraz RAM ve biraz duvar saati kullanıyor.
updatedb
(bunun için yer bulma veritabanını inşa etmeli ) ya da slocate -u
(eğer varsa, aynı yerde) çalışmalısınız. Bu şekilde hala hiyerarşiyi önbelleğe alıyorsunuz ama aynı zamanda birçok dosyayı hızlıca bulmak için bu komutları kullanmanıza izin veren locate veya slocate veritabanlarını da oluşturuyorsunuz?
Bu, kullandığınız yedekleme sistemine bağlıdır, ancak genel olarak, siz yedeklerken bir cihazın içeriğini değiştirmek kötü bir fikirdir . Ancak içeriğini okuyabilirsiniz ; süreci yavaşlatacak olsa bile, bu güvenli bir işlemdir.
Senin durumunda, rsync
bir dosya listesi oluşturacak ve daha sonra yedeklemeyi başlatacak. Bu nedenle yedekleme sonra kaynak HDD eklemek herhangi bir dosya olacak başlamıştır değil kopyalanabilir.
Yaptığım bir yedekleme sırasında hiç bir cihaz kullanmamak. Bu hızlı ve tutarlı bir yedekleme elde etmenin daha güvenli bir yoludur.
rsync
birkaç saniye içinde bitecek olan ikinci bir çalışmayı yapıyorum çünkü yalnızca çalışma sırasında değiştirdiğim dosyalar kopyalanacak. Her şey önbellekte olacak, bu yüzden bu dönemde değişikliklerden kaçınmak çok daha kolay.
Çalışırken kaynak alanlardaki verileri okumak güvenlidir rsync
, ancak herhangi bir şeyi güncellerseniz, rsync
oluşturan / güncelleyen kopyaların tutarsızlık göstermesi olasıdır:
Rsync'in daha önce taradığı bir dosyayı güncellerseniz, bir sonraki çalıştırmaya kadar güncellemeyi görmez. Bir dosyayı güncellerseniz henüz taramayacak olan değişiklik hedefte dikkate alınacaktır. Hem taranan hem de taranmamış dosyaları güncellerseniz, hedefte eski ve yeni sürümlerin bir karışımı olur.
Daha önce taranan bir dizine dosya eklerseniz, bu sefer hedef kopyadan atlanacaktır. Zaten taranmış bir dizinden bir dosyayı kaldırırsanız, bu sefer hedef kopyada bırakılacaktır. Nasıl başlattığınıza bağlı olarak rsync
tüm ağaç başlangıçta taranabilir veya senkronizasyon işlemi gerçekleştikçe artımlı olarak taranabilir.
Bazı durumlarda rsync
tutarsızlığı görecek ve sizi uyaracaktır. Bir dosyayı veya alt dizini önceden taranan ancak içeriği taranmamış bir dizinden kaldırırsanız, eksik olan nesne hakkında bir hata mesajı alırsınız. Benzer durumlarda bazen (eğer boyut ve / veya zaman damgası değiştiyse), taramayı değiştiren dosyalar hakkında da uyarır.
Bazı yedeklemeler için bu tutarsızlık çok büyük bir sorun olmayabilir, ancak çoğu için aktif olarak değişen bir kaynağı senkronize etmemeniz önerilir.
Depolama sisteminizi porsiyonlamak için LVM kullanıyorsanız, bir an önce yedekleme yapmak için geçici bir anlık görüntü kullanabilirsiniz. Bu, anlık görüntünün gerekli olduğu sürede gerçekleşecek tüm değişiklikleri tutacak kadar büyük bir anlık görüntü birimi oluşturmak için birim grubunda yeterli alana sahip olmanızı gerektirir. LVM belgelerine bakın (ya da birçok çevrimiçi örnekten birini: daha fazla ayrıntı için "LVM anlık görüntü yedeğini" veya benzerini arayın).
LVM olmasa bile, bazı dosya sistemleri anlık görüntüleri kendileri destekler - bu yüzden bu seçeneğe de bakmak isteyebilirsiniz.
Uzun süre kapalı kalmadan büyük aktif birimleri yedeklemek istiyorsanız ve anlık görüntüleri kullanamıyorsanız, "canlı" taramayı tamamlamak için çalıştırmak, ardından birime erişimi durdurmak ve daha az zaman alabilen başka bir rsync işlemi çalıştırmak yeterli olabilir (eğer çok az değişti, sadece dizin ağacını tarayacak, sonra birkaç güncellenmiş dosyayı tarayacak). Bu şekilde değişikliklerden kaçınmanız gereken süre çok daha kısa olabilir.
Kaynak HDD rsync iken her şeyi okuyabilir.
Kaynak HDD, rsync içeriğiyle ilgili olmayan herhangi bir içerik yazabilir.
Hedef HDD, rsync iken her şeyi okuyabilir.
Hedef HDD, senkronize edilen içerik için yeterli alana sahip olma koşulu ile rsync yaparken her şeyi yazabilir.
Tabii ki, hiçbir durumda, performans azalması olacaktır.
Mevcut tüm cevaplar tutarlılık ve mükemmel donanım varsayımı bakımından veri güvenliğinden bahsediyor.
Dikkate alınacak bir diğer şey, donanım güvenliğinin kendisidir. Başarısızlığın eşiğinde olabilecek yedeklenmemiş sabit sürücüleriniz varsa (henüz bilmiyor olabilirsiniz) ve ilk kapsamlı bir yedekleme yapıyorsanız kullanmayın. Veriler kritikse, bağlantı bile vermeyin. dd
Diski blok aygıtı olarak klonlamak gibi bir araç kullanabilirsiniz . İstediğiniz disk kafasının aranmasını istemiyor ve muhtemelen yedekleme yapmaya çalışırken yazıyor. Artı dd
, sadece bitleri sırayla kopyaladığından ilk yedekleme için daha hızlı olmalıdır (Sürücü çoğunlukla dolu değilse, ilk durumda da rsync'in kazanacağını varsayalım).
Sonraki artımlı yedeklemeler için rsync harika bir seçimdir ve diğer cevapları% 100 kabul ediyorum.
dd
ise en iyi seçenek değildir. Yerine ddrescue
kullanın; kısmi başarısızlıkları çok daha iyi ele alıyor. Ancak bu, asıl soruda dikkate alınmadı.