RAID 6
「RAID 5」では、パリティーを作成することで、HDDが1台故障してもデータの復旧が可能でした。「RAID 6」では、パリティーを2種類作成することで、HDDが2台故障してもデータの復旧が可能になります。
RAID 6の特徴
「RAID 6」の特徴です。冗長性と信頼性
「RAID 6」は冗長性を提供しているため、物理ボリュームが2つ故障しても復旧可能です。「RAID 5」よりも信頼性が高くなりますが、「RAID 1」ほど信頼性は高くありません。
物理ボリュームの使用効率
「RAID 1」ほど信頼性は高くないですが、HDDの使用効率は高いです。例えば、200GBのHDDを4台使用して「RAID 6」を構築した場合、400GB(200GB * 2)のHDDとして利用することができます。
残りの400GBの容量は、パリティーの保存に割り当てられます。
200GBのHDD 10台で「RAID 6」を構築した場合、1600GB(200GB * 8)のHDDとして利用することができます。
残りの400GBの容量は、パリティーの保存に割り当てられます。
物理ボリュームは最低4つ必要
「RAID 6」を構築するには、最低でも4つ物理ボリュームが必要です。冗長性について
「RAID 6」の冗長性についてです。パリティー
「RAID 6」は冗長性を提供するために、パリティーを利用します。パリティーはデータを復旧するためのデータです。
パリティーは保存するデータから生成されます。
2種類のパリティー
「RAID 5」は1種類のパリティーでしたが、「RAID 6」では2種類のパリティーを使用します。それぞれのパリティーは、「Pパリティー」及び「Qパリティー」と呼ばれます。
「Pパリティー」は「RAID 5」のパリティーと同じです。
「Qパリティー」は「RAID 6」のパリティーですが、「Pパリティー」とは計算方法が異なります。
データブロックとパリティーブロック
物理ボリュームには、データとパリティーが保存されます。データとは、ユーザーやアプリが書き込んだデータのことです。
このデータが保存された物理ボリューム上のブロックを、データブロックと表現します。
一方、このデータから生成されたパリティーが保存された物理ボリューム上のブロックを、パリティーブロックと表現します。
物理ボリュームが1つ故障しても復旧可能
冗長性があるので、物理ボリュームが1つ故障しても復旧可能です。データブロックを復旧する場合は、残りのデータブロックとパリティーブロックからデータブロックを復旧します。
パリティーブロックを復旧する場合は、データブロックのデータからパリティーを生成します。
パリティーが保存される物理ボリューム
パリティーは、アレイを構成する物理ボリュームのいずれかの物理ボリュームに保存されます。どこにどのようにパリティーを保存するのか、ユーザーが指定することができます。
CPUの使用率が向上する
パリティー生成時にパリティーの計算処理が必要になるため、CPUの使用率が上がります。データの復旧時も同様にパリティーの計算処理が必要になります。
パリティーが2種類あるため、「RAID 5」よりも計算処理が増加します。
RAID 6アレイを作成するコマンドの説明
「mdadm」コマンドの説明です。ショートオプションとロングオプションについて
モードやオプションの記述方法には、「ショートオプション」と「ロングオプション」の2種類があります。どちらを利用しても良いでのですが、ここでは意味が分かりやすい「ロングオプション」を使用します。
コマンドのフォーマット
「mdadm」コマンドのフォーマットは以下になります。mdadm <モード> <アレイのデバイスファイル> <オプション> <アレイを構成する物理ボリューム>
モード
モードは、「mdadm」の動作モードを指定します。アレイの作成なので、以下のモードを指定します。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-C | --create | --create |
論理ボリューム
論理ボリュームのデバイスファイルを指定します。新規に論理ボリュームを作成するので、既存の論理ボリュームのデバイスファイルと重複しないデバイスファイルを指定します。
デバイスファイルのフォーマット
以下のフォーマットで指定すると良いでしょう。/dev/md/アレイの名称
記述例
- /dev/md/MyArray
- /dev/md/Data
- /dev/md/Backup
必須オプション
指定するオプションには、必須のオプションと任意のオプションがあります。必須オプションは必ず指定してください。
1.アレイの種類の指定
「RAID 6」のアレイを作成するので、以下の指定を行います。ショートオプション | ロングオプション | 記述例 |
---|---|---|
-l | --level | --level=raid6 |
2.アレイを構成する物理ボリューム数の指定
アレイを構成する物理ボリューム数を指定します。4つの物理ボリュームでアレイを構築するなら、「4」を指定します。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-n | --raid-devices | --raid-devices=4 |
任意のオプション(推奨)
任意のオプションは指定しなくてもよいですが、指定を検討したほうが良いオプションを紹介します。アレイの使い勝手に影響するオプションです。
1.チャンクサイズの指定
「チャンクサイズ」の指定を行います。チャンクは、データの分割単位です。
指定するチャンクサイズの単位は、「KiB」です。
このオプションを省略した場合は、「512」が指定されたものと見なされます。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-c | --chunk | --chunk=128 |
単位の指定
単位の指定を省略した場合は、上記でも記述した通り「KiB」が単位になります。以下のように単位を指定することも可能です。
単位の指定 | 単位 | 記述例 | 記述例の説明 |
---|---|---|---|
単位の指定なし(省略) | KiB | --chunk=32 | チャンクサイズに「32KiB」を指定する |
M | MiB | --chunk=1M | チャンクサイズに「1MiB」を指定する |
G | GiB | --chunk=1G | チャンクサイズに「1GiB」を指定する |
2.スペアディスク数の指定
「スペアディスク」数の指定を行います。「スペアディスク」となる物理ボリュームを1つ設定するなら、「1」を指定します。
このオプションを省略した場合は、「スペアディスク」なしになります。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-x | --spare-devices | --spare-devices=1 |
3.データレイアウトの指定
「RAID 6のデータレイアウト」の指定を行います。このオプションを省略した場合は「デフォルト」が指定されたものとして扱われます。
「デフォルト」は「Left Symmetric」です。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-p | --layout | --layout=left-symmetric |
以下の値を指定することができます。
データレイアウト | ショートオプション | ロングオプション | 記述例 |
---|---|---|---|
デフォルト | なし | default | --layout=default |
Left Asymmetric | la | left-asymmetric | --layout=left-asymmetric |
Right Asymmetric | ra | right-asymmetric | --layout=right-asymmetric |
Left Symmetric | ls | left-symmetric | --layout=left-symmetric |
Right Symmetric | rs | right-symmetric | --layout=right-symmetric |
Parity First | なし | parity-first | --layout=parity-first |
Parity Last | なし | parity-last | --layout=parity-last |
DDF Zero Restart | なし | ddf-zero-restart | --layout=ddf-zero-restart |
DDF N Restart | なし | ddf-N-restart | --layout=ddf-N-restart |
DDF N Continue | なし | ddf-N-continue | --layout=ddf-N-continue |
4.物理ボリュームのサイズの指定
各物理ボリュームでアレイに使用するサイズを指定します。指定するサイズの単位は、「KiB」です。
このオプションを省略した場合は、アレイを構成する物理ボリュームの中で最も容量の小さいサイズを使用します。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-z | --size | --size=32 |
単位の指定
単位の指定を省略した場合は、上記でも記述した通り「KiB」が単位になります。以下のように単位を指定することも可能です。
単位の指定 | 単位 | 記述例 | 記述例の説明 |
---|---|---|---|
単位の指定なし(省略) | KiB | --size=32 | 物理ボリュームのサイズに「32KiB」を指定する |
M | MiB | --size=1M | 物理ボリュームのサイズに「1MiB」を指定する |
G | GiB | --size=1G | 物理ボリュームのサイズに「1GiB」を指定する |
任意のオプション(ライトインテントビットマップ)
「ライトインテントビットマップ」に関するオプションです。1.ライトインテントビットマップの設定
ライトインテントビットマップの設定を行います。このオプションを省略した場合は、ライトインテントビットマップは無効です。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-b | --bitmap | --bitmap=internal |
内部ビットマップを有効にする
「internal」を指定すると、内部ビットマップが有効になります。外部ビットマップを有効にする
ファイルを指定すると、外部ビットマップが有効になります。ファイルはパス付きで指定してください。
最低でもパス区切り記号である「/」が一つ含まれている必要があります。
また、指定されたファイルがすでに存在していないようにしてください。
2.ビットマップのチャンクサイズを指定する
「ライトインテントビットマップ」のチャンクサイズを指定します。このオプションを省略した場合は、自動的にチャンクサイズが決定されます。
指定するサイズの単位は、「KiB」です。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
なし | --bitmap-chunk | --bitmap-chunk=65536 |
単位の指定
単位の指定を省略した場合は、上記でも記述した通り「KiB」が単位になります。以下のように単位を指定することも可能です。
単位の指定 | 単位 | 記述例 | 記述例の説明 |
---|---|---|---|
単位の指定なし(省略) | KiB | --bitmap-chunk=32 | チャンクサイズに「32KiB」を指定する |
M | MiB | --bitmap-chunk=1M | チャンクサイズに「1MiB」を指定する |
G | GiB | --bitmap-chunk=1G | チャンクサイズに「1GiB」を指定する |
任意のオプション
指定しなくても良いオプションです。1.アレイ名の指定
「アレイの名称」を指定します。このオプションを省略した場合、論理ボリュームのデバイスファイル名からアレイの名称が生成されます。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-N | --name | --name=RAID6Array |
2.追加情報の表示
「mdadm」実行時に、追加情報を表示します。ショートオプション | ロングオプション | 記述例 |
---|---|---|
-v | --verbose | --verbose |
3.メタデータフォーマットの指定
「メタデータ」(スーパーブロック)のフォーマットを指定します。このオプションを省略した場合、デフォルト値が指定されたものとして扱われます。
Ubuntu 13.10では、デフォルト値は「1.2」です。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-e | --metadata | --metadata=default |
指定できる値は以下のとおりです。
メタデータのバージョン | 記述例 |
---|---|
0.90 | --metadata=0.90 |
1.0 | --metadata=1.0 |
1.1 | --metadata=1.1 |
1.2 | --metadata=1.2 |
デフォルト値 | --metadata=default |
4.ホームホストの指定
アレイの「ホームホスト」を指定します。ショートオプション | ロングオプション | 記述例 |
---|---|---|
なし | --homehost | --homehost=myHost |
アレイを構成する物理ボリューム
アレイを構成する物理ボリュームを指定します。各物理ボリュームは、スペースで区切ります。
/dev/sdd5 /dev/sde5 /dev/sdf5 /dev/sdg5
glob
物理ボリュームの指定は、globに対応しています。例えば上記の記述は、以下のように記述することもできます。
/dev/sd[d-g]5
/dev/sd[defg]5
スペアディスクについて
オプションで「スペアディスク」数を指定している場合は、後ろに記述した物理ボリュームが「スペアディスク」になります。例えば以下のコマンドでは、赤字の箇所が「スペアディスク」になります。
sudo mdadm --create /dev/md/RAID6Array --level=raid6 --raid-devices=4 --spare-devices=2 --verbose /dev/sdd5 /dev/sde5 /dev/sdf5 /dev/sdg5 /dev/sdh5 /dev/sdi5
従って「スペアディスク」を指定する場合は、物理ボリュームの記述順に注意してください。