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