searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ceph-rgw数据上传学习(二)(原子上传)

2023-10-11 03:24:40
57
0

基于上篇文章的源码分析,我们接下来看一下原子上传的实践过程。

实践过程:

通过postman上传一个8.37M的视频文件。

下面看一下数据的实际存储过程:

先查看下这个数据池中有那些数据对象,因为这个集群刚刚是我新建的,理论上他只有我刚刚上传的文件的数据对象:


[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data ls
5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_1
5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4
5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_2

接着查看一下这几个rados数据对象的大小:


[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data stat 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4
default.rgw.buckets.data/5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4 mtime 2023-07-05 17:39:19.000000, size 4194304
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data stat 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_1
default.rgw.buckets.data/5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_1 mtime 2023-07-05 17:39:18.000000, size 4194304
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data stat 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_2
default.rgw.buckets.data/5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_2 mtime 2023-07-05 17:39:18.000000, size 393282

在查看一下xattr信息和头对象HeadObject的manifest信息:


[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data listxattr 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4
user.rgw.acl
user.rgw.content_type
user.rgw.etag
user.rgw.idtag
user.rgw.manifest
user.rgw.pg_ver
user.rgw.source_zone
user.rgw.tail_tag
[root@99386cd5b819 build]#
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/rados getxattr -p default.rgw.buckets.data 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4 user.rgw.manifest > ./lhp/aladdin.user.rgw.manifest
[root@99386cd5b819 build]#
[root@99386cd5b819 build]#
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/ceph-dencoder import ./lhp/aladdin.user.rgw.manifest type RGWObjManifest decode dump_json
{
   "objs": [],
   "obj_size": 8781890,#对象的数据大小
   "explicit_objs": "false",
   "head_size": 4194304,#head对象的数据大小
   "max_head_size": 4194304,#head对象允许的最大数据大小
   "prefix": ".TNrs8mGx_8awfDF58FxclTre9RXdy_4_", #前缀,随机生成的,格式为".xxx_"
   "rules": [#存储策略规则
      {
           "key": 0,
           "val": {
               "start_part_num": 0,
               "start_ofs": 4194304,#
               "part_size": 0,
               "stripe_max_size": 4194304,#允许存储的最大条带大小
               "override_prefix": ""
          }
      }
  ],
   "tail_instance": "",
   "tail_placement": {
       "bucket": {
           "name": "openapi-hp-test-pool1",
           "marker": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
           "bucket_id": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
           "tenant": "",
           "explicit_placement": {
               "data_pool": "",
               "data_extra_pool": "",
               "index_pool": ""
          }
      },
       "placement_rule": "default-placement"
  },
   "begin_iter": {
       "part_ofs": 0,
       "stripe_ofs": 0,
       "ofs": 0,
       "stripe_size": 4194304,
       "cur_part_id": 0,
       "cur_stripe": 0,
       "cur_override_prefix": "",
       "location": {
           "placement_rule": "default-placement",
           "obj": {
               "bucket": {
                   "name": "openapi-hp-test-pool1",
                   "marker": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "bucket_id": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "tenant": "",
                   "explicit_placement": {
                       "data_pool": "",
                       "data_extra_pool": "",
                       "index_pool": ""
                  }
              },
               "key": {
                   "name": "aladdin.mp4",
                   "instance": "",
                   "ns": ""
              }
          },
           "raw_obj": {
               "pool": "",
               "oid": "",
               "loc": ""
          },
           "is_raw": false
      }
  },
   "end_iter": {
       "part_ofs": 4194304,
       "stripe_ofs": 8388608,#当前stripe开始位置
       "ofs": 8781890,    #写入的数据实际偏移量
       "stripe_size": 393282,#当前这个条带的数据大小
       "cur_part_id": 0,
       "cur_stripe": 2,#当前条带的编号
       "cur_override_prefix": "",
       "location": {
           "placement_rule": "default-placement",
           "obj": {
               "bucket": {
                   "name": "openapi-hp-test-pool1",
                   "marker": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "bucket_id": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "tenant": "",
                   "explicit_placement": {
                       "data_pool": "",
                       "data_extra_pool": "",
                       "index_pool": ""
                  }
              },
               "key": {
                   "name": ".TNrs8mGx_8awfDF58FxclTre9RXdy_4_2",
                   "instance": "",
                   "ns": "shadow"
              }
          },
           "raw_obj": {
               "pool": "",
               "oid": "",
               "loc": ""
          },
           "is_raw": false
      }
  }
}

[root@99386cd5b819 build]#

 

 

0条评论
作者已关闭评论
李****平
5文章数
0粉丝数
李****平
5 文章 | 0 粉丝
原创

ceph-rgw数据上传学习(二)(原子上传)

2023-10-11 03:24:40
57
0

基于上篇文章的源码分析,我们接下来看一下原子上传的实践过程。

实践过程:

通过postman上传一个8.37M的视频文件。

下面看一下数据的实际存储过程:

先查看下这个数据池中有那些数据对象,因为这个集群刚刚是我新建的,理论上他只有我刚刚上传的文件的数据对象:


[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data ls
5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_1
5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4
5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_2

接着查看一下这几个rados数据对象的大小:


[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data stat 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4
default.rgw.buckets.data/5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4 mtime 2023-07-05 17:39:19.000000, size 4194304
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data stat 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_1
default.rgw.buckets.data/5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_1 mtime 2023-07-05 17:39:18.000000, size 4194304
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data stat 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_2
default.rgw.buckets.data/5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1__shadow_.TNrs8mGx_8awfDF58FxclTre9RXdy_4_2 mtime 2023-07-05 17:39:18.000000, size 393282

在查看一下xattr信息和头对象HeadObject的manifest信息:


[root@99386cd5b819 build]# ./bin/rados -p default.rgw.buckets.data listxattr 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4
user.rgw.acl
user.rgw.content_type
user.rgw.etag
user.rgw.idtag
user.rgw.manifest
user.rgw.pg_ver
user.rgw.source_zone
user.rgw.tail_tag
[root@99386cd5b819 build]#
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/rados getxattr -p default.rgw.buckets.data 5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1_aladdin.mp4 user.rgw.manifest > ./lhp/aladdin.user.rgw.manifest
[root@99386cd5b819 build]#
[root@99386cd5b819 build]#
[root@99386cd5b819 build]#
[root@99386cd5b819 build]# ./bin/ceph-dencoder import ./lhp/aladdin.user.rgw.manifest type RGWObjManifest decode dump_json
{
   "objs": [],
   "obj_size": 8781890,#对象的数据大小
   "explicit_objs": "false",
   "head_size": 4194304,#head对象的数据大小
   "max_head_size": 4194304,#head对象允许的最大数据大小
   "prefix": ".TNrs8mGx_8awfDF58FxclTre9RXdy_4_", #前缀,随机生成的,格式为".xxx_"
   "rules": [#存储策略规则
      {
           "key": 0,
           "val": {
               "start_part_num": 0,
               "start_ofs": 4194304,#
               "part_size": 0,
               "stripe_max_size": 4194304,#允许存储的最大条带大小
               "override_prefix": ""
          }
      }
  ],
   "tail_instance": "",
   "tail_placement": {
       "bucket": {
           "name": "openapi-hp-test-pool1",
           "marker": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
           "bucket_id": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
           "tenant": "",
           "explicit_placement": {
               "data_pool": "",
               "data_extra_pool": "",
               "index_pool": ""
          }
      },
       "placement_rule": "default-placement"
  },
   "begin_iter": {
       "part_ofs": 0,
       "stripe_ofs": 0,
       "ofs": 0,
       "stripe_size": 4194304,
       "cur_part_id": 0,
       "cur_stripe": 0,
       "cur_override_prefix": "",
       "location": {
           "placement_rule": "default-placement",
           "obj": {
               "bucket": {
                   "name": "openapi-hp-test-pool1",
                   "marker": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "bucket_id": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "tenant": "",
                   "explicit_placement": {
                       "data_pool": "",
                       "data_extra_pool": "",
                       "index_pool": ""
                  }
              },
               "key": {
                   "name": "aladdin.mp4",
                   "instance": "",
                   "ns": ""
              }
          },
           "raw_obj": {
               "pool": "",
               "oid": "",
               "loc": ""
          },
           "is_raw": false
      }
  },
   "end_iter": {
       "part_ofs": 4194304,
       "stripe_ofs": 8388608,#当前stripe开始位置
       "ofs": 8781890,    #写入的数据实际偏移量
       "stripe_size": 393282,#当前这个条带的数据大小
       "cur_part_id": 0,
       "cur_stripe": 2,#当前条带的编号
       "cur_override_prefix": "",
       "location": {
           "placement_rule": "default-placement",
           "obj": {
               "bucket": {
                   "name": "openapi-hp-test-pool1",
                   "marker": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "bucket_id": "5af0c708-a887-4e37-8fb8-83f5d92a9dcb.4167.1",
                   "tenant": "",
                   "explicit_placement": {
                       "data_pool": "",
                       "data_extra_pool": "",
                       "index_pool": ""
                  }
              },
               "key": {
                   "name": ".TNrs8mGx_8awfDF58FxclTre9RXdy_4_2",
                   "instance": "",
                   "ns": "shadow"
              }
          },
           "raw_obj": {
               "pool": "",
               "oid": "",
               "loc": ""
          },
           "is_raw": false
      }
  }
}

[root@99386cd5b819 build]#

 

 

文章来自个人专栏
ceph-rgw学习笔记
5 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0