searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Ceph 中对象存储multisite相关配置的组织和管理方式

2023-06-29 02:53:41
16
0

       Ceph对象存储,.rgw.root池中,存储了与multisite特性相关的realm配置,包括realm、zonegroup、zone、period等信息,这里不探讨这些配置的业务意义,只是分析一下配置的组织管理方式。

       通过rados -p .rgw.root ls命令可以列举出所有相关rados对象。可以看到realm、zonegroup、zone信息组织方式基本是统一的,

realms.<id>.control 该对象用于watch-notify,当该realm发生变化后,commit时会交通知类型写入该对象,rgw网关之前已经watch了该对象,就会触发其notify流程进行相应的处理,如配置重新加载等。

realms_names.<realm-name> 用于存储该realm name对应的realm id

realms.<realm-id> 用于存储该realm id对应的realm info

default.realm 用于存储默认的realm id

zonegroups_names.<zonegroup-name> 用于存储该zonegroup name对应的zonegroup id

zonegroup_info.<zonegroup-id> 用于存储该zonegroup id对应的zonegroup info

default.zonegroup.<realm-id> 用于存储默认zonegroup id

zone_names.<zone-name> 用于存储该zone name对应的zone id

zone_info.<zone-id> 用于存储该zone id对应的zone info

default.zone.<realm-id> 用于存储默认zone id

period_config.<realm-id> 存储该realm使用的quota信息

periods.<period-id>.<epoch> 存储特定period-id和epoch确定的period info

periods.<period-id>.latest_epoch 存储特定period-id下最新的epoch

periods.<realm-id>:staging 特定realm下生成的period,但是还没有commit

       一般来讲realm创建后很少修改,主要修改zonegroup和zone配置,通过radosgw-admin命令修改zonegroup和zone信息后,会直接持久化到对应的rados对象,但是realm中记录的是当前使用的period id,也就是说realm不直接与zonegroup关联,而是与period关联,只修改zonegroup不生成或者更新period是无法生效的。执行radosgw-admin period update --commit,会生成一个新的periods.<period-id>.<epoch>,并更新periods.<period-id>.latest_epoch,然后通知网关进行配置加载,配置即可生效。这里需要注意的是,修改zone配置后,也是通过以上命令通知网关进行配置加载的,但是即使不通过以上命令生成新的period并通知网关,也可以重启网关使得zone配置生效。period中只包含了zonegroup信息,不包含zone详细信息。这可能是因为zone只需要本地生效,而zonegroup是多个集群共用的。

0条评论
0 / 1000
张****明
2文章数
2粉丝数
张****明
2 文章 | 2 粉丝
张****明
2文章数
2粉丝数
张****明
2 文章 | 2 粉丝
原创

Ceph 中对象存储multisite相关配置的组织和管理方式

2023-06-29 02:53:41
16
0

       Ceph对象存储,.rgw.root池中,存储了与multisite特性相关的realm配置,包括realm、zonegroup、zone、period等信息,这里不探讨这些配置的业务意义,只是分析一下配置的组织管理方式。

       通过rados -p .rgw.root ls命令可以列举出所有相关rados对象。可以看到realm、zonegroup、zone信息组织方式基本是统一的,

realms.<id>.control 该对象用于watch-notify,当该realm发生变化后,commit时会交通知类型写入该对象,rgw网关之前已经watch了该对象,就会触发其notify流程进行相应的处理,如配置重新加载等。

realms_names.<realm-name> 用于存储该realm name对应的realm id

realms.<realm-id> 用于存储该realm id对应的realm info

default.realm 用于存储默认的realm id

zonegroups_names.<zonegroup-name> 用于存储该zonegroup name对应的zonegroup id

zonegroup_info.<zonegroup-id> 用于存储该zonegroup id对应的zonegroup info

default.zonegroup.<realm-id> 用于存储默认zonegroup id

zone_names.<zone-name> 用于存储该zone name对应的zone id

zone_info.<zone-id> 用于存储该zone id对应的zone info

default.zone.<realm-id> 用于存储默认zone id

period_config.<realm-id> 存储该realm使用的quota信息

periods.<period-id>.<epoch> 存储特定period-id和epoch确定的period info

periods.<period-id>.latest_epoch 存储特定period-id下最新的epoch

periods.<realm-id>:staging 特定realm下生成的period,但是还没有commit

       一般来讲realm创建后很少修改,主要修改zonegroup和zone配置,通过radosgw-admin命令修改zonegroup和zone信息后,会直接持久化到对应的rados对象,但是realm中记录的是当前使用的period id,也就是说realm不直接与zonegroup关联,而是与period关联,只修改zonegroup不生成或者更新period是无法生效的。执行radosgw-admin period update --commit,会生成一个新的periods.<period-id>.<epoch>,并更新periods.<period-id>.latest_epoch,然后通知网关进行配置加载,配置即可生效。这里需要注意的是,修改zone配置后,也是通过以上命令通知网关进行配置加载的,但是即使不通过以上命令生成新的period并通知网关,也可以重启网关使得zone配置生效。period中只包含了zonegroup信息,不包含zone详细信息。这可能是因为zone只需要本地生效,而zonegroup是多个集群共用的。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0