RGW配置主区域

多站点配置中的所有网关都将从配置ceph-radosgw主机上的守护进程检索其区域组和主区域。

在多站点中配置网关配置,选择一个ceph-radosgw实例来配置主区域组和主区域。


1. 创建领域

一个领域包含区域组和区域的多站点配置并且还用于在领域内强制执行全局唯一的命名空间。

通过命令为多站点配置创建一个新领域,标识为在主区域组和区域中服务的主机上的线路接口。 然后,执行以下命令:

# radosgw-admin realm create --rgw-realm={realm-name} [--default]

例如:

# radosgw-admin realm create --rgw-realm=movies --default

如果集群只有一个领域,请指定 --default。 如果 --default被指定, radosgw-admin将默认使用这个领域。
如果 --default未指定,添加 zone-groups 和 zone 需要指定 --rgw-realm标志或 --realm-id添加区域组和区域时标识领域的标志。

创建领域后, radosgw-admin将响应领域配置。 例如:

{
    "id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62",
    "name": "movies",
    "current_period": "1950b710-3e63-4c41-a19e-46a715000980",
    "epoch": 1
}

笔记:Ceph 为领域生成一个唯一的 ID,如果需要的话,可以选择一个领域,它允许重命名。


2. 创建主区域组

一个领域必须至少有一个区域组,它将作为领域的主区域组。

通过以下方式为多站点配置创建一个新的主区域组,在识别为服务于主区域组和区域。 然后,执行以下命令:

# radosgw-admin zonegroup create --rgw-zonegroup={name} --endpoints={url} [--rgw-realm={realm-name}|--realm-id={realm-id}] --master --default

例如:

# radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --rgw-realm=movies --master --default

如果领域只有一个区域组,请指定 --default。 如果 --default被指定, radosgw-admin添加新区域时将默认使用此区域组。
如果 --default未指定,添加区域将需要 --rgw-zonegroup标志或 --zonegroup-id标志来识别添加或修改区域时的区域组。

创建主区域组后, radosgw-admin会回响 区域组配置。 例如:

{
    "id": "f1a233f5-c354-4107-b36c-df66126475a6",
    "name": "us",
    "api_name": "us",
    "is_master": "true",
    "endpoints": [
        "http:\/\/rgw1:80"
    ],
    "hostnames": [],
    "hostnames_s3webzone": [],
    "master_zone": "",
    "zones": [],
    "placement_targets": [],
    "default_placement": "",
    "realm_id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62"
}


3. 创建主区域

重要:必须在 Ceph 对象网关节点上创建区域,该节点将在区域内。

通过打开一个识别为在主区域组和区域中服务的主机上的命令行界面为多站点配置创建一个新的主区域。 然后,执行以下命令:

# radosgw-admin zone create --rgw-zonegroup={zone-group-name} \
                            --rgw-zone={zone-name} \
                            --master --default \
                            --endpoints={http://fqdn}[,{http://fqdn}]

例如:

# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east \
                            --master --default \
                            --endpoints={http://fqdn}[,{http://fqdn}]

笔记:这里--access-key和 --secret未指定。 这些可以在创建系统用户一节中指定。

重要:以下步骤假设使用新的多站点配置,安装的系统尚未存储数据。不要删除 default区域及其池(如果您已经在使用它来存储数据),否则数据将被删除且无法恢复。


4. 删除默认区域组和区域

删除 default区域(如果存在)。 确保将其首先从默认区域组中移除。

# radosgw-admin zonegroup remove --rgw-zonegroup=default --rgw-zone=default
# radosgw-admin period update --commit
# radosgw-admin zone rm --rgw-zone=default
# radosgw-admin period update --commit
# radosgw-admin zonegroup delete --rgw-zonegroup=default
# radosgw-admin period update --commit

最后,删除 Ceph 存储集群中 default 区域的池,如果它们存在。

重要:以下步骤假设使用新的多站点配置,当前未存储数据的已安装系统。 不要删除这个default区域组(如果您已经在使用它来存储数据)。

# ceph osd pool rm default.rgw.control default.rgw.control --yes-i-really-really-mean-it
# ceph osd pool rm default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it
# ceph osd pool rm default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
# ceph osd pool rm default.rgw.log default.rgw.log --yes-i-really-really-mean-it
# ceph osd pool rm default.rgw.users.uid default.rgw.users.uid --yes-i-really-really-mean-it


5. 创建系统用户

ceph-radosgw守护进程必须在拉取领域和周期信息之前进行身份验证。在主区域中,创建一个系统用户以促进守护进程之间的身份验证。

# radosgw-admin user create --uid="{user-name}" --display-name="{Display Name}" --system

例如:

# radosgw-admin user create --uid="synchronization-user" --display-name="Synchronization User" --system

记下 access_key和 secret_key,作为次要区域将要求他们通过主区域进行身份验证。

最后,将系统用户添加到主区域。

# radosgw-admin zone modify --rgw-zone=us-east --access-key={access-key} --secret={secret}
# radosgw-admin period update --commit


6. 更新周期

更新主区域配置后,更新周期。

# radosgw-admin period update --commit

笔记:更新周期会改变纪元,并确保其他区域将收到更新的配置。


7. 更新 Ceph 配置文件

通过添加以下内容来更新主区域主机上的 Ceph 配置文件,包括rgw_zone配置选项和主区域的名称实例入口。

[client.rgw.{instance-name}]
...
rgw_zone={zone-name}

例如:

[client.rgw.rgw1]
host = rgw1
rgw frontends = "civetweb port=80"
rgw_zone=us-east


8. 启动网关

在对象网关主机上,启动并启用 Ceph 对象网关服务:

# systemctl start ceph-radosgw@rgw.`hostname -s`
# systemctl enable ceph-radosgw@rgw.`hostname -s`

 

posted @ 2022-10-11 15:32  Varden  阅读(506)  评论(0编辑  收藏  举报