rgw中的数据模型

来源:互联网 发布:网络建设 ppt 编辑:程序博客网 时间:2024/05/22 14:08

ceph集群中的pools
$ rados lspools

.rgw.rgw.root.rgw.control.rgw.gc.rgw.buckets.rgw.buckets.index.log.intent-log.usage.users.users.email.users.swift.users.uid.rgw.buckets.extra

查看ceph rgw中注册的用户:
每个用户在.users.uid pool 中都对应两个对象:< user_name > < user_name >_buckets

$ rados -p .users.uid lsunitedstackunitedstack.buckets

在.users中分别为用户的s3账号的的access_key创建一个对象,对象名是用access_key

$ rados -p .users  ls7EJLAI5N1HNG3NGWFYP5

在.users.uid pool 分别为每个用户创建两个对象,一个表示用户unitedstack本身,另一个unitedstack.buckets 用于在omap中保存这个用户创建的buckets。
查看用户创建的buckets

$ rados -p .users.uid listomapkeys unitedstack.bucketsyankun

用户unitedstack创建的bucket名字是yankun。
在.rgw pool中也为bucket创建了两个对象一个:一个是< bucket_name > 另一个是.bucket.meta.< bucket_name >.< marker > 这个marker是创建bucket中生成的。
同时用户创建的buckets在.rgw.buckets.index都对应一个object对象,其命名是格式:.dir.< marker >

$ rados -p .rgw ls | grep yankunyankun.bucket.meta.yankun:default.51486387.43
$ rados -p .rgw.buckets.index ls | grep default.51486387.43.dir.default.51486387.43

在.rgw.buckes.index中每个对象的omap中保存着对应bucket中存放的对象。

$ rados -p .rgw.buckets.index  listomapkeys  .dir.default.51486387.43osd-testrgw.confs3test.pytest.txt$ s3cmd ls s3://yankun2016-04-16 07:21  31457280   s3://yankun/osd-test2016-04-15 14:14       348   s3://yankun/rgw.conf2016-04-15 14:14       573   s3://yankun/s3test.py2016-04-15 14:14        14   s3://yankun/test.txt

rgw中bucket中的数据对象都是保存在.rgw.buckets中,其命名方式格式:< bucket_id >_< key >, key 是对象的名字,bucket_id(bucket marker) 对应bucket的元信息。
其中每个对象都分为两部分:一个是head < bucket_id >key 另个是< bucket_id >_shadow< manifest-prefix >_< num > manifest-prefix来源与.rgw.buckets pool中head对象的xattr num是一个从1开始的递增的序列号。

$ rados -p .rgw.buckets listxattr default.51486387.43_osd-testuser.rgw.acluser.rgw.content_typeuser.rgw.etaguser.rgw.idtaguser.rgw.manifestuser.rgw.x-amz-content-sha256user.rgw.x-amz-dateuser.rgw.x-amz-meta-s3cmd-attrs$ rados -p .rgw.buckets getxattr default.51486387.43_osd-test user.rgw.manifest ���yankuosd-tesosd-testtyankun                                       .rgw.bucketsdefault.51486387.43default.51486387.43.rgw.buckets.index.rgw.buckets.extra*osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA �@tyankun                                                              .rgw.bucketsdefault.51486387.43default.51486387.43.rgw.buckets.index.rgw.buckets.extra
$ rados -p .rgw.buckets ls | grep default.51486387.43default.51486387.43_rgw.confdefault.51486387.43__shadow_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.2_1default.51486387.43__multipart_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.1default.51486387.43__shadow_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.2_2default.51486387.43_osd-testdefault.51486387.43__shadow_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.1_3default.51486387.43__shadow_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.1_2default.51486387.43__shadow_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.2_3default.51486387.43_s3test.pydefault.51486387.43__shadow_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.1_1default.51486387.43__multipart_osd-test.2~toxkNCtoYExGQlJNHDqgbbv84NsfwtA.2default.51486387.43_test.txt

注:这里的object有rados层面的object和rgw中定义的object。

0 0
原创粉丝点击