Ceph radosgw multi-site多站点设置
来源:原创
时间:2020-09-07
作者:脚本小站
分类:Linux
Ceph集群multi-size设置:此实验是在两个单节点集群上。
官方文档:
https://docs.ceph.com/docs/nautilus/radosgw/multisite/
z1节点:
创建realm:
radosgw-admin -c ceph1 realm create --rgw-realm=xzxj --default
创建zonegroup:
radosgw-admin --cluster ceph1 zonegroup create --rgw-zonegroup=all --endpoints=http://ceph02.local:8080 --rgw-realm=xzxj --master --default
创建zone:
radosgw-admin --cluster ceph1 zone create --rgw-zonegroup=all --rgw-zone=z1 --endpoints=http://ceph02.local:8080 --default
创建系统账号:用于区域之间同步数据。
radosgw-admin --cluster ceph1 user create --uid="sync-user" --display-name="sync user" --system ... { "user": "sync-user", "access_key": "PKZL4DU5XRRSZ766M9JV", "secret_key": "UPf2DLZQi8tDf07TgCVX8IM81v2hbjL6ZX3BK4D2" } ...
设置同步数据的access_key和secret:
radosgw-admin --cluster ceph1 zone modify --rgw-zone=z1 --access-key=PKZL4DU5XRRSZ766M9JV --secret=UPf2DLZQi8tDf07TgCVX8IM81v2hbjL6ZX3BK4D2
更新period:
radosgw-admin --cluster ceph1 period update --commit
RGW配置:
[client.rgw.ceph02] host = ceph02 keyring=/etc/ceph/ceph.client.radosgw.keyring log file=/var/log/radosgw/client.radosgw.gateway.log rgw_frontends = civetweb port=8080 rgw_zone=z1
启动服务:启动后再重启一下,更新下数据。
systemctl start ceph-radosgw@rgw.`hostname -s` systemctl restart ceph-radosgw@rgw.`hostname -s`
z2节点:
下面命令用到的access-key和secret是在上面master节点生成的。遇到premission denied将主节点的rgw重启即可。
拉取组节点信息:
radosgw-admin --cluster ceph2 realm pull --url=http://ceph02.local:8080 --access-key=PKZL4DU5XRRSZ766M9JV --secret=UPf2DLZQi8tDf07TgCVX8IM81v2hbjL6ZX3BK4D2 radosgw-admin --cluster ceph2 period pull --url=http://ceph02.local:8080 --access-key=PKZL4DU5XRRSZ766M9JV --secret=UPf2DLZQi8tDf07TgCVX8IM81v2hbjL6ZX3BK4D2
创建区域2:
radosgw-admin --cluster ceph2 zone create --rgw-zonegroup=all --rgw-zone=z2 --endpoints=http://ceph03.local:8080 --access-key=PKZL4DU5XRRSZ766M9JV --secret=UPf2DLZQi8tDf07TgCVX8IM81v2hbjL6ZX3BK4D2 radosgw-admin --cluster ceph2 period update --commit
RGW配置:
[client.rgw.ceph03] host = ceph03 keyring=/etc/ceph/ceph.client.radosgw.keyring log file=/var/log/radosgw/client.radosgw.gateway.log rgw_frontends = civetweb port=8080 rgw_zone=z2
启动rgw:启动后再重启一次,否者可能会因为数据未跟新而遇到permission denied
systemctl start ceph-radosgw@rgw.`hostname -s` systemctl restart ceph-radosgw@rgw.`hostname -s`
查看集群同步状态:
~]# radosgw-admin sync status realm 62bef932-d09f-432e-8a7d-714e6ca67561 (xzxj) zonegroup 3d26b158-0316-4694-a474-dbbc6117d2a4 (all) zone 338c707d-3eed-4e4b-a396-d4bb0f11d1e6 (z1) metadata sync no sync (zone is master) data sync source: 89574cd1-225c-48b8-a39e-12068fdcc98b (z2) syncing full sync: 0/128 shards incremental sync: 128/128 shards data is caught up with source ~]# radosgw-admin sync status realm 62bef932-d09f-432e-8a7d-714e6ca67561 (xzxj) zonegroup 3d26b158-0316-4694-a474-dbbc6117d2a4 (all) zone 89574cd1-225c-48b8-a39e-12068fdcc98b (z2) metadata sync syncing full sync: 0/64 shards incremental sync: 64/64 shards metadata is caught up with master data sync source: 338c707d-3eed-4e4b-a396-d4bb0f11d1e6 (z1) syncing full sync: 0/128 shards incremental sync: 128/128 shards data is caught up with source
在master上创建账号在从节点上查看:
[root@ceph02 ~]# radosgw-admin --cluster ceph1 user create --uid="candon" --display-name="First User" [root@ceph03 ~]# radosgw-admin --cluster ceph2 user list [ "sync-user", "candon" ]
参考文档:
bbs.huaweicloud.com/blogs/169196
一些管理命令:
# 查看 zone radosgw-admin zone list # 删除 zone radosgw-admin zone delete --rgw-zone=wuhan1 # 查看 zonegroup radosgw-admin zonegroup list # 删除 zonegroup radosgw-admin zonegroup delete --rgw-zonegroup=wuhan # 查看 realm radosgw-admin realm list # 删除 realm radosgw-admin realm delete --rgw-realm=mye # 查看同步状态 radosgw-admin sync status
故障转义failover:
将z2设为master:
radosgw-admin --cluster ceph2 zone modify --rgw-zone=z2 --master --default radosgw-admin --cluster ceph2 period update --commit
灾难恢复:
原master zone恢复后,如果要切换为原来的zone为master,执行下面的命令:
radosgw-admin --cluster ceph1 realm pull --url=http://ceph02.local:8080 --access-key=ZA4TXA65C5TGCPX4B8V6 --secret=BEYnz6QdAvTbt36L7FhwGF2F5rHWeH66cb0eSO24 radosgw-admin --cluster ceph1 zone modify --rgw-zone=z1 --master --default radosgw-admin --cluster ceph1 period update --commit
然后在恢复的master节点上重启各个gateway服务。