Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.4.3. RAID 論理ボリューム

LVM は、RAID0、1、4、5、6、および 10 に対応します。
注記
RAID 論理ボリュームはクラスターには対応していません。RAID 論理ボリュームは、1 台のマシンに作成して排他的にアクティブにすることができますが、複数のマシンで同時にアクティブにすることはできません。特別でないミラー化されたボリュームが必要な場合は、「ミラー化ボリュームの作成」 で説明されているように ミラー セグメントタイプでボリュームを作成する必要があります。
RAID 論理ボリュームを作成するには、RAID タイプを lvcreate コマンドの --type 引数として指定します。表4.1「RAID のセグメントタイプ」 は、考えられる RAID セグメントタイプを説明します。

表4.1 RAID のセグメントタイプ

セグメントタイプ説明
raid1 RAID1 ミラーリング。-m を指定し、ストライピングを指定しない場合は、lvcreate コマンドの --type 引数のデフォルト値になります。
raid4 RAID4 専用パリティーディスク
raid5 raid5_ls と同じ
raid5_la
RAID5 left asymmetric
ローテートパリティー 0 + データ継続
raid5_ra
RAID5 right asymmetric
ローテートパリティー N + データ継続
raid5_ls
RAID5 left symmetric
ローテートパリティー 0 +データ再起動
raid5_rs
RAID5 right symmetric
ローテートパリティー N + データ再起動
raid6 raid6_zr と同じ
raid6_zr
RAID6 zero restart
ローテートパリティーゼロ (左から右) + データ再起動
raid6_nr
RAID6 N restart
ローテートパリティー N (左から右) + データ再起動
raid6_nc
RAID6 N continue
ローテートパリティー N (左から右) + データを継続
raid10
ストライピング + ミラーリング。-m を指定し、1 よりも大きい数をストライプの数として指定すると、これは lvcreate コマンドの --type 引数のデフォルト値になります。
ミラーセットのストライピング
raid0/raid0_meta (Red Hat Enterprise Linux 7.3 以降) ストライピング。RAID0 では、ストライプサイズの単位で、複数のデータサブボリュームに論理ボリュームデータが分散されます。これは、パフォーマンスを向上させるために使用します。論理ボリュームのデータは、いずれかのデータサブボリュームで障害が発生すると失われます。RAID0 ボリュームの作成方法は、「RAID0 ボリュームの作成 (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。
大概は、5 つのプライマリータイプ (raid1raid4raid5raid6raid10) のいずれかを指定すれば対応できるはずです。
RAID 論理ボリュームを作成するとき、LVM は、データまたはアレイ内のパリティーサブボリュームごとに、サイズが 1 エクステントのメタデータサブボリュームを作成します。たとえば、2 方向の RAID1 アレイを作成すると、メタデータサブボリュームが 2 つ (lv_rmeta_0 および lv_rmeta_1) と、データサブボリュームが 2 つ (lv_rimage_0 および lv_rimage_1) 作成されます。同様に、3 way ストライプ (および暗黙的なパリティーデバイスが 1 つ) の RAID4 を作成すると、メタデータサブボリュームが 4 つ (lv_rmeta_0lv_rmeta_1lv_rmeta_2、および lv_rmeta_3)、データサブボリュームが 4 つ (lv_rimage_0lv_rimage_1lv_rimage_2、および lv_rimage_3) が作成されます。
以下のコマンドは、ボリュームグループ my_vg 内に、1 ギガバイトの 2 方向 RAID1 アレイ my_lv を作成します。
# lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
-m 引数に指定する値に応じて、さまざまなコピー数を指定して RAID1 アレイを作成できます。同様に、-i argument オプションに、RAID 4、5、または 6 の論理ボリュームのストライプ数を指定します。-I 引数で、ストライプのサイズを指定することもできます。
以下のコマンドは、ボリュームグループ my_vg に、サイズが 1 ギガバイトで、名前が my_lv の RAID5 アレイ (ストライプ 3 つ + 暗黙的なパリティードライブ 1 つ) を作成します。ストライプ数の指定は、LVM ストライプ化ボリュームの場合と同じように行います。パリティードライブは、正確な数だけ自動的に追加されます。
# lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
以下のコマンドは、ボリュームグループ my_vg に、サイズが 1 ギガバイトで、名前が my_lv の RAID6 アレイ (ストライプ 3 つ + 暗黙的なパリティードライブ 2 つ) を作成します。
# lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
LVM で RAID 論理ボリュームを作成した後、他の LVM 論理ボリュームと同じようにボリュームをアクティブ化、変更、削除、表示、および使用することができます。
RAID10 論理ボリュームを作成する際に、sync 操作で論理ボリュームを初期化するのに必要なバックグラウンド I/O は、特に RAID 論理ボリュームを多数作成している場合に、その他の I/O 操作 (ボリュームグループメタデータへの更新など) を LVM デバイスに押し出す可能性があります。これにより、他の LVM 操作が遅くなる可能性があります。
RAID 論理ボリュームが初期化される速度は、復旧スロットルを実装することで制御できます。sync 操作が実行される速度は、lvcreate コマンドの --minrecoveryrate オプションおよび --maxrecoveryrate オプションで、この操作の最小および最大 I/O 速度を設定すると制御できます。オプションは以下のように指定します。
  • --maxrecoveryrate Rate[bBsSkKmMgG]
    RAID 論理ボリュームの最大復旧速度を設定し、通常の I/O 操作が押し出されないようにします。速度 アレイ内の各デバイスに対して、1 秒あたりの量を指定します。サフィックスを指定しない場合は、kiB/sec/device (デバイスごとに kiB/秒) と見なされます。復旧速度を 0 に設定すると無制限になります。
  • --minrecoveryrate Rate[bBsSkKmMgG]
    RAID 論理ボリュームの最小復旧速度を設定し、負荷の高い通常の I/O がある場合でも、sync 操作の I/O が最小スループットを達成できるようにします。速度 アレイ内の各デバイスに対して、1 秒あたりの量を指定します。サフィックスを指定しない場合は、kiB/sec/device (デバイスごとに kiB/秒) と見なされます。
以下のコマンドは、最大速度が 128 kiB/sec/device で、サイズが 10 ギガバイトのストライプが 3 つある、2 方向の RAID10 アレイを作成します。このアレイは名前は my_lv で、ボリュームグループは my_vg になります。
# lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg
RAID のスクラブ操作の最小および最大復旧速度を指定することもできます。RAID スクラビングの詳細は、「RAID 論理ボリュームのスクラビング」 を参照してください。
注記
LVM RAID Calculator を使用すると、RAID ストレージで論理ボリュームを作成するコマンドを生成できます。このアプリケーションは、現在のストレージまたは作成予定のストレージについて入力した情報を使用してコマンドを生成します。LVM RAID Calculator アプリケーションは、https://access.redhat.com/labs/lvmraidcalculator/ で使用できます。
以下のセクションでは、LVM RAID デバイスで実行できる管理タスクについて説明します。

4.4.3.1. RAID0 ボリュームの作成 (Red Hat Enterprise Linux 7.3 以降)

RAID0 ボリュームを作成するコマンドの書式は以下のとおりです。
lvcreate --type raid0[_meta] --stripes Stripes --stripesize StripeSize VolumeGroup [PhysicalVolumePath ...]

表4.2 RAID0 コマンドの作成に関するパラメーター

パラメーター説明
--type raid0[_meta] raid0 を指定すると、メタデータボリュームなしで RAID0 ボリュームが作成されます。raid0_meta を指定すると、メタデータボリュームとともに RAID0 ボリュームが作成されます。RAID0 には耐障害性がないため、RAID1/10 の場合のようにミラーリングされたすべてのデータブロックを格納したり、RAID4/5/6 の場合のようにすべてのパリティーブロックを計算して格納する必要はありません。したがって、ミラーリングされたブロックまたはパリティーブロックの再同期の進行状態を把握するメタデータボリュームは必要ありません。ただし、RAID0 から RAID4/5/6/10 に変換するには、メタデータボリュームが必要です。raid0_meta を指定すると、割り当ての失敗を防ぐために、このメタデータが事前に割り当てられます。
--stripes Stripes 論理ボリュームを分散するデバイスの数を指定します。
--stripesize StripeSize 各ストライプのサイズをキロバイト単位で指定します。これは、次のデバイスに移動する前にデバイスに書き込まれるデータの量です。
VolumeGroup 使用するボリュームグループを指定します。
PhysicalVolumePath ... 使用するデバイスを指定します。指定しない場合は、LVM によって、Stripes オプションに指定されているデバイスの数が、各ストライプに 1 つずつ選択されます。