189 8069 5689

jewel中rbd-mirror有什么用

这篇文章主要介绍jewel中rbd-mirror有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联公司是一家专业提供噶尔企业网站建设,专注与网站建设、网站制作、H5技术、小程序制作等业务。10年已为噶尔众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

rbd-mirror是jewel版本新加入的一个特性,目的是在不同的ceph集群中同步rbd设备上的数据。

rbd-mirror的内部实现如下图所示:

jewel中rbd-mirror有什么用

在两个相互独立的ceph集群中分别多了一个守护进程rbd-mirror,该守护进程负责同步rbd设备上的数据。rbd-mirror的主要处理流程如下图所示:

jewel中rbd-mirror有什么用

用户操作块设备向块设备中写入数据时,librbd首先将写操作写入日志,当日志写入完毕后应答用户写操作完毕。之后日志向本地块设备写入数据,于此同时日志通过rbd-mirror守护进程将日志发送到对端ceph集群。对端ceph集群将日志内容写入到块设备中,由此完成块设备的同步功能。由此看到rbd-mirror的核心在于rbd-mirror守护进程和块设备写入的日志。

rbd-mirror动手实践部分如下:

1、集群环境。

    rbd-mirror的测试环境采用手动编译ceph源代码的方式安装并配置ceph集群,具体操作过程请参考http://my.oschina.net/linuxhunter/blog/682013。集群名称分别是ceph和ceph3。测试rbd-mirror使用的用户是各自集群中的admin用户(当然可以自行创建一个专门为rbd-mirror的特定用户)。

2、rbd-mirror设置。

    1)复制ceph配置文件和admin用户的keyring到对端ceph集群。

        将ceph集群中的ceph.conf和ceph.client.admin.keyring复制到ceph3集群中的/etc/ceph目录下,于此同时将ceph3集群中的ceph3.conf和ceph3.client.admin.keyring复制到ceph集群中。这样ceph集群可以查看ceph3集群的状态,ceph3集群也可以查看ceph集群的状态。

    2)在两个ceph集群中创建相同名称的pool。

        #rbd --cluster ceph osd pool create image-pool 64 64

        #rbd --cluster ceph3 osd pool create image-pool 64 64

    3)使能mirror功能。

        #rbd --cluster ceph mirror pool enable image-pool pool

        #rbd --cluster ceph3 mirror pool enable image-pool pool

    4)添加cluster peer。

        #rbd --cluster ceph mirror pool peer add image-pool client.admin@ceph3

        #rbd --cluster ceph3 mirror pool peer add image-pool client.admin@ceph

    5)启动rbd-mirror守护进程。

        #rbd-mirror -f --cluster ceph --setuser ceph --setgroup ceph

        #rbd-mirror -f --cluster ceph3 --setuser ceph --setgroup ceph

    6)查看rbd-mirror状态。

        #rbd --cluster ceph mirror pool info

Mode: image

Peers: 

  UUID                                 NAME  CLIENT       

  30018a0a-52b6-499e-b8f2-174d61eeeafe ceph3 client.admin 

        #rbd --cluster ceph mirror pool status 

health: OK

images: 0 total

        到此rbd-mirror环境已经成功搭建完毕。

3、rbd-mirror测试。

    1)在ceph集群中image-pool中创建一个块设备。

        #rbd --cluster ceph create image-pool/test1 --size 10240 --image-feature exclusive-lock, journaling

    2)向ceph集群中image-pool中的块设备写入数据。

        #mkdir -p /tmp/rbd

        #rbd-fuse -p image-pool /tmp/rbd

        #mkfs.ext4 /tmp/rbd/test1

        #mount -o loop /tmp/rbd/test1 /mnt/

        #echo "hello, world" > /mnt/test.txt

        #umount /mnt

        #fusermount -u /tmp/rbd

    3)在ceph3集群中查看image-pool中的块设备信息。

        #rbd --cluster ceph3 -p image-pool ls

test1

        此时在ceph3集群中就可以看到刚刚在ceph集群中创建出来的test1块设备;

    4)在ceph3集群中挂载块设备且查看块设备中的内容。

        #mkdir -p /tmp/rbd

        #rbd-fuse -p image-pool /tmp/rbd

        #mount -o loop /tmp/rbd/test1 /mnt

        #ls /mnt/

test1.txt

        #cat /mnt/test1.txt

hello,world

        #umount /mnt

        #fusermount -u /tmp/rbd

4、补充说明。

    1)当前版本的rbd-mirror功能只支持集群之间一对一的mirror,并不支持一对多的mirror;

    2)做rbd-mirror的两个集群的pool名称必须一致;

以上是“jewel中rbd-mirror有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


本文名称:jewel中rbd-mirror有什么用
分享链接:http://jkwzsj.com/article/gggjdg.html

其他资讯