web-dev-qa-db-ja.com

RAID-5アレイでパリティはどのように機能しますか?

専用バックアップ用の素敵な小さなRAIDアレイを構築したいと考えています。すべてをデジタル化するというこの厄介な小さな癖があるので、約2〜4 TBの空き容量を確保したいと考えています。したがって、ドライブに障害が発生した場合に備えて、大量のストレージと冗長性が必要になります。また、基本的に2〜3台のコンピュータをバックアップします/homeフォルダは、Linuxの「Time Machine」クローンの1つを使用しています。このアレイには、SSH経由でローカルネットワーク経由でアクセスできます。

RAID-5がパリティを実現する方法と実際に必要なドライブの数を理解するのが困難です。 5台のドライブが必要だと思い込むかもしれませんが、私は間違っている可能性があります。私が見たほとんどの図は、まだ混乱しているだけです。これはRAID-5の動作方法のようです。正しく把握していないと確信しているため、修正してください。

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

ドライブ1〜3が表示され、単一の大容量ドライブ(capacity * number_of_drives)とパリティドライブがそれらのドライブをバックアップします。奇妙に思えるのは、通常、1つまたは2つのパリティー・ドライブのみの図に3つ以上のストレージ・ドライブが表示されることです。 RAID-5アレイで4つの1TBドライブ、3つの実行ストレージ、1つの実行パリティーを実行しているとします。実際のストレージは3TBですが、パリティーは1TBしかありません!?

私はここで何かが足りないことを知っています、誰かが私を助けてくれますか?また、私のユースケースでは、RAID-5とRAID-6のどちらが良いでしょうか?現在のところ、フォールトトレランスは私にとって最優先事項です。家庭用のネットワーク上で実行されるため、速度は重要ではありません非常に重要ではありません。

31
Naftuli Kay

各ドライブから対応する各ビットをXORするだけです-ドライブを紛失した場合、欠落しているデータを再構築できます。

背景について:

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

Dが他の列のXOR=であると想定すると、ドライブを1つだけ失う限り、何を失ったかを理解できます。

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

ストライプビットがドライブ全体に分散されることもありますが、概念は同じです。

したがって、RAID-5の場合は、ドライブの数に関係なく、RAIDするアレイ内の最小のドライブと同じかそれより大きいパリティ用に1つのドライブのみが必要です。

計算の複雑さがRAID-6よりもはるかに低いため、個人用のRAID-5がおそらく最適です。

RAID-6は、パリティを計算するために Galois Fields を使用してより複雑です。そして、それはパリティ計算に負担をかけることができます。ただし、より多くのドライブを失う可能性がありますが、単一の障害が発生した直後にアレイを再構築する場合は、RAID-5を使用することをお勧めします。

30
Matt

RAID4とRAID5でパリティがどのように機能するかを示すより良い図だと思います。

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
8
camster342

Raid 5とRaid 6に関するこのWikipediaの記事を読むことをお勧めします

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

RAID 5は各ストリップにパリティブロックを書き込むため、4つのディスクアレイのストリップAの場合、4番目のディスクにパリティチェックを書き込み、ディスク1、2、3にデータを書き込みます

ストリップBの場合、パリティブロックはディスク3にあり、データはディスク1、2、4などにあります。

ディスク4に障害が発生した場合、ディスク1と2のデータがわかっていて、ディスク3のパリティチェックがあるため、ストリップBのデータを回復できます。

ストリップBのパリティが「2」で、ディスク1のデータが「1」で、ディスク2のデータが「0」の場合、ディスク4のデータは「1」である必要があるため、ディスクはデータ=「1」で書き込まれます。

この方法でディスク全体を再作成できます。RAID6は、ストライプごとに2つのパーティブロックを持つことでこれを拡張します。

RAID 5では、ストライプごとのパリティブロックにのみ書き込みを行うため、RAID 5のスペースを失うことはありません。RAID6では、2つのディスクが失われますが、2つのディスクが失われる可能性もあります。 RAID 5;)

ウィキペディアの記事はこれをよりよく説明しています!

4
markfknight

RAID 5は、アレイ内のデータドライブの数に関係なく、パリティ用に1つのドライブを使用します。これは、使用可能なスペースの点で、追加されるドライブが増えるほど効率が良くなることを意味します。

パリティは、各ドライブの同じブロック全体でXOR操作を実行することによって実現されます。パリティドライブの内容は、すべてのドライブ XOR to zero になるように調整されます。つまり、RAID 5は、アレイ内のすべてのドライブの最小容量によって 制限 になります。

RAID 6は、2つの同時ドライブ障害が許容されることを除いて、似ています。単一のドライブに障害が発生した後のアレイの " resilvering "のプロセスは、2番目のドライブに障害が発生するほどストレスがかかる可能性があるため、これは便利です。

3
sblair

フォールトトレランスが目標である場合、RAID-6は2つのドライブを失うのに十分な冗長性を提供します。通常、RAID-5は単一のドライブ障害のみを許容します。

0
Nate