LVM 删除驱动器 - 表示范围不够

LVM 删除驱动器 - 表示范围不够

我有以下配置:

     PV         VG       Fmt  Attr PSize    PFree Used
  /dev/sda3  fedora00 lvm2 a--   222.37g    0   222.37g
  /dev/sdb1  vg0      lvm2 a--    <5.46t    0    <5.46t
  /dev/sdc1  vg0      lvm2 a--    <3.64t 3.29g   <3.64t
  /dev/sdd1  vg0      lvm2 a--  <465.76g    0  <465.76g
  /dev/sde1  vg0      lvm2 a--  <465.76g    0  <465.76g
  /dev/sdf1  vg0      lvm2 a--  <465.76g    0  <465.76g

问题是我想删除/dev/sdf1。当我执行 pvmove 时,它​​说没有足够的范围。有些事情并没有加起来,因为组中有很多“自由”空间 -

/dev/mapper/vg0-personal   10793808 3037966   7293737  30% /personal

谷歌告诉我方法是 pvmove 然后 vgreduce 但我对这些还不太了解。我如何告诉它移动该驱动器上的任何数据并停用它?

谢谢

答案1

当我执行 pvmove 时,它​​说没有足够的范围。

好吧,没有,文件系统中的可用空间不算在内。

/dev/mapper/vg0-personal   10793808 3037966   7293737  30% /personal

这是一个10793808大的文件系统块,3037966已使用的块、7293737空闲的块、30%已使用的块。因此存在可用空间,但那是文件系统可用空间,而不是 LVM 可用空间。

文件系统的块仍然10793808很大,这将是 LV 有多大/dev/mapper/vg0-personal以及 LV 在 LVM 中至少占用多少空间(除非您使用精简配置等特殊功能)。

您似乎还有几个这样的 LV,因此您的 VG 几乎已满:

  PV         VG       Fmt  Attr PSize    PFree Used
  /dev/sdc1  vg0      lvm2 a--    <3.64t 3.29g   <3.64t
  /dev/sdf1  vg0      lvm2 a--  <465.76g    0  <465.76g

您的/dev/sdf1容量约为 465G (PSize),唯一具有非 0 可用空间的 PV/dev/sdc1仅约为 3G (PFree)。因此,该 VG 中几乎没有可用空间。为了删除/dev/sdf1,您必须以某种方式释放另外约 462G 的空间。

如果文件系统中有可用空间,那就太好了,但 LVM 并不关心这一点。 LVM 关心它管理的逻辑卷/块设备的大小,而不是您决定在这些块设备上存储的任何内容。

因此,为了继续,您必须缩小文件系统,或者完全删除文件系统,或者切换到精简配置(在很多方面都有风险),或者决定保持原样而不删除驱动器。

无论如何,请确保对数据进行良好的备份。

答案2

要扩展frostschutz答案,您在文件系统而不是卷组中有可用空间,要将其移动,您需要执行类似以下操作(我在调整大小时留下了很大的余量,可能不是严格必要的,但最好犯错误由于舍入误差,保留可用空间的一侧比将卷剪得太短,这些步骤还假设您使用的是 ext2/3/4 系列文件系统

umount /personal
resize2fs /dev/mapper/vg0-personal 400G
lvresize /dev/mapper/vg0-personal -l 410g

(lvresize 上的小写 g 很重要,如果您使用大写 G,则 lvresize 将采用十进制千兆字节)

不幸的是,我认为你不能在没有停机的情况下做到这一点,ext 文件系统支持在线增长,但我不认为它们支持在线收缩。

然后,您应该拥有移除驱动器所需的可用空间。

相关内容