RBD mirror功能介绍
rbd mirror就是集群间数据块设备之间的备份。这个功能可以实现集群级别的备份,跨地理位置的数据备份。可以是主-备模式,也可以是主-主模式。
如下图所示
在这个 实现过程中,加入了新的守护进程rbd-mirror,负责集群到集群直接的数据同步。Jewel版本中,还只能实现一对一的备份。
配置及测试过程
l 两个集群能相互通讯
l 两个集群有相同名字的Pool
l 备份集群需装有rbd-mirror包(可通过apt-getinstall rbd-mirror安装,若未启动,可通过rbd-mirror -f –cluster
l 要进行rbd mirror特性的pool或者rbd,需开启exclusive-lock和journal属性
首先配置两个集群,配置的集群都没有修改名称,集群的名称都是为ceph。通过配置文件来实现不同集群的识别,集群环境为单主机集群,j-1和j-2两台机器。j-1为local集群,j-2为remote集群。本试验的目的是相互主备。
在RBD的features中,源代码定义如下
#define RBD_FEATURE_LAYERING (1ULL<<0)
#define RBD_FEATURE_STRIPINGV2 (1ULL<<1)
#define RBD_FEATURE_EXCLUSIVE_LOCK (1ULL<<2)
#define RBD_FEATURE_OBJECT_MAP (1ULL<<3)
#define RBD_FEATURE_FAST_DIFF (1ULL<<4)
#define RBD_FEATURE_DEEP_FLATTEN (1ULL<<5)
#define RBD_FEATURE_JOURNALING (1ULL<<6)
#define RBD_FEATURE_DATA_POOL (1ULL<<7)
通过命令查看RBD默认的features值
RBD默认的features值为61,journal的特征值为1<<6=64,61+65=125,因此在ceph.conf里加入字段
rbd_default_features= 125
这样创建的所有RBD默认开启journal属性。如果不想所有的rbd都开启备份模式,还可以创建后再开启。
对指定rbd块开启,可使用命令
rbd feature enable /
例如
rbd feature enable rbd/mirrortest exclusive-lock
rbd feature enable rbd/mirrortest journaling
对指定Pool开启或者关闭,可使用命令
rbd mirror pool enable|disable
例如
rbd mirror pool enable rbd image
为方便试验,本处配置采用直接在ceph.conf中直接加入字段rbd_default_features = 125。
两个集群的状态信息分别如下
分别在两个服务器上打开/etc/hosts,加入另一台服务器的服务器名和ip地址,例如
分别在两个服务器上的/etc/ceph/ceph.conf加入字段rbd_default_features=125
分别在两个服务器上,创建pool,并激活mirror属性
ceph osd pool create mirror_test 8 8
rbd mirror pool enable mirror_test pool
本次配置j-1配置为local,j-2配置为remote
在j-1上输入以下命令
remote_host=j-2
scp /etc/ceph/ceph.conf ${remote_host}:/etc/ceph/local.conf
scp /etc/ceph/ceph.client.admin.keyring ${remote_host}:/etc/ceph/local.client.admin.keyring
cp /etc/ceph/ceph.conf /etc/ceph/local.conf
cp /etc/ceph/ceph.client.admin.keyring /etc/ceph/local.client.admin.keyring
在j-2上执行以下命令
local_host=j-1
scp /etc/ceph/ceph.conf ${local_host}:/etc/ceph/remote.conf
scp /etc/ceph/ceph.client.admin.keyring ${local_host}:/etc/ceph/remote.client.admin.keyring
cp /etc/ceph/ceph.conf /etc/ceph/remote.conf
cp /etc/ceph/ceph.client.admin.keyring /etc/ceph/remote.client.admin.keyrin
执行完成后分别在两个服务器上修改权限
chown ceph:ceph –R /etc/ceph
任一节点上执行以下命令
rbd --cluster local mirror pool peer add mirror_test client.admin@remote
rbd --cluster remote mirror pool peer add mirror_test client.admin@local
查询peer状态
如果health为OK状态,则表示创建成功
出现以上问题的原因,是因为备份节点上没有安装rbd-mirror,安装后即可。若没有自动启动,可通过命令手动启动
rbd-mirror -f –cluster --setuser ceph --setgroup ceph
尚不清楚开启journal后对rbd性能的影响,以及备份数据时对性能的影响
http://www.admin5.com/article/20170421/738692.shtml
https://ceph.com/planet/rbd-mirror%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97-%E5%8D%95%E5%90%91%E5%A4%87%E4%BB%BD/