4.8. 使用双向镜像从灾难中恢复


要使用双向镜像功能,可以从灾难中恢复,请使用以下步骤:它们演示了如何在主集群终止后切换到次要集群中的镜像数据,以及如何故障恢复。关闭可以按照一定顺序进行,也可以不按照一定顺序进行。

在以下示例中,主集群称为 site-a 集群,辅助集群称为 site-b 集群。此外,集群同时有一个含有两个镜像、image1image2 的数据池。

先决条件

顺序关闭后故障转移

  1. 停止使用主镜像的所有客户端。此步骤取决于哪些客户端使用该镜像。例如,从使用该镜像的任何 OpenStack 实例分离卷。请参阅 Red Hat OpenStack Platform 10 存储指南中的 块存储和卷 章节。
  2. site-a 集群中的监控节点中运行以下命令来降级位于 site-a 集群中的主镜像:

    # rbd mirror image demote data/image1
    # rbd mirror image demote data/image2
    Copy to Clipboard Toggle word wrap
  3. site-b 集群中的监控节点中运行以下命令来提升位于 site-b 集群中的非主镜像:

    # rbd mirror image promote data/image1
    # rbd mirror image promote data/image2
    Copy to Clipboard Toggle word wrap
  4. 经过一段时间后,检查 site-b 集群中监控节点中的镜像状态。它们应当显示 up+stopped 状态,并列为主要状态:

    # rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-17 16:04:37
    # rbd mirror image status data/image2
    image2:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-17 16:04:37
    Copy to Clipboard Toggle word wrap
  5. 恢复对镜像的访问。此步骤取决于哪些客户端使用该镜像。

Non-Orderly Shutdown 后故障转移

  1. 验证主集群是否已停机。
  2. 停止使用主镜像的所有客户端。此步骤取决于哪些客户端使用该镜像。例如,从使用该镜像的任何 OpenStack 实例分离卷。请参阅 Red Hat OpenStack Platform 10 存储指南中的 块存储和卷 章节。
  3. site-b 集群中的监控节点提升非主镜像。使用 --force 选项,因为降级无法传播到 site-a 集群:

    # rbd mirror image promote --force data/image1
    # rbd mirror image promote --force data/image2
    Copy to Clipboard Toggle word wrap
  4. 检查 site-b 集群中监控节点的镜像状态。它们应当显示 up+stopping_replay 状态,描述应显示 force promoted

    # rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopping_replay
      description: force promoted
      last_update: 2019-04-17 13:25:06
    # rbd mirror image status data/image2
    image2:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopping_replay
      description: force promoted
      last_update: 2019-04-17 13:25:06
    Copy to Clipboard Toggle word wrap

failback

当以前的主集群恢复时,无法将其恢复。

  1. 再次检查 site-b 集群中监控节点的镜像状态。它们应该显示 up-stopped 状态,描述应该会指出 local image is primary

    # rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 17:37:48
    # rbd mirror image status data/image2
    image2:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 17:38:18
    Copy to Clipboard Toggle word wrap
  2. site-a 集群中的监控节点中确定镜像是否仍然是主镜像:

    # rbd info data/image1
    # rbd info data/image2
    Copy to Clipboard Toggle word wrap

    在命令的输出中,查找 mirroring primary: truemirroring primary: false 以确定状态。

  3. site-a 集群中的监控节点运行以下命令来降级列为主镜像:

    # rbd mirror image demote data/image1
    Copy to Clipboard Toggle word wrap
  4. 如果未按顺序关闭,则仅重新同步镜像。在 site-a 集群的监控节点上运行以下命令,以重新同步从 site-bsite-a 的镜像:

    # rbd mirror image resync data/image1
    Flagged image for resync from primary
    # rbd mirror image resync data/image2
    Flagged image for resync from primary
    Copy to Clipboard Toggle word wrap
  5. 一段时间后,通过验证镜像是否处于 up+replaying 状态确保完成镜像重新同步。通过在 site-a 集群中的监控节点上运行以下命令来检查其状态:

    # rbd mirror image status data/image1
    # rbd mirror image status data/image2
    Copy to Clipboard Toggle word wrap
  6. site-b 集群的监控节点中运行以下命令来降级 site-b 集群中的镜像:

    # rbd mirror image demote data/image1
    # rbd mirror image demote data/image2
    Copy to Clipboard Toggle word wrap
    注意

    如果有多个次要集群,则只需要从提升它的二级集群完成。

  7. site-a 集群的监控节点上运行以下命令来提升位于 site-a 集群上的以前主镜像:

    # rbd mirror image promote data/image1
    # rbd mirror image promote data/image2
    Copy to Clipboard Toggle word wrap
  8. 检查 site-a 集群中监控节点的镜像状态。它们应当显示 up+stopped 状态,描述应该为 local image is primary:

    # rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 11:14:51
    # rbd mirror image status data/image2
    image2:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 11:14:51
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat