RAID1, Linux mdadm ile performansı arttırır mı?


26

2 TB HDD'ye sahip ucuz bir 2 yuvalı NAS'ım var. Disk arızasına karşı dayanıklı olmak için, ikinci bir 2TB HDD satın almayı ve Linux mdadm ile RAID1'e yerleştirmeyi düşünüyorum. Dosya sistemi ext4'tür.

NAS'ın performansını artıracak mı yoksa azaltacak mı? Ya sadece okuma ya da yazma performansı?

Bu çevrimiçi hakkında çok fazla görüş var gibi görünüyor ama fikir birliği yok.

Teşekkürler.

Düzenle:

Bu yüzden zaten üç farklı cevabım var: "biraz daha hızlı", "farkına varmazsınız" ve "eğer bir şey olursa performansı düşürürsünüz". (Öncelikle okuma performansı ile ilgileniyorum.) Vikipedi "okuma performansı kabaca kopya sayısının doğrusal bir katı olarak artabilir" diyor. Hangisi o?

Düzenleme 2:

MD kılavuz sayfası da dahil olmak üzere RAID1'in artan okuma performansını desteklediğine dair kanıtlar buldum:

Değişiklikler tüm cihazlara paralel olarak yazılmıştır. Veriler herhangi bir cihazdan okunur. Sürücü, performansı en üst düzeye çıkarmak için tüm aygıtlara okuma isteklerini dağıtmaya çalışır.

Ayrıca RAID0'ın --layout=f2okuma performansı ile RAID1'in artıklığını sağlayan ve yalnızca iki sürücüyle kullanılabilen MD'nin RAID10'unu da keşfettim . Bununla birlikte, yazma performansı, sıralı bir yazma, sürücünün uzak kısımları arasında ileri geri arayan her iki sürücüyü de içerdiğinden, azaltılır. man mddetaylar için.


2
yazıyor; biraz daha yavaş. okur; biraz daha hızlı. Anladığım kadarıyla, yazma farkı olsa neredeyse sıfır, ve okuma oldukça belirgindir.
Sirex

Sırf ne diyorsa .. çıplak gözle performans farkını fark etmeyeceksiniz .. İki katına bile hatta yarısına kadar beklemeyin.
Piotr Kula,


1
Bir kısmı özlüyorum: NAS'a erişim ne kadar hızlı. Bir disk zaten ağ bağlantısını dolduruyorsa, daha fazla dahili hız size pek yardımcı olmaz.
Hennes,

Yanıtlar:


39

Evet, RAID1'in Linux uygulaması, bir seferde iki ayrı disk okuma işlemi gerçekleştirildiği sürece disk okuma işlemlerini iki kez hızlandırır . Bu, bir 10 GB dosyayı okumak RAID1'de tekli diskten daha hızlı sürmez, ancak iki farklı 10 GB dosyayı okumak * daha hızlı sürer.

Bunu göstermek için, sadece bazı verileri okuyun dd. Herhangi bir şey yapmadan önce, disk okuma önbelleğini ile temizleyin sync && echo 3 > /proc/sys/vm/drop_caches. Aksi takdirde hdparmsüper hızlı okumalar iddia edecek.

Tek dosya:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

İki dosya:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

10 GB veri okuma 65 saniye sürerken, 10 GB + 10 GB = 20 GB veri okuma toplamda 68.7 saniye sürdü, bu da birden fazla diskin Linux üzerindeki RAID1'den büyük ölçüde faydalanacağı anlamına geliyor . skip=$COUNTbölüm çok önemli. İkinci işlem, 10 GB ofsetten 10 GB veri okuyor.

Jared'in cevabı ve ssh'ın http://www.unicom.com/node/459 ile ilgili yorumları yanlıştır. Buradaki kıyaslama, disk okumaların RAID1'den faydalanmadığını kanıtlıyor. Bununla birlikte, test aynı anda iki ayrı okuma yapmayan bonnie ++ kıyaslama aracıyla gerçekleştirildi. Yazar, bonnie ++ 'nun RAID dizilerini kıyaslama için kullanılamaz olduğunu açıkça belirtir ( bakınız benioku ).


5

Evet, fazladan bir okuma performansı + artışı elde edeceksiniz. Dosya parçalarını, her iki HDD'deki dosyalarda olduğu gibi iki farklı HDD'den aynı okuyabildiğinizi kolayca hayal edebilirsiniz.

Teorik olarak, RAID denetleyicisi işini doğru yaparsa, O (n) hız kazanabilirsin.


5
mdadm, RAID yazılımıdır, bu nedenle aslında "RAID denetleyicisi" yoktur, ancak multplie'yi paralel olarak okuduğunuzda iyi bir okuma artışı sağlar, ancak bu durumda NAS kutusu olarak nadiren aynı anda kabul edilir. Detaylar için buraya bakın: freebsdwiki.net/index.php/…
Shadok

1
Uygulamada, Linux Software MD baskınından okumak için performans düşüyor. Bakınız unicom.com/node/459 (Bu testte okuma hızı 77 MB / s'den 74 MB / s'ye düşürüldü).
ssh,

2
@ssh unicom.com/node/459 tamamen yanlıştır. bonnie ++, readme'de açıkça belirtilen RAID aynalarını test etmek için kullanılamaz. Daha fazla ayrıntı için cevabımı gör. superuser.com/a/757264/68978
Nowaker

4
  • man 4 mdbelirtiyor: "… Sürücü tarafından yapılan okuma dengelemesinin RAID1 performans profilini RAID0 ile aynı hale getirmediğini unutmayın ; tek bir giriş akışı hızlandırılmayacak (örneğin tek bir dd), ancak birden fazla sıralı akış veya rasgele iş yükü tek milinden daha fazla kullanır. Teorik olarak , RAID1 N sıralı ipler tüm disklerden okumak sağlayacak bir N-diske sahip. ..."

  • Tamamen tepkimeye sokmak - pratikte , iostattipik bir 2 HDD yazıcılı RAID kurulumunda gözlenen çıktılara dayanarak , dengeleme yapılmaz . Aslında, etkin bir mdadmseçenek --write-mostlyolarak her zaman açık gibi görünüyor .


3

Hayır, mdadm RAID1'den okurken hiçbir fayda elde edemezsiniz. Bunu bir süre önce kendime soruyordum.

dstatDisk kullanımını gösterir, bwm-ngözellikle bu durumda da gerçekten yardımcı olur, çünkü ayrı mdadm RAID üyelerinde okuma / yazma kullanımını gösterebilir. Sadece nbirkaç kez basın (ileride), arayüz istatistiklerinden disk istatistiklerine geçer. Sonra ther bir diskten maksimum okuma / yazma görmek için ile maksimum değerlere geçin . Aşağıdakileri göreceksiniz:

RAID1 birimine yazma bwm-ng, aynı anda 2 diske yazan 2 x yazma gösterir. RAID1 biriminden okuma yapılması bwm-ng, tek bir sürücüden (dizi üyesi) okumayı gösterir.

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.