如何实现Cephlibrados编程访问

这篇文章主要介绍了如何实现Ceph librados编程访问,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

公司主营业务:网站设计、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出特克斯免费做网站回馈大家。

引言 

我需要针对Ceph的对象存储直接进行编程访问,看看用网关和不用网关下的性能差别。基于gate-way进行访问例子已经走通。现在 要测的是不走网关,用librados直接和Ceph集群打交道。 

环境配置
 1. Ceph集群:你要有一个已经配置好的Ceph集群,通过ceph -s可以看到集群的状态。
如何实现Ceph librados编程访问

2. 开发库安装 我的系统是CentOS6.5 采用如下命令安装相关开发包(C/C++开发包)

sudo yum install librados2-devel

安装成功后,你可以在/usr/include/rados路径下看到相应的头文件 如何实现Ceph librados编程访问

示例程序
该实例程序来自官网,可参官网实例
http://docs.ceph.com/docs/master/rados/api/librados-intro/

#include <rados/librados.hpp>
#include <string>
#include <list>
int main(int argc, const char **argv)
{
int ret = 0 ;
// Get cluster handle and connect to cluster
std::cout<<"ceph Cluster connect begin."<<std::endl;
std::string cluster_name("ceph");
std::string user_name("client.admin");
librados::Rados cluster ;
ret = cluster.init2(user_name.c_str(), cluster_name.c_str(), 0);
if (ret < 0)
{
std::cerr << "Couldn't initialize the cluster handle! error ">

编译指令

g++ -g -c cephclient.cxx -o cephclient.o
g++ -g cephclient.o -lrados -o cephclient

结果输出

[root@gnop029-ct-zhejiang_wenzhou-16-34 ceph-rados]# ./cephclient 
ceph Cluster connect begin.
Created a cluster handle.
Read the Ceph configuration file Succeed.
Connected to the cluster.
ceph Cluster connect end.
ceph Cluster create io context for pool begin.
Created an ioctx for the pool.
ceph Cluster create io context for pool end.
Write an object synchronously begin.
Wrote new object 'hw' 
Write an object synchronously end.
Object name: hw
Content: Hello World!
Object xattr: en_US
List of pools from this cluster handle
rbd
pool-1
pool-2
.rgw
.rgw.root
.rgw.control
.rgw.gc
.rgw.buckets
.rgw.buckets.index
.log
.intent-log
.usage
.users
.users.email
.users.swift
.users.uid
List of objects from this pool
rb.0.d402.238e1f29.00000000ee00
rb.0.d402.238e1f29.000000015000
rb.0.d402.238e1f29.00000000fa2f
rb.0.d402.238e1f29.00000001ac00
rb.0.d402.238e1f29.000000012000

接口说明
实例代码中包含了主要的接口,有:
1. 集群句柄创建
2. 集群连接
3. IO上下文环境初始化
4. 对象读写
5. IO上下文环境关闭
6. 集群句柄关闭

感谢你能够认真阅读完这篇文章,希望小编分享的“如何实现Ceph librados编程访问”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!

新闻名称:如何实现Cephlibrados编程访问
分享地址:https://www.cdcxhl.com/article42/gsejhc.html

成都网站建设公司_创新互联,为您提供网站改版建站公司用户体验移动网站建设Google网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管