文档章节

RGW中pool和object应用

白加弱
 白加弱
发布于 2015/07/07 17:25
字数 784
阅读 260
收藏 1

RGW抽象来看就是基于rados集群之上的一个rados-client实例。

Objectpool简述

Rados集群网上介绍的文章很多,这里就不一一叙述,主要要说明的是objectpool。在rados集群中任意一个对象都会映射为一个(poolobject)。其中pool是存储池,object为对象名。如果你只是做rados集群上层应用的开发(类似开发rgw)。只需要设计如何将数据存储到rados集群中哪个pool及哪个对象即可。

RGWpoolobject应用

RGW中存在的pool比较多,不同的pool管理不同的object数据。这里要关注2个数据结构:

struct RGWZoneParams {

  rgw_bucket domain_root;

  rgw_bucket control_pool;

  rgw_bucket gc_pool;

  rgw_bucket log_pool;

  rgw_bucket intent_log_pool;

  rgw_bucket usage_log_pool;

 

  rgw_bucket user_keys_pool;

  rgw_bucket user_email_pool;

  rgw_bucket user_swift_pool;

  rgw_bucket user_uid_pool;

}

struct RGWZonePlacementInfo {

  string index_pool;

  string data_pool;

  string data_extra_pool;

}

RGW应用到rados中的对象分为2类,一类是普通对象,相当于普通文件的存储。还一类是omap对象,用于存储K-V对象。下面介绍RGW主要pool的用途:

domain_root pool:每个bucket都对应一个普通对象,用于存储bucket元数据。

control pool:该pool上创建若干个普通对象用于watch-notifylibrados提供的一种watchnotify机制)。目前RGW用这种机制来实现分布式缓存(后续会详细介绍)。

gc poolrgw中大文件数据一般在后台删除,该pool用于记录那些待删除的文件对象。

log pool:用于存储3种类型logoplogmeta_logdata_log。其中oplog主要用于记录用户操作记录。Meta_logdata_log都是远程复制功能中需要用到的,后续会详细介绍。

Intent log pool:这个pool目前没有用到。

usage log pool:存储计量数据统计,比如上传文件多少次,下载多少次,遍历bucket多少次之类。

user keys pool:用于存储用户AKuid的对应关系,方便通过用户restful请求的ak找到用户id

user email pool:用于存储用户emailuid的对应关系。

user swift pool:用于存储swift keyuid的对应关系

user uid pool:用于存储用户信息,每个用户都有一个唯一的uid作为对象名。同时每个用户还会有一个用于索引该用户下桶的对象也存在该pool下面。

index pool:存储bucket的文件索引对象。每个bucket对应在该pool下有一个索引对象,用来索引该bucket下所有的文件。同时远程复制中用到的bilog也存储在该poolbucket索引对象上。

data pool:顾名思义,所有的文件数据都存在该pool下。

data extra poolMultipart upload过程中一些中间态的数据,会存在该pool上。这些数据可以帮助用户进行断点续传及垃圾数据回收。

另外还有2pool也比较重要

zone root pool:用于存放zone的元数据信息,其实就是存放RGWZoneParams数据结构

region root pool:用于存放region的元数据信息。

 

© 著作权归作者所有

白加弱
粉丝 6
博文 10
码字总数 12103
作品 0
深圳
后端工程师
私信 提问
ceph RGW接口源码解析--Rados数据操作

RGW业务处理流程: http reqest --> apache 转 FastCgi module FastCgi module --> radosgw 通过socket请求实现(未确定是否有其它方式) radosgw --> ceph集群 通过socket实现,调用rados接口......

惊浪
2014/12/11
0
0
Ceph 11.1.0 发布,分布式存储系统

Ceph 11.1.0 发布了。Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发...

王练
2016/12/13
1K
0
Ceph中查找BUCKET INDEX所在位置的方法

1.引言 本文说明了如何查看每个BUCKET对应的索引信息,以及所在的OSD位置,为以后运维做参考。 2.实验过程 2.1 罗列出当前系统下所有的bucket信息 上述命令展示了当前Ceph 对象存储系统中涉及...

西昆仑
2016/02/23
623
2
Ceph v0.94.6 Hammer 发布,建议升级

Ceph v0.94.6 Hammer 发布,这是适合生产环境的最新版本,建议所有 0.94 的用户升级。 该版本值得关注的改进包括; build/ops: Ceph daemon failed to start, because the service name was...

oschina
2016/02/24
1K
5
Ceph RGW中各Pool的作用

Ceph RGW中各Pool的作用 1.引言 在使用Ceph的radosgw服务时,会通过create pool命令创建一系列的pool,服务于radosgw.我想在本文中分析出各个pool的作用。 2.pool信息罗列 上文罗列了所有默认...

西昆仑
2016/06/15
807
0

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
6
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部