Я создал 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|" ]