ceph 接口的接口有哪些

ceph的librados api解释
librados 的模块用于在客户端用来访问 rados对象存储设备, 其结构图如下:
如上图所示,各个模块的架构图。
librados就是 操作 rados 对象存储的接口。 其接口分为两种:一个是c 接口,其定义在include/librados.h 中。 一个是 c++ 接口,定义在include/librados.hpp中,实现都在中实现。
本文档主要从流程上阐述librados.h中的函数作用,每个函数的具体作用可参考:
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上下文的获取等等操作
快照相关接口,librados支持对于整个pool的快照,接口包括快照的创建和销毁,对象到快照版本的回滚,快照查询等等。
同步IO操作接口
包括读,写,覆盖写,追加写,对象数据克隆,删,截断,获取和设置指定的扩展属性,批量获取扩展属性,迭代器遍历扩展属性,特殊键值对获取等等
异步IO操作接口
包括异步读,异步写,异步覆盖写,异步追加写,异步删,librados还提供了对象的监视功能,通过rados_watch可以注册回调,当对象发生变化时会回调通知上层。
io操作组原子操作
即可以把对同一个对象的一系列io操作放到一个组里面,最后保证加入到组里的所有io操作保持原子性,要么全部成功,要么全部失败,而不会给用户呈现出文件系统不一致的问题。
包括创建read或write操作组,销毁操作组,向操作组里添加其他io操作等等
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!ceph对象存储使用swift接口,很多命令不太明白,有偿求指导? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。2被浏览504分享邀请回答13 条评论分享收藏感谢收起你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
在Ceph支持的三种接口中,块存储(Librdb)是目前最稳定且达到生产环境要求的接口。本文将step by step向你演示如何将Rancher与Ceph-RBD块存储对接。
概要演示环境说明整个测试环境由以下2台本地虚拟机组成,相关信息说明如下:
引言Librbd(RBD)是Ceph提供的块存储库,其利用Rados提供的API实现对卷的管理和操作。就目前而言,在Ceph支持的三种接口Posix(CephFS)、块存储(Librbd)和对象存储(RadosGW)接口中,块存储是目前最稳定且达到生产环境要求的接口。Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内多个OSD 。Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。Ceph 的 RADOS 块设备(RBD)使用内核模块或 librbd 库与 OSD 交互。
Rancher-RBD安装Ceph 服务端安装如果没有Ceph 服务器,可以通过容器运行一个Ceph 服务器 DEMO环境:
docker&run&-d&--net=host&-v&/etc/ceph:/etc/ceph&-e&MON_IP=192.168.1.11&&-e
CEPH_PUBLIC_NETWORK=192.168.1.0/24&ceph/demo:tag-build-master-jewel-ubuntu-16.04
IP地址根据实际情况修改。
通过scp命令,把Ceph 服务容器所在宿主机/etc/ceph路径下所有文件复制到Rancher 环境下所有节点的相同路径下。
Ceph-RBD驱动插件安装添加自定义应用商店
进入 系统管理|系统设置 添加一个名为Ceph的自定义商店
名称:Ceph
分支:master
RBD驱动安装
进入应用商店,搜索RBD进行安装。安装完成后:
再进 系统架构|存储 查看,显示两个节点:
安装测试应用应用安装新建一个名为myapp的空应用栈并添加myapp服务:
红色线框为配置重点:
使用驱动卷插件与使用本地卷驱动有所区别, 使用本地卷驱动添加卷时应该写 /AA/BB:/CC/DD,前后都要为路径; 使用驱动卷插件时应该写为 A:/BB/CC 。这个的A为一个卷名,不能是路径。
因为是Ceph存储,这里需要填卷驱动为:rancher-rbd 。部署好之后如图:
查看 基础架构|存储,容器卷卷名为:myapp
数据存储测试
此时我们看到容器是运行在 :node1上,容器名为:myapp-myapp-1。
通过执行命令登录容器,并向/root下写入test文件。
接着把这个服务容器删除,删除后myapp应用栈为空:
在空应用栈中再添加一个服务,为了易于区分,重新命名为myapp2,并手动调度容器运行到node2上。
PS:新建的服务,参数中的卷名与卷映射路径必须相同,卷驱动也要相同。
点击创建,服务成功运行在node2上。
基础架构|存储,容器卷卷名还为:myapp
进入容器的/root目录查看创建的文件
文件依然存在。此时容器是在node2上,说明文件并非保存在节点本地,证明Ceph存储对接成功。
原文来源:
9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。
CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!
11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,请戳
要回复文章请先或
Rancher是业界顶尖的企业级容器管理平台,为容器提供全套的基础架构服务,是全球唯一提供Kubernetes、Mesos和Swarm的企业级分发版和商业技术支持的容器管理平台。Aggregated news from external sources
Array鏌ョ湅ceph闆嗙兢琚?摢浜涘?鎴风?杩炴帴
鎴戜滑鍦ㄤ娇鐢ㄩ泦缇ょ殑鏃跺

我要回帖

更多关于 ceph s3接口 的文章

 

随机推荐