問題
再起動後、システムは LVM ボリューム グループの 1 つを起動またはアクティブ化しません。グループを手動でアクティブ化しようとすると、次のメッセージが表示されます:
Couldn't find device with uuid '[UUID]'
解決策
文字列 LABELONE メタデータの場所で、デバイスを LVM デバイスの一部としてマークします。この文字列がないと、lvm3 はデバイスを物理ボリュームとして利用しようとしません。システム エラーまたは意図的な手動操作により、物理デバイスのメタデータが上書きされる可能性があります。
Linux バージョン 4 または 5 の場合、デフォルトのメタデータ領域は 192Kb です。 Linux バージョン 6 の場合、デフォルトのメタデータは 1Mb です。復旧または修復作業を試みる前に、この領域のバックアップ コピーを作成することを強くお勧めします:
# /bin/dd if=/dev/xvdd of=/root/xvdd.metadata bs=1K count=[192_or_1024]
LVM 署名を確認するには、次のようにします。
# /bin/strings /root/xvdd.metadata | /bin/fgrep LABELONE
出力が生成されない場合、メタデータが破損しています。
以下の情報を確認してください:
/etc/lvm/backup /etc/lvm/archives
変更のため。これらが変更されているか、一貫性がない場合、復元作業によってボリューム データ全体が破損する可能性があります。物理デバイスまたは LUN がまだ使用可能であること、またはこのサーバーに提示されていることを確認してください。
すべての LVM ボリュームの定期的なバックアップを作成するように注意してください。それらは回復可能である可能性がありますが、設定ミスによりデータセット全体が完全に破損する可能性もあります。
1. この項目は、システムにマルチパス化されたデバイスもある場合にのみ重要であることに注意してください。同じサーバーで LVM とマルチパスを使用しない場合は、この項目をスキップしても問題ありません。
システムの起動時に、ディスク ドライブや LUN などのブロック デバイスが LVM ボリュームの構築に使用できるように、LVM サブシステムに通知が送信されます。これは非同期プロセスです。システムが起動されるたびにデバイスが同じ順序で検出されるという保証はありません。つまり、マルチパス化されたデバイスの物理パスは、複合論理デバイスが完成する前に発見される可能性が高く、マルチパス サブシステムにデバイスが提供される前に、LVM サブシステムによって物理パスが要求されることになります。この状態の望ましくない結果が 2 つあります:
を。マルチパス デバイスへの 1 つのパスのみが LVM によって使用および要求されるため、システムは単一点障害に対して脆弱なままになり、ストレージへの接続が壊滅的に失われます。
b. LVM は物理パスの排他的な所有権を取得するため、マルチパス層はデバイスがビジーであると報告し、マルチパス デバイスを構築できません。これにより、ストレージは単一点障害の影響を受けやすくなり、ストレージへのアクセスが妨げられます。解決策は、LVM ボリュームの一部を実際に保持するブロック デバイスのみを LVM に考慮するように強制することです。これを行う方法は、/etc/lvm/lvm.conf ファイルを調べることです:
# /bin/fgrep -n -e 's/#.*//' -e '/filter/p' /etc/lvm/lvm.conf filter = [ "a/.*/" ]
出力が上記のようになっている場合、LVM 構成に問題があり、システムでマルチパス デバイスを使用すると、マルチパス デバイスが破損する可能性があります。このパラメーターの変更は、このメモの範囲外です。この値を修正したと仮定して続行します。
2. LVM データを保持するストレージの認識が遅い場合があり、システムが安定してからアクセスすると、正常にマウントされる場合があります。まず、利用可能なブロック デバイスのインベントリを作成し、UUID を決定します。
# /sbin/vgscan Reading all physical volumes. This may take a while... Couldn't fine device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Found volume group "data_vg" using metadata type lvm2
問題の原因となっている UUID がわかったので、関連するデバイスを見つける必要があります:
# /sbin/pvs -o +uuid Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. PV VG Fmt Attr PSize PFree PV UUID /dev/xvdc data_vg lvm2 a-- 996.00M 0 VrVT1L-CTcT-9Nn9-oIAx-BnEA-X7sv-vJO6RE /dev/xvde data_vg lvm2 a-- 996.00M 428.00M tGIqvd-lsYv-7JmV-1bfD-t7BL-HaGi-rmIYW0 unknown device data_vg lvm2 a-m 996.00M 0 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt
3. 物理デバイス全体の論理ボリュームの分布を次のように表示できます:
# /sbin/lvs -o +devices Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices data_vg_lv data_vg -wi-a- 2.50G /dev/xvdc(0) data_vg_lv data_vg -wi-a- 2.50G unknown device(0) data_vg_lv data_vg -wi-a- 2.50G /dev/xvde(0) =
4. ボリューム グループのアクティブ化を試みます:
# /sbin/vgchange -a y data_vg Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Refusing activation of partial LV data_vg_lv. Use --partial to override. 1 logical volume(s) in volume group "data_vg" now active
5. ボリューム グループを減らし、不足しているデバイスを削除してみてください:
# /sbin/vgreduce --removemissing data_vg Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. WARNING: Partial LV data_vg_lv needs to be repaired or removed. WARNING: There are still partial LVs in VG data_vg. To remove them unconditionally use: vgreduce --removemissing --force. Proceeding to remove empty missing PVs.
# /sbin/vgreduce --removemissing data_vg --force Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Removing partial LV data_vg_lv. Logical volume "data_vg_lv" successfully removed Wrote out consistent volume group data_vg
6. 行方不明のデバイスがグループから削除されると、LVM デバイスがアクティブ化されます。
# /sbin/pvs PV VG Fmt Attr PSize PFree /dev/xvdc data_vg lvm2 a-- 996.00M 996.00M /dev/xvde data_vg lvm2 a-- 996.00M 996.00M
# /sbin/lvs -o +devices #
# /sbin/vgscan Reading all physical volumes. This may take a while... Found volume group "data_vg" using metadata type lvm2
# /sbin/vgdisplay --- Volume group --- VG Name data_vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.95 GB PE Size 4.00 MB Total PE 498 Alloc PE / Size 0 / 0 Free PE / Size 498 / 1.95 GB VG UUID yTOvvd-ZjUe-gXP0-41BT-qUIk-8uPR-lpr9Pw
7. /etc/lvm/archive/ ディレクトリに保存されている情報を使用して、ボリューム グループの復元を試みることができます。
# /sbin/vgcfgrestore -f data_vg_00003-1023778751.vg data_vg Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Cannot restore Volume Group data_vg with 1 PVs marked as missing. Restore failed.
8. ボリューム グループ情報から得られた UUID 設定に基づいて、デバイス情報を上書きまたは復元しようとしています:
# /sbin/pvcreate --restorefile /etc/lvm/archive/data_vg_00003-1023778751.vg --uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt /dev/xvdd Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Writing physical volume data to disk "/dev/xvdd" Physical volume "/dev/xvdd" successfully created
9. テキスト エディターを使用して、/etc/lvm/archive/data_vg_00003-1023778751.vg などのボリューム グループ情報を開き、フラグ エントリから「MISSING」文字列を削除して、次のようにします。
flags = [ ]
10. この変更されたエントリを使用して LVM を復元します:
# /sbin/ vgcfgrestore -f /etc/lvm/archive/data_vg_00003-1023778751.vg data_vg Restored volume group data_vg
11. 環境を確認します:
# /sbin/vgscan Reading all physical volumes. This may take a while... Found volume group "data_vg" using metadata type lvm2
# /sbin/ pvs -o +uuid PV VG Fmt Attr PSize PFree PV UUID /dev/xvdc data_vg lvm2 a-- 996.00M 0 VrVT1L-CTcT-9Nn9-oIAx-BnEA-X7sv-vJO6RE /dev/xvdd data_vg lvm2 a-- 996.00M 0 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt /dev/xvde data_vg lvm2 a-- 996.00M 428.00M tGIqvd-lsYv-7JmV-1bfD-t7BL-HaGi-rmIYW0
12. LVM の可用性を確認します:
# /sbin/lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices data_vg_lv data_vg -wi--- 2.50G /dev/xvdc(0) data_vg_lv data_vg -wi--- 2.50G /dev/xvdd(0) data_vg_lv data_vg -wi--- 2.50G /dev/xvde(0)