ceph的librados api解释
来源:互联网 发布:广联达软件官方下载 编辑:程序博客网 时间:2024/06/02 19:42
转至元数据起始
librados 的模块用于在客户端用来访问 rados对象存储设备, 其结构图如下:
如上图所示,各个模块的架构图。
librados就是 操作 rados 对象存储的接口。 其接口分为两种:一个是c 接口,其定义在include/librados.h 中。 一个是 c++ 接口,定义在include/librados.hpp中,实现都在librados.cc中实现。
本文档主要从流程上阐述librados.h中的函数作用,每个函数的具体作用可参考:http://ceph.com/docs/master/rados/api/librados/
接口主要分为五类:
- ceph集群句柄(rados client类的实例)的创建和销毁,配置,连接等,pool的创建和销毁,io上下文的创建和销毁等
使用librados进行IO操作之前必须的初始工作流程:
(1)创建一个集群句柄,实际上创建了一个rados的客户端(RadosClient类的实例)在rados的所有操作都是建立在rados client之上操作的,rados_create,
rados_create2,rados_create_with_context
(2)根据配置文件,命令行参数,环境变量配置集群句柄,rados_conf_read_file,rados_conf_parse_argv,rados_conf_parse_argv_remainder,rados_conf_parse_env
(3)连接集群,相当于使rados client能够时能集群通信,rados_connect
(4)连接成功之后就可以创建pool了,rados_pool_create,pool相当于ceph 集群中不同的命名空间,不同的pool有不同的 crush分布策略,复制级别,位置策略等等
(5)io上下文的创建,rados_ioctx_create,当io上下文创建成功之后就可以进行读写等io操作了。
除以上接口,还提供了指定配置的设置和获取,pool的查找和获取,pool空间和对象的统计,io上下文的获取等等操作
2. 快照相关接口,librados支持对于整个pool的快照,接口包括快照的创建和销毁,对象到快照版本的回滚,快照查询等等。
3. 同步IO操作接口
包括读,写,覆盖写,追加写,对象数据克隆,删,截断,获取和设置指定的扩展属性,批量获取扩展属性,迭代器遍历扩展属性,特殊键值对获取等等
4. 异步IO操作接口
包括异步读,异步写,异步覆盖写,异步追加写,异步删,librados还提供了对象的监视功能,通过rados_watch可以注册回调,当对象发生变化时会回调通知上层。
5. io操作组原子操作
即可以把对同一个对象的一系列io操作放到一个组里面,最后保证加入到组里的所有io操作保持原子性,要么全部成功,要么全部失败,而不会给用户呈现出文件系统不一致的问题。
包括创建read或write操作组,销毁操作组,向操作组里添加其他io操作等等
- ceph的librados api解释
- Ceph 源代码分析 -librados
- Ceph之Librados接口使用说明;
- ceph存储 ceph中librados相关
- Ceph学习——Librados与Osdc实现源码解析
- ceph-rest-api的使用
- ceph-rest-api的使用
- ceph rados_watch api Bug
- CEPH OBJECTSTORE API介绍
- Ceph Rest Api 文档
- ceph存储 FUSE API 的两种使用方法
- python使用Ceph API 查看image使用的大小
- 关于API的详细解释
- 聚宽API解释的笔记
- Compare 类的中文API解释
- 类加载器的一些API解释
- NestedScrollingChild NestedScrollingParent API的粗略中文解释
- rgw librados io
- ubuntu环境下重新编译内核
- Mustache php 版开源项目 流程 性能分析 以及优化
- hd 1996 汉诺塔VI
- 创建流水码
- MyEclipse启动时出现异常:An internal error occurred during: "Updating indexes".
- ceph的librados api解释
- 21 网络编程
- USACO Job Processing 解题报告
- socket套接字TCP API
- Julia: 从set 、setdiff和 setdiff!说起
- 再说中国剩余定理、扩展欧几里德和同余方程组
- java调用Weka中神经网络的算法(从数据库中取数据)
- JTree 添加删除节点
- shell编程学习笔记(1)