在我的Intranet服务器上,我有一个100.00 GiB分区/ dev / sda5,用作lvm2的物理卷。
- 这是我的卷组vg01中唯一的物理卷。
- vg01当前包含一个逻辑卷lv01,使用完整的100.00 GiB-好吧,由于一些舍入,实际上是99.99 GiB(这就是问题开始的地方)。
- lv01包含一个使用整个空间的ext3文件系统。
我想将lv01减少到大约97 GiB,所以我可以用lv01创建lv02。3 GiB(我需要它来拍摄lvm快照)。
到目前为止,我做了什么:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
效果很好。但是现在我必须跑步
lvreduce --size ? /dev/mapper/vg01-lv01
而且我不确定,我必须指定哪个确切值。该lvreduce
手册页明确警告说,所产生的大小不能大于文件系统更小。我也不想使它超出必须的大小。但是现在我有不同的数字:
- 我
97G
在resize2fs中指定。 df -h
说是96G。df
说,这是100115936 1K块。- lvdisplay(当然)仍然报告逻辑卷的99.99 GiB。
我要指定lvreduce
什么?
编辑:
当前接受的答案提供了一个不错的解决方法。但是,为了将这些内容集成到实体脚本等中,我通常更喜欢使用精确的度量。还是已经有一个可靠的(!)脚本或工具可以一步完成整个调整大小的过程?
@larsks:好主意(因为resize2fs可以自动调整为分区大小,而lvreduce不能自动调整为fs大小)。如果没有人知道我的问题的确切答案,我认为这将是解决方案。
—
克里斯·勒彻
为什么不只是将相同的大小传递给lvreduce?除非您输入错字,否则lvm应该识别出它的大小相同,而不是再次调整大小。而且,如果您确实有错别字,至少可以避免破坏文件系统。lvreduce -r -L 97G / dev / mapper / vg01-lv01
—
比尔
resize2fs
将文件系统减小到90GiB左右,然后在lvreduce
(后面加上resize2fs
)的参数进行混搭,以了解最有效的方法。