RGW数据分布及寻址
RGW是一个对象处理网关。数据实际存储在ceph集群中。利用librados的接口,与ceph集群通信。RGW主要存储三类数据:元数据(metadata)、索引数据(bucket index)、数据(data)。这三类数据一般存储在不同的pool中,元数据也分多种元数据,存在不同的ceph pool中。
1、 Metadata
元数据信息包括:user,bucket,以及bucket.instance。其中:
user: 主要是对象存储的用户信息
bucket:主要维护bucket name与bucket instance id之间的映射信息
bucket.instance:维护了bucket instance信息
查看user的元数据如下:
radosgw-admin metadata list user:
//user相关的数据信息
[
"ups3",
"56789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234",
"testx$9876543210abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"test",
"testid"
]
radosgw-admin metadata get user:testid:
//获取用户testid的数据信息
{
"key": "user:testid",
"ver": {
"tag": "_cAI-F3h-MuIUGNtXh2RgHlf",
"ver": 1
},
"mtime": "2018-11-05 08:45:47.819290Z",
"data": {
"user_id": "testid",
"display_name": "M. Tester",
"email": "tester@ceph.com",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "testid",
"access_key": "0555b35654ad1656d804",
"secret_key": "h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=="
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw",
"mfa_ids": [],
"attrs": [
{
"key": "user.rgw.idtag",
"val": ""
}
]
}
}
radosgw-admin metadata list bucket:
//bucket相关的元数据
[
"first"
]
radosgw-admin metadata get bucket:first:
//bucket相关的元数据
{
"key": "bucket:first",
"ver": {
"tag": "_Hx7x_Mor001U3WM8zfUAH6C",
"ver": 1
},
"mtime": "2018-11-05 09:14:01.135441Z",
"data": {
"bucket": {
"name": "first",
"marker": "b96b1b04-cb67-4f0d-81ba-dbb70fd80678.4161.1",
"bucket_id": "b96b1b04-cb67-4f0d-81ba-dbb70fd80678.4161.1",
"tenant": "",
"explicit_placement": {
"data_pool": "",
"data_extra_pool": "",
"index_pool": ""
}
},
"owner": "testid",
"creation_time": "2018-11-05 09:13:59.491939Z",
"linked": "true",
"has_bucket_info": "false"
}
}
radosgw-admin metadata list bucket.instance:
//bucket.instance相关的元数据
[
"first:b96b1b04-cb67-4f0d-81ba-dbb70fd80678.4161.1"
]
radosgw-admin metadata get bucket.instance:first:{bucket_id}
//bucket.instance相关的元数据
{
"key": "bucket.instance:first:b96b1b04-cb67-4f0d-81ba-dbb70fd80678.4161.1",
"ver": {
"tag": "_CUSoooY8ectqQPoZELOd_BE",
"ver": 1
},
"mtime": "2018-11-05 09:14:01.132899Z",
"data": {
"bucket_info": {
"bucket": {
"name": "first",
"marker": "b96b1b04-cb67-4f0d-81ba-dbb70fd80678.4161.1",
"bucket_id": "b96b1b04-cb67-4f0d-81ba-dbb70fd80678.4161.1",
"tenant": "",
"explicit_placement": {
"data_pool": "",
"data_extra_pool": "",
"index_pool": ""
}
},
"creation_time": "2018-11-05 09:13:59.491939Z",
"owner": "testid",
"flags": 0,
"zonegroup": "98906840-3c9c-4402-beec-1616bcf2e07c",
"placement_rule": "default-placement",
"has_instance_obj": "true",
"quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"num_shards": 0,
"bi_shard_hash_type": 0,
"requester_pays": "false",
"has_website": "false",
"swift_versioning": "false",
&#