4.5. 配置两个镜像功能


双向镜像允许您在两个集群之间以任一方向复制镜像。它不允许您从任一集群中写入同一镜像,并更改传播。镜像从集群提升或降级,以更改从中写入的位置,以及它同步的位置。

以下流程假设:

  • 您有两个集群,您想要以任一方向在它们间复制镜像。在以下示例中,集群被称为 site-asite-b 集群。有关安装 Ceph 存储集群的详情,请参考 Red Hat Enterprise Linux 安装指南Ubuntu 安装指南
  • 两个集群都附加了运行 rbd-mirror 守护进程的客户端节点。site-b 集群上的守护进程将连接到 site-a 集群,将镜像同步到 site-b,而 site-a 集群上的守护进程将连接到 site-b 集群,将镜像同步到 site-a。有关安装 Ceph 客户端的详情,请参考 Ubuntu 的 Red Hat Enterprise Linux 或安装指南
  • 两个集群中都创建具有相同名称的池。在以下示例中,池命名为 data。详情请参阅 存储策略指南中的 章节 或 Red Hat Ceph Storage 3。
  • 该池包含您要镜像的镜像,并在它们上启用日志。在以下示例中,镜像名为 image1image2。详情请参阅 启用日志

配置块设备镜像的方法有两种:

  • 池镜像 :要镜像池中的所有镜像,请遵循下面立即 配置池镜像
  • 镜像镜像 : 要在池中镜像选择镜像,请遵循 配置镜像镜像(mirror )。

配置池镜像

  1. 确保 数据池 中的所有镜像都启用了专用锁定和日志。详情请查看 第 4.1 节 “启用日志”
  2. 按照配置单向镜像 中的等同的 配置池部分中的第 2 - 7 步设置镜像 ( mirror)的方法
  3. site-a 集群的客户端节点上,安装 rbd-mirror 软件包。软件包由 Red Hat Ceph Storage 3 Tools 存储库提供。

    Red Hat Enterprise Linux

    # yum install rbd-mirror
    Copy to Clipboard Toggle word wrap

    Ubuntu

    $ sudo apt-get install rbd-mirror
    Copy to Clipboard Toggle word wrap
  4. site-a 集群的客户端节点上,通过在适当的文件中添加 CLUSTER 选项来指定集群名称。在 Red Hat Enterprise Linux 上,更新 /etc/sysconfig/ceph 文件,并在 Ubuntu 中相应地更新 /etc/default/ceph 文件:

    CLUSTER=site-a
    Copy to Clipboard Toggle word wrap
  5. site-b Ceph 配置文件和 RBD 密钥环文件从 site-b 监控器复制到 site-a 监控和客户端节点:

    # scp /etc/ceph/ceph.conf <user>@<site-a_mon-host-name>:/etc/ceph/site-b.conf
    # scp /etc/ceph/site-b.client.site-b.keyring root@<site-a_mon-host-name>:/etc/ceph/
    # scp /etc/ceph/ceph.conf user@<site-a_client-host-name>:/etc/ceph/site-b.conf
    # scp /etc/ceph/site-b.client.site-b.keyring user@<site-a_client-host-name>:/etc/ceph/
    Copy to Clipboard Toggle word wrap
    注意

    将 Ceph 配置文件从 site-b 监控节点传输到 site-a 监控和客户端节点的 scp 命令,将文件重命名为 site-b.conf。密钥环文件名保持不变。

  6. site-a RBD 密钥环文件从 site-a 监控节点复制到 site-a 客户端节点:

    # scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-a_client-host-name>:/etc/ceph/
    Copy to Clipboard Toggle word wrap
  7. site-a 集群客户端节点上创建一个名为 site-a.conf 的符号链接,指向 ceph.conf

    # cd /etc/ceph
    # ln -s ceph.conf site-a.conf
    Copy to Clipboard Toggle word wrap
  8. site-a 客户端节点上启用并启动 rbd-mirror 守护进程:

    systemctl enable ceph-rbd-mirror.target
    systemctl enable ceph-rbd-mirror@<client-id>
    systemctl start ceph-rbd-mirror@<client-id>
    Copy to Clipboard Toggle word wrap

    其中 <client-id > 是 rbd-mirror 守护进程将使用的 Ceph Storage 集群用户。用户必须具有对集群的适当 cephx 访问权限。如需更多信息,请参阅 Red Hat Ceph Storage 3 管理指南中的用户管理一 章。

    根据使用 site-a 的前导示例,运行以下命令:

    # systemctl enable ceph-rbd-mirror.target
    # systemctl enable ceph-rbd-mirror@site-a
    # systemctl start ceph-rbd-mirror@site-a
    Copy to Clipboard Toggle word wrap
  9. site-b 集群的监控节点上运行以下命令来启用位于 site-b 集群上的 数据池 镜像:

    # rbd mirror pool enable data pool
    Copy to Clipboard Toggle word wrap

    确保成功启用了镜像:

    # rbd mirror pool info data
    Mode: pool
    Peers: none
    Copy to Clipboard Toggle word wrap
  10. site-a 集群中的客户端节点运行以下命令来将 site-b 集群添加为 site-a 集群的对等点:

    # rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
    Copy to Clipboard Toggle word wrap

    确保已成功添加 peer:

    # rbd mirror pool info data
    Mode: pool
    Peers:
      UUID                                 NAME   CLIENT
      dc97bd3f-869f-48a5-9f21-ff31aafba733 site-b client.site-b
    Copy to Clipboard Toggle word wrap
  11. site-a 集群上的客户端节点检查镜像状态。

    # 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-16 15:45:31
    Copy to Clipboard Toggle word wrap
    # rbd mirror image status data/image2
    image1:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-16 15:55:33
    Copy to Clipboard Toggle word wrap

    镜像应处于 up+stopped 状态。在这里,up 表示 rbd-mirror 守护进程正在运行,stopped 意味着镜像不是从另一集群复制的目标。这是因为镜像是这个集群上的主要镜像。

    注意

    在以前的版本中,当设置单向镜像时,将镜像配置为复制到 site-b。这可以通过在 site-b 客户端节点上安装 rbd-mirror 来实现,以便它可以从 site-a 升级到 site-b。此时,site-a 集群已准备好镜像到,但镜像不处于需要它的状态。如果 site-a 上的镜像被降级且 site-b 上的镜像被提升,则以其他方向进行镜像。有关如何提升和降级镜像的详情,请参考 镜像配置

配置镜像镜像

  1. 如果尚未设置镜像,则设置一个镜像。

  2. 按照配置两个镜像 中的 配置池镜像一节中的 第 3 - 7 步操作。本节位于上面。
  3. site-a 集群中的客户端节点运行以下命令来将 site-b 集群添加为 site-a 集群的对等点:

    # rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
    Copy to Clipboard Toggle word wrap

    确保已成功添加 peer:

    # rbd mirror pool info data
    Mode: pool
    Peers:
      UUID                                 NAME   CLIENT
      dc97bd3f-869f-48a5-9f21-ff31aafba733 site-b client.site-b
    Copy to Clipboard Toggle word wrap
  4. site-a 集群上的客户端节点检查镜像状态。

    # 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-16 15:45:31
    Copy to Clipboard Toggle word wrap
    # rbd mirror image status data/image2
    image1:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-16 15:55:33
    Copy to Clipboard Toggle word wrap

    镜像应处于 up+stopped 状态。在这里,up 表示 rbd-mirror 守护进程正在运行,stopped 意味着镜像不是从另一集群复制的目标。这是因为镜像是这个集群上的主要镜像。

    注意

    在以前的版本中,当设置单向镜像时,将镜像配置为复制到 site-b。这可以通过在 site-b 客户端节点上安装 rbd-mirror 来实现,以便它可以从 site-a 升级到 site-b。此时,site-a 集群已准备好镜像到,但镜像不处于需要它的状态。如果 site-a 上的镜像被降级且 site-b 上的镜像被提升,则以其他方向进行镜像。有关如何提升和降级镜像的详情,请参考 镜像配置

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat