4.4. 配置一次性镜像
单向镜像意味着一个集群中的主镜像会在次要集群中复制。在辅助集群中,复制的镜像不是主镜像;即块设备客户端无法写入镜像。
单向镜像支持多个次要站点。要在多个次要站点上配置单向镜像,请在每个次要集群中重复以下步骤。
单向镜像适合维护镜像的崩溃一致性副本。单向镜像可能并不适用于所有情况,如使用次要镜像与 OpenStack 自动故障转移和故障恢复,因为在使用单向镜像时集群无法故障恢复。在这些情况下,使用双向镜像。详情请查看 第 4.5 节 “配置两个镜像功能”。
以下流程假设:
-
您有两个集群,您想要将镜像从主集群复制到二级集群。就这个过程而言,我们将把主镜像作为
site-a集群和您要复制镜像的集群作为site-b集群来区分两个集群。有关安装 Ceph 存储集群的详情,请参考 Red Hat Enterprise Linux 安装指南 或 Ubuntu 安装指南。 -
site-b集群附加了一个客户端节点,其中rbd-mirror守护进程将运行。此守护进程将连接到site-a集群,将镜像同步到site-b集群。有关安装 Ceph 客户端的详情,请参考 Red Hat Enterprise Linux 安装指南 或 Ubuntu 安装指南 -
两个集群中都创建具有相同名称的池。在以下示例中,池命名为
data。详情请参阅 存储策略指南中的 池 章节 或 Red Hat Ceph Storage 3。 -
该池包含您要镜像的镜像,并在它们上启用日志。在以下示例中,镜像名为
image1和image2。详情请参阅 启用日志。
配置块设备镜像的方法有两种:
配置池镜像
-
确保
数据池中的所有镜像都启用了专用锁定和日志。详情请查看 第 4.1 节 “启用日志”。 在
site-b集群的客户端节点上,安装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-b集群的客户端节点上,通过在适当的文件中添加CLUSTER选项来指定集群名称。在 Red Hat Enterprise Linux 上,更新/etc/sysconfig/ceph文件,并在 Ubuntu 中相应地更新/etc/default/ceph文件:CLUSTER=site-b
CLUSTER=site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这两个集群中,创建具有访问
数据池权限的用户,并将其密钥环输出到 <cluster-name>.client.<user-name>.keyring文件。在
site-a集群中的 monitor 主机上,创建client.site-a用户,并将密钥环输出到site-a.client.site-a.keyring文件:ceph auth get-or-create client.site-a mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-a.client.site-a.keyring
# ceph auth get-or-create client.site-a mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-a.client.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-b集群中的 monitor 主机上,创建client.site-b用户,并将密钥环输出到site-b.client.site-b.keyring文件:ceph auth get-or-create client.site-b mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-b.client.site-b.keyring
# ceph auth get-or-create client.site-b mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-b.client.site-b.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow
将 Ceph 配置文件和新创建的 RBD 密钥环文件从
site-a监控节点复制到site-b监控和客户端节点:scp /etc/ceph/ceph.conf <user>@<site-b_mon-host-name>:/etc/ceph/site-a.conf scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-b_mon-host-name>:/etc/ceph/ scp /etc/ceph/ceph.conf <user>@<site-b_client-host-name>:/etc/ceph/site-a.conf scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-b_client-host-name>:/etc/ceph/
# scp /etc/ceph/ceph.conf <user>@<site-b_mon-host-name>:/etc/ceph/site-a.conf # scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-b_mon-host-name>:/etc/ceph/ # scp /etc/ceph/ceph.conf <user>@<site-b_client-host-name>:/etc/ceph/site-a.conf # scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-b_client-host-name>:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意将 Ceph 配置文件从
site-a监控节点传输到site-b监视器和客户端节点的scp命令,将文件重命名为site-a.conf。密钥环文件名保持不变。在
site-b集群客户端节点上创建一个名为site-b.conf的符号链接,指向ceph.conf:cd /etc/ceph ln -s ceph.conf site-b.conf
# cd /etc/ceph # ln -s ceph.conf site-b.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-b客户端节点上启用并启动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-b的前导示例,运行以下命令:systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@site-b systemctl start ceph-rbd-mirror@site-b
# systemctl enable ceph-rbd-mirror.target # systemctl enable ceph-rbd-mirror@site-b # systemctl start ceph-rbd-mirror@site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-a集群的监控节点上运行以下命令来启用位于site-a集群上的数据池镜像: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-b集群中的客户端节点运行以下命令来将site-a集群添加为site-b集群的对等点:rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-b
# rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-bCopy 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 7e90b4ce-e36d-4f07-8cbc-42050896825d site-a client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一段时间后,检查
image1和image2镜像的状态。如果它们处于up+replaying状态,则镜像可以正常工作。从site-b集群中的监控节点运行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置镜像镜像
-
确保
数据池中的所选镜像启用了专用锁定和日志。详情请查看 第 4.1 节 “启用日志”。 - 按照 配置池镜像 步骤中的步骤 2 - 7。
在
site-a集群中的监控节点中,启用数据池的镜像镜像:rbd mirror pool enable data image
# rbd mirror pool enable data imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保成功启用了镜像:
rbd mirror pool info data
# rbd mirror pool info data Mode: image Peers: noneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-b集群上的客户端节点中,将site-a集群添加为对等集群:rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-b
# rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保已成功添加 peer:
rbd mirror pool info data
# rbd mirror pool info data Mode: image Peers: UUID NAME CLIENT 9c1da891-b9f4-4644-adee-6268fe398bf1 site-a client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
site-a集群的监控节点中,明确启用image1和image2镜像的镜像镜像:rbd mirror image enable data/image1 rbd mirror image enable data/image2
# rbd mirror image enable data/image1 Mirroring enabled # rbd mirror image enable data/image2 Mirroring enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一段时间后,检查
image1和image2镜像的状态。如果它们处于up+replaying状态,则镜像可以正常工作。从site-b集群中的监控节点运行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow