zoukankan      html  css  js  c++  java
  • ceph-RGW Jewel版新概念

    一、概述

      zone: 包含多个RGW实例的一个逻辑概念。zone不能跨集群,同一个zone的数据保存在同一组pool中;

      zonegroup:一个zonegroup如果包含一个或多个zone,如果包含多zone时,必须指定其中一个zone为master zone,用来处理bucket和用户的创建。

        一个集群可以创建多个zonegroup, 一个zonegroup可以跨多个集群。

      realm: 一个realm包含一个或多个zonegroup。 如果realm包含多个zonegroup,必须指定一个zonegroup为master zonegroup,用来处理系统操作,一个系统中包含多个realm,多个realm之间资源完全隔离;

      user:对象存储的使用者,默认情况下,一个用户只能创建1000个存储桶。

       bucket:存储桶,用来管理对象的容器。

       object:对象,泛指一个文档、图片或视频文件等,尽管用户可以直接上传一个目录,但是ceph并不按目录层级结构保存对象, ceph所有的对象扁平化的保存在bucket中。

    二、数据读写流程

      下图展示了应用、RGW、ceph集群的关系:

     应用通过RGW访问集群流程如下:

       ● S3或Swift 应用通过http协议发送请求到RGW。

       ● RGW从http请求中解析出s3或swift协议数据,调用librados接口,将对应的请求发送到rados集群中。

       注:图中load balance非必须,只要在存在多个RGW做负荷分担时需要。

     数据存储位置

       对象存储涉及各种类型的数据,ceph将不同类型的数据存储在不同的pool中,RGW涉及的pool分为两大类:

         ● 保存集群数据的pool,比如用来保存realm信息,zonegroup信息,zone信息,使用哪个pool来保存哪个信息在配置文件中指定, 默认保存在.rgw.zone中。

         ●保存跟单个zone相关数据的pool,在创建zone时指定,默认情况下,pool名以zone名+rgw+保存数据类型来命名,例如下面名为z1的zone默认pool如下:

      注:RGW需要用到的这些pool最好在使用之前手动创建,如果不手动创建,RGW会在需要时自动创建。手动创建的好处是 我们可以根据需要指定pool的PG数,crush规则等。

      下面详细说明RGW涉及到的各个pool的作用:

       domain_root:保存bucket和bucket元数据。

       control_pool:在RGW上电时,在control pool创建若干个对象用于watch-notify,主要作用为当一个zone对应多个RGW,且cache使能时, 保证数据的一致性,其基本原理为利用librados提供的对象watch-notify功能,当有数据更新时,通知其他RGW刷新cache, 后面会有文档专门描述RGW cache。

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

       lc_pool:保存对象生命周期执行状态。

       log_pool:各种log信息,如op log、数据同步log、过期对象等。

       intent_log_pool:目前没用。

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

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

       user_email_pool:存储swift key和uid的对应关系。

       user_swift_pool:存储用户email和uid的对应关系。

       user_uid_pool:存储用户信息,和用户下bucket列表。

       index_pool:保存bucket中对象列表,index_pool可以配置多个,跟data_pool、data_extra_pool一起组成placement_pool, 在创建bucket时指定数据保存到哪一组placement_pool中。

       data_pool:保存对象数据,data_pool可以有多个。

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

     应用场景

       ● 频繁IO的网盘。

       ● 有海量数据归档和备份需求的互联网应用企业

       云备份的企业用户。

  • 相关阅读:
    电脑磁盘分区助手:DiskGenius磁盘管理与数据恢复软件
    python安装第三方的包
    教你成为全栈工程师(Full Stack Developer) 四十五-一文读懂hadoop、hbase、hive、spark分布式系统架构
    北半球 自己动手做聊天机器人
    [08] 请求、会话、上下文属性比较
    [07] ServletContext上下文对象
    [06] Session实现机制以及和Cookie的区别
    [05] Session概要
    [04] Cookie概念和基本使用
    [03] Servlet继承关系和生命周期
  • 原文地址:https://www.cnblogs.com/chris-cp/p/7873007.html
Copyright © 2011-2022 走看看