LVM 卷的大小是如何计算的?

LVM 卷的大小是如何计算的?

今天我正在配置 kickstart,当我尝试设置 LVM 大小时,Anacond 抗议说没有可用空间来创建具有 VG 大小的 LVM。好吧,我可以发现 --grow 选项可以在没有提示的情况下继续安装来解决这个问题,但我需要知道如何计算正确的 VG 大小来对我的 LVM 进行分组?我只是可以看到 AIX 系统中的相关内容,但我认为这与我的问题无关,而且这不是一个错误。

错误: 存储配置失败:('新 lv 太大,无法容纳可用空间','vg00')

错误的配置:

part /boot --fstype="xfs" --ondisk=vda --size=500
part pv.01 --fstype="lvmpv" --ondisk=vda --size=9500 --grow
volgroup vg00 --pesize=4096 pv.01
logvol /  --fstype="xfs" --size=9000 --name=root --vgname=vg00
logvol swap --fstype="swap" --size=250 --name=swap --vgname=vg00
logvol /home  --fstype="xfs" --size=250 --name=home --vgname=vg00

正确的配置:

part /boot --fstype="xfs" --ondisk=vda --size=500
part pv.100 --fstype="lvmpv" --ondisk=vda --size=9739
volgroup vg00 --pesize=4096 pv.100
logvol swap  --fstype="swap" --size=250 --name=swap --vgname=vg00
logvol /home  --fstype="xfs" --size=250 --name=home --vgname=vg00
logvol /  --fstype="xfs" --size=9000 --name=root --vgname=vg00

当我在分区中使用 --grow 选项时,kickstart 使用上面的配置创建一个 anaconda-ks.cfg ,我只是无法理解 size=14079 是如何计算的。原始的-ks.cfg 有选项 --grow ;)

有人可以提供有关 LVM 数学的想法吗?

谢谢

答案1

我有一个类似的问题(如何计算 Linux 物理卷和卷组元数据开销?)而答案却出奇地简单。

我尝试在任何地方不使用 --grow 标志的情况下进行手动分区,Anaconda 错误地报告我缺少超过 700 MiB。

使用 pvdisplay,我注意到分区上有 4 MiB 的不可用空间,因此我只是将其中一个逻辑卷的大小减小了 4 MiB。之后就安装成功了。

答案2

part pv.01 --fstype="lvmpv" --ondisk=vda --size=9500 --grow
# Size = 9500
volgroup vg00 --pesize=4096 pv.01
# Using 4096
logvol /  --fstype="xfs" --size=9000 --name=root --vgname=vg00

从技术上讲,您定义了 9500,然后保留了 4096,然后预期大小为 9000。

如果您将 9000 减少到 (9500-4096),它就会起作用,或者如果您指定 (9500+4096) 而不是 9500,它就会起作用。

当你让 anaconda 计算出来时,它得出的数字略大于(9500+4096),可能是因为一些舍入(保守方法)或者可能是由于增长选项。

相关内容