LAN'ımda diğerleri için yedek sunucu olarak hizmet veren bir Debian makinem var. Yazılımda RAID 5 md aygıtında, bir LVM'de ve bu btrfs'de birleştirilmiş dört HDD'ye sahiptir. Yedeklemeler rsync kullanılarak yapılır ve büyük bir dosya sistemi için bir saatten fazla sürer. Uzun zamandır bu konuda yapabileceğim çok az şey olacağını düşünmüştüm.
Ancak son zamanlarda, HDD etkinliğinin aktarımın her iki ucunda da çok farklı olduğunu fark ettim . Gönderen taraf, Gentoo çalıştıran ve çoğunlukla ext4 kullanan, neredeyse hiç disk IO'su olmasa da, alıcı taraf sürekli meşguldü. Çoğu veri aktarımlar arasında değişmeyeceğinden, meta veri okumalarının verilerin büyük kısmını oluşturması gerektiğine inanıyorum. Ama eğer btrfs'de inode okumak ext4'te aynı şeyi yapmaktan çok daha fazla iş olursa gerçekten şaşırırdım.
iotop
teyit edilen disk, alıcı tarafta yaklaşık 1-4 MB / sn okurken, gönderen tarafta sadece ara sıra 0.5 MB / sn'lik patlama meydana geldi.
Sorum şu, burada neler olduğunu açıklayan var mı? Tercihen, mümkünse problemin nasıl çözüleceğine dair bazı göstergelerle.
Belki de kullanabileceğim bazı btrfs ayarlama bayrağı veya benzeri bir şey var. Yedekleme sunucusunda anlık görüntü özelliklerine sahip bir FS'ye ihtiyacım var ve FreeBSD ve ZFS kullanma girişimim hızlı bir şekilde tutarsız bir FS'ye yol açıyor, bu yüzden şu anda btrfs'e çok az alternatif görüyorum. Bu nedenle ext4 veya zfs kullanmamı söyleyen cevaplar upvotes alabilir, ancak onay işareti olmayabilir.
Cjm tarafından talep edildiği gibi kullanılan Rsync seçenekleri :
--rsync-path='rsync --fake-super'
--archive # -rlptgoD
--hard-links # detect and preserve these
--acls
--xattrs
--sparse
--noatime # based on patch from samba #7249c1
--delete
--delete-delay
--fuzzy
--human-readable # size suffixes, base 1000
--stats
-f
Bazı dosyaları atlamak için bir takım kuralların yanı sıra .
Btrfs ait montaj seçenekleri ile raporlanır mount
olarak
rw,nosuid,noexec,noatime,nospace_cache
Özellikle, bu noatime
bayrak içerir, bu nedenle bazı dosyalarda gerçekten farklılıklar olmadığı sürece herhangi bir yazı olmamalıdır. Ben cevaben bu bilgiyi katma cevap tarafından Kyle Jones .
dtrace
veya benzeri bir şey kullanmaktır systemtap
.