2.9. 块存储服务(cinder)一致性组
您可以使用 Block Storage (cinder)服务设置一致性组,将多个卷分组到一个实体中。这意味着您可以同时对多个卷执行操作,而不是单独执行操作。您可以使用一致性组为多个卷同时创建快照。这也意味着您可以同时恢复或克隆这些卷。
卷可以是多个一致性组的成员。但是,在将卷添加到一致性组后,您无法删除、重新键入或迁移卷。
2.9.1. 配置块存储服务一致性组 复制链接链接已复制到粘贴板!
默认情况下,块存储安全策略禁用一致性组 API。在使用该功能前,您必须在此处启用它。托管 Block Storage API 服务的节点的 /etc/cinder/policy.json
文件中的相关一致性组条目,openstack-cinder-api
列出默认设置:
您必须在环境文件中更改这些设置,然后使用 openstack overcloud deploy
命令将它们部署到 overcloud。不要直接编辑 JSON 文件,因为在下次部署 overcloud 时更改会被覆盖。
先决条件
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑环境文件,并在
parameter_defaults
部分中添加新条目。这样可确保条目在容器中更新,并在 director 使用openstack overcloud deploy
命令重新创建环境时保留。 使用
CinderApiPolicies
在环境文件中添加新部分来设置一致性组设置。等效的parameter_defaults
部分,带有 JSON 文件中的默认设置,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
值
'group:nobody'
确定没有组可以使用此功能,以便有效地禁用它。要启用它,请将组更改为另一个值。 为提高安全性,将一致性组 API 和卷类型管理 API 的权限设置为相同。默认情况下,卷类型管理 API 会在同一个
/etc/cinder/policy.json_ file
文件中设置为"rule:admin_or_owner"
。"volume_extension:types_manage": "rule:admin_or_owner",
"volume_extension:types_manage": "rule:admin_or_owner",
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使一致性组功能可供所有用户使用,请设置 API 策略条目,允许用户创建、使用和管理他们自己的一致性组。为此,请使用
rule:admin_or_owner
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将更新保存到环境文件。
- 使用其他环境文件将环境文件添加到堆栈中,并部署 overcloud。
2.9.2. 使用仪表板创建块存储一致性组 复制链接链接已复制到粘贴板!
启用一致性组 API 后,您可以开始创建一致性组。
先决条件
- 您必须是项目管理员或卷所有者才能创建一致性组。
- 访问 Red Hat OpenStack Platform (RHOSP) Dashboard (horizon)。如需更多信息,请参阅 OpenStack 控制面板简介。
流程
- 以 admin 用户或卷所有者身份登录控制面板。
- 选择 Project > Compute > Volumes > Volume Consistency Groups。
- 单击 Create Consistency Group。
- 在向导的 Consistency Group Information 选项卡中,为您的一致性组输入一个名称和描述。然后,指定其 可用区。
- 您还可以在一致性组中添加卷类型。当您在一致性组中创建卷时,块存储服务将应用来自这些卷类型的兼容设置。要添加卷类型,请点击所有可用卷类型列表中的 + 按钮。
- 单击 Create Consistency Group。它会出现在 Volume Consistency Groups 表中。
2.9.3. 使用控制面板管理块存储服务一致性组 复制链接链接已复制到粘贴板!
您可以在仪表板中管理块存储卷的一致性组。
先决条件
- 您必须是管理一致性组的项目管理员。
- 访问 Red Hat OpenStack Platform (RHOSP) Dashboard (horizon)。如需更多信息,请参阅 OpenStack 控制面板简介。
流程
- 以 admin 用户身份登录控制面板。
- 选择 Project > Compute > Volumes > Volume Consistency Groups。
- 可选: 您可以通过从 Action 列中选择 Edit Consistency Group 来更改一致性组的名称或描述。
要直接从一致性组中添加或删除卷,请找到您要配置的一致性组。在该一致性组的 Actions 列中,选择 Manage Volumes。这将启动 Add/Remove Consistency Group Volumes 向导。
- 若要向一致性组添加卷,可从所有可用卷 列表中单击其 + 按钮。
- 要从一致性组中删除卷,可从 Selected volumes 列表中单击其按钮。
- 单击 Edit Consistency Group。
2.9.4. 为块存储服务创建和管理一致性组快照 复制链接链接已复制到粘贴板!
将卷添加到一致性组后,您可以从其创建快照。
先决条件
- 您必须是项目管理员,才能创建和管理一致性组快照。
流程
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file
> 替换为您的凭证文件的名称,如overcloudrc
。
-
将
列出所有可用的一致性组及其对应的 ID:
cinder consisgroup-list
$ cinder consisgroup-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用一致性组创建快照:
cinder cgsnapshot-create [--name <cgsnapname>] [--description "<description>"] <cgnameid>
$ cinder cgsnapshot-create [--name <cgsnapname>] [--description "<description>"] <cgnameid>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<cgsnapname
> 替换为快照的名称。 -
将
<description
> 替换为快照的描述。 -
将
<cgnameid>
替换为一致性组的名称或 ID。
-
将
显示所有可用一致性组快照的列表:
cinder cgsnapshot-list
# cinder cgsnapshot-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9.5. 克隆块存储服务一致性组 复制链接链接已复制到粘贴板!
您还可以使用一致性组同时创建整个预先配置的卷集合。您可以通过克隆现有的一致性组或恢复一致性组快照来实现此目的。两个进程都使用相同的命令。
先决条件
- 您必须是项目管理员,才能克隆一致性组和恢复一致性组快照。
流程
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file
> 替换为您的凭证文件的名称,如overcloudrc
。
-
将
克隆现有的一致性组:
cinder consisgroup-create-from-src --source-cg <cgnameid> [--name <cgname>] [--description "<description>"]
$ cinder consisgroup-create-from-src --source-cg <cgnameid> [--name <cgname>] [--description "<description>"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<cgnameid
> 替换为您要克隆的一致性组的名称或 ID。 -
将
<cgname
> 替换为您的一致性组的名称。 -
将
<description
> 替换为您的一致性组的描述。
-
将
从一致性组快照创建一致性组:
cinder consisgroup-create-from-src --cgsnapshot <cgsnapname> [--name <cgname>] [--description "<description>"]
$ cinder consisgroup-create-from-src --cgsnapshot <cgsnapname> [--name <cgname>] [--description "<description>"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
cgsnapname
> 替换为您要用于创建一致性组的快照的名称或 ID。
-
将 <