LVM 上没有剩余可用区

LVM 上没有剩余可用区

因此,前段时间我决定使用 LVM 对我的 Ubuntu (16.04 LTS) 安装进行全新设置。我有一个卷组 (ubuntu-vg),其中包含两个逻辑卷,交换.root 由三个分区组成,分布在三个物理卷上。现在我想删除两个驱动器(每个 477 GB),但不幸的是,LVM 似乎无法将存储在它们上的物理数据移动到其他任何地方。但是 df 告诉我,它们上面还有剩余的物理空间:

# df -h
 Filesystem                   Size  Used Avail Use% Mounted on
 udev                         9,8G     0  9,8G   0% /dev
 tmpfs                        2,0G   26M  2,0G   2% /run
 /dev/mapper/ubuntu--vg-root  1,2T  102G 1003G  10% /

另一方面,pvs 告诉我,任何驱动器上都没有剩余空间:

# pvs -o+pv_used
  PV         VG        Fmt  Attr PSize   PFree Used   
  /dev/sda5  ubuntu-vg lvm2 a--  238,00g    0  238,00g
  /dev/sdc1  ubuntu-vg lvm2 a--  476,94g    0  476,94g
  /dev/sdd1  ubuntu-vg lvm2 a--  476,94g    0  476,94g

在我看来,这很奇怪。我让 Ubuntu 安装为 LVM 进行设置,后来将 /dev/sdc 和 /dev/sdd 添加到逻辑卷。但现在我似乎无法安全地删除它们。

即使使用 LVM 的 GUI 版本(system-config-lvm)也无助于解决问题,它仅告诉我没有足够的可用区域来将数据移动到其他地方。

# pvmove /dev/sdc1 /dev/sdd1
  No free extents on physical volume "/dev/sdd1".
  No specified PVs have space available.

有人遇到过这种情况吗?提前谢谢您。

答案1

是的,我现在就有这种经历。我认为这与 lvm 池有关。我认为池需要缩小。显然这不是一个常见问题。我正在使用 Xen。

哦,我应该在这里给出答案。嘘。学者们说没有办法缩小……任何东西。所以,我们不能用任何东西来缩小任何东西。所以要解决这个“任何东西”,我们必须用电子电击它,给它一个负电荷。

基本上,创建一个非常大的 VG 并删除它以腾出空间。我的问题特别出在我身上,因为我在一个 VG 中安装了太多软件,导致“可用空间”用尽。

现在您有了这个大的空 VG,您会注意到它没有占用您指定的空间,因此您必须创建一个巨大的仿文件。

有些人建议使用名为 fallocate 的命令。他们说这是速度和准确性的最佳选择。与其他伪文件创建器不同,Fallocate 实际上会分配空间。

但 fallocate 对我来说不起作用。

下一个选项是 dd if=/dev/rand of=/notporn.img bs=4k iflag=fullblock,count_bytes count=2000G

如果您使用 if=/dev/zero,那么机器就有可能将 2 TB 的文件压缩成 2 MB……或者更少。

相关内容