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的网盘。

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

       云备份的企业用户。

  • 相关阅读:
    从零开始——PowerShell应用入门(全例子入门讲解)
    详解C# Tuple VS ValueTuple(元组类 VS 值元组)
    How To Configure VMware fencing using fence_vmware_soap in RHEL High Availability Add On——RHEL Pacemaker中配置STONITH
    DB太大?一键帮你收缩所有DB文件大小(Shrink Files for All Databases in SQL Server)
    SQL Server on Red Hat Enterprise Linux——RHEL上的SQL Server(全截图)
    SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)
    微软SQL Server认证最新信息(17年5月22日更新),感兴趣的进来看看哟
    Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group
    3分钟带你了解PowerShell发展历程——PowerShell各版本资料整理
    由Find All References引发的思考。,
  • 原文地址:https://www.cnblogs.com/chris-cp/p/7873007.html
Copyright © 2011-2022 走看看