文档章节

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

 惊浪
发布于 2014/12/11 16:33
字数 317
阅读 2914
收藏 3
点赞 1
评论 0

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相关的操作接口

© 著作权归作者所有

共有 人打赏支持
粉丝 16
博文 28
码字总数 17864
作品 0
福州
程序员
ceph书籍与培训

基础篇 引言 第一章:ceph的前世今生 1.1 ceph的诞生 1.2 ceph的市场前景 第二章:ceph的根基-RADOS 2.1 ceph与分布式文件系统 2.2 RADOS的组成 2.2.1 MON简介 2.2.1 OSD简介 2.2.1 MDS简介 ...

秦牧羊 ⋅ 2015/06/10 ⋅ 5

Openstack之CEPH简介

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

hiubuntu ⋅ 2016/11/30 ⋅ 0

Ceph逻辑架构

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

Zai坚强一点 ⋅ 2017/09/16 ⋅ 0

玩转 Ceph 的正确姿势

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

张立达 ⋅ 2017/05/03 ⋅ 0

从传统运维到云运维演进历程之软件定义存储(五)下

上篇文章讲到了Ceph在灾备方面有三大神兵利器:故障域、RBD异地灾备、RGW异地灾备。那么本文讲述下剩下的两大利器RBD异地灾备和RGW异地灾备 关卡五:Ceph灾备神兵利器-RBD Mirroring & RGW异...

Devin ⋅ 2016/12/20 ⋅ 0

radosgw 的civetweb 配置与排错

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

秦牧羊 ⋅ 2015/09/17 ⋅ 0

Ceph 9.0.3 发布,分布式文件系统

Ceph 9.0.3 发布,此版本最直观的改进是内部改进(用户不可见):OSD 的 ObjectStore 接口改进。同时还有大量关于 RGW,RBD 和其他 CephFS scrub/repair 方面的改进和修复。 更新 The return...

oschina ⋅ 2015/08/25 ⋅ 1

centos6.x rados gw手动部署

清理可能存在的历史记录 rm -rf /var/run/ceph/*rm -rf /var/log/ceph/*rm -rf /var/lib/ceph/*rm -rf /usr/local/etc/ceph/*rm -rf /etc/ceph/ceph.client.radosgw.keyringrm -rf /etc/ceph......

安静美男子 ⋅ 2016/04/05 ⋅ 0

Ceph 0.94 发布,分布式文件系统

Ceph 0.94 发布, 此版本主要更新信息如下: RADOS Performance: a range of improvements have been made in the OSD and client-side librados code that improve the throughput on flas......

oschina ⋅ 2015/04/08 ⋅ 8

Ceph v0.92 发布,分布式文件系统

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

oschina ⋅ 2015/02/05 ⋅ 6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL主从复制原理、半同步操作步骤及原理

1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。...

xiaomin0322 ⋅ 19分钟前 ⋅ 0

Oracle10g 数据及文件迁移过程[原]

QL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 11 10:22:35 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Re......

harrypotter ⋅ 25分钟前 ⋅ 0

nginx安装

1:安装工具包 wget、vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包 wget http://nginx.org/download/nginx-1......

壹丶贰 ⋅ 28分钟前 ⋅ 0

ideaVim安装及配置

1.安装插件 File-Settings-Plugins,Browse Repositories,输入ideavim,安装。 重启后,在Tools-Vim Emulator启用。 2.快捷键设置 ideaViim键与idea快捷键有冲突,可以在Settings-Other Se...

Funcy1122 ⋅ 32分钟前 ⋅ 0

MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B...

浮躁的码农 ⋅ 46分钟前 ⋅ 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 50分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 今天 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 今天 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部