管中窥豹SPDK RBD bdev 模块

点击上方蓝字 关注我们吧

杨子夜 ,Intel 存储软件开发工程师

Ceph[1] 作为一个开源很久的分布式文件系统,至今依然被广泛使用。各种Linux 发行版本也都集成了Ceph相关的软件包, 用户可以非常方便地安装、配置以及搭建Ceph集群,从而对外提供各种存储相关的服务。目前在Ceph社区也有很多工作在继续优化Ceph这个开源的解决方案。在这篇文章中, 我们的重点不是介绍怎么优化Ceph,而是介绍SPDK [2]项目中的RBD bdev (RBD块设备模块)。这个模块主要是利用Ceph的librados/librbd的客户端软件库,把Ceph集群的RBD pool中的image file (镜像文件),转化为SPDK 定义的块设备。最终这个块设备可以被各类SPDK的target 程序使用(诸如SPDK NVMe-oF target, Vhost target, iSCSI target),充当Ceph的存储网关服务,对真正的客户端应用提供块设备服务。

SDPK RBD bdev module介绍 

SPDK RBD bdev 模块属于SPDK的bdev 这个系统(SPDK bdev subsystem),需要根据SPDK bdev相关头文件定义的接口实现需要的功能,比如对于块设备READ/WRITE/FLUSH等操作的支持。图1给出了RBD 模块的典型使用场景。作为SPDK BDEV模块的一员,它可以被SPDK iSCSI/vhost-scsi/NVMe-oF target使用。另外这个模块负责连接到Ceph集群中,主要依赖于Ceph的librbd/librados 软件库。

图 1  SPDK Ceph RBD bdev桥接Ceph和 各类SPDK target 程序

在SPDK RBD bdev 模块中,我们采用了和其他应用程序一样的4个调用步骤来进行一个Ceph的rbd image打开操作(如表一所示)。

  1. Rados_cluster object (数据结构:rados_t)的创建。

  2. Rados_cluster obje

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值