4.4.15. RAID 論理ボリューム
Red Hat Enterprise Linux 6.3 リリースでは、LVM は RAID4/5/6 およびミラーリングの新たな実装をサポートしています。最新のミラーリングの実装と以前のミラーリングの実装 (「ミラー化ボリュームの作成」 で説明) が異なる点は以下のとおりです。
- ミラーリングの新たな実装でのセグメントタイプは
raid1
です。以前の実装でのセグメントタイプはmirror
です。 - RAID 4/5/6 実装のように、ミラーリングの新たな実装は MD ソフトウェア RAID を活用します。
- ミラーリングの新たな実装は、各ミラーイメージの完全な冗長性を備えたビットマップ領域を維持し、これにより、その障害処理機能を拡大します。これは、このセグメントタイプで作成されるミラーには
--mirrorlog
や--corelog
オプションはないことを意味しています。 - ミラーリングの新実装は、一時的な障害を処理することができます。
- ミラーイメージはアレイから一時的に切り離して、後でアレイにマージし直すことができます。
- ミラーリングの新実装はスナップショットをサポートします (高いレベルの RAID の実装も同様)。
- RAID の新たな実装はクラスター対応ではありません。クラスターボリュームグループ内に LVM RAID 論理ボリュームを作成することはできません。
RAID 論理ボリュームが障害に対応する方法については、「RAID 障害ポリシーの設定」 を参照してください。
このセクションの残りの部分では、LVM RAID デバイスで実行できる以下の管理タスクについて説明します。
4.4.15.1. RAID 論理ボリュームの作成
RAID 論理ボリュームを作成するには、
lvcreate
コマンドの --type
引数として raid タイプを指定します。通常、lvcreate
コマンドを使用して論理ボリュームを作成する場合、--type
引数は暗黙的になります。たとえば、-i stripes
引数を指定する場合、lvcreate
コマンドは --type stripe
オプションを想定します。-m mirrors
引数を指定する場合は、lvcreate
コマンドは --type mirror
オプションを想定します。ただし、RAID 論理ボリュームを作成する場合は、任意のセグメントタイプを明示的に指定する必要があります。使用される可能性のある RAID のセグメントタイプは 表4.1「RAID のセグメントタイプ」 に記載されています。
セグメントタイプ | 説明 | ||
---|---|---|---|
raid1 | RAID1 ミラーリング | ||
raid4 | RAID4 専用のパリティーディスク | ||
raid5 | raid5_ls と同様 | ||
raid5_la |
| ||
raid5_ra |
| ||
raid5_ls |
| ||
raid5_rs |
| ||
raid6 | raid6_zr と同様 | ||
raid6_zr |
| ||
raid6_nr |
| ||
raid6_nc |
| ||
raid10 (Red Hat Enterprise Linux 6.4 以降) |
|
大半のユーザーの場合、5 つのプライマリータイプ (
raid1
、raid4
、raid5
、raid6
、raid10
) の中から 1 つを指定するだけで十分です。RAID 5/6 が使用する各種アルゴリズムの詳細は、http://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf の 『Common RAID Disk Data Format Specification』 の第 4 章を参照してください。
RAID 論理ボリュームを作成する場合、LVM は各データまたはアレイ内のパリティーサブボリュームごとに、サイズが 1 エクステントのメタデータサブボリュームを作成します。たとえば、2 方向の RAID1 アレイを作成すると、2 つのメタデータサブボリューム (
lv_rmeta_0
および lv_rmeta_1
) と 2 つのデータサブボリューム (lv_rimage_0
および lv_rimage_1
) が生じます。同様に、3 方向のストライプ (+ 1 つの暗黙的なパリティーデバイス) RAID4 を作成すると、4 つのメタデータサブボリューム (lv_rmeta_0
、lv_rmeta_1
、lv_rmeta_2
、および lv_rmeta_3
) と 4 つのデータサブボリューム (lv_rimage_0
、lv_rimage_1
、lv_rimage_2
、および lv_rimage_3
) が生じます。
以下のコマンドは、ボリュームグループ
my_vg
内にサイズが 1G の my_lv
という名前の 2 方向の RAID1 アレイを作成します。
# lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
-m
引数に指定する値に沿って、異なる数のコピーで RAID1 アレイを作成することができます。-m
引数は、以前のミラー実装用のコピー数を指定するために使用される同じ引数ですが、この場合はセグメントタイプを raid1
と明示的に指定することで、デフォルトのセグメントタイプ mirror
を上書きします。同様に、-i argument
を使用して RAID 4/5/6 論理ボリュームのストライプ数を指定して、デフォルトのセグメントタイプを必要な RAID タイプで上書きします。また、ストライプサイズも -I
引数で指定できます。
注記
デフォルトのミラーセグメントタイプを
raid1
に設定するには、lvm.conf
ファイルの mirror_segtype_default
を変更します。
以下のコマンドは、ボリュームグループ
my_vg
内のサイズが 1G の my_lv
という RAID5 アレイ (3 つのストライプ + 1 つの暗黙的なパリティードライブ) を作成します。ストライプ数の指定は、LVM ストライプ化ボリュームに対して指定するのと同じように行います。パリティードライブの正確な数は自動的に追加されます。
# lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
以下のコマンドは、ボリュームグループ
my_vg
内にサイズが 1G の my_lv
と呼ばれる RAID6 アレイ (3 つのストライプ + 2 つの暗黙的なパリティードライブ) を作成します。
# lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
LVM によって RAID 論理ボリュームを作成した後には、ボリュームのアクティブ化、変更、削除、表示、使用を他の LVM 論理ボリュームと同じように行うことができます。
RAID10 論理ボリュームを作成する際に、
sync
操作で論理ボリュームを初期化するのに必要なバックグラウンド I/O は、ボリュームグループメタデータへの更新などの他の I/O 操作を LVM デバイスに押し出す可能性があります。これはとくに数多くの RAID 論理ボリュームを作成している場合に生じる可能性があります。これにより、他の LVM 操作の速度が遅くなる場合があります。
Red Hat Enterprise Linux 6.5 の時点では、復旧スロットルを実装することにより、RAID 論理ボリュームが初期化される速度を制御することができます。
sync
操作が実施される速度は、lvcreate
コマンドの --minrecoveryrate
および --maxrecoveryrate
オプションを使用したそれらの操作の最小および最大 I/O 速度を設定して実行できます。これらのオプションは以下のように指定します。
--maxrecoveryrate Rate[bBsSkKmMgG]
RAID 論理ボリュームの最大復旧速度を設定し、通常の I/O 操作が押し出されないようにします。速度 は、アレイ内のそれぞれのデバイスに対して 1 秒あたりの量として指定されます。サフィックスが指定されない場合、kiB/sec/device が想定されます。復旧速度を 0 に設定すると、これが無制限になります。--minrecoveryrate Rate[bBsSkKmMgG]
RAID 論理ボリュームの最小復旧速度を設定し、sync
操作の I/O が、負荷の高い通常の I/O がある場合でも最小スループットを達成できるようにします。速度 はアレイ内のそれぞれのデバイスに対して 1 秒あたりの量として指定されます。サフィックスが指定されない場合、kiB/sec/device が想定されます。
以下のコマンドは、最大復旧速度が 128 kiB/sec/device で、サイズが 10G の 3 つのストライプのある 2-way RAID10 アレイを作成します。このアレイは
my_lv
という名前で、ボリュームグループ my_vg
にあります。
lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg
さらに、RAID スクラビング操作の最小および最大復旧速度を指定することもできます。RAID スクラビングの情報は、「RAID 論理ボリュームのスクラビング」 を参照してください。