美文网首页
Realm和Period

Realm和Period

作者: 宋新颖 | 来源:发表于2017-12-29 09:24 被阅读0次

在配置多个zongroup或者使用非默认zone名称时,需要手动创建Realm、Zonegroup、Zone信息,一般流程如下:

radosgw-admin realm create --rgw-realm=realm_abc --default
radosgw-admin zonegroup create --rgw-zonegroup=zonegroup_abc --endpoints=http://10.2.0.98:7480 --master --default
radosgw-admin zone create --rgw-zonegroup=zonegroup_abc --rgw-zone=zone_master --endpoints=http://10.2.0.98:7480 --access-key=tmp2 --secret=tmp2 --default --master
radosgw-admin user create --uid=foo --display-name="FOO"  --access-key=tmp2 --secret=tmp2 --system
radosgw-admin period update --commit

当没有配置多个zongroup可以省略endpoints和ak、sk配置项。

rgw的zone相关信息都会放到一组realm、zonggroup、zone、period对象中存储。realm是一个大的容器,覆盖整个集群的存活时间线;zonggroup和zone对象分别存储zonegroup和zone的配置信息;period对是一系列对象,当zone配置变化时,period可能fork新的分支来存储相关信息。

rgw_rados初始化时首先从default.realm对象读取当前最新realm的realm-id,进而从realms.<realm-id>对象加载realm信息;从加载的realm信息中可以得到当前period的id,进而从periods.<period-id>对象初始化period信息,至此period信息加载完毕,rgw便拥有了当前集群的zone相关配置信息。

上述第一条命令realm create执行时会发生如下流程:

realm create

上图也列出了realm、zonegroup和zone三种对象的组织结构,每种对象都会有一个default对象,这里面存放默认的id,每种对象都会有一个或多个id-name对象对,name对象只存放关联的id对象的id值,id对象存放真正的数据。

realm create执行完毕后.rgw.root下便创建好了realm和period对象

root@i-4j72yrbx:~/onestep# rados -p .rgw.root ls
periods.3aba5ae0-b3a2-48a4-89cc-3d2c01d4920d.latest_epoch
realms_names.realm_abc
default.realm
periods.3aba5ae0-b3a2-48a4-89cc-3d2c01d4920d.1
realms.d9d01909-a163-4ac6-8a2f-2f1e0203bb33.control
realms.d9d01909-a163-4ac6-8a2f-2f1e0203bb33
period_config.d9d01909-a163-4ac6-8a2f-2f1e0203bb33

其中realms.<realm-id>.control对象是用于notify通知,period_config对象记录了quota信息,periods.<period-id>.latest_epoch记录了此period当前最新的epoch。

继续执行zonegroup和zone的创建命令时,.rgw.rootpool下回分别多出三个相关对象:default对象,name对象,info对象。
此时period信息仍为空,rgw还不知道新增加的zone配置。
继续执行period update --commit命令,会更新period信息,此时rgw才掌握了新增加的zone配置信息。

period update流程

从上图可以看出period只有在master zone变更时才会产生新的id,否则一直沿用之前的period-id,只时每次对period-epoch进行增加。不执行commit时信息只保存到periods.<realm-id>:staging对象中,不会写到realm,所以默认情况下rgw仍然无法加载这个period。

相关文章

  • Realm和Period

    在配置多个zongroup或者使用非默认zone名称时,需要手动创建Realm、Zonegroup、Zone信息,...

  • Realm存储的类型和Realm数据库关系存储制

    文档类型 : 学习笔记 Realm文章链接: 1.iOS Realm简单使用(增删改查和排序) 2.Realm存储...

  • Realm可空属性,默认值,忽略属性,通知

    文章类型: 学习笔记 Realm文章链接: 1.iOS Realm简单使用(增删改查和排序) 2.Realm存储的...

  • Realm用户机制,数据库操作,数据库迁移

    文章类型:学习笔记 Realm文章链接: 1.iOS Realm简单使用(增删改查和排序) 2.Realm存储的类...

  • Realm Java的学习、应用、总结

    从React Native珠三角沙龙会议了解到Realm这个开源库,然后开始学习、理解和使用Realm。Realm...

  • 移动端数据库realm和wcdb对比

    数据库对比:realm和wcdb数据库的对比 Realm github 13.6k关注、跨平台支持Realm是开源...

  • Period

    在日期的操作中,我们经常会用到period的操作, 参数:frep:偏移量,参数可以参考date_range里面的...

  • period

    终于结束了。 女人的烦恼。她来吧,很难受,一周都不开心,不舒服,甚至很难受。她不来吧,你又觉得是不是身体哪里出了问...

  • Period

    前几天在简书上看到一句话 原来人生所有好走的路,都是下坡路 深以为然 我也不知道我走...

  • Period

    句号 Period 句号表示一个句子的结束。 Hockey is a popular sport in Canad...

网友评论

      本文标题:Realm和Period

      本文链接:https://www.haomeiwen.com/subject/ljgbgxtx.html