2.2. 用于高可用性的主动块存储
在主动-被动模式下,如果块存储服务在超融合部署中失败,则节点隔离不可取。这是因为节点隔离可以触发不必要的重新平衡存储。边缘站点不会部署 Pacemaker,但 Pacemaker 仍然存在于控制站点。相反,边缘站点在主动配置中部署块存储服务,以支持高度可用的超融合部署。
主动-主动部署通过平衡所有可用节点的工作负载来提高扩展、性能并缩短响应时间。在主动配置中部署块存储服务会创建一个高可用性环境,可在部分网络中断和单节点硬件故障期间维护管理层。主动部署允许集群在节点中断期间继续提供块存储服务。
但是,主动部署不是,启用工作流来自动恢复。如果服务停止,在故障节点上运行的单个操作也会在停机期间失败。在这种情况下,确认服务关闭并启动对具有 in-flight 操作的资源的清理。
2.2.1. 启用主动块存储 复制链接链接已复制到粘贴板!
cinder-volume-active-active.yaml 文件允许您在主动-主动配置中部署块存储服务。此文件确保 director 使用非 Pacemaker cinder-volume heat 模板,并将 etcd 服务作为分布式锁定管理器(DLM)添加到部署中。
cinder-volume-active-active.yaml 文件还通过为 CinderVolumeCluster 参数指定一个值来定义 active-active 集群名称。CinderVolumeCluster 是一个全局块存储参数。因此,您不能在同一部署中包括集群(主动)和非集群后端。
目前,块存储的主动配置仅适用于 Ceph RADOS 块设备(RBD)后端。如果您计划使用多个后端,则所有后端都必须支持主动-主动配置。如果部署中包含了不支持主动配置的后端,则该后端将不适用于存储。在主动部署中,如果您在不支持主动配置的后端中保存数据,则会出现数据丢失的风险。
先决条件
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc要启用主动块存储服务卷,请将此环境文件添加到带有其他环境文件的堆栈中,并部署 overcloud:
/usr/share/openstack-tripleo-heat-templates/environments/cinder-volume-active-active.yaml
2.2.2. 用于主动块存储配置的维护命令 复制链接链接已复制到粘贴板!
部署主动块存储配置后,您可以使用以下命令管理集群及其服务。
这些命令需要 Block Storage (cinder) REST API 微版本 3.17 或更高版本。
| 用户目标 | 命令 |
| 要查看所有服务的详细信息,如:二进制、主机、区域、状态、集群、禁用原因和集群名称。 |
|
| 要查看所有集群的详细信息,如名称、二进制、状态和状态。
注意 :在 director 为 Ceph 后端部署时,默认的集群名称为 |
|
| 查看特定集群服务的详细信息。 |
|
| 启用集群服务。 |
|
| 要禁用集群服务,请执行以下操作: |
|
2.2.3. 卷管理和取消管理 复制链接链接已复制到粘贴板!
unmanage 和 manage 机制可帮助使用版本 X 将卷从一个服务移动到另一个服务,使用版本 X+1。两种服务在此过程中保持运行。
在 Block Storage (cinder) REST API 微版本 3.17 或更高版本中,您可以列出可在 Block Storage 集群中管理的卷和快照。要查看这些列表,请使用带有 cinder manageable-list 或 cinder snapshot-manageable-list 的-- cluster 参数。
在 Block Storage REST API microversion 3.16 及更高版本中,您可以使用 cinder manage 命令的 optional- cluster 参数将非受管卷添加到块存储集群中。
2.2.4. 集群服务上的卷迁移 复制链接链接已复制到粘贴板!
使用 Block Storage (cinder) REST API 微版本 3.16 及更高版本时,cinder migrate 和 cinder-manage 命令使用- cluster 参数来定义主动-主动部署的目的地。
当您在块存储服务中迁移卷时,请使用 optional- cluster 参数并省略 host positional 参数,因为这些参数是互斥的。
2.2.5. 启动块存储服务维护 复制链接链接已复制到粘贴板!
所有块存储卷服务在启动时执行自己的维护。
在集群中分组的多个卷服务的环境中,您可以清理当前运行的服务。
命令 work-cleanup 会触发服务器清理。该命令返回:
- 命令可以清理的服务列表。
- 命令无法清理的服务列表,因为它们目前没有在集群中运行。
先决条件
- 您必须是一个项目管理员才能启动块存储服务维护。
- Block Storage (cinder) REST API microversion 3.24 或更高版本。
流程
提供 overcloud 凭证文件:
$ source ~/<credentials_file>-
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
运行以下命令验证集群的所有服务是否正在运行:
$ cinder cluster-list --detailed或者,运行
cluster show命令。如果有任何服务没有运行,请运行以下命令来识别这些特定的服务:
$ cinder service-list运行以下命令以触发服务器清理:
$ cinder --os-volume-api-version 3.24 work-cleanup [--cluster <cluster-name>] [--host <hostname>] [--binary <binary>] [--is-up <True|true|False|false>] [--disabled <True|true|False|false>] [--resource-id <resource-id>] [--resource-type <Volume|Snapshot>]注意过滤器(如-
cluster,--host, 和--binary)定义命令清理的内容。您可以过滤集群名称、主机名、服务类型和资源类型,包括特定资源。如果没有应用过滤,命令会尝试清理可清理的所有内容。以下示例根据集群名称过滤:
$ cinder --os-volume-api-version 3.24 work-cleanup --cluster tripleo@tripleo_ceph