文档章节

ceph RGW接口源码解析--Rados数据操作

 惊浪
发布于 2014/12/11 16:33
字数 317
阅读 3245
收藏 3

RGW业务处理流程:

http reqest --> apache 转 FastCgi module

FastCgi module --> radosgw  通过socket请求实现(未确定是否有其它方式)

radosgw --> ceph集群  通过socket实现,调用rados接口


1、数据结构

在Rgw_common.h定义了基本的数据结构,并实现了 decode、encode序列化,方便对rados访问

//桶的权限创建资料

struct RGWBucketInfo 
{
  rgw_bucket bucket;
  string owner;
  uint32_t flags;
  string region;
  time_t creation_time;
  string placement_rule;
  bool has_instance_obj;
  RGWObjVersionTracker objv_tracker; /* we don't need to serialize this, for runtime tracking */
  obj_version ep_objv; /* entry point object version, for runtime tracking only */
  RGWQuotaInfo quota;

//桶pool位置存储组成
struct rgw_bucket {
  std::string name;
  std::string data_pool;
  std::string data_extra_pool; /* if not set, then we should use data_pool instead */
  std::string index_pool;
  std::string marker;
  std::string bucket_id;
  std::string oid;
 }

//用户UID资料

struct RGWUserInfo

2、s3元数据原子操作

在rgw_op.h定义元数据的原子操作,RGWOp作为基类

创建桶的原子类定义:class RGWCreateBucket : public RGWOp

3、元数据操作句柄

在Rgw_bucket.h中定义
    class RGWUserBuckets

在Rgw_bucket.cc中实现
  class RGWBucketInstanceMetadataHandler : public RGWMetadataHandler
  class RGWBucketMetadataHandler : public RGWMetadataHandler

4、rados接口实现

在rgw_rados.h 定义了RGWRados,实现了所有与rados相关的操作接口

© 著作权归作者所有

粉丝 15
博文 31
码字总数 18651
作品 0
福州
程序员
私信 提问
Ceph逻辑架构

Ceph是一种存储行业最热门的软件定义存储技术,它为块存储、文件存储、对象存储提供了系统的软件定义解决方案。下面我们来了解Ceph的逻辑架构: Ceph monitor:Ceph monitor 通过保存一份集群...

Zai坚强一点
2017/09/16
0
0
Openstack之CEPH简介

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: 1. 《Ceph简介》 2. 《Ceph集群操作》 3. 《Ceph块设备管理与Openstack配置》 4. 《深入Ceph》 5. 《ceph优化与性能...

hiubuntu
2016/11/30
0
0
玩转 Ceph 的正确姿势

玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势;在集群规模小的时候,Ceph 怎么玩都没问题;但集群大了(到PB级别),这些准则可是保证集群健康运行的不二法门...

张立达
2017/05/03
0
0
radosgw 的civetweb 配置与排错

在64bit debian8 下面使用的仍然是sysinit,运行ceph-deploy rgw create 新建rgw的时候,提示rgw服务无法启动,排查如下: 检查ceph auth配置 ceph auth已经生成了一个client.rgw.demo的用户...

秦牧羊
2015/09/17
731
0
Ceph v0.92 发布,分布式文件系统

Ceph v0.92 发布,此版本主要改进如下: OSD 对象校验 缓存层读入代理 RBD 图片锁 优化 OSD 事物和复制信息 大量的 RGW 和 MDS bug 修复 升级 The experimental ‘keyvaluestore-dev’ OSD ...

oschina
2015/02/05
2.2K
6

没有更多内容

加载失败,请刷新页面

加载更多

还为PDF转Word抓狂?以下神器让你在职场倍受欢迎!

身在职场的你,是否一直在琢磨:如何能让自己在公司更受欢迎?如何才能在办公室里混个好人缘?如何在同事圈里留个好印象?其实,想要让自己成为受欢迎的人,只要让自己成为大家需要的人不就行...

foxit2world
21分钟前
7
0
AndServer+Service打造Android服务器实现so文件调用

so 文件调用 随着 Android 移动安全的高速发展,不管是为了执行效率还是程序的安全性等,关键代码下沉 native 层已成为基本操作。 native 层的开发就是通指的 JNI/NDK 开发,通过 JNI 可以实...

夜幕NightTeam
23分钟前
4
0
Docker下kafka学习三部曲之二:本地环境搭建

在上一章《 Docker下kafka学习,三部曲之一:极速体验kafka》中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写...

程序员欣宸
23分钟前
4
0
萌新推荐!不再为Excel转换PDF发愁,Aspose.Cells for .NET一步到位!

Aspose.Cells for .NET(点击下载)是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。 将Excel工作簿转换为...

mnrssj
24分钟前
6
0
对于绘画小白怎么画制服?该注意什么?

怎样制作学生服装?想必绘画初学者们常常会想的问题吧,不知道怎样才能画好人物的衣服,别着急,今日就在这儿讲一些关于如何绘画学生衣服校服的教程给我们!期望能够帮到你们! 轻便西装是不...

热爱画画的我
29分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部