Назад | Перейти на главную страницу

Сбой PV на LVM-cached LV

Я создал LVM-кэш:

# lvcreate local --name BigCached -L32T /dev/sda3
# lvcreate -n LVcache -L500G local /dev/sdb
# lvcreate -n LVcacheMeta -L1G local /dev/sdb
# lvconvert --type cache --cachepool local/LVcache local/BigCached
# lvs
  LV        VG    Attr       LSize   Pool    Origin            Data%  Meta%  Move Log Cpy%Sync Convert
  BigCached local Cwi-a-C---  32,00t LVcache [BigCached_corig]
  LVcache   local Cwi---C--- 500,00g
  root      local -wi-ao----  30,00g

Все хорошо, я создал файловую систему ext4 на BigCached и провел несколько тестов, которые оказались удовлетворительными, а затем размонтировал его.

После этого я попытался создать PV поверх кешированного тома:

# pvcreate /dev/local/BigCached
Physical volume "/dev/local/BigCached" successfully created
# pvs
  Found duplicate PV t3eDn0GGYTfOxRhnwnzF0C1DHWjiEg4l: using /dev/mapper/local-BigCached_corig not /dev/local/BigCached
  PV                                VG    Fmt  Attr PSize   PFree
  /dev/mapper/local-BigCached_corig       lvm2 ---   32,00t  32,00t
  /dev/sda3                         local lvm2 a--   32,74t 729,76g
  /dev/sdb                          local lvm2 a--  744,62g 243,62g

Ой :( Как-то в качестве PV использовался некешированный оригинал вместо кешированного.

Хорошо, давайте удалим PV и попробуем снова с некоторыми другими параметрами:

# pvremove /dev/local/BigCached
  Found duplicate PV t3eDn0GGYTfOxRhnwnzF0C1DHWjiEg4l: using /dev/mapper/local-BigCached_corig not /dev/local/BigCached
  Internal error: Physical Volume /dev/local/BigCached has a label, but is neither in a VG nor orphan.
# pvremove -ff /dev/local/BigCached
  Found duplicate PV t3eDn0GGYTfOxRhnwnzF0C1DHWjiEg4l: using /dev/mapper/local-BigCached_corig not /dev/local/BigCached
  Internal error: Physical Volume /dev/local/BigCached has a label, but is neither in a VG nor orphan.

Я действительно застрял здесь: я не могу удалить PV, но также не могу безопасно использовать базовый LV. Пожалуйста помоги!

Мне удалось использовать dmsetup напрямую для удаления кешированного тома:

# dmsetup remove /dev/mapper/local-BigCached

После этого я смог удалить PV:

# pvremove /dev/mapper/local-BigCached_corig
  Labels on physical volume "/dev/mapper/local-BigCached_corig" successfully wiped

Хорошо, посмотрим, что осталось от LV:

# lvs
  LV        VG    Attr       LSize   Pool    Origin            Data%  Meta%  Move Log Cpy%Sync Convert
  BigCached local Cwi---C---  32,00t LVcache [BigCached_corig]
  LVcache   local Cwi---C--- 500,00g
  root      local -wi-ao----  30,00g

Ого, он все еще там, хотя и неактивно ...

Однако, когда я попытался их активировать, BigCached не удалось, поэтому я был вынужден удалить его. Я вернулся к исходной точке, поэтому попробовал другой подход: использовать dm-cache напрямую, а не с lvmcache.

Однако результат был почти такой же:

Found duplicate PV rkVmi4Pm5ijJXYM50cz6pI5ZhMeljpic: using /dev/mapper/big-cached not /dev/local/big

Хотя в настоящее время он использует правильное устройство (/ dev / mapper / big-cached), я не могу быть уверен, что так будет всегда, поэтому это все еще не лучшее решение.

Затем я обнаружил, что этот случай аналогичен многолучевому устройству и, следовательно, требует наличия подобное решение, а именно фильтр lvm в /etc/lvm/lvm.conf:

      filter = [ "r|/dev/local/big|" ]