Rgw 利用multisite的bucket Sync Disable特性实现集群扩容

一. 前言


ceph 号称可以无限度的扩容,但是扩容带来的代价非常大,PG分裂,主机的添加等造成的数据重新平衡,会导致大量的数据迁移,影响业务的稳定,甚至是暂时的不可用

二. 扩容的几个方案


三. 扩容的整体架构思想


这里要实践的方案是第四种扩容方案,通过 bucket sync diable特性禁止zone之间的bucket数据同步,而metadata同步不受限制来实现,这里感谢Ceph中国社区创始人之一:秦牧羊,这个方案是根据秦牧羊在2018年杭州沙龙《基于ceph构建PB级对象存储实践-JD金融》PPT的实践。(PPT可以在参考文档获取)

sync disable 分享中的整个的实现架构如上,在HTTP路由层通过bucket名字将不同bucket请求转发到指定的zone。这里主要分析bucket sync disable这个特性。其他处理层,查阅一下PPT的实现,ceph层面主要有两个要注意的,就是multisite中metadata数据只能从master同步到其他zone,所以像用户的创建,bucket的权限设置等操作,需要在master zone去做

1. 测试bucket sync disable 特性

这里使用的是Rgw Multisite异地多活的方案实践这篇博文的环境,multisite的搭建这里就不多加描述了。

2. disable|enable sync特性的实现方式

这里研究一下disable sync的这个特性,这个特性的来历是这样的,GitHub上有个developer提了一个需求,需要禁止指定的bucket同步的,最后自己实现了,提交了代码,最后官方合并了这个PR. PR地址 rgw multisite: feature of bucket sync enable/disable #15801

四. 总结


整个扩容方案的思想是
参考文档