因此,前段时间我决定使用 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……或者更少。