调整 lvm2 逻辑卷和文件系统的大小:确切的大小?

调整 lvm2 逻辑卷和文件系统的大小:确切的大小?

在我的内联网服务器上,我有一个 100.00 GiB 的分区 /dev/sda5,我将其用作 lvm2 的物理卷。

  • 这是我的卷组 vg01 中唯一的物理卷。
  • vg01 当前包含一个逻辑卷 lv01,使用了完整的 100.00 GiB - 嗯,由于一些四舍五入,实际上是 99.99 GiB(问题就出在这里)。
  • lv01包含一个ext3文件系统,使用整个空间。

我想将 lv01 减少到大约 97 GiB,这样我就可以创建大约 3 GiB 的 lv02(我需要它来拍摄 lvm 快照)。

我目前所做的:

e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G

效果很好。但现在我必须跑了

lvreduce --size ? /dev/mapper/vg01-lv01

我不确定精确的我必须指定值。lvreduce手册页明确警告,结果大小不得小于文件系统。我也不想让它大于它必须的大小。但现在我有不同的数字:

  • 97G在 resize2fs 中指定了。
  • df -h说是 96 G。
  • df说的是,它是 100115936 个 1K 块。
  • lvdisplay(当然)仍然报告逻辑卷的 99.99 GiB。

我必须指定什么lvreduce

编辑:

目前接受的答案提供了一个很好的解决方法。但是,为了将这些东西集成到可靠的脚本等中,我通常更愿意使用精确的测量。或者也许已经有一个可靠的(!)脚本或工具可以一步完成整个调整大小的过程?

答案1

根据我的经验,LVM 和 resize2fs 对于“97G”的含义有相同的想法,因此在两个地方指定相同的大小应该没问题。但是,我很偏执,并且尽可能地使用问题评论中 larsks 建议的策略,将大小调整为比我想要的要小 1 GB,将 lvresize 调整为我想要的大小,然后重新运行 resize2fs(不指定大小)以使其重新扩展以填满整个 LV。

答案2

我认为最好使用 lvreduce/lvresize 的 --resizefs 选项来完成此操作:

   -r, --resizefs
          Resize underlying filesystem together with the logical volume using fsadm(8).

诚然,这对你没有帮助现在但将来可能会如此。

相关内容