【CEPH】RBD mirror功能测试体验

RBD mirror功能介绍

    

    rbd mirror就是集群间数据块设备之间的备份。这个功能可以实现集群级别的备份,跨地理位置的数据备份。可以是主-备模式,也可以是主-主模式。

    如下图所示

    在这个 实现过程中,加入了新的守护进程rbd-mirror,负责集群到集群直接的数据同步。Jewel版本中,还只能实现一对一的备份。


配置及测试过程

   

前提

l  两个集群能相互通讯

扫描二维码关注公众号,回复: 1003527 查看本文章

l  两个集群有相同名字的Pool

l  备份集群需装有rbd-mirror包(可通过apt-getinstall rbd-mirror安装,若未启动,可通过rbd-mirror -f –cluster <cluster_name> --setuser ceph--setgroup ceph启动),如果是相互主备,则需在两个集群都装有rbd-mirror包

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 <pool-name>/<image-name> <feature-name>

例如

rbd feature enable rbd/mirrortest exclusive-lock
rbd feature enable rbd/mirrortest journaling

对指定Pool开启或者关闭,可使用命令

rbd mirror pool enable|disable <pool-name> <mode>

     例如

rbd mirror pool enable rbd image

配置

         为方便试验,本处配置采用直接在ceph.conf中直接加入字段rbd_default_features = 125。

         两个集群的状态信息分别如下

        

          

0.  配置/etc/hosts

分别在两个服务器上打开/etc/hosts,加入另一台服务器的服务器名和ip地址,例如

1.  配置默认feature值

分别在两个服务器上的/etc/ceph/ceph.conf加入字段rbd_default_features=125

2.  创建用于rbd mirror的pool,并激活mirror属性

分别在两个服务器上,创建pool,并激活mirror属性

ceph osd pool create mirror_test 8 8
rbd mirror pool enable mirror_test pool

3.  处理配置文件和keyring

本次配置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

4.  检测两个集群的连通性

5.  增加mirror peer

任一节点上执行以下命令

rbd --cluster local mirror pool peer add mirror_test client.admin@remote
rbd --cluster remote mirror pool peer add mirror_test client.admin@local


6.  检测peer状态

查询peer状态

7.  查看mirror池状态

如果health为OK状态,则表示创建成功

可能遇到问题


 出现以上问题的原因,是因为备份节点上没有安装rbd-mirror,安装后即可。若没有自动启动,可通过命令手动启动

rbd-mirror -f –cluster <cluster_name> --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/


猜你喜欢

转载自blog.csdn.net/u010317005/article/details/79312233