Menu Close

Red Hat Training

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

4.4.4. ミラー化ボリュームの作成

Red Hat Enterprise Linux 7.0 リリースでは、「RAID 論理ボリューム」 に記載されているように、LVM は RAID 1/4/5/6/10 をサポートします。RAID 論理ボリュームはクラスターには対応していません。RAID 論理ボリュームは、1 台のマシンに作成して排他的にアクティブにすることができますが、複数のマシンで同時にアクティブにすることはできません。排他的ではないミラー化されたボリュームが必要な場合は、このセクションで説明しているようにセグメントタイプの mirror を指定して、ボリュームを作成する必要があります。
注記
セグメントタイプが mirror の既存の LVM デバイスを RAID1 LVM デバイスに変換する方法は、「ミラー化 LVM デバイスの RAID1 デバイスへの変換」 を参照してください。
注記
ミラー化された LVM 論理ボリュームをクラスター内に作成するには、単一ノード上で mirror のセグメントタイプを指定したミラー化論理ボリュームを作成するのと同じコマンドと手順が必要です。しかし、クラスター内にミラー化 LVM ボリュームを作成するには、クラスターとクラスターミラーインフラストラクチャーが稼動中であり、クラスターが定足数を満たしており、かつクラスターロッキングを有効化するように、lvm.conf ファイルでロッキングタイプが正しく設定されている必要があります。クラスターでミラーリングされたボリュームを作成する例については、「クラスター内でのミラー化 LVM 論理ボリュームの作成」 を参照してください。
単一クラスター内の複数のノードから短時間に連続して複数の LVM ミラーを作成または変換するコマンドを実行しようとすると、これらのコマンドのバックログが生じる場合があります。これによって、要求した操作がタイムアウトになって失敗する可能性があります。この問題を回避するために、そのクラスターのいずれかのノードから、クラスターミラー作成コマンドを実行することを推奨します。
ミラー化されたボリュームを作成する場合、lvcreate コマンドの -m 引数で使用するデータのコピー数を指定します。-m1 を指定すると、ファイルシステムの 2 つのコピー (リニア論理ボリュームと 1 つのコピー) が作成されます。同様に、-m2 を指定すると 2 つのミラーを作成し、ファイルシステムの 3 つのコピーを生成します。
以下のコマンドは、ミラーが 1 つあるミラー化論理ボリュームを作成します。ボリュームのサイズは 50 ギガバイト、名前は mirrorlv で、ボリュームグループ vg0 から作り出されます。
# lvcreate --type mirror -L 50G -m 1 -n mirrorlv vg0
デフォルトでは、LVM ミラーデバイスは、複製されるデバイスを、サイズが 512KB のリージョンに分割します。lvcreate コマンドで -R 引数を使用して、リージョンサイズをメガバイトで指定できます。また、lvm.conf ファイル内で mirror_region_size 設定で、デフォルトのリージョンサイズを変更することも可能です。
注記
クラスターインフラストラクチャーの制限により、デフォルトのリージョンサイズ (512KB) では、1.5TB を超えるクラスターミラーは作成できません。1.5TB よりも大きなミラーを必要とするユーザーは、リージョンサイズをデフォルトよりも大きくする必要があります。リージョンサイズが小さいままだと、LVM の作成がハングしてします。また、その他の LVM コマンドでもハングの可能性があります。
1.5TB を超えるミラー用のリージョンサイズを指定するには、ミラーサイズをテラバイト単位で考えて、2 の次の累乗に切り上げ、その数を lvcreate コマンドの -R 引数として指定します。たとえば、ミラーサイズが 1.5TB の場合は、-R 2 と指定することができます。ミラーサイズが 3TB の場合は、-R 4 を指定します。5TB のミラーサイズには、-R 8 を指定します。
以下のコマンドは、リージョンサイズが 2MB のミラー化論理ボリュームを作成します。
# lvcreate --type mirror -m 1 -L 2T -R 2 -n mirror vol_group
ミラーが作成されると、ミラーのリージョンは同期されます。ミラーコンポーネントが大きい場合は、同期プロセスに時間がかかる可能性があります。回復する必要のないミラーを新規に作成する場合は、最初のデバイスからの初期同期が不要であることを示す --nosync 引数を指定できます。
LVM は、単一または複数のミラーと同期するリージョンを追跡するのに使用する小さなログを維持します。デフォルトでは、このログはディスクに保持され、再起動後も永続化するため、マシンが再起動/クラッシュするたびにミラーを再同期する必要はありません。--mirrorlog 引数を使用すると、このログがメモリーで保持されるように指定できるため、余分なログデバイスが不要になります。ただし、この場合は、再起動のたびにミラー全体を再同期する必要がでてきます。
以下のコマンドは、ボリュームグループ bigvg からミラー化論理ボリュームを作成します。論理ボリュームの名前は ondiskmirvol で、ミラー が 1 つあります。ボリュームのサイズは 12MB で、ミラーログをメモリーに保持します。
# lvcreate --type mirror -L 12MB -m 1 --mirrorlog core -n ondiskmirvol bigvg
  Logical volume "ondiskmirvol" created
このミラーログは、ミラーレッグが作成されるデバイスとは異なるデバイスで作成されます。ただし、vgcreate コマンドの --alloc anywhere 引数を使用して、ミラーレッグのいずれかと同じデバイスにミラーログを作成できます。ただし、これによりパフォーマンスが低下する場合がありますが、配下のデバイスが 2 つしかなくてもミラーを作成できます。
以下のコマンドは、単一のミラーを持つミラー化論理ボリュームを作成します。このミラーログはミラーレッグの 1 つと同じデバイス上にあります。この例では、ボリュームグループ vg0 は 2 つのみのデバイスからなります。このコマンドによって、ボリュームグループ vg0 内に、名前が mirrorlv で、サイズが 500 MB のボリュームが作成されます。
# lvcreate --type mirror -L 500M -m 1 -n mirrorlv -alloc anywhere vg0
注記
クラスター化されたミラーでは、ミラーログ管理は、その時点でクラスター ID の最も低いクラスターノードによって行われます。そのため、クラスターミラーログを保持するデバイスがクラスターのサブセット上で利用できなくなる場合、最も低い ID を持つクラスターノードがミラーログへのアクセスを保持する限り、クラスター化されたミラーは影響を受けることなく、機能を継続することができます。ミラーは影響を受けないため、自動修正アクション (修復) も実行されません。ただし、最も低い ID のクラスターノードがミラーログにアクセスできなくなると、(他のノードからログへのアクセスが可能かどうかにかかわらず) 自動アクションが作動します。
ミラーリングされているミラーログを作成するには、--mirrorlog ミラーリングされた 引数を指定できます。以下のコマンドは、ボリュームグループ bigvg からミラー化論理ボリュームを作成します。論理ボリュームは twologvol という名前で、単一のミラーを持ちます。このボリュームのサイズは 12MB で、ミラーログがミラー化され、各ログは別個のデバイス上に保管されます。
# lvcreate --type mirror -L 12MB -m 1 --mirrorlog mirrored -n twologvol bigvg
  Logical volume "twologvol" created
標準のミラーログと同様に、vgcreate コマンドの --alloc anywhere 引数を使用すると、ミラーレッグと同じデバイスに冗長ミラーログを作成できます。これによってパフォーマンスが低下する可能性がありますが、各ログを別個のデバイス上に保管するための配下のデバイス数がミラーレッグに対して十分でない場合でも、冗長ミラーログの作成が可能となります。
ミラーが作成されると、ミラーのリージョンは同期されます。ミラーコンポーネントが大きい場合は、同期プロセスに時間がかかる可能性があります。回復する必要のないミラーを新規に作成する場合は、最初のデバイスからの初期同期が不要であることを示す --nosync 引数を指定できます。
ミラーレッグとログ用に使用するデバイス、およびそのデバイスで使用するエクステントを指定することができます。ログを特定のディスクに強制するには、それが配置されるディスク上のエクステントを正確に 1 つ指定します。LVM は、コマンドラインでデバイスが一覧表示される順序を必ずしも優先しません。物理ボリュームが一覧にあれば、それが割り当てが実行される唯一の領域になります。割り当て済みの物理エクステントが一覧にある場合、そのエクステントは無視されます。
以下のコマンドは、単一のミラーとミラー化されない単一ログを持つミラー化論理ボリュームを作成します。このボリュームは、サイズ 500 MB、名前は mirrorlv で、ボリュームグループ vg0 から構築されます。第 1 のミラーレッグはデバイス /dev/sda1 上にあり、第 2 のミラーレッグはデバイス /dev/sdb1 上にあり、そのミラーログは /dev/sdc1 上にあります。
# lvcreate --type mirror -L 500M -m 1 -n mirrorlv vg0 /dev/sda1 /dev/sdb1 /dev/sdc1
以下のコマンドは、ミラーが 1 つあるミラー化論理ボリュームを作成します。このボリュームは、サイズ 500 MB、名前は mirrorlv で、ボリュームグループ vg0 から構築されます。第 1 のミラーレッグは、エクステントが 0 から 499 のデバイス /dev/sda1 にあり、第 2 のミラーレッグはエクステントが 0 から 499 のデバイス /dev/sdb1 にあります。ミラーログは、エクステントが 0 のデバイス /dev/sdc1 から始まります。エクステントサイズは 1MB です。指定されたエクステントのいずれかが割り当て済みである場合は、それらは無視されます。
# lvcreate --type mirror -L 500M -m 1 -n mirrorlv vg0 /dev/sda1:0-499 /dev/sdb1:0-499 /dev/sdc1:0
注記
単一の論理ボリューム内でストライピングとミラーリングを併用することが可能です。論理ボリュームの作成と同時にミラーの数 (--mirrors X) とストライプの数 (--stripes Y) を指定すると、ミラーデバイスの構成デバイスがストライプ化されます。

4.4.4.1. ミラー化論理ボリュームの障害ポリシー

lvm.conf ファイルの activation セクション内の mirror_image_fault_policymirror_log_fault_policy のパラメーターを使用すると、デバイスの障害が発生した場合にミラー化論理ボリュームがどのような動作をするかを定義することができます。これらのパラメーターが remove に設定されると、システムは障害のあるデバイスを削除して、そのデバイスなしで実行しようとします。これらのパラメーターが allocate に設定されていると、システムは障害のあるデバイスを削除して、そのデバイスの代わりとなる新たなデバイス上での領域の割り当てを試みます。代わりに割り当てることができる適切なデバイスと領域がない場合、このポリシーは remove ポリシーのように機能します。
デフォルトでは、mirror_log_fault_policy パラメーターは allocate に設定されます。ログにこのポリシーを使用すると、処理が高速になり、クラッシュやシステムの再起動時にも同期状態を記憶する機能が維持されます。このポリシーを remove に設定すると、ログデバイスに障害が発生した際に、ミラーがメモリー内ログを使用するように切り替わります。この場合、ミラーはクラッシュ時とシステムの再起動時に同期状態を記憶せず、ミラー全体が再同期されます。
デフォルトでは、mirror_image_fault_policy パラメーターは remove に設定されます。このポリシーでは、ミラーイメージに障害が発生すると、良好なコピーが 1 つしか残っていない場合は、ミラーが非ミラー化デバイスに変換されます。ミラーデバイスに対してこのポリシーをallocate に設定すると、ミラーはデバイスを再同期する必要があるため、処理に時間がかかりますが、これによってデバイスのミラー特性を保持することができます。
注記
LVM ミラーにデバイス障害が発生すると、2 段階の回復プロセスが実行されます。第 1 段階では、障害が発生したデバイスの削除が行われます。これによってミラーは、単一のリニアデバイスに縮小されます。第 2 段階では、mirror_log_fault_policy パラメーターが allocate に設定されている場合、障害の発生したデバイスの置き換えを試みます。ただし、第 2 段階では、他のデバイスが利用可能である場合、ミラーが以前使用していたデバイスの中から、障害とは関係のないデバイスが選択されるという保証はない点に注意してください。
LVM ミラーの失敗から手動でリカバリーする方法は、「LVM ミラー障害からの回復」 を参照してください。