68.14. LVM のトラブルシューティング
LVM ツールを使用して、LVM ボリュームおよびグループのさまざまな問題のトラブルシューティングを行うことができます。
68.14.1. LVM での診断データの収集
LVM コマンドが想定どおりに機能しない場合は、以下の方法で診断情報を収集できます。
手順
以下の方法を使用して、さまざまな診断データを収集します。
-
-v
引数を LVM コマンドに追加して、コマンドの出力の詳細レベルを増やします。v
を追加すると、詳細度をさらに増やすことができます。v
は最大 4 つ許可されます (例:-vvvv
)。 -
/etc/lvm/lvm.conf
設定ファイルのlog
セクションで、level
オプションの値を増やします。これにより、LVM がシステムログにより多くの情報を提供します。 問題が論理ボリュームのアクティブ化に関連する場合は、アクティブ化中に LVM がログメッセージをログに記録できるようにします。
-
/etc/lvm/lvm.conf
設定ファイルのlog
セクションでactivation = 1
オプションを設定します。 -
LVM コマンドに
-vvvv
オプションを付けて実行します。 - コマンドの出力を確認します。
activation
オプションを0
にリセットします。オプションを
0
にリセットしないと、メモリー不足の状況でシステムが応答しなくなる可能性があります。
-
診断目的で情報ダンプを表示します。
# lvmdump
追加のシステム情報を表示します。
# lvs -v
# pvs --all
# dmsetup info --columns
-
/etc/lvm/backup/
ディレクトリーの最後の LVM メタデータのバックアップと、/etc/lvm/archive/
ディレクトリー内のアーカイブバージョンを確認します。 現在の設定情報を確認します。
# lvmconfig
-
/run/lvm/hints
キャッシュファイルで、物理ボリュームを持つデバイスを記録します。
-
関連情報
-
lvmdump(8)
の man ページ
68.14.2. 障害の発生した LVM デバイスに関する情報の表示
ボリュームが失敗した理由を特定するのに役立つ、障害の発生した LVM ボリュームに関する情報を表示できます。
手順
vgs
ユーティリティーまたはlvs
ユーティリティーを使用して、障害が発生したボリュームを表示します。例68.14 障害が発生したボリュームグループ
この例では、ボリュームグループ myvg を設定するデバイスのいずれかが失敗しています。ボリュームグループは使用できませんが、障害が発生したデバイスに関する情報を表示できます。
# vgs --options +devices /dev/vdb1: open failed: No such device or address /dev/vdb1: open failed: No such device or address WARNING: Couldn't find device with uuid 42B7bu-YCMp-CEVD-CmKH-2rk6-fiO9-z1lf4s. WARNING: VG myvg is missing PV 42B7bu-YCMp-CEVD-CmKH-2rk6-fiO9-z1lf4s (last written to /dev/sdb1). WARNING: Couldn't find all devices for LV myvg/mylv while checking used and assumed devices. VG #PV #LV #SN Attr VSize VFree Devices myvg 2 2 0 wz-pn- <3.64t <3.60t [unknown](0) myvg 2 2 0 wz-pn- <3.64t <3.60t [unknown](5120),/dev/vdb1(0)
例68.15 障害が発生した論理ボリューム
この例では、ボリュームグループの論理ボリュームが失敗したためにデバイスのいずれかが失敗しています。コマンドの出力には、障害が発生した論理ボリュームが表示されます。
# lvs --all --options +devices /dev/vdb1: open failed: No such device or address /dev/vdb1: open failed: No such device or address WARNING: Couldn't find device with uuid 42B7bu-YCMp-CEVD-CmKH-2rk6-fiO9-z1lf4s. WARNING: VG myvg is missing PV 42B7bu-YCMp-CEVD-CmKH-2rk6-fiO9-z1lf4s (last written to /dev/sdb1). WARNING: Couldn't find all devices for LV myvg/mylv while checking used and assumed devices. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices mylv myvg -wi-a---p- 20.00g [unknown](0) [unknown](5120),/dev/sdc1(0)
例68.16 ミラー化論理ボリュームのレッグに障害が発生しました。
以下の例は、ミラー化論理ボリュームのレッグが失敗した場合の
vgs
ユーティリティーおよびlvs
ユーティリティーからのコマンドの出力を示しています。# vgs --all --options +devices VG #PV #LV #SN Attr VSize VFree Devices corey 4 4 0 rz-pnc 1.58T 1.34T my_mirror_mimage_0(0),my_mirror_mimage_1(0) corey 4 4 0 rz-pnc 1.58T 1.34T /dev/sdd1(0) corey 4 4 0 rz-pnc 1.58T 1.34T unknown device(0) corey 4 4 0 rz-pnc 1.58T 1.34T /dev/sdb1(0)
# lvs --all --options +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices my_mirror corey mwi-a- 120.00G my_mirror_mlog 1.95 my_mirror_mimage_0(0),my_mirror_mimage_1(0) [my_mirror_mimage_0] corey iwi-ao 120.00G unknown device(0) [my_mirror_mimage_1] corey iwi-ao 120.00G /dev/sdb1(0) [my_mirror_mlog] corey lwi-ao 4.00M /dev/sdd1(0)
68.14.3. ボリュームグループから見つからない LVM 物理ボリュームの削除
物理ボリュームに障害が発生した場合は、ボリュームグループ内の残りの物理ボリュームをアクティブにし、その物理ボリュームを使用していたすべての論理ボリュームをボリュームグループから削除できます。
手順
ボリュームグループ内の残りの物理ボリュームをアクティベートします。
# vgchange --activate y --partial myvg
削除する論理ボリュームを確認します。
# vgreduce --removemissing --test myvg
ボリュームグループから、失われた物理ボリュームを使用していた論理ボリュームをすべて削除します。
# vgreduce --removemissing --force myvg
オプション:保持する論理ボリュームを誤って削除した場合には、
vgreduce
操作を元に戻すことができます。# vgcfgrestore myvg
警告シンプールを削除すると、LVM は操作を元に戻すことができません。
68.14.4. 見つからない LVM 物理ボリュームのメタデータの検索
物理ボリュームのボリュームグループメタデータ領域が誤って上書きされたり、破棄されたりする場合は、メタデータ領域が正しくないことを示すエラーメッセージか、システムが特定の UUID を持つ物理ボリュームを見つけることができないことを示すエラーメッセージが表示されます。
この手順では、物理ボリュームが見つからないか、破損している、アーカイブされた最新のメタデータを見つけます。
手順
物理ボリュームを含むボリュームグループのアーカイブされたメタデータファイルを検索します。アーカイブされたメタデータファイルは、
/etc/lvm/archive/volume-group-name_backup-number.vg
パスにあります。# cat /etc/lvm/archive/myvg_00000-1248998876.vg
00000-1248998876 を backup-number に置き換えます。ボリュームグループの番号が最も高い、既知の有効なメタデータファイルの最後のものを選択します。
物理ボリュームの UUID を検索します。以下の方法のいずれかを使用します。
論理ボリュームをリスト表示します。
# lvs --all --options +devices Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
-
アーカイブされたメタデータファイルを確認します。ボリュームグループ設定の
physical_volumes
セクションで、id =
のラベルが付いた値として UUID を検索します。 --partial
オプションを使用してボリュームグループを非アクティブにします。# vgchange --activate n --partial myvg PARTIAL MODE. Incomplete logical volumes will be processed. WARNING: Couldn't find device with uuid 42B7bu-YCMp-CEVD-CmKH-2rk6-fiO9-z1lf4s. WARNING: VG myvg is missing PV 42B7bu-YCMp-CEVD-CmKH-2rk6-fiO9-z1lf4s (last written to /dev/vdb1). 0 logical volume(s) in volume group "myvg" now active
68.14.5. LVM 物理ボリュームでのメタデータの復元
この手順では、破損したり、新しいデバイスに置き換えたりする物理ボリュームのメタデータを復元します。物理ボリュームのメタデータ領域を書き換えて、物理ボリュームからデータを復旧できる場合があります。
作業用の LVM 論理ボリュームでこの手順を実行しないでください。誤った UUID を指定すると、データが失われることになります。
前提条件
- 見つからない物理ボリュームのメタデータを特定している。詳細は、見つからない LVM 物理ボリュームのメタデータの検索 を参照してください。
手順
物理ボリュームでメタデータを復元します。
# pvcreate --uuid physical-volume-uuid \ --restorefile /etc/lvm/archive/volume-group-name_backup-number.vg \ block-device
注記コマンドは、LVM メタデータ領域のみを上書きし、既存のデータ領域には影響を与えません。
例68.17 /dev/vdb1 での物理ボリュームの復元
以下の例では、以下のプロパティーで
/dev/vdb1
デバイスを物理ボリュームとしてラベル付けします。-
FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk
の UUID -
VG_00050.vg
に含まれるメタデータ情報 (ボリュームグループの最新のアーカイブメタデータ)
# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" \ --restorefile /etc/lvm/archive/VG_00050.vg \ /dev/vdb1 ... Physical volume "/dev/vdb1" successfully created
-
ボリュームグループのメタデータを復元します。
# vgcfgrestore myvg Restored volume group myvg
ボリュームグループの論理ボリュームを表示します。
# lvs --all --options +devices myvg
現在、論理ボリュームは非アクティブです。以下に例を示します。
LV VG Attr LSize Origin Snap% Move Log Copy% Devices mylv myvg -wi--- 300.00G /dev/vdb1 (0),/dev/vdb1(0) mylv myvg -wi--- 300.00G /dev/vdb1 (34728),/dev/vdb1(0)
論理ボリュームのセグメントタイプが RAID の場合は、論理ボリュームを再同期します。
# lvchange --resync myvg/mylv
論理ボリュームを非アクティブにします。
# lvchange --activate y myvg/mylv
-
ディスク上の LVM メタデータが、それを上書きしたものと同じかそれ以上のスペースを使用する場合は、この手順で物理ボリュームを回復できます。メタデータを上書きしたものがメタデータ領域を超えると、ボリューム上のデータが影響を受ける可能性があります。そのデータを復元するには、
fsck
コマンドを使用することができます。
検証手順
アクティブな論理ボリュームを表示します。
# lvs --all --options +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices mylv myvg -wi--- 300.00G /dev/vdb1 (0),/dev/vdb1(0) mylv myvg -wi--- 300.00G /dev/vdb1 (34728),/dev/vdb1(0)
68.14.6. LVM 出力の丸めエラー
ボリュームグループの領域使用量を報告する LVM コマンドは、報告された数を 2
進法に切り上げ、人間が判読できる出力を提供します。これには、vgdisplay
ユーティリティーおよび vgs
ユーティリティーが含まれます。
丸めの結果、報告された空き領域の値は、ボリュームグループが提供する物理エクステントよりも大きくなる可能性があります。報告された空き領域のサイズの論理ボリュームを作成しようとすると、以下のエラーが発生する可能性があります。
Insufficient free extents
エラーを回避するには、ボリュームグループの空き物理エクステントの数を調べる必要があります。これは、空き領域の正確な値です。次に、エクステントの数を使用して、論理ボリュームを正常に作成できます。
68.14.7. LVM ボリューム作成時の丸めエラーの防止
LVM 論理ボリュームを作成する場合は、丸めエラーを防ぐために論理ボリュームの論理エクステントの数を指定できます。
手順
ボリュームグループの空き物理エクステントの数を検索します。
# vgdisplay myvg
例68.18 ボリュームグループの空きエクステント
たとえば、以下のボリュームグループには 8780 個のの空き物理エクステントがあります。
--- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 6 VG Access read/write [...] Free PE / Size 8780 / 34.30 GB
論理ボリュームを作成します。ボリュームサイズをバイトではなくエクステントに入力します。
例68.19 エクステントの数を指定して論理ボリュームを作成
# lvcreate --extents 8780 --name mylv myvg
例68.20 残りの領域をすべて使用する論理ボリュームの作成
または、論理ボリュームを拡張して、ボリュームグループ内の残りの空き領域の割合を使用できます。以下に例を示します。
# lvcreate --extents 100%FREE --name mylv myvg
検証手順
ボリュームグループが使用するエクステントの数を確認します。
# vgs --options +vg_free_count,vg_extent_count VG #PV #LV #SN Attr VSize VFree Free #Ext myvg 2 1 0 wz--n- 34.30G 0 0 8780
68.14.8. LVM RAID のトラブルシューティング
LVM RAID デバイスのさまざまな問題のトラブルシューティングを実行して、データエラーの修正、デバイスの復旧、障害が発生したデバイスの置き換えを行うことができます。
68.14.8.1. RAID 論理ボリュームでのデータ整合性の確認 (RAID スクラビング)
LVM は、RAID 論理ボリュームのスクラビングに対応します。RAID スクラビングは、アレイ内のデータおよびパリティーブロックをすべて読み込み、それが一貫しているかどうかを確認するプロセスです。
手順
オプション:スクラビングプロセスが使用する I/O 帯域幅を制限します。
RAID スクラビング操作を実行する際に、
sync
操作で必要になるバックグラウンド I/O は、その他の I/O (ボリュームグループメタデータへの更新など) を LVM デバイスに押し出す可能性があります。これにより、他の LVM 操作が遅くなる可能性があります。リカバリースロットルを実装してスクラビング操作のレートを制御できます。次の手順で、
lvchange --syncaction
コマンドに以下のオプションを追加します。--maxrecoveryrate Rate[bBsSkKmMgG]
- 操作が通常の I/O 操作に押し出すように、最大復旧速度を設定します。復旧速度を 0 に設定すると、操作がバインド解除されることを意味します。
--minrecoveryrate Rate[bBsSkKmMgG]
-
最小復旧速度を設定し、負荷の高い通常の I/O がある場合でも、
sync
操作の I/O が最小スループットを達成できるようにします。
Rate 値は、アレイ内の各デバイスに対する 1 秒あたりのデータ通信量を指定します。接尾辞を指定しないと、オプションはデバイスごとの 1 秒あたらりの kiB を想定します。
アレイ内の不一致数を修復せずに、アレイ内の不一致の数を表示します。
# lvchange --syncaction check vg/raid_lv
アレイ内の不一致を修正します。
# lvchange --syncaction repair vg/raid_lv
注記lvchange --syncaction repair
操作は、lvconvert --repair
操作と同じ機能を実行しません。-
lvchange --syncaction repair
操作は、アレイでバックグラウンドの同期操作を開始します。 -
lvconvert --repair
操作は、ミラーまたは RAID 論理ボリュームの障害が発生したデバイスを修復するか、置き換えます。
-
オプション:スクラビング操作に関する情報を表示します。
# lvs -o +raid_sync_action,raid_mismatch_count vg/lv
raid_sync_action
フィールドは、RAID ボリュームが現在実行している同期操作を表示します。これには、以下のいずれかの値を使用できます。idle
- すべての同期操作が完了している (何も実行していません)。
resync
- アレイを初期化、またはマシン障害後の復旧を実行する。
recover
- アレイ内のデバイスを置き換える。
check
- アレイの不一致を検索する。
repair
- 不一致を検索し、修復する。
-
raid_mismatch_count
フィールドは、check
操作時に検出された不一致の数を表示します。 -
Cpy%Sync
フィールドは、sync
操作の進捗を表示します。 lv_attr
フィールドは、追加のインジケーターを提供します。このフィールドのビット 9 は、論理ボリュームの正常性を示し、以下のインジケーターに対応しています。-
(
m
) (不一致) は、RAID 論理ボリュームに不一致があることを示します。この文字は、スクラビング操作で RAID に一貫性がない部分があることを検出した後に表示されます。 -
(
r
) (更新) は、LVM がデバイスラベルを読み取り、デバイスを稼働できると認識した場合でも、RAID アレイのデバイスに障害が発生し、カーネルがこれを障害と認識していることを示します。デバイスが利用可能になったことをカーネルに通知するように論理ボリュームを更新するか、デバイスに障害が発生したと思われる場合はデバイスを交換します。
-
(
関連情報
-
詳細は、
lvchange(8)
およびlvmraid(7)
の man ページを参照してください。
68.14.8.2. LVM RAID のデバイスに障害が発生しました。
RAID は従来の LVM ミラーリングとは異なります。LVM ミラーリングでは、障害が発生したデバイスを削除する必要がありました。削除しないと、ミラー化論理ボリュームがハングします。RAID アレイは、障害があるデバイスがあっても稼働し続けることができます。RAID1 以外の RAID タイプでデバイスを削除すると、レベルが低い RAID に変換されます (たとえば、RAID6 から RAID5、もしくは RAID4 または RAID5 から RAID0)。
そのため、障害のあるデバイスを無条件に削除してから交換するのではなく、lvconvert
コマンドで --repair
引数を使用して、RAID ボリュームのデバイスを 1 回で置き換えることができます。
68.14.8.3. 論理ボリュームの障害が発生した RAID デバイスの交換
LVM RAID デバイス障害が一時的な障害であったり、障害が発生したデバイスの修復が可能な場合は、障害が発生したデバイスの復旧を開始できます。
前提条件
- 以前に不具合を起こしたデバイスが機能するようになりました。
手順
RAID デバイスが含まれる論理ボリュームを更新します。
# lvchange --refresh my_vg/my_lv
検証手順
復元されたデバイスで論理ボリュームを調べます。
# lvs --all --options name,devices,lv_attr,lv_health_status my_vg
68.14.8.4. 論理ボリュームに障害が発生した RAID デバイスの交換
この手順では、LVM RAID 論理ボリュームで物理ボリュームとして機能する障害のあるデバイスを置き換えます。
前提条件
ボリュームグループには、障害が発生したデバイスを置き換えるのに十分な空き容量を提供する物理ボリュームが含まれています。
ボリュームグループに十分な空きエクステントがある物理ボリュームがない場合は、
vgextend
ユーティリティーを使用して、十分なサイズの物理ボリュームを新たに追加します。
手順
以下の例では、RAID 論理ボリュームが次のように配置されます。
# lvs --all --options name,copy_percent,devices my_vg LV Cpy%Sync Devices my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0) [my_lv_rimage_0] /dev/sde1(1) [my_lv_rimage_1] /dev/sdc1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] /dev/sdc1(0) [my_lv_rmeta_2] /dev/sdd1(0)
/dev/sdc
デバイスに障害が発生した場合、lvs
コマンドの出力は以下のようになります。# lvs --all --options name,copy_percent,devices my_vg /dev/sdc: open failed: No such device or address Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee. WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices. WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices. LV Cpy%Sync Devices my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0) [my_lv_rimage_0] /dev/sde1(1) [my_lv_rimage_1] [unknown](1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] [unknown](0) [my_lv_rmeta_2] /dev/sdd1(0)
障害が発生したデバイスを交換して、論理ボリュームを表示します。
# lvconvert --repair my_vg/my_lv /dev/sdc: open failed: No such device or address Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee. WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices. WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices. Attempt to replace failed RAID images (requires full device resync)? [y/n]: y Faulty devices in my_vg/my_lv successfully replaced.
オプション:障害が発生したデバイスを交換する物理ボリュームを手動で指定するには、コマンドの最後に物理ボリュームを追加します。
# lvconvert --repair my_vg/my_lv replacement_pv
代替の論理ボリュームを調べます。
# lvs --all --options name,copy_percent,devices my_vg /dev/sdc: open failed: No such device or address /dev/sdc1: open failed: No such device or address Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee. LV Cpy%Sync Devices my_lv 43.79 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0) [my_lv_rimage_0] /dev/sde1(1) [my_lv_rimage_1] /dev/sdb1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] /dev/sdb1(0) [my_lv_rmeta_2] /dev/sdd1(0)
障害が発生したデバイスをボリュームグループから削除するまで、LVM ユーティリティーは、障害が発生したデバイスが見つけられないことを示しています。
障害が発生したデバイスをボリュームグループから削除します。
# vgreduce --removemissing VG
68.14.9. マルチパス化された LVM デバイスに対する重複した物理ボリューム警告のトラブルシューティング
マルチパスストレージで LVM を使用する場合は、ボリュームグループまたは論理ボリュームのリストを表示する LVM コマンドを実行すると、以下のようなメッセージが表示される場合があります。
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/dm-5 not /dev/sdd Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/emcpowerb not /dev/sde Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/sddlmab not /dev/sdf
これらの警告のトラブルシューティングにより、LVM が警告を表示する理由を理解し、または警告を非表示にできます。
68.14.9.1. 重複した PV 警告の原因
Device Mapper Multipath (DM Multipath)、EMC PowerPath、または Hitachi Dynamic Link Manager (HDLM) などのマルチパスソフトウェアがシステム上のストレージデバイスを管理すると、特定の論理ユニット (LUN) への各パスが異なる SCSI デバイスとして登録されます。
マルチパスソフトウェアは、各パスにマップする新しいデバイスを作成します。各 LUN には、同じ基礎となるデータを参照する /dev
ディレクトリーに複数のデバイスノードがあるため、すべてのデバイスノードには同じ LVM メタデータが含まれます。
マルチパスソフトウェア | LUN への SCSI パス | マルチパスデバイスパスへのマッピング |
---|---|---|
DM Multipath |
|
|
EMC PowerPath |
| |
HDLM |
|
複数のデバイスノードが原因で、LVM ツールは同じメタデータを複数回検出し、複製として報告します。
68.14.9.2. PV の重複警告が発生した場合
LVM は、以下のいずれかのケースで重複した PV 警告を表示します。
- 同じデバイスへの単一パス
出力に表示される 2 つデバイスは、両方とも同じデバイスへの単一パスです。
以下の例は、重複デバイスが、同じデバイスへの両方の単一パスである、重複した PV の警告を示しています。
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/sdd not /dev/sdf
multipath -ll
コマンドを使用して現在の DM Multipath トポロジーをリスト表示すると、同じマルチパスマップの下に/dev/sdd
と/dev/sdf
の両方を確認できます。これらの重複メッセージは警告のみで、LVM 操作が失敗しているわけではありません。代わりに、LVM が物理ボリュームとしてデバイスのいずれかのみを使用して他を無視していることを警告します。
メッセージは、LVM が誤ったデバイスを選択するか、ユーザーが警告を中断していることを示す場合は、フィルターを適用できます。フィルターは、物理ボリュームに必要なデバイスのみを検索し、マルチパスデバイスへの基礎となるパスを省略するように LVM を設定します。その結果、警告が表示されなくなりました。
- マルチパスマップ
出力に表示される 2 つのデバイスは、両方ともマルチパスマップです。
以下の例は、両方のマルチパスマップである 2 つのデバイスに対する重複した物理ボリューム警告を示しています。重複した物理ボリュームは、同じデバイスへの異なるパスではなく、2 つのデバイスに置かれます。
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/mapper/mpatha not /dev/mapper/mpathc Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/emcpowera not /dev/emcpowerh
この状況は、同じデバイスへの両方の単一パスであるデバイスに対する重複する警告よりも複雑です。これらの警告は、多くの場合、マシンがアクセスできないデバイス (LUN クローンやミラーなど) にアクセスしていることを意味します。
マシンから削除するデバイスが分からないと、この状況は復旧できない可能性があります。Red Hat は、この問題に対処するために Red Hat テクニカルサポートにお問い合わせください。
68.14.9.3. PV の重複警告を防ぐ LVM デバイスフィルターの例
以下の例は、1 つの論理ユニット (LUN) への複数のストレージパスによって引き起こされる、重複した物理ボリュームの警告を回避する LVM デバイスフィルターを示しています。
設定するフィルターには、LVM がメタデータをチェックする必要があるすべてのデバイスが含まれている必要があります。たとえば、root ボリュームグループのあるローカルのハードドライブや、マルチパスを設定したデバイスなどです。マルチパスデバイスへの基礎となるパス (/dev/sdb
、/dev/sdd
など) を拒否すると、マルチパスデバイス自体で一意の各メタデータ領域が一度検出されるため、重複した物理ボリュームの警告を回避できます。
このフィルターは、最初のハードドライブと DM Multipath デバイスの次のパーティションを受け入れますが、その他のパーティションはすべて拒否します。
filter = [ "a|/dev/sda2$|", "a|/dev/mapper/mpath.*|", "r|.*|" ]
このフィルターは、すべての HP SmartArray 全コントローラーと、EMC PowerPath デバイスを許可します。
filter = [ "a|/dev/cciss/.*|", "a|/dev/emcpower.*|", "r|.*|" ]
このフィルターは、最初の IDE ドライブとマルチパスデバイス上のパーティションをすべて受け入れます。
filter = [ "a|/dev/hda.*|", "a|/dev/mapper/mpath.*|", "r|.*|" ]
68.14.9.4. LVM デバイスフィルター設定の適用
この手順では、LVM スキャンするデバイスを制御する LVM デバイスフィルターの設定を変更します。
前提条件
- 使用するデバイスフィルターパターンを準備します。
手順
/etc/lvm/lvm.conf
ファイルを変更せずに、デバイスフィルターパターンをテストします。LVM コマンドに、
--config 'devices{ filter = [ your device filter pattern ] }'
オプションを指定して使用します。以下に例を示します。# lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'
-
/etc/lvm/lvm.conf
設定ファイルでfilter
オプションを編集して、新しいデバイスフィルターパターンを使用します。 新しい設定で、使用する物理ボリュームまたはボリュームグループがないことを確認します。
# pvscan
# vgscan
再起動時に LVM が必要なデバイスのみをスキャンするように
initramfs
ファイルシステムを再構築します。# dracut --force --verbose