web-dev-qa-db-ja.com

RAID 10(1 + 0)とRAID 01(0 + 1)の間に違いはありますか?

これらの両方がリストされ、両方が複数のドライブ間でストライプ化およびミラー化されているのを見ましたが、私が取り上げていないそれらの違いは何ですか?

23
notnot

これは、操作が実行される順序に関係しており、6ディスク以上のアレイにのみ適用されます(4つのディスクがある場合、どちらもほぼ同じです)。

RAID 1 + 0(10):ディスク1 + 2、3 + 4、5 + 6がミラーリングされてRAID-1アレイが作成され、アレイの上にRAID 0アレイが作成されます。

RAID 0 + 1(01):ディスク1 + 2 + 3をストライプ化してRAID 0アレイを作成し、次にディスク4 + 5 + 6をストライプ化してRAID 1冗長性を作成します。

RAID 0 + 1では、アレイの片側(1、2、3または4、5、6)からディスクが1つ失われると、アレイがRAID 0を実行している状態(悪い)。

RAID 1 + 0では、各ペア(1、2、3、4、5、6)から1つのディスクを失う可能性があり、アレイは機能し続けます。このアレイをオフラインにできる唯一の方法は、ペアの両方のディスクに障害が発生することです。

例外的な状況でない限り、決して 0 + 1を使用する必要があります。

36
Mark Henderson

RAID 0 + 1 vs RAID 1 + 0(失敗の確率)

ここでは、失敗率の違いを示すはずの数学を少し示します。簡単にするために、偶数のディスクがあると仮定しましょう。

どちらのアレイ構成でも、各ディスクはブロックに分割されます。 RAID 0 + 1では、ストライピングが最初に発生し、次にミラーリングが発生します。 RAID 1 + 0では、ミラーリングが最初に発生し、次にストライピングが発生します。

Raid 0 + 1は常に2つのグループ(G1とG2)に分割できます。
私は数学的な意味で「パーティション」を使用していることに注意してください。
n個のディスクの場合、以下を定義できます。
G1 = {D1、D2、...、Dn/2}
G2 = {Dn/2 + 1、Dn/2 + 2、...、D}

Raid 0+1

4 Disks:                       6 Disks:
Disk1 Disk2 Disk3 Disk4        Disk1 Disk2 Disk3 Disk4 Disk5 Disk6
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
| a | | b | | a | | b |        | a | | b | | c | | a | | b | | c |
| c | | d | | c | | d |        | d | | e | | f | | d | | e | | f |
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
G1 = {D1, D2}                  G1 = {D1, D2, D3}
G2 = {D3, D4}                  G2 = {D4, D5, D6}



RAID 1 + 0の場合、ディスクを常にn/2グループに分割できます。
私は数学的な意味で「パーティション」を使用していることに注意してください。
n個のディスクの場合、以下を定義できます。
G1 = {D1、D2}
G2 = {D3、D4}
...
Gn/2 = {Dn-1、D}

Raid 1+0

4 Disks:                       6 Disks:
Disk1 Disk2 Disk3 Disk4        Disk1 Disk2 Disk3 Disk4 Disk5 Disk6
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
| a | | a | | b | | b |        | a | | a | | b | | b | | c | | c |
| c | | c | | d | | d |        | d | | d | | e | | e | | f | | f |
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
G1 = {D1, D2}                  G1 = {D1, D2}
G2 = {D3, D4}                  G2 = {D3, D4}
                               G3 = {D5, D6}


さて、これで、数学に入りましょう!
RAID 0 + 1構成で障害が発生するには、各グループから少なくとも1つのハードディスクが停止する必要があります。
RAID 1 + 0構成で障害が発生するには、単一グループ内のすべてのハードディスクが停止する必要があります。

どちらのRAID構成でも、少なくとも2つのディスクが停止する必要があります。 2つのディスクが停止した場合に両方のRAID構成が失敗する可能性のあるすべての原因を見てみましょう。

Number of Disks (n) = 4
2 Disks Die : Raid Failure
D1D2        : R10
D1D3        : R01
D1D4        : R01
D2D3        : R01
D2D4        : R01
D3D4        : R10

4つのディスクでは、C(n、2)= C(4、2)=合計6つの組み合わせがあります。

4/6 これらの組み合わせの場合、RAID 0 + 1構成は失敗します。 (失敗の可能性は66%)
次のように言えます。

P1 = P (Raid 0+1 Failure | 2 Disks die) = 2/3


2/6 これらの組み合わせの場合、RAID 1 + 0構成が失敗します。 (失敗の確率33%)
次のように言えます。

P2 = P (Raid 1+0 Failure | 2 Disks die) = 1/3


n = 6でも同じテストを実行できますが、テーブルは省略します。

P1 = 9/15 = 3/5
P2 = 3/15 = 1/5
P3 = P (No failures | 2 Disks die) = 4/15
P1P2 = 1/15

6つのディスクでは、c(n、2)= c(6、2)= 15の可能な組み合わせがあります。
Raid 0 + 1構成が失敗する可能性は60%です。
Raid 1 + 0構成が失敗する可能性は20%あります。

これらの結果は、n個のディスクに対して一般化できます。

P1 = c(n/2, 1) * c(n/2, 1) / c(n, 2)

   = (n/2 * n/2) / (n * (n - 1) / 2)

   = (n/2 * n/2) * (2 / (n * (n - 1))

   = (n * n / 4) * (2 / (n * (n - 1))

   = (n / 2) * (1 / (n - 1))

   = n / (2 * (n - 1))


P2 = (n/2) / c(n, 2)

   = (n/2) / (n * (n - 1) / 2)

   = (n/2) * (2 / (n * (n - 1)))

   = 1 / (n - 1)


数学の中で最も有用で興味深い部分です。上記の2つの方程式の限界をとることができます。以下では、「INF」を使用して無限大を意味します。

Lim n->inf P1 = Lim n->inf n / (2 * (n - 1))     // We can use L'Hopital's rule

              = Lim n->inf 1 / 2 = 1 / 2

つまり、Raid 0 + 1構成で2つのディスクが停止した場合、常に少なくとも50%の障害が発生します。

次に、RAID 1 + 0構成がどのように行われるかを見てみましょう。

Lim n->inf P2 = Lim n->inf 1 / (n - 1) = 0

言い換えると、RAID 1 + 0構成に追加するディスクが多いほど、失敗の理論的な0%の確率に近くなります。

1つの最終的なテーブル(値は整数に丸めていることに注意してください。)

-------------------
| n   | P1  | P2  |
-------------------
| 4   | 66% | 33% |
| 6   | 60% | 20% |
| 8   | 57% | 14% |
| 10  | 55% | 11% |
| 12  | 54% | 9%  |
| 16  | 53% | 7%  |
| 20  | 52% | 5%  |
| 24  | 52% | 4%  |
| 32  | 51% | 3%  |
| 64  | 50% | 1%  |
| 128 | 50% | 0%  |
-------------------

結論:RAID 1 + 0を使用します。

15
red_eight

これはServerFaultに属していますが、Wikipediaとの違いを簡単に説明します

RAID 1

RAID 1 + 0(または10)はミラーリングされたデータセット(RAID 1)であり、ストライプ化(RAID 0)されるため、「1 + 0」という名前になります。 RAID 1 + 0アレイには、少なくとも4つのドライブが必要です。2つのミラーリングされたドライブがストライプデータの半分を保持し、もう2つがデータの残りの半分のためにミラーリングされます。 Linuxでは、MD RAID 10はRAID 1のようなネストされていないRAIDタイプであり、最低2台のドライブしか必要とせず、RAID 0のレベルで読み取りパフォーマンスを提供します。

RAID 01

RAID 0 + 1(または01)はストライプ化されたデータセット(RAID 0)で、ミラーリング(RAID 1)されます。 RAID 0 + 1アレイには、最低4つのドライブが必要です。2つはストライプデータを保持し、もう2つは最初のペアをミラーリングします。

3
Earlz