我正在编写一个脚本来执行 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 gig 的逻辑卷。但是,当我尝试这个时:
>/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 兆字节。
有没有办法保证系统需要多少才能正确创建两个完全相同大小的磁盘?
在范围内分配您的逻辑卷。用于
vgdisplay
确定扩展区大小(从“PE 大小”字段得知)并指定适当数量的扩展区,当其加倍时不会超过卷组的“总 PE”。当像 2-GiB 这样的大小规范减少到多个范围时,这可以避免小的舍入误差。