Red Hat Training

A Red Hat training course is available for RHEL 8

68.14. LVM のトラブルシューティング

LVM ツールを使用して、LVM ボリュームおよびグループのさまざまな問題のトラブルシューティングを行うことができます。

68.14.1. LVM での診断データの収集

LVM コマンドが想定どおりに機能しない場合は、以下の方法で診断情報を収集できます。

手順

  • 以下の方法を使用して、さまざまな診断データを収集します。

    • -v 引数を LVM コマンドに追加して、コマンドの出力の詳細レベルを増やします。v を追加すると、詳細度をさらに増やすことができます。v は最大 4 つ許可されます (例:-vvvv)。
    • /etc/lvm/lvm.conf 設定ファイルの log セクションで、level オプションの値を増やします。これにより、LVM がシステムログにより多くの情報を提供します。
    • 問題が論理ボリュームのアクティブ化に関連する場合は、アクティブ化中に LVM がログメッセージをログに記録できるようにします。

      1. /etc/lvm/lvm.conf 設定ファイルの log セクションで activation = 1 オプションを設定します。
      2. LVM コマンドに -vvvv オプションを付けて実行します。
      3. コマンドの出力を確認します。
      4. 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 物理ボリュームの削除

物理ボリュームに障害が発生した場合は、ボリュームグループ内の残りの物理ボリュームをアクティブにし、その物理ボリュームを使用していたすべての論理ボリュームをボリュームグループから削除できます。

手順

  1. ボリュームグループ内の残りの物理ボリュームをアクティベートします。

    # vgchange --activate y --partial myvg
  2. 削除する論理ボリュームを確認します。

    # vgreduce --removemissing --test myvg
  3. ボリュームグループから、失われた物理ボリュームを使用していた論理ボリュームをすべて削除します。

    # vgreduce --removemissing --force myvg
  4. オプション:保持する論理ボリュームを誤って削除した場合には、vgreduce 操作を元に戻すことができます。

    # vgcfgrestore myvg
    警告

    シンプールを削除すると、LVM は操作を元に戻すことができません。

68.14.4. 見つからない LVM 物理ボリュームのメタデータの検索

物理ボリュームのボリュームグループメタデータ領域が誤って上書きされたり、破棄されたりする場合は、メタデータ領域が正しくないことを示すエラーメッセージか、システムが特定の UUID を持つ物理ボリュームを見つけることができないことを示すエラーメッセージが表示されます。

この手順では、物理ボリュームが見つからないか、破損している、アーカイブされた最新のメタデータを見つけます。

手順

  1. 物理ボリュームを含むボリュームグループのアーカイブされたメタデータファイルを検索します。アーカイブされたメタデータファイルは、/etc/lvm/archive/volume-group-name_backup-number.vg パスにあります。

    # cat /etc/lvm/archive/myvg_00000-1248998876.vg

    00000-1248998876 を backup-number に置き換えます。ボリュームグループの番号が最も高い、既知の有効なメタデータファイルの最後のものを選択します。

  2. 物理ボリュームの 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 を指定すると、データが失われることになります。

前提条件

手順

  1. 物理ボリュームでメタデータを復元します。

    # 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
  2. ボリュームグループのメタデータを復元します。

    # vgcfgrestore myvg
    
      Restored volume group myvg
  3. ボリュームグループの論理ボリュームを表示します。

    # 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)
  4. 論理ボリュームのセグメントタイプが RAID の場合は、論理ボリュームを再同期します。

    # lvchange --resync myvg/mylv
  5. 論理ボリュームを非アクティブにします。

    # lvchange --activate y myvg/mylv
  6. ディスク上の 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 論理ボリュームを作成する場合は、丸めエラーを防ぐために論理ボリュームの論理エクステントの数を指定できます。

手順

  1. ボリュームグループの空き物理エクステントの数を検索します。

    # 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
  2. 論理ボリュームを作成します。ボリュームサイズをバイトではなくエクステントに入力します。

    例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 スクラビングは、アレイ内のデータおよびパリティーブロックをすべて読み込み、それが一貫しているかどうかを確認するプロセスです。

手順

  1. オプション:スクラビングプロセスが使用する 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 を想定します。

  2. アレイ内の不一致数を修復せずに、アレイ内の不一致の数を表示します。

    # lvchange --syncaction check vg/raid_lv
  3. アレイ内の不一致を修正します。

    # lvchange --syncaction repair vg/raid_lv
    注記

    lvchange --syncaction repair 操作は、lvconvert --repair 操作と同じ機能を実行しません。

    • lvchange --syncaction repair 操作は、アレイでバックグラウンドの同期操作を開始します。
    • lvconvert --repair 操作は、ミラーまたは RAID 論理ボリュームの障害が発生したデバイスを修復するか、置き換えます。
  4. オプション:スクラビング操作に関する情報を表示します。

    # 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 ユーティリティーを使用して、十分なサイズの物理ボリュームを新たに追加します。

手順

  1. 以下の例では、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)
  2. /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)
  3. 障害が発生したデバイスを交換して、論理ボリュームを表示します。

    # 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
  4. 代替の論理ボリュームを調べます。

    # 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 ユーティリティーは、障害が発生したデバイスが見つけられないことを示しています。

  5. 障害が発生したデバイスをボリュームグループから削除します。

    # 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 メタデータが含まれます。

表68.6 異なるマルチパスソフトウェアでのデバイスマッピングの例

マルチパスソフトウェアLUN への SCSI パスマルチパスデバイスパスへのマッピング

DM Multipath

/dev/sdb および /dev/sdc

/dev/mapper/mpath1 または /dev/mapper/mpatha

EMC PowerPath

/dev/emcpowera

HDLM

/dev/sddlmab

複数のデバイスノードが原因で、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 デバイスフィルターの設定を変更します。

前提条件

  • 使用するデバイスフィルターパターンを準備します。

手順

  1. /etc/lvm/lvm.conf ファイルを変更せずに、デバイスフィルターパターンをテストします。

    LVM コマンドに、--config 'devices{ filter = [ your device filter pattern ] }' オプションを指定して使用します。以下に例を示します。

    # lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'
  2. /etc/lvm/lvm.conf 設定ファイルで filter オプションを編集して、新しいデバイスフィルターパターンを使用します。
  3. 新しい設定で、使用する物理ボリュームまたはボリュームグループがないことを確認します。

    # pvscan
    # vgscan
  4. 再起動時に LVM が必要なデバイスのみをスキャンするように initramfs ファイルシステムを再構築します。

    # dracut --force --verbose

68.14.9.5. 関連情報