11.2. LVM 分配策略
当 LVM 操作必须为一个或多个逻辑卷(LV)分配物理扩展时,分配过程如下:
- 生成卷组中的未分配物理扩展的完整集以供考虑。如果您在命令行末尾提供了任意物理扩展的范围,则只考虑指定物理卷(PV)上这些范围内未分配的物理扩展。
-
依次尝试每个分配策略,从最严格的策略(
contiguous
)开始,以使用--alloc
选项指定的分配策略结束,或者设置为特定 LV 或卷组(VG)的默认分配策略。对于每个策略,从需要填充的空 LV 空间的最低编号的逻辑扩展开始工作,根据分配策略施加的限制,分配尽可能多的空间。如果需要更多空间,LVM 会进入下一个策略。
分配策略的限制如下:
contiguous
策略要求任何逻辑扩展的物理位置紧挨着在前一个逻辑扩展的物理位置,但 LV 的第一个逻辑扩展除外。当 LV 为条带或镜像时,
contiguous
分配限制独立应用于每个需要空间的条带或 raid 镜像。-
cling
分配策略要求将用于任何逻辑扩展的 PV 添加到现有 LV 中,该 LV 之前已被 LV 中至少一个逻辑扩展使用。 -
normal
分配策略不会选择共享同一 PV 的物理扩展,因为逻辑卷已在并行 LV 中的相同偏移处分配给了一个并行 LV(即,不同的条带或 raid 镜像)。 -
如果有足够的空闲扩展满足分配请求,但
normal
分配策略不使用它们,则anywhere
分配策略将使用它们,即使将两个条带放在同一 PV 上会降低性能。
您可以使用 vgchange
命令更改分配策略。
注意
未来的更新可能会根据定义的分配策略在布局行为中引入代码更改。例如:如果您在命令行中提供两个空物理卷,它们有相同数量的可用物理扩展可用于分配,LVM 当前会以它们列出的顺序处理它们,但不保证在将来的版本中这个行为不会有变化。如果您需要特定 LV 的具体布局,请通过 lvcreate
和 lvconvert
步骤序列构建它,以便应用到每个步骤的分配策略不会让 LVM 自行决定布局。