第 11 章 控制 LVM 分配


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

11.1. 从指定设备分配扩展

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

流程

  1. 创建卷组(VG):

    # vgcreate <vg_name> <PV> ...
    Copy to Clipboard

    其中:

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

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

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

      其中:

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

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

        • 如果您指定一个 PV,则会从其中为那个 LV 分配扩展。

          注意

          如果 PV 对于整个 LV 没有足够的空闲扩展,则 lvcreate 失败。

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

          注意

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

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

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

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

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

          在这个示例中,lv3 扩展将从 VG 中的一个 PV 分配,或者 VG 中所有 PV 的任意组合:

          # lvcreate -n lv3 -L1G vg
          Copy to Clipboard
    2. 分配扩展以创建 raid 卷:

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

      其中:

      • <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 中分配,以此类推。

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

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

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

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat