Eşlik bir RAID-5 dizisinde nasıl çalışır?


31

Özel yedeklemeler için küçük bir RAID dizisi oluşturmak istiyorum. Her şeyi sayısallaştırma alışkanlığım olduğu için yaklaşık 2-4 TB boş alan istiyorum. Bu nedenle, sürücü arızası durumunda çok fazla depolama ve fazlalık gerekecek. Ayrıca aslında /homeLinux için "Time Machine" klonlarından birini kullanarak 2-3 bilgisayarın klasörünü yedekleyeceğim . Bu diziye yerel ağım üzerinden SSH üzerinden erişilebilecek.

RAID-5'in nasıl eşlik sağladığını ve kaç sürücünün gerekli olduğunu anlama konusunda güçlükler yaşıyorum. Biri 5 sürücüye ihtiyacı olduğunu varsayar, ama yanılıyor olabilirim. Gördüğüm diyagramların çoğu henüz kafamı karıştırdı. Görünüşe göre RAID-5 böyle çalışıyor, lütfen doğru düzelmediğimden emin olduğum için beni düzeltin:

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

Sürücüler 1-3 görünür ve tek, büyük bir sürücü ( capacity * number_of_drives) olarak çalışır ve eşlik sürücüleri bu sürücüleri yedekler. Bana garip gelen, genellikle 1 veya 2 parite sürücüye bir diyagramda 3+ depolama sürücüsü gördüğüm. RAID-5 dizisinde 4 1TB sürücü çalıştırdığımızı, 3 çalışan depolamanın ve 1 çalışan paritenin çalıştığını, 3TB gerçek depolama alanımız olduğunu, ancak yalnızca 1 TB eşlik oranının bulunduğunu varsayalım !?

Burada bir şeyleri özlediğimi biliyorum, biri bana yardım edebilir mi? Ayrıca, kullanım durumum için, RAID-5 veya RAID-6 daha iyi ne olabilir? Hata toleransı bu noktada benim için en yüksek önceliktir, çünkü sadece ev kullanımı için bir ağ üzerinden çalışacağı için, hız son derece kritik değildir .

Yanıtlar:


30

Sadece her sürücüdeki ilgili bitleri XOR olarak gösterir - Herhangi bir sürücüyü kaybederseniz, eksik verileri yeniden oluşturabilirsiniz.

Arka plan için:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

D'nin diğer sütunların XOR olduğunu varsayalım, o zaman sadece bir sürücüyü kaybettiğiniz sürece, neyi kaybettiğinizi anlayabilirsiniz.

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

Bazı zamanlar şerit biti sürücülere dağıtılacak, fakat konsept aynı.

Bu nedenle, RAID-5 için kaç sürücü olursa olsun, RAID yapmak istediğiniz dizideki en küçük sürücüden eşit veya daha büyük eşlik için yalnızca 1 sürücüye ihtiyacınız vardır.

Kişisel kullanım için RAID-5, hesaplama karmaşıklığının RAID-6'dan çok daha düşük olması nedeniyle muhtemelen en iyisidir.

RAID-6, pariteyi hesaplamak için Galois Alanları kullanarak daha karmaşıktır . Bu da parite hesaplamaları yapabilir. Ancak, daha fazla sürücü kaybedebilirsiniz, ancak tek bir hata alır almaz dizinizi yeniden kurarsanız, RAID-5 ile iyi bir şekilde yapışmış olmalısınız.


Mükemmel cevap Bit seviyesi yerine gerçek bir sabit disk bazında çok büyük bir ölçekte düşünüyordum. Öyleyse RAID-5, eşlik için özel bir sürücü mi kullanıyor yoksa tüm eşlik için tüm sürücüleri mi kullanıyor? Bu konuda kafam karıştı.
Naftuli Kay

2
Modern yaklaşımın paritenin tüm sürücülere çapraz olarak dağıtılması olduğuna inanıyorum. Bu, farklı sürelere paralel olarak birden fazla IO talebi gönderilebileceği için okuma zamanını parite bitlerine hızlandırma etkisine sahiptir, ancak bu konuda beni alıntı yapmayın.
Matt

Verilen xsürücü ve yher bir sürücü için mevcut GB kapasitesini belirlemek için kullanabileceğim matematiksel bir formül var mı ?
Naftuli Kay

2
Evet, bu (en küçük sürücü boyutu) * (dizideki sürücü sayısı - 1)
Matt

1
Eşlik diğer iki diskin sadece bir XOR'si ise, iki diskin hangisinin bozulduğunu nasıl biliyorsunuz? Her iki diskte biraz çevirme işlemi paritede biraz çevirmeyle sonuçlanmaz mı?
Jay Sullivan

8

RAID4 ve RAID5'te eşliğin nasıl çalıştığını gösteren daha iyi bir şema olduğunu düşünüyorum.

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4

Veya, bu SVG'ye bir göz atın Wikipedia'da en.wikipedia.org/wiki/Standard_RAID_levels#/media/…
Giuseppe Crinò

4

Raid 5 ve Raid 6 hakkındaki Wikipedia makalesini okumanızı tavsiye ederim.

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

RAID 5, her bir şeride bir eşlik bloğu yazar, böylece 4 disk dizisinin A şeridi için 4. diskte eşlik denetimi yazar, Disk 1, 2 ve 3'teki Veriler

Strip B için parite bloğu disk 3'te, diskler 1,2 ve 4'teki verilerle vs.dir.

Disk 4 başarısız olursa, disk 1 ve 2 üzerindeki verileri bildiğiniz ve disk 3 üzerinde eşlik kontrolünü yaptığınız gibi Strip B için veriler kurtarılabilir.

Eğer B şeridi "2" 'lik bir pariteye sahipse ve disk 1 "1" ve disk 2 verisi "0"' a sahipse, disk 4 "1" 'e eşit verilere sahip olmalı, böylece disk data = "1" ile yazılmalıdır.

Tüm disk bu şekilde yeniden oluşturulabilir, RAID 6 bunu şerit başına 2 parti bloğu alarak genişletir.

Raid 5 için alanla ilgili olarak, sadece şerit başına parite bloğuna yazarken, parite için sadece bir disk alanını boşaltırsınız; Baskın 5;)

Wikipedia makalesi bunu daha iyi açıklıyor!


3

RAID 5, dizide kaç tane veri sürücüsü olduğuna bakılmaksızın, eşlik için bir sürücü kullanır. Bu, kullanılabilir alan açısından, daha fazla sürücü eklenerek daha verimli hale geldiği anlamına gelir.

Eşlik, her sürücüdeki aynı blokta bir XOR işlemi yapılarak sağlanır; eşlik sürücüsünün içeriği, tüm XOR sürücülerini sıfıra gelecek şekilde ayarlanır . Bu, RAID 5'in dizideki tüm sürücülerin en küçük kapasitesiyle sınırlandırıldığı anlamına gelir .

RAID 6, aynı anda iki sürücü arızasının tolere edilebilmesi dışında benzerdir. Bu yararlıdır, çünkü tek bir sürücü arızasından sonra bir diziyi "yeniden toplama " işlemi, ikinci bir sürücünün arızalanmasına neden olacak kadar stresli olabilir.


Yani bu aslında 4 2 TB sürücüye sahip olabileceğim ve 6 TB etkin, yedek depolama yapabildiğim anlamına mı geliyor?
Naftuli Kay

@TK Kocheran RAID 5 ile evet. Etkin depolama alanının dosya sistemi nedeniyle biraz daha az olacağını unutmayın. Örneğin, RAID-Z1'deki 4 ZTB sürücülü NAS'ım (ZFS'nin RAID 5 sürümü) 5.18TB kullanılabilir bir alana sahiptir.
sblair

Evet, elbette :) Her zaman bu şekilde olur. Sıradaki soru hangi dosya sisteminin kullanılacağı ...
Naftuli Kay

0

Hata toleransı amacınızsa, RAID-6 iki sürücüyü kaybetmek için yeterince fazlalık sağlayacaktır. Genellikle RAID-5 yalnızca tek bir sürücü arızasına katlanır.


RAID-6 için sürücülerin parite (toplam depolama) oranı nedir? drive_size * (drive_count - 2)?
Naftuli Kay

1
İlkini değiştirmeden önce ikinci bir sürücünün hatalı gitmesine izin vermenin yanı sıra, ilkini değiştirmeden önce kötü bir durum daha var ve bir kereden fazla rastladım: Bir sürücü bir RAID dizisinde bozuluyor, ve yeni sürücü sipariş edildi. RAID dizileri hakkında hiçbir şey bilmeyen bazı rastgele kişiler, yeni sürücüyü elinde tutan sunucu odasına gider, numaralandırmayı karıştırır ve değiştirilmek üzere diziden yanlış sürücüyü çıkarır. RAID5 altında, diziniz tam orada vidalanır. RAID6, hala kurtarılabileceğiniz anlamına gelir.
camster342
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.