jewel中rbd

61次阅读
没有评论

共计 2417 个字符,预计需要花费 7 分钟才能阅读完成。

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

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

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

在两个相互独立的 ceph 集群中分别多了一个守护进程 rbd-mirror,该守护进程负责同步 rbd 设备上的数据。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 有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2417字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)