前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RGW endpoint绑定多域名

RGW endpoint绑定多域名

作者头像
用户1260683
发布2018-10-25 10:52:44
8.1K0
发布2018-10-25 10:52:44
举报

RGW endpoint绑定多域名

RGW多域名配置说明

  • L版本的ceph.conf中的rgw_dns_name字段只支持单个域名,如果你使用下面的配置格式都是错误的 rgw_dns_name = demo1.s3.cephbook.com,demo2.s3.cephbook.com or rgw_dns_name = demo1.s3.cephbook.com demo2.s3.cephbook.com
  • 多个域名的配置需要将其他域名加入到zonegroup配置的hostnames列表中

To configure virtual hosted buckets, you can either set rgw_dns_name = cname.domain.com in ceph.conf, or add cname.domain.com to the list of hostnames in your zonegroup configuration. See Ceph Object Gateway - Multisite Configuration for more on zonegroups.

参考:https://github.com/ceph/ceph/blob/d038e1da7a6c9b31ba4463b8ebedb9908981a55e/doc/radosgw/s3/commons.rst#bucket-and-host-name

源码描述

https://github.com/ceph/ceph/blob/2a72d893d20a8459c0a1695b57c51727b20d2dae/src/rgw/rgw_rest.cc#L204

代码语言:javascript
复制
void rgw_rest_init(CephContext *cct, RGWRados *store, RGWZoneGroup& zone_group)
{
 ...
   hostnames_set.insert(cct->_conf->rgw_dns_name);
  hostnames_set.insert(zone_group.hostnames.begin(), zone_group.hostnames.end());
  hostnames_set.erase(""); // filter out empty hostnames
  ldout(cct, 20) << "RGW hostnames: " << hostnames_set << dendl;
  /* TODO: We should have a sanity check that no hostname matches the end of
   * any other hostname, otherwise we will get ambigious results from
   * rgw_find_host_in_domains.
   * Eg: 
   * Hostnames: [A, B.A]
   * Inputs: [Z.A, X.B.A]
   * Z.A clearly splits to subdomain=Z, domain=Z
   * X.B.A ambigously splits to both {X, B.A} and {X.B, A}
   */

也就是说RGW的域名数量=rgw_dns_name+zone_group.hostnames

实例讲解

在multisite场景中,一般都是单个zonegroup下挂有多个zone的模型,通过master zone与slave zone的元数据和数据同步来实现“多活”,此时就会用到多个域名的配置。域名的规划如下:

  • 客户端通过使用唯一的s3.cephbook.com与整个RGW后端服务进行通信,从而避免在故障发生时需要在多个endpoint之间进行切换。
  • 客户端对s3.cephbook.com的解析,可以采用智能DNS解析系统,根据用户IP解析到最近的zone入口IP。
  • 后端zone发生故障的情况下,通过切换s3.cephbook.com对应的后端入口IP去实现故障入口的快速切换。(这里面有很多细节,主要考虑TTL的刷新影响。)
  • zone1和zone2在进行元数据以数据的同步时,使用单独的域名zone1.cephbook.com和zone2.cephbook.com,从而实现集群内部同步流量与正常的业务流量的分流治理。

ceph.conf 配置

代码语言:javascript
复制
[client.zone2]
        host = demo
        keyring = /var/lib/ceph/radosgw/ceph-zone2/keyring
        log file = /var/log/ceph/radosgw.zone2.log
    rgw_zone=zone2
        rgw dns name = s3.cephbook.com 
        ......

zonegroup配置

代码语言:javascript
复制
[root@demo supdev]# radosgw-admin zonegroup get
{
    "id": "68f1dcf5-0470-4a48-8cd2-51c837a2cafb",
    "name": "cn-bj",
    "api_name": "cn-bj",
    "is_master": "true",
    "endpoints": [
        "http://s3.cephbook.com:80"
    ],
    "hostnames": ["zone2.cephbook.com","zone1.cephbook.com"],
    "hostnames_s3website": [],
    "master_zone": "9563e299-0675-4725-8032-39ef55fa7fce",
    "zones": [
        {
            "id": "9563e299-0675-4725-8032-39ef55fa7fce",
            "name": "zone1",
            "endpoints": [
                "http://zone1.cephbook.com:80"
            ],
            "log_meta": "true",
            "log_data": "true",
            "bucket_index_max_shards": 16,
            "read_only": "false",
            "tier_type": "",
            "sync_from_all": "true",
            "sync_from": []
        },
        {
            "id": "afd874cd-f976-4007-a77c-be6fca298b71",
            "name": "zone2",
            "endpoints": [
                "http://zone2.cephbook.com:80"
            ],
            "log_meta": "true",
            "log_data": "true",
            "bucket_index_max_shards": 16,
            "read_only": "false",
            "tier_type": "",
            "sync_from_all": "true",
            "sync_from": []
        }
    ],
    "placement_targets": [
        {
            "name": "default-placement",
            "tags": []
        }
    ],
    "default_placement": "default-placement",
    "realm_id": "6a0ab888-f4e9-4b7b-9b52-cc957b9b2a8c"
}

欢迎订阅本公众号cephbook,干货满满,专业老司机教你搞"对象"存储!

本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-15,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Ceph对象存储方案 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RGW endpoint绑定多域名
    • RGW多域名配置说明
      • 源码描述
        • 实例讲解
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com