1. はじめに
Proxmox VEの再起動後に、Proxmox Backup Server (PBS) を利用してバックアップを行ったところ、以下のような警告メッセージが出るトラブルが発生しました。
WARNING: Not using device /dev/nvme1n1 for PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r.
WARNING: PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r prefers device /dev/nvme2n1 because device is used by LV.
(同様のメッセージが繰り返し)
これは、LVM が「同じ PV UUID」を持つデバイスを 2 つ検出し、片方 (/dev/nvme1n1
) を無視している 状態を意味します。
そこで、実際に 古いUUIDを消去 して /dev/nvme1n1
を別の PV として扱えるようにした対処内容をまとめます。
2. 現象
- もともと
/dev/nvme1n1
として認識していたディスクが、何かの拍子(再起動や PCIe スロット変更など)で/dev/nvme2n1
に変わった - LVM からすると、同じ PV UUID が
/dev/nvme1n1
にも残っているように見え、「どちらを使うの?」という衝突が発生 - 結果として、バックアップ時に LVM スキャンが走る際、上記の警告が出るようになった
3. 切り分けに使ったコマンド
トラブルシュート時には、下記コマンドで状況を確認しました。
-
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
- NVMe デバイスの構成や、どのパーティション/LVM が存在するかを確認
-
pvs
/pvdisplay
- どのデバイスがどの PV UUID を持っているかをチェック
-
vgs -o +devices
/vgdisplay
- Volume Group (VG) に含まれる物理デバイス一覧の確認
-
lvs
/lvdisplay
- 論理ボリューム(LV)、Thin Pool のサイズや使用状況を確認
-
wipefs /dev/nvme1n1
- 古いシグネチャ(署名)が残っているかどうかを調べる
-
-a
オプションで実際に署名を削除する
root@pve:~# lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
NAME SIZE FSTYPE MOUNTPOINT
sda 3.6T
tqsda1 3.6T zfs_member
mqsda9 8M
sdb 3.6T zfs_member
tqsdb1 3.6T zfs_member
mqsdb9 8M
nvme1n1 1.5T LVM2_member
nvme2n1 1.5T LVM2_member
tqdata2-data2_tmeta 14.9G
x mqdata2-data2 1.4T
mqdata2-data2_tdata 1.4T
mqdata2-data2 1.4T
nvme0n1 1.5T
tqnvme0n1p1 1007K
tqnvme0n1p2 1G vfat
mqnvme0n1p3 1.5T LVM2_member
tqpve-swap 8G swap [SWAP]
tqpve-root 96G xfs /
tqpve-data_tmeta 13.7G
x mqpve-data-tpool 1.3T
x tqpve-data 1.3T
x tqpve-vm--100--disk--0 8G ext4
x tqpve-vm--112--disk--0 100G
x tqpve-vm--113--disk--0 100G
x tqpve-vm--104--disk--0 60G
x tqpve-vm--105--disk--0 60G
x tqpve-vm--101--disk--0 32G
x tqpve-vm--103--disk--0 32G
x tqpve-vm--111--disk--0 16G
x tqpve-vm--107--disk--0 4M
x tqpve-vm--107--disk--1 16G
x tqpve-vm--103--state--test 8.5G
x tqpve-vm--102--disk--0 32G
x tqpve-vm--102--disk--1 100G
x tqpve-vm--108--disk--0 32G
x mqpve-vm--106--disk--0 60G
mqpve-data_tdata 1.3T
mqpve-data-tpool 1.3T
tqpve-data 1.3T
tqpve-vm--100--disk--0 8G ext4
tqpve-vm--112--disk--0 100G
tqpve-vm--113--disk--0 100G
tqpve-vm--104--disk--0 60G
tqpve-vm--105--disk--0 60G
tqpve-vm--101--disk--0 32G
tqpve-vm--103--disk--0 32G
tqpve-vm--111--disk--0 16G
tqpve-vm--107--disk--0 4M
tqpve-vm--107--disk--1 16G
tqpve-vm--103--state--test 8.5G
tqpve-vm--102--disk--0 32G
tqpve-vm--102--disk--1 100G
tqpve-vm--108--disk--0 32G
mqpve-vm--106--disk--0 60G
root@pve:~# pvs
WARNING: Not using device /dev/nvme1n1 for PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r.
WARNING: PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r prefers device /dev/nvme2n1 because device is used by LV.
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p3 pve lvm2 a-- 1.45t 16.00g
/dev/nvme2n1 data2 lvm2 a-- <1.46t 120.00m
root@pve:~# vgs -o +devices
WARNING: Not using device /dev/nvme1n1 for PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r.
WARNING: PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r prefers device /dev/nvme2n1 because device is used by LV.
VG #PV #LV #SN Attr VSize VFree Devices
data2 1 1 0 wz--n- <1.46t 120.00m data2_tdata(0)
pve 1 20 0 wz--n- 1.45t 16.00g data_tdata(0)
pve 1 20 0 wz--n- 1.45t 16.00g /dev/nvme0n1p3(0)
pve 1 20 0 wz--n- 1.45t 16.00g /dev/nvme0n1p3(2048)
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
pve 1 20 0 wz--n- 1.45t 16.00g
root@pve:~# vgdisplay
WARNING: Not using device /dev/nvme1n1 for PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r.
WARNING: PV Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r prefers device /dev/nvme2n1 because device is used by LV.
--- Volume group ---
VG Name data2
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <1.46 TiB
PE Size 4.00 MiB
Total PE 381546
Alloc PE / Size 381516 / <1.46 TiB
Free PE / Size 30 / 120.00 MiB
VG UUID DKEqZc-tlbD-Ay1b-2GAF-WrAt-hEl4-0lM9rO
--- Volume group ---
VG Name pve
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 205
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 20
Open LV 8
Max PV 0
Cur PV 1
Act PV 1
VG Size 1.45 TiB
PE Size 4.00 MiB
Total PE 381289
Alloc PE / Size 377193 / <1.44 TiB
Free PE / Size 4096 / 16.00 GiB
VG UUID OXW3I3-CM2S-L6re-Ltf3-z8Xb-XwOY-m86lPT
4. なぜ警告が出るのか
4.1 LVM の UUID 衝突
出力されたメッセージには、
WARNING: Not using device /dev/nvme1n1 for PV <UUID>...
のように書かれています。これは LVM が「同じ PV UUID」を /dev/nvme1n1 と /dev/nvme2n1 の両方で検出 し、実際に利用中の /dev/nvme2n1
を優先したために出るものです。
使われていない /dev/nvme1n1
の署名をそのまま放置していると、LVM スキャンのたびに警告が出ます。
4.2 NVMe デバイス名が変わる背景
Linux では、NVMe デバイス名はブート順や PCIe ポートの挿し替えなどで簡単に変化 します。
- 以前は
/dev/nvme1n1
だったのが、今は/dev/nvme2n1
として認識された - LVM は PV UUID で追跡するため、本来なら問題ないはずが、古いシグネチャが消えずに残ると衝突が起きる
5. 対処:古いシグネチャを消して別 PV として認識
今回のケースでは、もはや /dev/nvme1n1
に必要なデータは存在しない(実際には /dev/nvme2n1
が稼働中)と判断できたため、下記のような手順で「完全に別の PV」として利用できるようにしました。
-
シグネチャ確認
nvme1n1とnvme2n1のシグネチャを確認します。wipefs /dev/nvme1n1 wipefs /dev/nvme2n1
root@pve:~# wipefs /dev/nvme1n1
DEVICE OFFSET TYPE UUID LABEL
nvme1n1 0x218 LVM2_member Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r
nvme1n1 0x1749a955e00 gpt
root@pve:~# wipefs /dev/nvme2n1
DEVICE OFFSET TYPE UUID LABEL
nvme2n1 0x218 LVM2_member Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r
nvme2n1 0x1749a955e00 gpt
このように、両方のデバイスで同じUUIDとなっていることが確認できました。
-
UUID削除
wipefs -a /dev/nvme1n1
root@pve:~# wipefs -a /dev/nvme1n1
/dev/nvme1n1: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
/dev/nvme1n1: 8 bytes were erased at offset 0x1749a955e00 (gpt): 45 46 49 20 50 41 52 54
これで LVM メタデータがすべて破棄され、未使用ディスク扱いになる
-
新たに PV として初期化
pvcreate /dev/nvme1n1 pvdisplay
root@pve:~# pvcreate /dev/nvme1n1
Physical volume "/dev/nvme1n1" successfully created.
root@pve:~# pvdisplay
--- Physical volume ---
PV Name /dev/nvme0n1p3
VG Name pve
PV Size 1.45 TiB / not usable <4.32 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 381289
Free PE 4096
Allocated PE 377193
PV UUID J7v3Ab-O3ro-nPDb-x8Om-NPJW-7CiX-52JfRa
--- Physical volume ---
PV Name /dev/nvme2n1
VG Name data2
PV Size <1.46 TiB / not usable <1.34 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 381546
Free PE 30
Allocated PE 381516
PV UUID Ha4HvE-lWcM-FOsl-5dDU-wutl-WYb7-l41i2r
"/dev/nvme1n1" is a new physical volume of "<1.46 TiB"
--- NEW Physical volume ---
PV Name /dev/nvme1n1
VG Name
PV Size <1.46 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID MmhAKM-7TXQ-C1Yu-bXdo-iBu5-KAIB-2J7Rk1
- こうすることで、まったく新しい PV UUID が割り当てられる
-
VG に組み込む or 新規 VG を作る (用途に応じて)
- 例:
これで
vgcreate newvg /dev/nvme1n1
newvg
のサイズが 1.5TB として使えるようになる。 - あるいは、既存の VG に容量を足したいなら:
vgextend data2 /dev/nvme1n1
- 例:
結果として /dev/nvme1n1
は別の PV として認識され、バックアップ実行時の LVM スキャンでも衝突が発生せず、警告が消えました。
6. 実害がないなら放置でも OK
- もし
/dev/nvme1n1
が古い署名を持ちながらも、まったく使用予定のないデバイスで、バックアップや日々の運用に問題が出ていない場合、ログに警告が出るだけで致命的ではありません。 - ただし、ログが煩わしい・他の管理者が見たときに混乱する…といった理由で整理しておくのが無難でしょう。
7. まとめ
- バックアップ時に出る LVM 警告 は、NVMe デバイス名が変わり、古いシグネチャが残っていた ために起きた
-
対処法:
-
wipefs -a /dev/nvme1n1
で古いメタデータを消去 -
pvcreate /dev/nvme1n1
し直す → 新規 or 既存 VG に追加
-
-
ポイント:
- NVMe デバイスは名前が変わりやすい → PV UUID を確認して衝突を解消する
-
lsblk
/pvs
/vgs -o +devices
などで現状把握 - 実害がなければ警告は無視可能だが、将来的に不要デバイスを活かすなら早めに整頓するのがおすすめ
以上の流れで、古いシグネチャを消すことで /dev/nvme1n1 を無事「別の PV」として認識 でき、警告メッセージも解消しました。同様の事象に遭遇した方は参考にしてみてください。