【ceph】librados客户端接口

本文详细介绍了Ceph的librados和librbd客户端接口,包括RBD架构概述、源码结构及主要操作。通过librados和librbd,可以进行创建存储池、创建和删除image、创建和管理snapshot、克隆image以及关闭链接等操作。此外,还提到了源码中各组件的实现和API接口的使用。
摘要由CSDN通过智能技术生成

Ceph的客户端是系统对外提供的功能接口,上层应用通过它访问ceph存储系统。

RADOS的客户端API

上述接口几乎包括了对Ceph集群和其中数据的所有访问功能。其中所谓集群的整体访问包括连接集群、创建存储池、删除存储池和获取集群状态等等。所谓对象访问是之对存储池中对象的访问,包括创建删除对象、向对象写数据或者追加数据和读对象数据等接口。上述功能通过Rados和IoCtx两个类实现,两个类的主要函数如图2所示(这里仅是示例,实际接口数量要多很多,具体参考源代码)。

图2 访问接口类图

https://www.freesion.com/article/9714523649/

Librados 架构图
Librados 架构图

1. librbd  &  librados介绍

Librbd模块实现了RBD接口,其基于Librados实现了对RBD的基本操作。

1.1 架构概述

 上层应用层访问RBD块设备有两种途径:librbd和krbd。其中librbd是一个属于librados的用户态接口库,而krbd是继承在GNU/Linux内核中的一个内核模块,通过用户态的rbd命令行工具,可以将RBD块设备映射为本地的一个块设备文件。

从RBD的架构图中可以看到,RBD块设备由于元数据信息少且访问不频繁,故RBD在ceph集群中不需要daemon守护进程将元数据加载到内存进行元数据访问加速,所有的元数据和数据操作直接与集群中的MON服务和OSD服务交互。其架构图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值