接上文......
三、镜像模式配置
3.1 配置 rbd features 值- 对指定 rbd image 启用或禁用 features 属性
shell> rbd feature enable|disable {pool-name}/{image-name} {feature-name}
3.2 创建存储池
# 在主集群(以下简称 local )和备份集群(以下简称 remote )中分别执行
shell> ceph osd pool create 91donkey_image 128 128
pool '91donkey_image' created
shell> ceph osd pool application enable 91donkey_image rbd
enabled application 'rbd' on pool '91donkey_image'
3.3 启用存储池mirror功能
# 在 local 和 remote 两个集群中分别执行
# 语法:rbd mirror pool enable|disable {pool-name} {mode}
shell> rbd mirror pool enable 91donkey_image image
3.4 创建RBD
# local 集群
shell> rbd create -p 91donkey_image volume-312bf678-011a-11ea-a3ba-5254003111cb --size=10240
3.5 查看 local 集群的 image 是否具有 journaling 属性
开启 exclusive-lock 和 journaling 属性后才会记录 image 的事件,才可以被 rbd-mirror 检测到并同步到从集群
shell> rbd info 91donkey_image/volume-312bf678-011a-11ea-a3ba-5254003111cb
rbd image 'volume-312bf678-011a-11ea-a3ba-5254003111cb':
size 10 GiB in 2560 objects
order 22 (4 MiB objects)
id: 78a746b8b4567
block_name_prefix: rbd_data.78a746b8b4567
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
op_features:
flags:
create_timestamp: Thu Nov 7 12:51:39 2019
3.6 禁用部分 features 属性
shell> rbd feature disable 91donkey_image/volume-312bf678-011a-11ea-a3ba-5254003111cb fast-diff
shell> rbd feature disable 91donkey_image/volume-312bf678-011a-11ea-a3ba-5254003111cb object-map
shell> rbd feature disable 91donkey_image/volume-312bf678-011a-11ea-a3ba-5254003111cb deep-flatten
# 再次查看 local 集群的 image 属性
shell> rbd info 91donkey_image/volume-312bf678-011a-11ea-a3ba-5254003111cb
rbd image 'volume-312bf678-011a-11ea-a3ba-5254003111cb':
size 10 GiB in 2560 objects
order 22 (4 MiB objects)
id: 78a746b8b4567
block_name_prefix: rbd_data.78a746b8b4567
format: 2
features: layering, exclusive-lock
op_features:
flags:
create_timestamp: Thu Nov 7 12:51:39 2019
# 开启 journaling 属性
shell> rbd feature enable 91donkey_image/volume-312bf678-011a-11ea-a3ba-5254003111cb journaling
3.7 增加同伴集群
把 local 集群和 remote 集群设为同伴,这个是为了让 rbd-mirror 进程找到它 peer 的集群存储池
# 语法: rbd mirror pool peer add {pool-name} {client-name}@{cluster-name}
# local 集群
shell> rbd mirror pool peer add 91donkey_image client.admin@remote
# remote 集群
shell> rbd mirror pool peer add 91donkey_image client.admin@local
备注:删除peer的语法,rbd mirror pool peer remove {pool-name} {peer-uuid}
3.8 查看 peer 的情况
- local 集群

- remote 集群

- 3.9 将镜像文件开启 mirroring 功能
shell> rbd mirror image enable -p 91donkey_image volume-312bf678-011a-11ea-a3ba-5254003111cb
- 3.10 查看 mirror pool 状态
shell> rbd mirror pool status 91donkey_image --verbose
- 3.11 集群间配置文件分发
# local 集群
shell> scp /etc/ceph/ceph.conf :/etc/ceph/local.conf
shell> scp /etc/ceph/ceph.client.admin.keyring :/etc/ceph/local.client.admin.keyring
# remote 集群
shell> scp /etc/ceph/ceph.conf :/etc/ceph/remote.conf
shell> scp /etc/ceph/ceph.client.admin.keyring :/etc/ceph/remote.client.admin.keyring
# local and remote 集群
shell> chown -R ceph.ceph /etc/ceph
- 3.12 开启 rbd-mirror 的同步进程
需要在两个集群上都配置,它会同时连接本地和远程的集群
shell> yum -y install rbd-mirror
# local 集群(-m 指定本集群的monitor ip,本例为10.20.58.191)
shell> rbd-mirror -m 10.20.58.191 --log-file=/var/log/ceph/ceph.rbd.mirror.log -i admin --setuser ceph --setgroup ceph
# remote 集群(-m 指定本集群的monitor ip,本例为10.20.50.71)
shell> rbd-mirror -m 10.20.50.71 --log-file=/var/log/ceph/ceph.rbd.mirror.log -i admin --setuser ceph --setgroup ceph
- 3.13 配置 rbd-mirror 开机启动
```
# 修改集群名字(如果集群自定义了名字,则需要修改)
# local 集群
shell> vim /usr/lib/systemd/system/ceph-rbd-mirror@.service
```默认集群名```
Environment=CLUSTER=ceph
```自定义的集群名```
Environment=CLUSTER=91donkey_local
shell> systemctl start ceph-rbd-mirror@admin
# remote 集群
shell> vim /usr/lib/systemd/system/ceph-rbd-mirror@.service
```默认集群名```
Environment=CLUSTER=ceph
```自定义的集群名```
Environment=CLUSTER=91donkey_remote
shell> systemctl start ceph-rbd-mirror@admin
主集群

mirror集群

作者:龍龍小宝
