4.5. 配置两个镜像功能
双向镜像允许您在两个集群之间以任一方向复制镜像。它不允许您从任一集群中写入同一镜像,并更改传播。镜像从集群提升或降级,以更改从中写入的位置,以及它同步的位置。
以下流程假设:
-
您有两个集群,您想要以任一方向在它们间复制镜像。在以下示例中,集群被称为
site-a和site-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。 -
该池包含您要镜像的镜像,并在它们上启用日志。在以下示例中,镜像名为
image1和image2。详情请参阅 启用日志。
配置块设备镜像的方法有两种:
- 池镜像 :要镜像池中的所有镜像,请遵循下面立即 配置池镜像。
- 镜像镜像 : 要在池中镜像选择镜像,请遵循 配置镜像镜像(mirror )。
配置池镜像
-
确保
数据池中的所有镜像都启用了专用锁定和日志。详情请查看 第 4.1 节 “启用日志”。 - 按照配置单向镜像 中的等同的 配置池部分中的第 2 - 7 步设置镜像 ( mirror)的方法
在
site-a集群的客户端节点上,安装rbd-mirror软件包。软件包由 Red Hat Ceph Storage 3 Tools 存储库提供。Red Hat Enterprise Linux
yum install rbd-mirror
# yum install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ubuntu
sudo apt-get install rbd-mirror
$ sudo apt-get install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-a集群的客户端节点上,通过在适当的文件中添加CLUSTER选项来指定集群名称。在 Red Hat Enterprise Linux 上,更新/etc/sysconfig/ceph文件,并在 Ubuntu 中相应地更新/etc/default/ceph文件:CLUSTER=site-a
CLUSTER=site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
site-bCeph 配置文件和 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/
# 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 Copied! Toggle word wrap Toggle overflow 注意将 Ceph 配置文件从
site-b监控节点传输到site-a监控和客户端节点的scp命令,将文件重命名为site-b.conf。密钥环文件名保持不变。将
site-aRBD 密钥环文件从site-a监控节点复制到site-a客户端节点:scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-a_client-host-name>:/etc/ceph/
# scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-a_client-host-name>:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-a集群客户端节点上创建一个名为site-a.conf的符号链接,指向ceph.conf:cd /etc/ceph ln -s ceph.conf site-a.conf
# cd /etc/ceph # ln -s ceph.conf site-a.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-a客户端节点上启用并启动rbd-mirror守护进程:systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@<client-id> systemctl start ceph-rbd-mirror@<client-id>
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@<client-id> systemctl start ceph-rbd-mirror@<client-id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<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
# systemctl enable ceph-rbd-mirror.target # systemctl enable ceph-rbd-mirror@site-a # systemctl start ceph-rbd-mirror@site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-b集群的监控节点上运行以下命令来启用位于site-b集群上的数据池镜像:rbd mirror pool enable data pool
# rbd mirror pool enable data poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保成功启用了镜像:
rbd mirror pool info data
# rbd mirror pool info data Mode: pool Peers: noneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
site-a集群中的客户端节点运行以下命令来将site-b集群添加为site-a集群的对等点:rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
# rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保已成功添加 peer:
rbd mirror pool info data
# rbd mirror pool info data Mode: pool Peers: UUID NAME CLIENT dc97bd3f-869f-48a5-9f21-ff31aafba733 site-b client.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
site-a集群上的客户端节点检查镜像状态。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像应处于
up+stopped状态。在这里,up表示rbd-mirror守护进程正在运行,stopped意味着镜像不是从另一集群复制的目标。这是因为镜像是这个集群上的主要镜像。注意在以前的版本中,当设置单向镜像时,将镜像配置为复制到
site-b。这可以通过在site-b客户端节点上安装rbd-mirror来实现,以便它可以从site-a升级到site-b。此时,site-a集群已准备好镜像到,但镜像不处于需要它的状态。如果site-a上的镜像被降级且site-b上的镜像被提升,则以其他方向进行镜像。有关如何提升和降级镜像的详情,请参考 镜像配置。
配置镜像镜像
如果尚未设置镜像,则设置一个镜像。
- 按照配置 一次性镜像 中的 配置池镜像 一节中的第 2 -7 步
- 按照配置 单向镜像指南中的 配置镜像镜像一节中的 第 3 -5 步
- 按照配置两个镜像 中的 配置池镜像一节中的 第 3 - 7 步操作。本节位于上面。
从
site-a集群中的客户端节点运行以下命令来将site-b集群添加为site-a集群的对等点:rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
# rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保已成功添加 peer:
rbd mirror pool info data
# rbd mirror pool info data Mode: pool Peers: UUID NAME CLIENT dc97bd3f-869f-48a5-9f21-ff31aafba733 site-b client.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
site-a集群上的客户端节点检查镜像状态。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像应处于
up+stopped状态。在这里,up表示rbd-mirror守护进程正在运行,stopped意味着镜像不是从另一集群复制的目标。这是因为镜像是这个集群上的主要镜像。注意在以前的版本中,当设置单向镜像时,将镜像配置为复制到
site-b。这可以通过在site-b客户端节点上安装rbd-mirror来实现,以便它可以从site-a升级到site-b。此时,site-a集群已准备好镜像到,但镜像不处于需要它的状态。如果site-a上的镜像被降级且site-b上的镜像被提升,则以其他方向进行镜像。有关如何提升和降级镜像的详情,请参考 镜像配置。