6.2. 使用命令行界面配置单向镜像
此流程配置池从主存储集群到辅助存储集群的单向复制。
使用单向复制时,您可以镜像到多个次要存储集群。
本节中的示例通过将主镜像作为 site-a
引用主存储集群和您将要复制镜像的辅助存储集群作为 site-b
来区分两个存储集群。这些示例中使用的池名称称为 data
。
先决条件
- 至少两个健康状态并运行 Red Hat Ceph Storage 集群。
- 对每个存储集群的 Ceph 客户端节点的根级别访问权限。
- 具有管理员级别功能的 CephX 用户。
流程
在两个站点上登录到
cephadm
shell:示例
[root@site-a ~]# cephadm shell [root@site-b ~]# cephadm shell
在
site-b
上,调度在二级集群中部署 mirror 守护进程:语法
ceph orch apply rbd-mirror --placement=NODENAME
示例
[ceph: root@site-b /]# ceph orch apply rbd-mirror --placement=host04
注意nodename
是要在二级集群中配置镜像的主机。在
site-a
上的镜像上启用日志功能。对于新镜像,使用
--image-feature
选项:语法
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE FEATURE
示例
[ceph: root@site-a /]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
注意如果已经启用了
exclusive-lock
,则使用journaling
作为唯一参数,否则会返回以下错误:one or more requested features are already enabled (22) Invalid argument
对于现有镜像,请使用
rbd feature enable
命令:语法
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE, FEATURE
示例
[ceph: root@site-a /]# rbd feature enable data/image1 exclusive-lock, journaling
要默认在所有新镜像中启用日志,请使用
ceph config set
命令设置配置参数:示例
[ceph: root@site-a /]# ceph config set global rbd_default_features 125 [ceph: root@site-a /]# ceph config show mon.host01 rbd_default_features
在两个存储集群中选择 mirroring 模式(池模式或镜像模式)。
启用 池模式 :
语法
rbd mirror pool enable POOL_NAME MODE
示例
[ceph: root@site-a /]# rbd mirror pool enable data pool [ceph: root@site-b /]# rbd mirror pool enable data pool
这个示例启用对名为
data
的完整池进行镜像。启用 镜像模式 :
语法
rbd mirror pool enable POOL_NAME MODE
示例
[ceph: root@site-a /]# rbd mirror pool enable data image [ceph: root@site-b /]# rbd mirror pool enable data image
这个示例在名为
data
的池上启用镜像模式镜像。注意要在池中为特定镜像启用镜像功能,请参阅 Red Hat Ceph Storage 块设备指南中的 启用镜像镜像 部分。
验证两个站点都已成功启用了镜像:
语法
rbd mirror pool info POOL_NAME
示例
[ceph: root@site-a /]# rbd mirror pool info data Mode: pool Site Name: c13d8065-b33d-4cb5-b35f-127a02768e7f Peer Sites: none [ceph: root@site-b /]# rbd mirror pool info data Mode: pool Site Name: a4c667e2-b635-47ad-b462-6faeeee78df7 Peer Sites: none
在 Ceph 客户端节点上,引导存储集群对等点。
创建 Ceph 用户帐户,并将存储集群对等注册到池:
语法
rbd mirror pool peer bootstrap create --site-name PRIMARY_LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKEN
示例
[ceph: root@rbd-client-site-a /]# rbd mirror pool peer bootstrap create --site-name site-a data > /root/bootstrap_token_site-a
注意这个示例 bootstrap 命令创建
client.rbd-mirror.site-a
和client.rbd-mirror-peer
Ceph 用户。-
将 bootstrap 令牌文件复制到
site-b
存储集群。 在
site-b
存储集群中导入 bootstrap 令牌:语法
rbd mirror pool peer bootstrap import --site-name SECONDARY_LOCAL_SITE_NAME --direction rx-only POOL_NAME PATH_TO_BOOTSTRAP_TOKEN
示例
[ceph: root@rbd-client-site-b /]# rbd mirror pool peer bootstrap import --site-name site-b --direction rx-only data /root/bootstrap_token_site-a
注意对于单向 RBD 镜像功能,您必须使用
--direction rx-only
参数,因为在引导对等时双向镜像是默认设置。
要验证镜像状态,请从主站点和次要站点的 Ceph monitor 节点运行以下命令:
语法
rbd mirror image status POOL_NAME/IMAGE_NAME
示例
[ceph: root@mon-site-a /]# rbd mirror image status data/image1 image1: global_id: c13d8065-b33d-4cb5-b35f-127a02768e7f state: up+stopped description: remote image is non-primary service: host03.yuoosv on host03 last_update: 2021-10-06 09:13:58
在这里,
up
表示rbd-mirror
守护进程正在运行,stopped
意味着此镜像不是从另一个存储集群复制的目标。这是因为镜像是这个存储集群的主要部分。示例
[ceph: root@mon-site-b /]# rbd mirror image status data/image1 image1: global_id: c13d8065-b33d-4cb5-b35f-127a02768e7f