ceph rgw: zone/zone/group/realm

阿里云

Region 和 AZ

地域(Region)指物理的数据中心。资源创建成功后不能更换地域。当前所有的地域、地域所在城市和Region ID的对照关系如下表所示。
可用区(Availability Zone,简称AZ)是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。
在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。是否将实例放在同一可用区内,主要取决于对容灾能力和网络延时的要求。
如果您的应用需要较高的容灾能力,建议您将实例部署在同一地域的不同可用区内。
如果您的应用要求实例之间的网络延时较低,建议您将实例创建在同一可用区内。

image.png

参考:https://help.aliyun.com/document_detail/40654.html

同城冗余存储

数据时同步复制,作为bucket的一个属性,费用比普通bucket要高一些。
感觉应该是多副本分布在不同AZ。
参考:https://help.aliyun.com/document_detail/90589.html?spm=a2c4g.11186623.2.19.365c58d5qpYukA#concept-ufs-g5m-cfb

跨区域复制

异步复制,有延时。需要按照流量计费。

小结

阿里云OSS只有AZ和Period的概念,这些概念与ceph的zone、zone group和realm怎么对应呢。
老版本中ceph只有region,后来版本才换位这种3层结构。

zone,zone group, realm定义

image.png

realm
realm:作为一个名字空间,由多个zone group组成。其仅仅是为了保持一个全局的名字空间,即避免重名而设计。
period:一个realm会对应一个period,period对应realm中所有zone group和zone的状态,任何元素发生改变时需要提交period。

zone group
由多个zone组成,一个zone group内的zone之间可以自动同步data和meta,利用该功能就可以实现数据容灾和备份,并且支持active-active,以及active-passive方式。

zone
相当于对rgw定义了一个逻辑分组。并且通过zone将实际pool增加一个命名空间,不同的zone可以在同一个storage cluster中创建而名字不会发生冲突。

应用方法

一个zone group多个zone,不同cluster:
不同的storage cluster之间数据复制,类似于阿里云的“跨区域复制”,即不同的数据中心复制,具体场景包括:合规性要求、备份容灾、减少延迟等。
可以采用一个zone group中包含多个zone,每个zone部署在不同storage cluster,开启数据同步实现。

一个zone group多个zone,相同cluster:
使用场景如:一个公司不同的部门使用不同zone、不同的zone之间有性能需求有差异使用SSD等。

描述信息

rgw zone

从zone的描述信息可以看出来,zone是一个命令空间,描述了每个pool的名称,所以zone至少有一个功能就是可以使用同一个ceph storage cluster建立多个zone,而这些zone使用不同的pool。

RGWZoneParams

{
    "id": "92a8697d-a145-44de-acd3-10f4147b07e2",
    "name": "default",
    "domain_root": "default.rgw.meta:root",
    "control_pool": "default.rgw.control",
    "gc_pool": "default.rgw.log:gc",
    "lc_pool": "default.rgw.log:lc",
    "log_pool": "default.rgw.log",
    "intent_log_pool": "default.rgw.log:intent",
    "usage_log_pool": "default.rgw.log:usage",
    "reshard_pool": "default.rgw.log:reshard",
    "user_keys_pool": "default.rgw.meta:users.keys",
    "user_email_pool": "default.rgw.meta:users.email",
    "user_swift_pool": "default.rgw.meta:users.swift",
    "user_uid_pool": "default.rgw.meta:users.uid",
    "otp_pool": "default.rgw.otp",
    "system_key": {
        "access_key": "",
        "secret_key": ""
    },
    "placement_pools": [
        {
            "key": "default-placement",
            "val": {
                "index_pool": "default.rgw.buckets.index",
                "storage_classes": {
                    "STANDARD": {
                        "data_pool": "default.rgw.buckets.data"
                    }
                },
                "data_extra_pool": "default.rgw.buckets.non-ec",
                "index_type": 0
            }
        }
    ],
    "metadata_heap": "",
    "realm_id": ""
}

RGWZoneGroup

{
    "id": "a2c80c4d-1687-457a-a454-e121c3038e25",
    "name": "default",
    "api_name": "default",
    "is_master": "true",
    "endpoints": [],
    "hostnames": [],
    "hostnames_s3website": [],
    "master_zone": "92a8697d-a145-44de-acd3-10f4147b07e2",
    "zones": [
        {
            "id": "92a8697d-a145-44de-acd3-10f4147b07e2",
            "name": "default",
            "endpoints": [],
            "log_meta": "false",
            "log_data": "false",
            "bucket_index_max_shards": 0,
            "read_only": "false",
            "tier_type": "",
            "sync_from_all": "true",
            "sync_from": [],
            "redirect_zone": ""
        }
    ],
    "placement_targets": [
        {
            "name": "default-placement",
            "tags": [],
            "storage_classes": [
                "STANDARD"
            ]
        }
    ],
    "default_placement": "default-placement",
    "realm_id": ""
}

RGWPeriod

{
    "id": "eb6e2476-fba6-46e0-b4a3-28590126e6a7",
    "epoch": 1,
    "predecessor_uuid": "",
    "sync_status": [],
    "period_map": {
        "id": "eb6e2476-fba6-46e0-b4a3-28590126e6a7",
        "zonegroups": [],
        "short_zone_ids": []
    },
    "master_zonegroup": "",
    "master_zone": "",
    "period_config": {
        "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
        }
    },
    "realm_id": "e27a847f-87e7-4d78-8760-5d5b11eaa913",
    "realm_name": "movies",
    "realm_epoch": 1
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351