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)后端。如果您计划使用多个后端,则所有后端都必须支持主动-主动配置。如果部署中包含了不支持主动配置的后端,则该后端将不适用于存储。在主动部署中,如果您在不支持主动配置的后端中保存数据,则会出现数据丢失的风险。

流程

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

    $ source ~/stackrc
  3. 要启用主动块存储服务卷,请将此环境文件添加到带有其他环境文件的堆栈中,并部署 overcloud:

    /usr/share/openstack-tripleo-heat-templates/environments/cinder-volume-active-active.yaml

2.2.2. 用于主动块存储配置的维护命令

部署主动块存储配置后,您可以使用以下命令管理集群及其服务。

注意

这些命令需要 Block Storage (cinder) REST API 微版本 3.17 或更高版本。

Expand

用户目标

命令

要查看所有服务的详细信息,如:二进制、主机、区域、状态、集群、禁用原因和集群名称。

cinder --os-volume-api-version 3.17 service-list

要查看所有集群的详细信息,如名称、二进制、状态和状态。

注意 :在 director 为 Ceph 后端部署时,默认的集群名称为 tripleo@tripleo_ceph

cinder --os-volume-api-version 3.17 cluster-list

查看特定集群服务的详细信息。

cinder --os-volume-api-version 3.17 cluster-show <cluster_name>

启用集群服务。

cinder --os-volume-api-version 3.17 cluster-enable <cluster_name>

要禁用集群服务,请执行以下操作:

cinder — os-volume-api-version 3.17 cluster-disable <cluster_name>

2.2.3. 卷管理和取消管理

unmanage 和 manage 机制可帮助使用版本 X 将卷从一个服务移动到另一个服务,使用版本 X+1。两种服务在此过程中保持运行。

在 Block Storage (cinder) REST API 微版本 3.17 或更高版本中,您可以列出可在 Block Storage 集群中管理的卷和快照。要查看这些列表,请使用带有 cinder manageable-listcinder 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 migratecinder-manage 命令使用- cluster 参数来定义主动-主动部署的目的地。

当您在块存储服务中迁移卷时,请使用 optional- cluster 参数并省略 host positional 参数,因为这些参数是互斥的。

2.2.5. 启动块存储服务维护

所有块存储卷服务在启动时执行自己的维护。

在集群中分组的多个卷服务的环境中,您可以清理当前运行的服务。

命令 work-cleanup 会触发服务器清理。该命令返回:

  • 命令可以清理的服务列表。
  • 命令无法清理的服务列表,因为它们目前没有在集群中运行。

先决条件

  • 您必须是一个项目管理员才能启动块存储服务维护。
  • Block Storage (cinder) REST API microversion 3.24 或更高版本。

流程

  1. 提供 overcloud 凭证文件:

    $ source ~/<credentials_file>
    • <credentials_file > 替换为您的凭证文件的名称,如 overcloudrc
  2. 运行以下命令验证集群的所有服务是否正在运行:

    $ cinder cluster-list --detailed

    或者,运行 cluster show 命令。

  3. 如果有任何服务没有运行,请运行以下命令来识别这些特定的服务:

    $ cinder service-list
  4. 运行以下命令以触发服务器清理:

    $ 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
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部