• CEPH 对象存储的系统池介绍


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

    Object和pool简述

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

    RGW中pool和object应用

    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-notify(librados提供的一种watch和notify机制)。目前RGW用这种机制来实现分布式缓存(后续会详细介绍)。

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

    log pool:用于存储3种类型log,oplog,meta_log,data_log。其中oplog主要用于记录用户操作记录。

    Meta_log和data_log都是远程复制功能中需要用到的,后续会详细介绍。

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

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

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

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

    user swift pool:用于存储swift key和uid的对应关系

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

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

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

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

    另外还有2个pool也比较重要

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

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

    深圳麦集思科技有限公司
  • 相关阅读:
    (转载)教你在PHP中使用全局变量
    (转载)遍历memcache中已缓存的key
    (转载)PHP_Memcache函数详解
    PHP去除空白字符
    (转载)用PHP正则表达式清除字符串的空白
    (转载)PHP静态方法
    (转载)PHP 动态生成表格
    (转载)PHP strtotime函数详解
    (转载)URL与URI的区别
    ldap集成confluence
  • 原文地址:https://www.cnblogs.com/damizhou/p/5819022.html
Copyright © 2020-2023  润新知