第 11 章 控制 LVM 分配


默认情况下,卷组使用 normal 分配策略。这会根据通用规则(如不在同一物理卷上放置并行条带)分配物理扩展。您可以使用 vgcreate 命令的 --alloc 参数指定不同的分配策略(contiguousanywherecling)。通常,只在特殊情况下需要指定非通常或非标准扩展分配时,才需要不同于 normal 的分配策略。

11.1. 从指定的设备分配扩展

您可以在 lvcreatelvconvert 命令的命令行末尾使用 device 参数来限制特定设备的分配。您可以为每个设备指定实际的扩展范围,以提供更多控制。命令只使用指定的物理卷(PV)作为参数,来为新逻辑卷(LV)分配扩展。它使用每个 PV 的可用扩展,直到它们耗尽,然后使用列出的下一个 PV 中的扩展。如果所有列出的 PV 上没有足够的空间用于请求的 LV 大小,则命令失败。请注意,命令只从指定的 PV 进行分配。RAID LV 对单独的 raid 镜像或单独的条带使用顺序 PV 。如果对于整个 raid 镜像来说 PV 不够大,则生成的设备的使用是不能完全预测的。

流程

  1. 创建卷组(VG):

    # vgcreate <vg_name> <PV> ...
    Copy to Clipboard Toggle word wrap

    其中:

    • <vg_name> 是 VG 的名称。
    • <PV> 是 PV。
  2. 您可以分配 PV 来创建不同的卷类型,如 linear 或 raid :

    1. 分配扩展以创建线性卷:

      # lvcreate -n <lv_name> -L <lv_size> <vg_name> [ <PV> ... ]
      Copy to Clipboard Toggle word wrap

      其中:

      • <lv_name> 是 LV 的名称。
      • <lv_size> 是 LV 的大小。默认单位是 MB。
      • <vg_name> 是 VG 的名称。
      • [ <PV …​> ] 是 PV。

        您可以在命令行上指定其中一个 PV、所有 PV 或 none :

        • 如果您指定一个 PV,则会从它分配 LV 的扩展。

          注意

          如果对整个 LV 来说 PV 没有足够的可用扩展,则 lvcreate 失败。

        • 如果您指定了两个 PV,则 LV 的扩展将从其中一个 PV 或两者的组合中分配。
        • 如果没有指定任何 PV,则扩展将从 VG 中的一个 PV 或者 VG 中所有 PV 的组合中分配。

          注意

          在这些情况下,LVM 可能没有使用所有命名的 PV 或可用的 PV。如果第一个 PV 有足够的空闲扩展用于整个 LV,则可能不使用其他 PV。但是,如果第一个 PV 没有设置空闲扩展的分配大小,则 LV 可能会从第一个 PV 中分配一部分,并从第二个 PV 中分配一部分。

          例 11.1. 从一个 PV 分配扩展

          在这个示例中,lv1 扩展将从 sda 中分配。

          # lvcreate -n lv1 -L1G vg /dev/sda
          Copy to Clipboard Toggle word wrap

          例 11.2. 从两个 PV 中分配扩展

          在这个示例中,lv2 扩展将从 sdasdb 或两者的组合中分配。

          # lvcreate -n lv2 L1G vg /dev/sda /dev/sdb
          Copy to Clipboard Toggle word wrap

          例 11.3. 在不指定 PV 的情况下分配扩展

          在本例中,lv3 扩展将从 VG 中的一个 PV 或 VG 中所有 PV 的组合中分配。

          # lvcreate -n lv3 -L1G vg
          Copy to Clipboard Toggle word wrap

          或者

    2. 分配扩展以创建 raid 卷:

      # lvcreate --type <segment_type> -m <mirror_images> -n <lv_name> -L <lv_size> <vg_name> [ <PV> ... ]
      Copy to Clipboard Toggle word wrap

      其中:

      • <segment_type> 是指定的片段类型(如 raid5mirrorsnapshot)。
      • <mirror_images> 创建一个 raid1 或具有指定镜像数的镜像 LV。例如,-m 1 会产生具有两个镜像的 raid1 LV。
      • <lv_name> 是 LV 的名称。
      • <lv_size> 是 LV 的大小。默认单位是 MB。
      • <vg_name> 是 VG 的名称。
      • <[PV …​]> 是 PV。

        第一个 raid 镜像将从第一个 PV 中分配,第二个 raid 镜像将从第二个 PV 中分配,以此类推。

        例 11.4. 从两个 PV 中分配 raid 镜像

        在这个示例中,第一个镜像 lv4 将从 sda 中分配,第二个镜像将从 sdb 中分配。

        # lvcreate --type raid1 -m 1 -n lv4 -L1G vg /dev/sda /dev/sdb
        Copy to Clipboard Toggle word wrap

        例 11.5. 从三个 PV 中分配 raid 镜像

        在本例中,第一个 raid 镜像 lv5 将从 sda 中分配,第二个镜像将从 sdb 中分配,第三个镜像将从 sdc 中分配。

        # lvcreate --type raid1 -m 2 -n lv5 -L1G vg /dev/sda /dev/sdb /dev/sdc
        Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat