Bir rsync'in bir tarafını bu kadar meşgul eden nedir?


11

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

-fBazı dosyaları atlamak için bir takım kuralların yanı sıra .


Btrfs ait montaj seçenekleri ile raporlanır mountolarak

rw,nosuid,noexec,noatime,nospace_cache

Özellikle, bu noatimebayrak 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 .


Hangi rsync seçeneklerini kullanıyorsunuz?
cjm

Sadece karanlıkta bir çekim yapmak, başarısız bir disk var mı? Parite bilgisinden eksik verileri yeniden yapılandırmaya çalıştığı için bu ekstra G / Ç'ye neden olabilir.
bahamat

@bahamat, smartd çalışıyorum ve herhangi bir sorun bildirmedi. Mdadm da hiçbir olay bildirmedi.
MvG

Neyin yanlış olduğunu kesin olarak söylemek gerçekten zor. Sadece bir örnek, katmanlar arasında uyumsuz blok boyutlarıdır. Teşhis etmek için en iyi seçenek, zamanın nerede harcandığını bulmak dtraceveya benzeri bir şey kullanmaktır systemtap.
Bahama

@bahamat, henüz incelemediğim bir cadde. Sorunu teşhis etmek için bu araçların nasıl kullanılacağı hakkında bir cevap yazabilir misiniz? Bu harika olurdu. Zamanınız varsa adım adım talimatlar, ancak bazı kaba fikirler ve dokümantasyon işaretçileri bile çok yardımcı olacaktır.
MvG

Yanıtlar:


3

Olası bir yanıt, uzak dosya sisteminin varsayılan olarak "atime" seçeneğiyle monte edilmesidir. Erişim süresi, uzak rsync'in eriştiği her şey için RAID 5 ile karşılaştığınız yazma cezasıyla birlikte yazılır (hesaplama paritesi, bunlardan birine yazmadan önce tüm RAID disklerini okumak anlamına gelir) uzak taraftaki G / Ç büyütmesini açıklayabilir.

Haklıysam, uzak dosya sistemini "noatime" seçeneğiyle monte ederek işleri hızlandırabilirsiniz.


2
İyi düşünülmüş, ama ne yazık ki çözüm değil: dosya sistemi zaten noatime monte edilmiş. Mount, tüm bağlama seçenekleri grubunu olarak bildirir rw,nosuid,noexec,noatime,nospace_cache.
MvG

1

--Fake-super seçeneklerinden şüpheleniyorum. Bu, rsync'e tüm meta veri bilgilerini her dosyadaki genişletilmiş özniteliklerde depolamasını söyler. Bu özelliklere erişimin yavaş olduğundan şüpheleniyorum. --Fake-super olmadan bir kök için rsync ile bir test çalıştırmayı deneyin. Öznitelikler eşleşmediği için aynı yedeklemeyi tekrar kullanamazsınız.


Cevabınızı destekleyen bazı yararlı bağlantılar veya belgelere referanslar eklemek için cevabınızı genişletmeyi düşünmelisiniz.
HalosGhost

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.