Skip to main content

LVM Troubleshooting

Спасите, все сломалось!

Есть PV, есть VG, но нет LV

Возможно он просто после сбоя перешел в inactive статус. Проверь это:

root@pve:/etc# lvscan 
  ACTIVE            '/dev/xray-ssd/xray-ssd' [<467.28 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-101-disk-0' [30.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-110-disk-0' [10.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-114-disk-0' [15.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-120-disk-0' [15.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-128-disk-0' [8.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-124-disk-0' [15.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-1207-disk-0' [30.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-1208-disk-0' [30.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-1204-disk-0' [30.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-118-disk-0' [40.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-111-disk-0' [40.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-1205-disk-0' [30.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-129-disk-0' [50.00 GiB] inherit
  inactive          '/dev/xray-ssd/vm-500-disk-0' [50.00 GiB] inherit

Активируй то что неактивно:

lvscan | grep xray | awk '{print $2}' | awk -F'/' '{print "xray-ssd/"$4}'  | sed "s/'//g" | xargs -L1 lvchange -ay 

Готово

root@pve:/etc# lvscan 
  ACTIVE            '/dev/xray-ssd/xray-ssd' [<467.28 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-101-disk-0' [30.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-110-disk-0' [10.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-114-disk-0' [15.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-120-disk-0' [15.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-128-disk-0' [8.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-124-disk-0' [15.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-1207-disk-0' [30.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-1208-disk-0' [30.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-1204-disk-0' [30.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-118-disk-0' [40.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-111-disk-0' [40.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-1205-disk-0' [30.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-129-disk-0' [50.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-500-disk-0' [50.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-130-disk-0' [32.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-133-disk-0' [10.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-131-cloudinit' [4.00 MiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-131-disk-0' [10.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-131-disk-1' [15.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-131-disk-2' [15.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-132-cloudinit' [4.00 MiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-132-disk-0' [15.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-134-disk-0' [<10.20 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-134-cloudinit' [4.00 MiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-503-disk-0' [64.00 GiB] inherit
  ACTIVE            '/dev/xray-ssd/vm-135-disk-0' [32.00 GiB] inherit

Через lsblk можешь проверить, что разделы появились.

Спасите! Пропало вообще все! pvscan в упор не видит раздел, pvck тоже не видит LVM на диске, но он точно там был.

SRC: https://unix.stackexchange.com/questions/489182/lvm-pv-missing-after-reboot

Предположим сценарий: был диск /dev/sdb, на нем был создан проксмоксом thin-lvm, на котором были вольюмы с виртуалками. lsblk показывает просто диск sdb без чего-либо внутри. blkid не выводит по диску ничего.

Смотрим диск через hexedit /dev/sdb (не бойся, он не читает весь диск целиком, как тот же vim и не сожрет всю твою ОЗУ). На оффсете 1000 должны появиться LVM заголовки.

В системе в папке /etc/lvm/backup/ должен быть последний бекап LVM'а. Бекап создается при любой операции с PV (даже создание снапшота/переименование и т.д.), поэтому он должен быть актуальным. Смотрим туда, ищем там physical_volumes, тут мы увидим, был ли у нас LVM на разделе или на самом диске. В моем случае он был на диске:

        physical_volumes {

                pv0 {
                        id = "iEAZSq-3SnC-ZPvI-XF2o-NrIh-lsYb-Xqe6IW"
                        device = "/dev/sdb"     # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 1000215216   # 476.94 Gigabytes
                        pe_start = 2048
                        pe_count = 122096       # 476.938 Gigabytes
                }
        }

Также отсюда нам понадобится ID, это UUID вольюма. Бахаем:

pvcreate --restorefile /etc/lvm/backup/xray-ssd --uuid iEAZSq-3SnC-ZPvI-XF2o-NrIh-lsYb-Xqe6IW /dev/sdb

Теперь у нас должен появиться pv. Надо еще восстановить vg. Делаем

vgcfgrestore --force --file /etc/lvm/backup/xray-ssd xray-ssd

Параметр --force нам тут нужен потому что у нас был thin pool. После этого мы должны увидить LVшки в lvscan. Скорее всего они inactive. Активируем их по инструкции "Есть PV, есть VG, но нет LV". Запускаем какую-нибудь виртуалку, проверяем что все работает. Радуемся.