5.4. 建立二级 zone
zone group 中的 zone 复制所有数据,以确保每个区具有相同的数据。在创建二级 zone 时,在标识为服务二级 zone 的主机上执行所有 radosgw-admin zone
操作。
要添加其他区域,其步骤与添加二级 zone 相同。使用不同的区名称。
-
在 master zone group 的 master zone 中的主机上运行元数据操作,如用户创建和配额。master zone 和 second zone 可以从 RESTful API 接收 bucket 操作,但 second zone 会将 bucket 操作重定向到 master zone。如果 master zone 为 down,则存储桶操作将失败。如果使用
radosgw-admin
CLI 创建存储桶,您必须在 master zone group 的 master zone 中的主机上运行它,以便存储桶将与其他 zone group 和 zone 同步。 -
不支持为特定用户创建存储桶,即使您在 second zone 中创建具有
--yes-i-really-mean-it
的用户。
先决条件
- 至少两个正在运行的 Red Hat Ceph Storage 集群。
- 至少两个 Ceph 对象网关实例,每个实例对应一个 Red Hat Ceph Storage 集群。
- 所有节点的根级别访问权限。
- 节点或容器添加到存储集群中。
- 部署所有 Ceph 管理器、监控器和 OSD 守护进程。
流程
登录
cephadm
shell:示例
[root@host04 ~]# cephadm shell
从主机拉取主要域配置:
语法
radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
示例
[ceph: root@host04 /]# radosgw-admin realm pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
从主机拉取主要 period 配置:
语法
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
示例
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
配置 second zone:
注意所有区域默认在主动配置中运行;即,网关客户端可能会将数据写入任何区域,并且区域会将数据复制到 zone group 中所有其他 zone。如果 second zone 不应该接受写操作,请指定
'--read-only
标志,以在 master 区域和 second 区域之间创建主动 - 被动配置。另外,提供生成的系统用户的access_key
和secret_key
存储在 master zone group 的 master zone 中。语法
radosgw-admin zone create --rgw-zonegroup=_ZONE_GROUP_NAME_ \ --rgw-zone=_SECONDARY_ZONE_NAME_ --endpoints=http://_RGW_SECONDARY_HOSTNAME_:_RGW_PRIMARY_PORT_NUMBER_1_ \ --access-key=_SYSTEM_ACCESS_KEY_ --secret=_SYSTEM_SECRET_KEY_ \ [--read-only]
示例
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
可选:删除默认区:
重要如果您使用默认 zone 和 zone group 存储数据,则不要删除默认区域及其池。
示例
[ceph: root@host04 /]# radosgw-admin zone rm --rgw-zone=default [ceph: root@host04 /]# ceph osd pool rm default.rgw.log default.rgw.log --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.meta default.rgw.meta --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.control default.rgw.control --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
更新 Ceph 配置数据库:
语法
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone SECONDARY_ZONE_NAME
示例
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-2
提交更改:
语法
radosgw-admin period update --commit
示例
[ceph: root@host04 /]# radosgw-admin period update --commit
在
cephadm
shell 外部,获取存储集群的 FSID 及进程:示例
[root@host04 ~]# systemctl list-units | grep ceph
启动 Ceph 对象网关守护进程:
语法
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
示例
[root@host04 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service [root@host04 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service