LVMcachingLV上的PV失败

我创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|" ]