RAID 1
「RAID 1」はミラーリングとも呼ばれ、RAIDを構成するすべての物理ボリュームに同じデータを書き込みます。常に物理ボリュームのバックアップを作成している感じでしょうか。
「RAID 1」で利用するより、「RAID 0」と組み合わせて「RAID 10」で利用することが多いかと思います。
信頼性が高い
「RAID 1」は最も信頼性が高いRAIDです。1台以上の物理ボリュームが稼働していれば、データは利用可能ですし、RAIDアレイの再構築も可能です。
例えば、6台の物理ボリュームで「RAID 1」を構築した場合、同時に5台の物理ボリュームが故障してもデータは利用可能です。
データの読み込みパフォーマンスが向上
データの読み込みは、複数の物理ボリュームから分散して読み込むことが可能です。分散してデータを読み込むかどうかは、アプリがどのようにデータ(ファイル)の読み込みを要求したかによります。
分散してデータを読み込む場合、データの読み込みのパフォーマンスを向上させることができます。
分散してデータを読み込まない場合、パフォーマンスは1台のHDDの時と大して変わりません。
データの書き込みパフォーマンスは低下
すべての物理ボリュームに同じデータを書き込むため、書き込みのパフォーマンスは落ちます。例えば、6台のHDDで「RAID 1」を構築した場合、その6台すべてに同じデータを書き込みます。
物理ボリュームの使用効率は低い
利用できる物理ボリュームの最大容量は、RAIDアレイを構成する物理ボリュームのうち、最も容量の少ない物理ボリュームになります。例えば、200GBのHDDと500GBのHDDで「RAID 1」を構築した場合、最大容量は200GBになります。
また200GBのHDD 10台で「RAID 1」を構築した場合、最大容量は200GBになります。
物理ボリュームの使用効率は、他のRAIDレベルと比較すると低くなります。
RAID 1アレイを作成するコマンドの説明
「mdadm」コマンドの説明です。ショートオプションとロングオプションについて
モードやオプションの記述方法には、「ショートオプション」と「ロングオプション」の2種類があります。どちらを利用しても良いでのですが、ここでは意味が分かりやすい「ロングオプション」を使用します。
コマンドのフォーマット
「mdadm」コマンドのフォーマットは以下になります。mdadm <モード> <論理ボリューム> <オプション> <アレイを構成する物理ボリューム(スペアディスクも含む)>
モード
モードは、「mdadm」の動作モードを指定します。アレイの作成なので、以下のモードを指定します。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-C | --create | --create |
論理ボリューム
論理ボリュームのデバイスファイルを指定します。新規に論理ボリュームを作成するので、既存の論理ボリュームのデバイスファイルと重複しないデバイスファイルを指定します。
デバイスファイルのフォーマット
以下のフォーマットで指定すると良いでしょう。/dev/md/アレイの名称
記述例
- /dev/md/MyArray
- /dev/md/Data
- /dev/md/Backup
必須オプション
指定するオプションには、必須のオプションと任意のオプションがあります。必須オプションは必ず指定してください。
1.アレイの種類の指定
「RAID 1」のアレイを作成するので、以下の指定を行います。ショートオプション | ロングオプション | 記述例 |
---|---|---|
-l | --level | --level=raid1 |
2.アレイを構成する物理ボリューム数の指定
アレイを構成する物理ボリューム数を指定します。3つの物理ボリュームでアレイを構築するなら、「3」を指定します。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-n | --raid-devices | --raid-devices=3 |
任意のオプション(推奨)
任意のオプションは指定しなくてもよいですが、指定を検討したほうが良いオプションを紹介します。アレイの使い勝手に影響するオプションです。
1.スペアディスク数の指定
「スペアディスク」数の指定を行います。「スペアディスク」となる物理ボリュームを1つ設定するなら、「1」を指定します。
このオプションを省略した場合は、「スペアディスク」なしになります。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-x | --spare-devices | --spare-devices=1 |
2.物理ボリュームのサイズの指定
各物理ボリュームでアレイに使用するサイズを指定します。「RAID 1」では、ここで指定したサイズが論理ボリュームのサイズになります。
指定するサイズの単位は、「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.ライトモーストリー対象の指定
「ライトモーストリー」の対象にする物理ボリュームを指定します。このオプションは、<アレイを構成する物理ボリューム>内に記述します。
このオプション以降に記述した物理ボリュームは、「ライトモーストリー」が設定されます。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-W | --write-mostly | --write-mostly /dev/sde2 /dev/sdf2 |
以下は記述例です。
赤字の箇所がこのオプションの指定と、「ライトモーストリー」の対象になる物理ボリュームです。
以下の場合、「/dev/sde2」と「/dev/sdf2」に「ライトモーストリー」が設定されます。
sudo mdadm --create /dev/md/RAID1Array --level=raid1 --raid-devices=3 --verbose /dev/sdd2 --write-mostly /dev/sde2 /dev/sdf2
任意のオプション(ライトビハインド)
「ライトビハインド」に関するオプションです。1.同期を開始するセクター数の指定
同期を開始するセクター数を指定します。またこのオプションを指定すると、「ライトビハインド」が有効になります。
デフォルト値は「256」です。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
なし | --write-behind | --write-behind=1024 |
任意のオプション
指定しなくても良いオプションです。1.アレイ名の指定
「アレイの名称」を指定します。このオプションを省略した場合、論理ボリュームのデバイスファイル名からアレイの名称が生成されます。
ショートオプション | ロングオプション | 記述例 |
---|---|---|
-N | --name | --name=RAID0Array |
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/sdd2 /dev/sde2 /dev/sdf2
必要に応じて「ライトモーストリー」オプションを指定してください。
glob
物理ボリュームの指定は、globに対応しています。例えば上記の記述は、以下のように記述することもできます。
/dev/sd[d-f]2
/dev/sd[def]2
スペアディスクについて
オプションで「スペアディスク」数を指定している場合は、後ろに記述した物理ボリュームが「スペアディスク」になります。例えば以下のコマンドでは、赤字の箇所が「スペアディスク」になります。
sudo mdadm --create /dev/md/RAID1Array --level=raid1 --raid-devices=2 --spare-devices=2 --verbose /dev/sdd2 /dev/sde2 /dev/sdf2 /dev/sdg2
従って「スペアディスク」を指定する場合は、物理ボリュームの記述順に注意してください。