搜索

2.9. 块存储服务(cinder)一致性组

download PDF

您可以使用 Block Storage (cinder)服务将一致性组设置为将多个卷作为单一实体分组在一起。这意味着,您可以同时对多个卷执行操作,而不是单独执行。您可以使用一致性组为多个卷同时创建快照。这也意味着您可以同时恢复或克隆这些卷。

卷可以是多个一致性组的成员。但是,在将卷添加到一致性组后,您无法删除、重新输入或迁移卷。

2.9.1. 配置块存储服务一致性组

默认情况下,块存储安全策略禁用一致性组 API。在使用该功能前,您必须在此处启用它。托管 Block Storage API 服务的节点 /etc/cinder/policy.json 文件中的相关一致性组条目,openstack-cinder-api 列出默认设置:

"consistencygroup:create" : "group:nobody",
​"consistencygroup:delete": "group:nobody",
​"consistencygroup:update": "group:nobody",
​"consistencygroup:get": "group:nobody",
​"consistencygroup:get_all": "group:nobody",
​"consistencygroup:create_cgsnapshot" : "group:nobody",
​"consistencygroup:delete_cgsnapshot": "group:nobody",
​"consistencygroup:get_cgsnapshot": "group:nobody",
​"consistencygroup:get_all_cgsnapshots": "group:nobody",

您必须在环境文件中更改这些设置,然后使用 openstack overcloud deploy 命令将它们部署到 overcloud。不要直接编辑 JSON 文件,因为在下次部署 overcloud 时更改会被覆盖。

先决条件

  • 已安装 undercloud。如需更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的安装 director

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  3. 编辑环境文件,并在 parameter_defaults 部分中添加新条目。这样可确保条目在容器中更新,并在 director 使用 openstack overcloud deploy 命令重新部署环境时保留条目。
  4. 使用 CinderApiPolicies 在环境文件中添加新部分来设置一致性组设置。带有 JSON 文件中的默认设置的等同 parameter_defaults 部分如下所示:

    parameter_defaults:
      CinderApiPolicies: { \
         cinder-consistencygroup_create: { key: 'consistencygroup:create', value: 'group:nobody' }, \
         cinder-consistencygroup_delete: { key: 'consistencygroup:delete', value: 'group:nobody' },  \
         cinder-consistencygroup_update: { key: 'consistencygroup:update', value: 'group:nobody' }, \
         cinder-consistencygroup_get: { key: 'consistencygroup:get', value: 'group:nobody' }, \
         cinder-consistencygroup_get_all: { key: 'consistencygroup:get_all', value: 'group:nobody' }, \
         cinder-consistencygroup_create_cgsnapshot: { key: 'consistencygroup:create_cgsnapshot', value: 'group:nobody' }, \
         cinder-consistencygroup_delete_cgsnapshot: { key: 'consistencygroup:delete_cgsnapshot', value: 'group:nobody' }, \
         cinder-consistencygroup_get_cgsnapshot: { key: 'consistencygroup:get_cgsnapshot', value: 'group:nobody' }, \
         cinder-consistencygroup_get_all_cgsnapshots: { key: 'consistencygroup:get_all_cgsnapshots', value: 'group:nobody' }, \
     }
  5. 'group:nobody' 确定没有组可以使用此功能,以便有效地禁用它。要启用它,请将组更改为另一个值。
  6. 为提高安全性,请将一致性组 API 和卷类型管理 API 的权限设置为相同。默认情况下,卷类型管理 API 会在同一个 /etc/cinder/policy.json_ file 文件中设置为 "rule:admin_or_owner"

    "volume_extension:types_manage": "rule:admin_or_owner",
  7. 要使一致性组功能可供所有用户使用,请将 API 策略条目设置为允许用户创建、使用和管理自己的一致性组。要做到这一点,请使用 rule:admin_or_owner:

    CinderApiPolicies: { \
         cinder-consistencygroup_create: { key: 'consistencygroup:create', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_delete: { key: 'consistencygroup:delete', value: 'rule:admin_or_owner' },  \
         cinder-consistencygroup_update: { key: 'consistencygroup:update', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_get: { key: 'consistencygroup:get', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_get_all: { key: 'consistencygroup:get_all', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_create_cgsnapshot: { key: 'consistencygroup:create_cgsnapshot', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_delete_cgsnapshot: { key: 'consistencygroup:delete_cgsnapshot', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_get_cgsnapshot: { key: 'consistencygroup:get_cgsnapshot', value: 'rule:admin_or_owner' }, \
         cinder-consistencygroup_get_all_cgsnapshots: { key: 'consistencygroup:get_all_cgsnapshots', value: 'rule:admin_or_owner’ }, \
     }
  8. 将更新保存到环境文件中。
  9. 使用其他环境文件将环境文件添加到堆栈中,并部署 overcloud。

2.9.2. 使用仪表板创建块存储一致性组

启用一致性组 API 后,您可以开始创建一致性组。

先决条件

流程

  1. 以 admin 用户或卷所有者登录控制面板。
  2. 选择 Project > Compute > Volumes > Volume Consistency Groups
  3. 单击 Create Consistency Group
  4. 在向导的 Consistency Group Information 选项卡中,输入您的一致性组的名称和描述。然后,指定其 可用区
  5. 您还可以将卷类型添加到一致性组中。当您在一致性组中创建卷时,块存储服务将从这些卷类型应用兼容的设置。要添加卷类型,请点击所有可用卷类型列表中的 + 按钮。
  6. 单击 Create Consistency Group。它会出现在 Volume Consistency Groups 表中。

2.9.3. 使用控制面板管理块存储服务一致性组

您可以在仪表板中管理块存储卷的一致性组。

先决条件

流程

  1. 以 admin 用户身份登录控制面板。
  2. 选择 Project > Compute > Volumes > Volume Consistency Groups
  3. 可选:您可以通过从 Action 列中选择 Edit Consistency Group 来更改一致性组的名称或描述。
  4. 要直接从一致性组中添加或删除卷,请找到您要配置的一致性组。在该一致性组的 Actions 列中,选择 Manage Volumes。这将启动 Add/Remove Consistency Group Volumes 向导。

    1. 要将卷添加到一致性组中,请单击 All available volumes 列表中的 + 按钮。
    2. 要从一致性组中删除卷,请单击 Selected volumes 列表中的 - 按钮。
  5. 单击 Edit Consistency Group

2.9.4. 为块存储服务创建和管理一致性组快照

将卷添加到一致性组后,您可以从其中创建快照。

先决条件

  • 您必须是一个项目管理员,才能创建和管理一致性组快照。

流程

  1. 提供 overcloud 凭证文件:

    $ source ~/<credentials_file>
    • <credentials_file > 替换为您的凭据文件的名称,如 overcloudrc
  2. 列出所有可用的一致性组及其对应 ID:

    $ cinder consisgroup-list
  3. 使用一致性组创建快照:

    $ cinder cgsnapshot-create [--name <cgsnapname>] [--description "<description>"] <cgnameid>
    • <cgsnapname > 替换为快照的名称。
    • <description > 替换为快照的描述。
    • <cgnameid> 替换为一致性组的名称或 ID。
  4. 显示所有可用一致性组快照的列表:

    # cinder cgsnapshot-list

2.9.5. 克隆块存储服务一致性组

您还可以使用一致性组同时创建整个预配置的卷。您可以通过克隆现有的一致性组或恢复一致性组快照来完成此操作。两个进程都使用相同的命令。

先决条件

  • 您必须是项目管理员,才能克隆一致性组和恢复一致性组快照。

流程

  1. 提供 overcloud 凭证文件:

    $ source ~/<credentials_file>
    • <credentials_file > 替换为您的凭据文件的名称,如 overcloudrc
  2. 克隆现有的一致性组:

    $ cinder consisgroup-create-from-src --source-cg <cgnameid> [--name <cgname>] [--description "<description>"]
    • <cgnameid > 替换为您要克隆的一致性组的名称或 ID。
    • <cgname > 替换为您的一致性组的名称。
    • <description > 替换为您的一致性组的描述。
  3. 从一致性组快照创建一致性组:

    $ cinder consisgroup-create-from-src --cgsnapshot <cgsnapname> [--name <cgname>] [--description "<description>"]
    • 将 < cgsnapname > 替换为您要用于创建一致性组的快照的名称或 ID。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.