問題
LVM (Logical Volume Manager) とマルチパスを使用する CentOS/RHEL システムで partprobe などのコマンドを実行すると、次のようなメッセージが報告されます。 device-mapper-multipath または EMC PowerPath など:
Error: Error informing the kernel about modifications to partition /dev/sda1 -- Device or resource busy. This means Linux won't know about any changes you made to /dev/sda1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting. ...
pvs コマンドを実行して物理ボリューム (PV) 関連の情報を取得すると、次のようなメッセージが報告されます:
Found duplicate PV G9tZklKg1nrXN7wGADvwHQOQtgd4w58M: using /dev/sdb1 not /dev/sda1 Found duplicate PV G9tZklKg1nrXN7wGADvwHQOQtgd4w58M: using /dev/sda1 not /dev/emcpowera1 ...
根本原因
「Found duplicate PV」メッセージは、LVM が基盤となるシングルパス デバイスを除外するように構成されていない場合に発生します。 /dev/sd*. device-mapper-multipath、EMC PowerPath などのマルチパス ソフトウェアは、管理対象デバイスごとにマルチパス疑似デバイスを作成します。基盤となるシングルパス デバイスが除外されていない場合、LVM は検出し、同じ LVM デバイスを参照する重複したデバイス パスを報告します。
2 パス device-mapper-multipath 構成のデバイス マッピングの例:
/dev/sda, /dev/sdb --> /dev/dm-0 --> /dev/mapper/mpath1
2 パス EMC PowerPath 構成のデバイス マッピングの例:
/dev/sda, /dev/sdb --> /dev/emcpowera
解決策
EMC PowerPath での新しい LVM セットアップについては、EMC PowerPath ドキュメントの「Configuring LVM2 support」を参照してください。これには、「/etc/lvm/lvm.conf」ファイルを変更して基本パスを除外する方法の詳細が記載されています
device-mapper-multipath での新しい LVM セットアップの場合:
– 基礎となる SCSI デバイスで LVM スキャンをオフにします。これは、「/etc/lvm/lvm.conf」のフィルター パラメーターを変更することで実行できます。
filter = [ "a/dev/mapper/.*/", "r/dev/sd.*/" ]注意 :この設定は、LVM ディスクのスキャン中にすべての /dev/mapper/* デバイスを受け入れ、すべての /dev/sd* デバイスを拒否します。詳細については、LVM2 ユーザー ガイドを参照してください。ルート デバイスがマルチパス LVM デバイスでもある場合は、新しい initrd イメージを作成する前に /etc/lvm/lvm.conf を変更します。 「ルート上のマルチパス」が必要な場合、initrd イメージで lvm.conf が必要になるため、initrd を再作成する必要があります。
EMC PowerPath または dm-multipath ディスク上の既存の LVM セットアップの場合、LVM ボリューム上のデータの整合性を確認してください:
1. 上記のように「/etc/lvm/lvm.conf」を変更します
2. 一般に、すべての sd* デバイスを除外し、/dev/emcpower* または /dev/mapper/* デバイスのみを表示するように LVM を構成する必要があります。マルチパス化されていない SCSI デバイス LVM ボリューム (例:/dev/cciss/*) が他にある場合は、それに応じてフィルタを設定します。例:
filter = [ "r/sd.*/" "a/dev/cciss/*/" "a/dev/emcpower.*/" "a/dev/mapper/*/" ]
この設定では、「lvmdiskscan」および「pvscan」コマンドは、/dev/ccisss/*、/dev/emcpower*、および /dev/mapper/* デバイスのみを検出する必要があります。
3. LVM 管理デバイス/ファイルシステムにアクセスするすべてのアプリケーション/サービスを停止します。
4. LVM ベースのファイルシステムをすべてアンマウントします。
5. すべてのボリューム グループを無効にします。
# vgchange -an
6. ボリューム グループを再スキャンします。
# vgscan
7. ボリューム グループを再度有効にします。
# vgchange -ay
8. LVM ベースのファイルシステムをマウントします。
9. LVM 管理デバイス/ファイルシステムへのアクセスを必要とするアプリケーション/サービスを開始します。
注意 :起動時に LVM ディスクを参照する必要がある場合 (例:kdump キャプチャ カーネルの起動段階中、またはマルチパス オン ルートとして構成されている場合)、initrd イメージを再構築する必要があります。