如何停止缓存 LVM 分区?

如何停止缓存 LVM 分区?

我目前在 Ubuntu 安装上设置了 LVM 缓存,如中所述https://rwmj.wordpress.com/2014/05/22/using-lvms-new-cache-feature/。 (我确实必须安装一些生动/建议的软件包才能使其正常工作,但我成功了。)

我能够通过以下方式成功将我的逻辑卷之一转换为缓存卷:

# lvconvert --type cache --cachepool anson-TA75MH2/lv_cache anson-TA75MH2/root
  Logical volume anson-TA75MH2/root is now cached.

但是,执行此操作后,我无法调整缓存分区的大小。

当我尝试扩展缓存分区(在本例中名为root,因为它将成为我的文件系统的根)时,我收到一条错误消息:

# lvextend anson-TA75MH2/root -L +250G
  Unable to resize logical volumes of cache type.

如何重新关闭缓存,以便调整其大小?

以供参考:

sda 是我的主 1TB 硬盘,包含一个大的 LVM 分区和一个缩小的 ext4 分区,我计划将其移至 lvm 中。 sdb 是一款便宜的 32GB SSD,具有 500MB ext2 /boot 分区、一个大 lvm 分区和 8GB 交换空间。

# vgs
  VG            #PV #LV #SN Attr   VSize   VFree  
  anson-TA75MH2   2   3   0 wz--n- 803.46g 499.96g
# pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/sda1  anson-TA75MH2 lvm2 a--  782.47g 499.96g
  /dev/sdb2  anson-TA75MH2 lvm2 a--   21.00g      0 
# lvs
  LV       VG            Attr       LSize   Pool     Origin       Data%  Meta%  Move Log Cpy%Sync Convert
  home     anson-TA75MH2 -wi-ao---- 250.47g                                                              
  lv_cache anson-TA75MH2 Cwi---C---  20.96g                                                              
  root     anson-TA75MH2 Cwi-aoC---  32.00g lv_cache [root_corig]

或者,如果有一种方法可以使用相同的缓存来缓存多个 LV,那将是首选(尽管我仍然想知道如何将其关闭)。但是,当我尝试时,它拒绝:

# lvconvert --type cache --cachepool anson-TA75MH2/lv_cache anson-TA75MH2/home
  lv_cache is already in use by root

答案1

lvconvert --uncache anson-TA75MH2/root

似乎比

lvremove anson-TA75MH2/lv_cache

但正如手册页所说,这些是主要选项。

答案2

lvmcache(7) 联机帮助页描述了如何在不删除其原始卷的情况下删除缓存池:

删除缓存池 LV 而不删除其链接的原始 LV

必要时,这会将数据从缓存池写回原始 LV,然后删除缓存池 LV,留下未缓存的原始 LV。

lvremove VG/CachePoolLV

例子:

# lvs vg
  LV     VG   Attr       LSize   Pool   Origin
  cache0 vg   Cwi---C---  10.00g
  lvol0  vg   Cwi-a-C--- 100.00g cache0 [lvol0_corig]

# lvremove vg/cache0

# lvs vg
  LV    VG   Attr       LSize   Pool Origin
  lvol0 vg   -wi-a----- 100.00g

所以就我而言,我会这样做lvremove anson-TA75MH2/lv_cache。这确实需要从头开始重新创建缓存池,但这没关系,只是有点麻烦。 (如果没有人发布更好的内容,我计划在接下来的几分钟内完成此操作。)

相关内容