2.3. 基本卷使用和配置

以下流程描述了如何执行基本的最终用户卷管理。这些流程不需要管理特权。

重要

您必须在使用块存储服务(cinder)和光纤通道(FC)后端的任何部署中,在所有 Controller 节点和 Compute 节点上安装主机总线适配器(HBA)。

2.3.1. 创建一个卷

重要

您可以为项目创建的默认最大卷数量为 10。

流程

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. Create Volume,并编辑以下字段:

    字段描述

    卷名称

    卷的名称。

    描述

    可选,卷的简短描述。

    类型

    可选卷类型(请参阅 第 2.2.2 节 “使用卷类型的组卷设置”)。

    如果您有多个块存储后端,则可以使用它来选择特定的后端。请参阅 第 2.3.2 节 “为卷创建指定后端”

    大小(GB)

    卷大小(以 GB 为单位)。如果要从未加密的镜像创建加密卷,您必须确保卷大小至少大于镜像大小,以便加密数据不会截断卷数据。

    可用性区域

    可用性区域(逻辑服务器组)以及主机聚合是隔离 OpenStack 中资源的常用方法。可用区在安装过程中定义。有关可用区和主机聚合的更多信息,请参阅创建和管理主机聚合

  3. 指定 卷源

    描述

    没有源的空卷

    卷为空,不包含文件系统或分区表。

    Snapshot

    使用现有快照作为卷源。如果选择了这个选项,则会打开一个新的 Use snapshot 作为 源列表 ; 您可以从列表中选择一个快照。如果要从加密卷快照创建新卷,您必须确保新卷至少大于旧卷。有关卷快照的详情,请参考 第 2.3.10 节 “创建、使用或删除卷快照”

    Image

    使用现有镜像作为卷源。如果选择了这个选项,则会打开一个新的 Use snapshot 作为 源列表 ; 您可以从列表中选择一个镜像。

    使用现有卷作为卷源。如果选择了这个选项,则会打开一个新的 Use snapshot 作为 源列表;您可以从列表中选择一个卷。

  4. 创建卷。创建卷后,其名称将显示在 Volumes 表中。

您还可以稍后更改卷类型。更多信息请参阅 第 2.3.16 节 “卷重新处理”

2.3.2. 为卷创建指定后端

每当配置了多个 Block Storage (cinder)后端时,您还必须为每个后端创建一个卷类型。然后,您可以使用类型来指定用于创建卷的后端。有关卷类型的详情,请参考 第 2.2.2 节 “使用卷类型的组卷设置”

要在创建卷时指定后端,请从 Type 列表中选择其对应的卷类型(请参阅 第 2.3.1 节 “创建一个卷”)。

如果您没有在卷创建过程中指定后端,块存储服务会自动为您选择一个后端。默认情况下,该服务使用最多可用空间选择后端。您还可以配置块存储服务,以便在所有可用后端中随机选择。更多信息请参阅 第 2.2.7 节 “配置卷如何分配为多个后端”

2.3.3. 编辑卷名称或描述

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 选择卷的 编辑卷 按钮。
  3. 根据需要编辑卷名称或描述。
  4. Edit Volume 保存您的更改。
注意

要创建加密卷,您必须首先为卷加密配置了卷类型。另外,您必须配置 Compute 和 Block Storage 服务,以使用相同的静态密钥。有关如何为卷加密设置要求的详情,请参考 第 2.2.6 节 “配置卷加密”

2.3.4. 重新调整(扩展)卷的大小

注意

支持调整使用中的卷大小,但取决于驱动程序。RBD 支持。您不能扩展使用多重附加卷。有关支持这个功能的更多信息,请联系红帽支持。

  1. 列出卷以检索您要扩展的卷 ID:

    $ cinder list
  2. 要重新定义卷的大小,请运行以下命令来指定正确的 API 微版本,然后将卷 ID 和新大小(大于旧大小的值)作为参数传递:

    $ OS_VOLUME_API_VERSION=<API microversion>
    $ cinder extend <volume ID> <size>

    将 <API_microversion>, <volume_ID>, 和 <size> 替换为适当的值,例如:

    $ OS_VOLUME_API_VERSION=3.42
    $ cinder extend 573e024d-5235-49ce-8332-be1576d323f8 10

2.3.5. 删除卷

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. Volumes 表中,选择要删除的卷。
  3. 删除卷
注意

如果卷有现有的快照,则无法删除它。有关如何删除快照的步骤,请参考 第 2.3.10 节 “创建、使用或删除卷快照”

2.3.6. 将卷附加到实例

实例可以将卷用于持久存储。卷一次只能附加到一个实例。如需更多信息,请参阅 创建和管理实例 指南中的 将卷附加到实例

2.3.6.1. 将卷附加到实例

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 选择 Edit Attachments 操作。如果卷没有附加到实例,则可以看到 Attach To Instance 下拉列表。
  3. Attach To Instance 列表中,选择要将卷附加到的实例。
  4. 单击 Attach Volume

2.3.6.2. 从实例分离卷

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 选择卷的 Manage Attachments 操作。如果卷附加到实例,实例的名称将显示在 Attachments 表中。
  3. 单击此中的 Detach Volume,然后单击下一个对话框屏幕。

2.3.7. 将卷附加到多个实例

卷多重附加可让多个实例同时对块存储卷进行读/写访问。支持 Ceph RBD 驱动程序。

警告

您必须使用多附件或集群感知的文件系统来管理来自多个实例的写入操作。如果不这样做,会导致数据崩溃。

多附加卷的限制

  • Block Storage (cinder)后端必须支持多附加卷。有关支持的后端的详情,请联系红帽支持。
  • 您的 Block Storage (cinder)驱动程序必须支持多附加卷。联系红帽支持,以验证您的厂商插件是否支持 multi-attach。有关厂商插件认证的更多信息,请参阅以下位置:

  • 不支持只读多附件卷。
  • 多附加卷的实时迁移不可用。
  • 不支持对多重附加卷的加密。
  • Bare Metal Provisioning 服务(ironic) virt 驱动程序不支持 multi-attach 卷。只有在 libvirt virt 驱动程序才支持 multi-attach 卷。
  • 您不能将附加的卷从 multi-attach 类型重新输入到非附加类型,您无法将非 multi-attach 类型重新输入到 multi-attach 类型。
  • 在附加的卷迁移过程中,您无法使用多个读写附加作为源或目标卷的多附件。
  • 您不能将多附件卷附加到 shelved 卸载的实例。

2.3.7.1. 创建多附加卷类型

要将卷附加到多个实例,请在卷额外规格中将 multiattach 标志设置为 & lt;is> True。当您创建 multi-attach 卷类型时,卷将继承 标记并成为多附件卷。

注意

默认情况下,创建新卷类型是一个仅限管理员的操作。

流程

  1. 运行以下命令来创建 multi-attach 卷类型:

    $ cinder type-create multiattach
    $ cinder type-key multiattach set multiattach="<is> True"
    注意

    此流程在支持 multiattach 的任何后端中创建卷。因此,如果支持 multiattach 的两个后端,调度程序会根据创建时的可用空间决定要使用的后端。

  2. 运行以下命令来指定后端:

    $ cinder type-key multiattach set volume_backend_name=<backend_name>

2.3.7.2. 卷重新处理

您可以重新键入卷,使其能够多重附加,或者重新输入支持多重附加的卷,使其能够附加到多个实例。但是,您只能在不使用时重新键入卷,其状态为 可用

当您附加一个多附件卷时,一些虚拟机监控程序需要特殊考虑,比如当您禁用缓存时。目前,无法安全地更新附加的卷,同时保留整个卷。如果您试图重新输入附加到多个实例的卷,则重新处理会失败。

2.3.7.3. 创建一个多附件卷

创建 multi-attach 卷类型后,创建一个 multi-attach 卷。

流程

  1. 运行以下命令来创建 multi-attach 卷:

    $ cinder create <volume_size> --name <volume_name> --volume-type multiattach
  2. 运行以下命令,以验证卷是否能够多重附加。如果卷可以 multi-attach,则 multiattach 字段等于 True

    $ cinder show <vol_id> | grep multiattach
    
    | multiattach | True |

现在,您可以将卷附加到多个实例。有关如何将卷附加到实例的详情,请参考 将卷附加到实例

2.3.7.4. 支持的后端

块存储后端必须支持 multi-attach。有关支持的后端的详情,请联系红帽支持。

2.3.8. 只读卷

卷可以被标记为只读,以防止其数据被意外覆盖或删除。要做到这一点,使用以下命令将卷设置为只读:

# cinder readonly-mode-update <VOLUME-ID> true

要将只读卷设置为读写,请运行:

# cinder readonly-mode-update <VOLUME-ID> false

2.3.9. 更改卷所有者

要更改卷的所有者,您必须执行卷转让。卷转让由卷所有者启动,在新所有者接受转让后,所有权的更改已完成。

2.3.9.1. 从命令行转让卷

  1. 以卷的当前所有者身份登录。
  2. 列出可用的卷:

    # cinder list
  3. 启动卷转让:

    # cinder transfer-create VOLUME

    其中 VOLUME 是您要传输的卷的名称或 ID。例如,

      +------------+--------------------------------------+
      |  Property  |                Value                 |
      +------------+--------------------------------------+
      |  auth_key  |           f03bf51ce7ead189           |
      | created_at |      2014-12-08T03:46:31.884066      |
      |     id     | 3f5dc551-c675-4205-a13a-d30f88527490 |
      |    name    |                 None                 |
      | volume_id  | bcf7d015-4843-464c-880d-7376851ca728 |
      +------------+--------------------------------------+

    cinder transfer-create 命令清除卷的所有权,并为转让创建一个 idauth_key。这些值可以被指定为,供另一个用户用来接受转让,并成为卷的新所有者。

  4. 新用户现在可以声明卷的所有权。要做到这一点,用户应首先从命令行登录并运行:

    # cinder transfer-accept TRANSFERID TRANSFERKEY

    其中 TRANSFERIDTRANSFERKEYcinder transfer-create 命令返回的 idauth_key 值。例如,

    # cinder transfer-accept 3f5dc551-c675-4205-a13a-d30f88527490 f03bf51ce7ead189
注意

您可以使用以下方法查看所有可用卷传输:

# cinder transfer-list

2.3.9.2. 使用仪表板转让卷

从仪表板创建卷转让

  1. 在仪表板中作为卷所有者,选择 Projects > Volumes
  2. 在要转让的卷的 Actions 列中,选择 Create Transfer
  3. Create Transfer 对话框中,输入转让的名称,再单击 Create Volume Transfer

    卷转让已创建,在 Volume Transfer 屏幕中,您可以捕获发送到接收者项目的 转让 ID 和授权密钥

    Download transfer credentials 按钮下载一个 .txt 文件,它包括了 transfer name, transfer ID, 和 authorization key

    注意

    授权密钥仅在 Volume Transfer 屏幕中提供。如果丢失了授权密钥,您必须取消转让并创建另一个传输来生成新的授权密钥。

  4. 关闭 Volume Transfer 屏幕,以返回到卷列表。

    卷状态会变为 awaiting-transfer,直到接收者项目接受转让为止

从仪表板接受卷转让

  1. 在仪表板中作为接收者项目所有者,选择 Projects > Volumes
  2. 单击 Accept Transfer
  3. Accept Volume Transfer 对话框中,输入您从卷所有者接收的 转让 ID 和授权密钥,然后单击 Accept Volume Transfer

    卷现在出现在活动项目的卷列表中。

2.3.10. 创建、使用或删除卷快照

您可以通过创建卷快照来保留卷在特定时间点的状态。然后,您可以使用快照克隆新卷。

注意

卷备份与快照不同。备份保留卷中包含的数据,而快照会在特定时间点保留卷的状态。如果卷有现有的快照,则无法删除卷。卷备份可防止数据丢失,而快照则有助于克隆。

因此,快照后端通常与卷后端在一起,以便在克隆过程中最小化延迟。相反,备份存储库通常位于不同的位置,例如在典型的企业部署中在不同节点、物理存储甚至地理位置。这是为了防止备份存储库不受卷后端可能出现的任何损坏的影响。

有关卷备份的更多信息,请参阅 块存储备份指南

创建卷快照:

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 选择目标卷的 Create Snapshot 操作。
  3. 快照 提供快照名称,再单击 创建卷快照卷快照 选项卡显示所有快照。

当新卷出现在 Volume Snapshots 表中时,您可以从快照克隆新卷。选择快照的 Create Volume 操作。有关卷创建的更多信息,请参阅 第 2.3.1 节 “创建一个卷”

重要

如果要从加密卷快照创建新卷,您必须确保新卷至少大于旧卷。

要删除快照,请选择其 Delete Volume Snapshot 操作。

如果您的 OpenStack 部署使用 Red Hat Ceph 后端,请参阅 第 2.3.10.1 节 “Red Hat Ceph Storage 后端中的保护和未保护的快照” 以了解有关快照安全和故障排除的更多信息。

注意

对于从快照创建的块存储服务(cinder)的 RADOS 块设备(RBD)卷,您可以使用 CinderRbdFlattenVolumeFromSnapshot heat 参数扁平化和删除对快照的依赖项。当您将 CinderRbdFlattenVolumeFromSnapshot 设置为 true 时,块存储服务扁平化 RBD 卷,并删除对快照的依赖项,同时扁平化所有未来的快照。默认值为 false,这也是 cinder RBD 驱动程序的默认值。

请注意,扁平化快照会删除与父级共享任何潜在的块,并在后端上产生更大的快照大小,并增加快照创建时间。

2.3.10.1. Red Hat Ceph Storage 后端中的保护和未保护的快照

在将 Red Hat Ceph Storage 用作 OpenStack 部署的后端时,您可以在后端中将快照设置为 protected。尝试通过 OpenStack 删除受保护的快照(如通过控制面板或 cinder snapshot-delete 命令)将失败。

发生这种情况时,首先在 Red Hat Ceph 后端将快照设置为 unprotected。之后,您应能够正常通过 OpenStack 删除快照。

有关更多信息,请参阅 Red Hat Ceph Storage 块设备指南中的以下链接

2.3.11. 使用快照恢复到卷的最后一个状态

您可以恢复卷的最新快照。这意味着,您可以对卷数据进行原位升级到其最新的快照。

警告
支持恢复卷的最新快照,但取决于驱动程序。这个功能的正确实现是驱动程序辅助的。有关支持这个功能的更多信息,请联系您的驱动程序厂商。

限制

  • 在多附加卷中使用恢复到快照功能可能会有限制。在使用此功能前,检查是否应用了这些限制。
  • 在进行快照后,您无法恢复调整(扩展)的卷。
  • 您不能在附加或正在使用的卷中使用 restore-to-snapshot 功能。

前提条件

  • Block Storage (cinder) API 微版本 3.40 或更高版本。
  • 您必须至少为卷创建了一个快照。

流程

  1. stack 用户身份登录 undercloud。
  2. 获取 overcloudrc 文件:

    [stack@undercloud ~] $ source overcloudrc
  3. 分离卷:

    $ nova volume-detach <instance_id> <vol_id>

    将 <instance_id> 和 <vol_id> 替换为您要恢复的实例和卷的 ID。

  4. 找到您要恢复的快照的 ID 或名称。您只能恢复最新的快照。

    $ cinder snapshot-list
  5. 恢复快照:

    $ cinder --os-volume-api-version=3.40 revert-to-snapshot  <snapshot_id or snapshot_name>

    将 <snapshot_id 或 snapshot_name> 替换为 ID 或快照的名称。

  6. 可选: 您可以使用 cinder snapshot-list 命令检查您要恢复的卷是否处于恢复状态。

    $  cinder snapshot-list
  7. 重新附加卷:

    $  nova volume-attach <instance_id> <vol_id>

    将 <instance_id> 和 <vol_id> 替换为您恢复的实例和卷的 ID。

2.3.11.1. 验证您的恢复是否成功

流程

  • 要检查流程是否成功,您可以使用 cinder list 命令验证您恢复的卷现在是否处于 available 状态。

    $ cinder list
    备注
    如果您使用 Block Storage (cinder)作为可引导的根卷,则无法在该卷上使用 restore-to-snapshot 功能,因为它没有处于 available 状态。要使用这个功能,实例必须使用 delete_on_termination=false (默认)属性引导,以便在实例终止时保留引导卷。当您要恢复到快照时,您必须首先删除初始实例,以便卷可用。然后,您可以恢复它并从卷创建新实例。

2.3.12. 将卷上传到镜像服务

您可以将现有卷作为镜像直接上传到镜像服务。要做到这一点:

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 选择目标卷的 Upload to Image 操作。
  3. 为卷提供 Image Name,并从列表中选择 Disk Format
  4. Upload

要查看上传的镜像,请选择 Project > Compute > Images。新镜像会出现在 Images 表中。有关如何使用和配置镜像的详情,请参考 创建和管理镜像指南中的管理镜像https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/16.1/html/creating_and_managing_images/ch-image-service#section-manage_images

2.3.13. 在后端之间移动卷

将卷从一个存储后端移动到另一个存储后端有很多原因,例如:

  • 停用不再支持的存储系统。
  • 更改卷的存储类或层。
  • 更改卷的可用区。

使用 Block Storage 服务(cinder),您可以使用以下方法在后端间移动卷:

  • retype :默认策略允许卷所有者和管理员重新输入卷。retype 操作是在后端之间移动卷的最常见方法。
  • migrate :默认策略仅允许管理员迁移卷。为特定的用例保留卷迁移,因为它受到限制,需要明确了解部署如何工作。如需更多信息,请参阅 迁移卷

限制

红帽支持在可用区内和跨可用区(AZ)间移动卷,但有以下限制:

  • 卷必须具有 available 或 in-use 状态才能移动。
  • 对使用中的卷的支持取决于驱动程序。
  • 卷不能有快照。
  • 卷不能属于组或一致性组。

2.3.14. 移动可用卷

您可以在所有后端之间移动可用卷,但性能取决于您使用的后端。许多后端支持协助的迁移。有关协助迁移的后端支持的更多信息,请联系供应商。

支持的迁移可用于卷重新类型和卷迁移。通过协助的迁移,后端可以优化将数据从源后端迁移到目标后端,但两个后端都必须来自同一供应商。

注意

红帽只支持带有多池后端的后端辅助迁移,或者在将 cinder migrate 操作用于单池后端时,如 RBD。

2.3.14.1. 通用卷迁移

当无法支持在后端之间进行迁移时,块存储服务会执行通用卷迁移。

通用卷迁移要求在 Block Storage (cinder)服务将数据从源卷移动到 Controller 节点前连接两个后端的卷,并从 Controller 节点移到目标卷。无论源和目标后端中的存储类型如何,块存储服务都会无缝执行这个过程。

重要

在执行通用卷迁移前,请确保您有足够的带宽。通用卷迁移的持续时间与卷的大小直接成比例,从而使操作比支持的迁移要慢。

2.3.15. 移动使用的卷

没有可用于移动使用的卷的优化或辅助选项。当您移动使用的卷时,计算服务(nova)必须使用虚拟机监控程序将数据从源后端中的卷传输到目标后端的卷。这需要与运行卷正在使用的实例的虚拟机监控程序协调。

块存储服务(cinder)和计算服务协同工作,以执行此操作。Compute 服务管理大多数工作,因为数据通过 Compute 节点从一个卷复制到另一个卷。

重要

在移动使用卷前,请确保您有足够的带宽。此操作的持续时间与卷的大小直接成比例,从而使操作比支持的迁移要慢。

限制

  • 当卷附加到多个 nova 实例时,它们不会被移动。
  • 不支持非块设备,将目标后端上的存储协议限制为 iSCSI、光纤通道(FC)或 RBD。

2.3.16. 卷重新处理

卷重新调整是将卷从一个后端移动到另一个后端的标准方法。该操作要求管理员为不同的后端定义适当的卷类型。默认策略允许卷所有者和管理员重新键入卷。

当您重新输入卷时,您可以将卷类型及其设置应用到已存在的卷。有关卷类型的详情,请参考 第 2.2.2 节 “使用卷类型的组卷设置”

您可以重新键入新卷类型的额外规格可以应用到现有卷的卷。您可以重新键入卷,以将预定义的设置或存储属性应用到现有卷,例如:

  • 将卷移动到不同的后端。
  • 更改卷的存储类或层。
  • 启用或禁用复制等功能。

重新调整卷不一定意味着您必须将卷从一个后端移到另一个后端。然而,在有些情况下,您必须移动卷才能完成重新输入:

  • 新卷类型定义了不同的 volume_backend_name
  • 当前卷类型的 volume_backend_name 未定义,该卷存储在新卷类型的 volume_backend_name 指定的后端上。

将卷从一个后端移动到另一个后端可能需要大量时间和资源。因此,当重新类型需要移动数据时,块存储服务默认不会移动数据。除非将迁移策略指定为 retype 请求的一部分,否则操作会失败。更多信息请参阅 第 2.3.16.2 节 “从命令行重新定义卷”

限制

  • 您不能重新输入所有卷。有关在后端之间移动卷的详情,请参考 第 2.3.13 节 “在后端之间移动卷”
  • 您不能将未加密的卷重新输入为加密卷类型,但您可以重新键入加密的卷来未加密的。
  • 没有管理特权的用户只能重新键入他们拥有的卷。

2.3.16.1. 从仪表板 UI 重新获取卷

使用仪表板 UI 重新输入卷。

重要

不支持将未加密的卷重新设置为相同大小的加密卷,因为加密卷需要额外的空间来存储加密数据。有关加密未加密的卷的更多信息,请参阅 加密未加密的卷

先决条件

流程

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 在您要迁移的卷的 Actions 列中,选择 Change Volume Type
  3. Change Volume Type 对话框中,选择目标卷类型并从 Type 列表中定义新后端。
  4. 如果要将卷迁移到另一个后端,请从 Migration Policy 列表中选择 On Demand。更多信息请参阅 第 2.3.13 节 “在后端之间移动卷”
  5. Change Volume Type 开始迁移。

2.3.16.2. 从命令行重新定义卷

与仪表板 UI 过程类似,您可以从命令行重新输入卷。

重要

不支持将未加密的卷重新设置为相同大小的加密卷,因为加密卷需要额外的空间来存储加密数据。有关加密未加密的卷的更多信息,请参阅 加密未加密的卷

先决条件

流程

  1. 输入以下命令重新输入卷:

    $ cinder retype <volume id> <new volume type name>
  2. 如果重新类型操作需要将卷从一个后端移到另一个后端,则块存储服务需要特定的标记:

    $ cinder retype --migration-policy on-demand <volume id> <new volume type name>
    注意

    当重新类型操作进行时,卷状态会更改为 retyping

  3. 输入以下命令并查看 volume_type 字段,以确认重新类型操作成功。volume_type 字段显示新卷类型。

    $ cinder show <volume id>
    注意

    当您启动重新类型操作时,卷名称会被重复。如果您输入了带有卷名称的 cinder show 命令,cinder 客户端将返回与 ERROR: Multiple volume match found for '<volume name>' 的错误。要避免这个错误,请使用卷 ID。

2.3.17. 在 overcloud 节点上启用 LVM2 过滤

如果您使用带有某些块存储服务(cinder)后端的 LVM2 (逻辑卷管理)卷,您在 Red Hat OpenStack Platform (RHOSP)客户机中创建的卷可能会在主机 cinder-volumenova-compute 容器的 overcloud 节点上可见。在这种情况下,主机上的 LVM2 工具扫描 OpenStack 客户机创建的 LVM2 卷,这可能会在 Compute 或 Controller 节点上产生一个或多个问题:

  • LVM 似乎查看客户机中的卷组
  • LVM 报告重复的卷组名称
  • 卷分离失败,因为 LVM 正在访问存储
  • 由于 LVM 存在问题,客户机无法引导
  • 因为缺少实际存在的磁盘,客户机机器上的 LVM 处于部分状态
  • 在具有 LVM 的设备中,块存储服务(cinder)操作会失败
  • 块存储服务(cinder)快照无法正确删除
  • 实时迁移过程中出现错误: /etc/multipath.conf 不存在

要防止这种错误扫描,并从主机节点隔离客户机 LVM2 卷,您可以在部署或更新 overcloud 时使用 LVMFilterEnabled heat 参数启用和配置过滤器。这个过滤器从托管活跃 LVM2 卷的物理设备列表中计算。您还可以使用 LVMFilterAllowlistLVMFilterDenylist 参数明确允许或拒绝块设备。您可以在全局范围内、针对特定节点角色或特定设备应用此过滤。

注意

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

先决条件

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 提供 undercloud 凭证文件:

    $ source ~/stackrc
  3. 创建新的环境文件,或修改现有的环境文件。在本例中,创建新文件 lvm2-filtering.yaml

    $ touch ~/lvm2-filtering.yaml
  4. 在环境文件中包含以下参数:

    parameter_defaults:
      LVMFilterEnabled: true

    您可以进一步自定义 LVM2 过滤器的实现。例如,要只在 Compute 节点上启用过滤,请使用以下配置:

    parameter_defaults:
      ComputeParameters:
        LVMFilterEnabled: true

    这些参数还支持正则表达式。要只在 Compute 节点上启用过滤,并忽略所有以 /dev/sd 开头的设备,请使用以下配置:

    parameter_defaults:
      ComputeParameters:
        LVMFilterEnabled: true
        LVMFilterDenylist:
          - /dev/sd.*
  5. 运行 openstack overcloud deploy 命令,并包含包含 LVM2 过滤配置的环境文件,以及与 overcloud 部署相关的任何其他环境文件:

    $ openstack overcloud deploy --templates \
    <environment-files> \
    -e lvm2-filtering.yaml