我创build了一个LVMcaching的LV:
# 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-aC--- 32,00t LVcache [BigCached_corig] LVcache local Cwi---C--- 500,00g root local -wi-ao---- 30,00g
一切顺利,我在BigCached上创build了一个ext4文件系统,并运行了一些满意的基准testing,然后卸载它。
之后,我尝试在caching卷上创build一个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
Ooops :(不知何故,非caching的原始文件被用来代替caching的文件。
好吧,让我们删除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删除caching卷:
# 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),但我不能确定这将始终如此,所以这仍然不是一个好的解决scheme。
然后我发现这种情况类似于使用多path设备,因此需要类似的解决scheme ,即/etc/lvm/lvm.conf中的lvmfilter:
filter = [ "r|/dev/local/big|" ]