我正在编写一个脚本来执行 lvm 操作,并且有以下场景:
>blockdev --getsize64 /dev/sdb
2147483648
2147483648 / 1024 / 1024 = 2048M
>pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg00 lvm2 a--u 2.00g 2.00g
>vgs
VG #PV #LV #SN Attr VSize VFree
vg00 1 1 0 wz--n- 2.00g 2.00g
现在我想添加 2 个逻辑卷,它们都是 1 GB。但是当我尝试这个时:
>/sbin/lvcreate -L 1024M -n lv00 vg00
Logical volume "lv00" created.
>/sbin/lvcreate -L 1024M -n lv01 vg00
Volume group "vg00" has insufficient free space (255 extents): 256 required.
我被咬了,因为我没有足够的空间。查看 blockdev 行,原始磁盘为 2 Gigs。
我注意到,如果我在创建第一个逻辑卷后执行 pvs 或 vgs,则可用空间为 1020.00m。我认为是因为服务器出于管理原因需要使用部分磁盘,即丢失的 5 MB。
有没有办法保证系统需要多少容量,以便我可以正确创建两个完全相同大小的磁盘?
答案1
分配您的逻辑卷范围。用于vgdisplay
确定盘区大小(从“PE 大小”字段得知)并指定适当的盘区数量,该数量在加倍时不会超过卷组的“总 PE”。当像 2-GiB 这样的大小规格减少到一定程度时,这可以避免小的舍入误差。