'小白打怪' 公众号记录了 非存储相关专业 的 小白 毕业入职
后,四年多在存储领域学习打怪升级的过程,文章干货满满,有趣易懂,非常适合Ceph初学者阅读,欢迎关注同行,共同进步~
一、看流程图前,需要认识下 data sync机制 的三个角色Data、DataLogShard、BucketInstanceShard
rgw的multisite sync分为两部分:metadata sync 和 data sync。metadata包括bucket信息、bucket instance信息、user信息等;data指的是存储对象的实际数据,记为Data。
rgw使用datalog来记录Data的变化,为防止datalog成为瓶颈,将datalog分成了 ${rgw_data_log_num_shards} 个shard,即DataLogShard,DataLogShard记录了Data的变化。
rgw使用bucket index来提升list对象的效率。为防止bucket index成为瓶颈,将bucket分成了 ${rgw_override_bucket_index_max_shards} 个BucketInstanceShard。每个BucketInstanceShard的bucket index log记录了该BucketInstanceShard内对象的变化。
rgw的每个BucketInstanceShard都会通过hash映射到某个DataLogShard上,形成了如下形式的映射关系,理解这层映射关系是理解data sync的重要前提。
DataLogShard ... : ...DataLogShard 12 : bucket_a:0、bucket_b:3DataLogShard 13 : bucket_a:4、bucket_b:7、bucket_c:5 ...DataLogShard ... : ...
当某个BucketInstanceShard内的数据发生变化时,对应的DataLogShard的datalog会记录哪个BucketInstanceShard发生了数据变化。
二、流程图

'小白打怪' 公众号记录了 非存储相关专业 的 小白 毕业入职
后,四年多在存储领域学习打怪升级的过程,文章干货满满,有趣易懂,非常适合Ceph初学者阅读,欢迎关注同行,共同进步~





