千家信息网

Ceph RGW中Pool的作用是什么

发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,本篇文章给大家分享的是有关Ceph RGW中Pool的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Ceph RGW中各Poo
千家信息网最后更新 2025年02月11日Ceph RGW中Pool的作用是什么

本篇文章给大家分享的是有关Ceph RGW中Pool的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Ceph RGW中各Pool的作用

1.引言

在使用Ceph的radosgw服务时,会通过create pool命令创建一系列的pool,服务于radosgw.我想在本文中分析出各个pool的作用。

2.pool信息罗列

POOLS:NAME                              ID     USED       %USED     MAX AVAIL     OBJECTS   .rgw.root                         18       4375         0        19575G             7 .rgw                              19       8559         0        13050G            43 .rgw.control                      20          0         0        19575G             9 .rgw.gc                           21          0         0        19575G            76 .rgw.buckets                      22          0         0        19575G             0 .rgw.buckets.index                23          0         0        25849G          2048 .log                              24          0         0        19575G           180 .intent-log                       25          0         0        19575G             0 .usage                            26          0         0        19575G             0 .users                            27         74         0        19575G             6 .users.email                      28          0         0        19575G             0 .users.swift                      29         52         0        13050G             4 .users.uid                        30       2847         0        19575G            12

上文罗列了所有默认的rgw工作所需要的pool信息,我在此处说明各自功用。

3.region及zone信息管理

在.rgw.root中,存放的是集群命名空间信息。我使用默认配置。应用上可以配置集群的region, zone信息,并使用radosgw-agent实现region中zone之间的信息同步。这是顶层的划分。

[root@ceph5 ~]# rados -p .rgw.root lszone_info.mainregion_mapdefault.regionregion_info.defaultzone_info.defaultregion_info.

可以通过如下命令获取region,zone信息,也可以编辑配置文件,重新设置。

radosgw-admin region get >> region.conf.jsonradosgw-admin zone get >> zone.conf.jsonradosgw-admin region set << region.conf.jsonradosgw-admin zone set << zone.conf.json

一般使用无需修改,系统会有默认设置。只要在为用户设置独立的placement策略的时候需要修改。

4.用户管理

创建S3用户后才可以进行数据读写。通过radosgw-admin user create命令指定用户名及用户ID,生成accesskey, secretkey, 借助这两个key,和radosgw建立连接,执行创建、删除bucket, 上传下载删除对象等操作。

在.users.uid中可以看到创建用户时的指定uid信息,在.users中可以看到用户的accesskey信息。.users.email中应该是用户的email信息,但是我在创建用户时没有指定,所以内容为空。

[root@ceph5 ~]# rados -p .users.uid lsappapp-download[root@ceph5 ~]# rados -p .users ls5HJ1G*****84FKIQY15WCE4R2*****AZWHS2MRQ5[root@ceph5 ~]# rados -p .users.email  ls

5.BUCKET管理

在.rgw中,通过命令可以看到BUCKET名称及其编号

[root@ceph5 ~]#rados -p .rgw lsdown-update.app.com.bucket.meta.down-update.app.com:default.8172.22.bucket.meta.down.app.com:default.8157.4down.app.com

6.BUCKET实际数据存储

在我对用户信息进行个性化配置时,配置了某个用户的数据使用哪个index pool 和data pool。 在我的集群中有如下两个pool

.rgw.buckets.app.download           17     1890G      1.69        30956G      802808 .rgw.buckets.app.download.index     18         0         0        22283G          40

这两个POOL是我为了某个特定业务专门创建出来,分别用于存放BUCKET index信息以及BUCKET data信息。那这里面放了哪些BUCKET,这个信息可以从.rgw中看出一些端倪。

6.1 INDEX信息

我对INDEX POOL中的object信息做了一个整理,可以发现,每个都是8个一组,原因是在设置INDEX的shard num为8,所以每一个BUCKET的INDEX对应8个dir。

.dir.default.8871.2.0.dir.default.8871.2.1.dir.default.8871.2.2.dir.default.8871.2.3.dir.default.8871.2.4.dir.default.8871.2.5.dir.default.8871.2.6.dir.default.8871.2.7.dir.default.8172.22.0.dir.default.8172.22.1.dir.default.8172.22.2.dir.default.8172.22.3.dir.default.8172.22.4.dir.default.8172.22.5.dir.default.8172.22.6.dir.default.8172.22.7.dir.default.8157.4.0.dir.default.8157.4.1.dir.default.8157.4.2.dir.default.8157.4.3.dir.default.8157.4.4.dir.default.8157.4.5.dir.default.8157.4.6.dir.default.8157.4.7.dir.default.8865.1.0.dir.default.8865.1.1.dir.default.8865.1.2.dir.default.8865.1.3.dir.default.8865.1.4.dir.default.8865.1.5.dir.default.8865.1.6.dir.default.8865.1.7

这个地方要研究的是,每个dir对象,对应的是哪一个BUCKET。在上文中我们在.rgw中看到如下信息

.bucket.meta.down-update.app.com:default.8172.22.bucket.meta.down.app.com:default.8157.4

BUCKET:down-update.app.com 对应的编号为 default.8172.22 bUCKET:down.app.com对应编号是:default.8157.4

通过这个,我们就可以将BUCKET信息和INDEX中的dir信息关联起来。

下面我要研究的是,INDEX信息里面究竟放的是什么

rados -p .rgw.buckets.app.download.index listomapvals其中存放的都是这些信息cf/ts/tcls_verify/600/rez/UI/Achieve/Mark/23x26/S_COMBAT_Base_11_4.tgavalue: (258 bytes) :0000 : 08 03 fc 00 00 00 46 00 00 00 63 66 2f 74 73 2f : ......F...cf/ts/0010 : 74 63 6c 73 5f 76 65 72 69 66 79 2f 36 30 30 2f : tcls_verify/600/0020 : 72 65 7a 2f 55 49 2f 41 63 68 69 65 76 65 2f 4d : rez/UI/Achieve/M0030 : 61 72 6b 2f 32 33 78 32 36 2f 53 5f 43 4f 4d 42 : ark/23x26/S_COMB0040 : 41 54 5f 42 61 73 65 5f 31 31 5f 34 2e 74 67 61 : AT_Base_11_4.tga0050 : da 01 00 00 00 00 00 00 01 04 03 69 00 00 00 01 : ...........i....0060 : 89 06 00 00 00 00 00 00 f3 ec 52 57 00 00 00 00 : ..........RW....0070 : 20 00 00 00 32 37 38 30 36 62 33 61 65 65 38 61 :  ...27806b3aee8a0080 : 39 37 33 62 37 38 34 61 30 64 36 35 66 65 32 39 : 973b784a0d65fe290090 : 37 61 63 38 10 00 00 00 74 65 6e 63 65 6e 74 2d : 7ac8....tencent-00a0 : 64 6f 77 6e 6c 6f 61 64 10 00 00 00 74 65 6e 63 : download....tenc00b0 : 65 6e 74 2d 64 6f 77 6e 6c 6f 61 64 00 00 00 00 : ent-download....00c0 : 89 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................00d0 : 01 01 04 00 00 00 11 82 da 01 82 9c 35 13 00 00 : ............5...00e0 : 00 64 65 66 61 75 6c 74 2e 38 31 36 30 2e 31 35 : .default.8160.1500f0 : 33 33 36 31 00 00 00 00 00 00 00 00 00 00 00 00 : 3361............0100 : 00 00                                           : ..

这些二进制对应的信息其实是这样的格式。 包含了文件的KEY,owner, owner_display_name, size, time, etag等内容。

#radosgw-admin bucket list --bucket=down.app.com  {        "name": "cf\/full\/CrossFire_OBV231_Full.exe",        "instance": "",        "namespace": "",        "owner": "app-download",        "owner_display_name": "app-download",        "size": 1564956326,        "mtime": "2016-06-04 17:31:01.000000Z",        "etag": "f71cd24f5ca7d661a4c44faed925fa80-100",        "content_type": "",        "tag": "default.8193.647053",        "flags": 0    }

6.2 数据信息

.rgw.buckets.zj.app中存放的是实际数据,通过ls命令可以看到对象的oid信息,通过这些OID以及CRUSHMAP算法,可定位到对象所在的物理位置。从而进行文件读写。 部分示例信息 从中可以看到所属BUCKET的编号信息(default.8154.4)即OID信息。

[root@ceph5 ~]# rados -p .rgw.buckets.app.download ls | grep CrossFire_OBV354_Full.exedefault.8157.4__shadow_cf/full/CrossFire_OBV354_Full.exe.2~4VZa_ly8gX76_AMjDB2UCXC_0FpFG8r.96_2default.8157.4__shadow_cf/full/CrossFire_OBV354_Full.exe.2~4VZa_ly8gX76_AMjDB2UCXC_0FpFG8r.145_3.....

7.集群资源使用情况

集群使用情况氛围两种,一种是集群整体使用情况,一种是单个BUCKET的使用情况。 整体使用情况可以通过ceph df命令看到各POOL的使用情况。但是单个BUCKET的使用情况要用如下命令 其中包含了BUCKET的使用统计情况以及对象数量。这些信息就是存放在.usage pool中。

[root@ceph5 ]# radosgw-admin bucket stats --bucket=down.app.com "usage": {        "rgw.main": {            "size_kb": 1837686079,            "size_kb_actual": 1838258768,            "num_objects": 262774        },        "rgw.multimeta": {            "size_kb": 0,            "size_kb_actual": 0,            "num_objects": 13        }    },

8 .资源删除

在我们删除文件时,并不是立刻删除文件,而是先标记文件删除,根据配置文件的设置参数,进行异步删除,在.rgw.gc中记录的就是文件的待删除任务。 关于Ceph中的任务删除详细信息,可以参考Ceph radosgw gc 的处理过程

以上就是Ceph RGW中Pool的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0