我有一个大约 127GB 可用空间的卷组 (vg)。我正在尝试将逻辑卷扩展到 +50GB 但是我得到了
合适的可分配范围不足
这很奇怪,因为 VG 上有足够的空间来分配。您可以在下面找到有关我的 LV 设置的信息:
root@server:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-0 19G 4.3G 15G 23% /
udev 10M 0 10M 0% /dev
tmpfs 19G 341M 19G 2% /run
tmpfs 48G 0 48G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 48G 0 48G 0% /sys/fs/cgroup
/dev/mapper/data-lvm1 158G 135G 24G 86% /srv/mongodb/lvm1
/dev/mapper/data-lvm2 543G 509G 35G 94% /srv/mongodb/lvm2
root@server:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvm1 data -wi-ao---- 160.00g
lvm2 data -wi-ao---- 551.00g
root local -wi-ao---- 19.31g
swap local -wi-ao---- 11.18g
root@server:~# vgs
VG #PV #LV #SN Attr VSize VFree
data 2 2 0 wz--l- 838.24g 127.24g
local 1 2 0 wz--n- 136.70g 106.21g
root@server:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 local lvm2 a-- 136.70g 106.21g
/dev/sdb data lvm2 a-- 279.36g 119.36g
/dev/sdc data lvm2 a-- 558.88g 7.88g
root@server:~# lvextend -L +50G /dev/data/lvm2
Insufficient suitable allocatable extents for logical volume lvm2: 10783 more required
root@server:~# vgscan
Reading all physical volumes. This may take a while...
Found volume group "data" using metadata type lvm2
Found volume group "local" using metadata type lvm2
root@server:~# pvscan
PV /dev/sdb VG data lvm2 [279.36 GiB / 119.36 GiB free]
PV /dev/sdc VG data lvm2 [558.88 GiB / 7.88 GiB free]
PV /dev/sda1 VG local lvm2 [136.70 GiB / 106.21 GiB free]
Total: 3 [974.94 GiB] / in use: 3 [974.94 GiB] / in no VG: 0 [0 ]
root@server:~# lvscan
ACTIVE '/dev/data/lvm1' [160.00 GiB] inherit
ACTIVE '/dev/data/lvm2' [551.00 GiB] inherit
ACTIVE '/dev/local/root' [19.31 GiB] inherit
ACTIVE '/dev/local/swap' [11.18 GiB] inherit
数据 VG 中的 LV 使用“继承”策略。VG 的策略是紧贴的,它试图从同一个 PV 分配新的范围。详情请参阅
lvm(8)
。要覆盖,您可以
lvextend
使用附加--alloc normal
选项运行命令,或者更改默认运行vgchange --alloc normal data
。当我尝试扩展我的一个 LV 时,我收到了相同的错误消息。该政策已设置为“正常”。就我而言,问题在于条带化。我在两个 PV 之上构建了 VG,并且 LV 在这两个 PV 上进行了条带化。当我再添加一个 PV 时,我无法再扩展 LV,因为它没有两个可用的 PV 来维持条带化。
条带设置的可用选项:
lvextend -L+1G data -i1
)。这将创建另一个 #Str=1 段,在lvs --segments
输出中可见。请注意,根据数据所在的段访问数据时,可能会有一些性能差异。