一、常用接口如下
块接口 | 特点 |
---|---|
KERNELRBD | 内核态接口,可map到本地当块设备使用 |
LIBRBD | 用户态接口,安全,稳定,开发快,特性支持多,带缓存 |
RBD-NBD | Ceph宝石版本上新增功能,内核态接口,但调用的用户态 的LIBRBD,大块读写时较内核RBD快。 |
二、接口区别
2.1 rbd和rbd-nbd区别
rbd:
- 使用的是内核态的rbd模块访问ceph存储集群
- 如果ceph版本比较新,内核版本较旧时,可能会导致image的feature内核不支持,导致map挂载不上
- 如果ceph集群不可用,client端会夯死(进程状态为D),需要重启客户端甚至重启服务器进行修复
rbd-nbd:
- 使用用户态librbd来访问ceph存储集群
- 对内核版本无要求,支持image的所有feature
- 通过librbd这个用户空间通过nbd的内核模块实现了内核级别的驱动,稳定性和性能都有保障
- 如果ceph集群不可用,client不会夯死,会继续在挂载目录(已变成本地目录)进行读写操作;ceph集群恢复后,写在本地目录的数据如果不进行合并操作,可能会被新的远程目录覆盖