在配置多個(gè)zongroup或者使用非默認(rèn)zone名稱時(shí),需要手動(dòng)創(chuàng)建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
當(dāng)沒有配置多個(gè)zongroup可以省略endpoints和ak肤无、sk配置項(xiàng)。
rgw的zone相關(guān)信息都會(huì)放到一組realm骇钦、zonggroup宛渐、zone、period對(duì)象中存儲(chǔ)眯搭。realm是一個(gè)大的容器窥翩,覆蓋整個(gè)集群的存活時(shí)間線;zonggroup和zone對(duì)象分別存儲(chǔ)zonegroup和zone的配置信息鳞仙;period對(duì)是一系列對(duì)象寇蚊,當(dāng)zone配置變化時(shí),period可能fork新的分支來存儲(chǔ)相關(guān)信息棍好。
rgw_rados初始化時(shí)首先從default.realm
對(duì)象讀取當(dāng)前最新realm的realm-id仗岸,進(jìn)而從realms.<realm-id>
對(duì)象加載realm信息;從加載的realm信息中可以得到當(dāng)前period的id梳玫,進(jìn)而從periods.<period-id>
對(duì)象初始化period信息爹梁,至此period信息加載完畢,rgw便擁有了當(dāng)前集群的zone相關(guān)配置信息提澎。
上述第一條命令realm create執(zhí)行時(shí)會(huì)發(fā)生如下流程:
上圖也列出了realm姚垃、zonegroup和zone三種對(duì)象的組織結(jié)構(gòu),每種對(duì)象都會(huì)有一個(gè)default對(duì)象盼忌,這里面存放默認(rèn)的id积糯,每種對(duì)象都會(huì)有一個(gè)或多個(gè)id-name對(duì)象對(duì)掂墓,name對(duì)象只存放關(guān)聯(lián)的id對(duì)象的id值,id對(duì)象存放真正的數(shù)據(jù)看成。
realm create執(zhí)行完畢后.rgw.root
下便創(chuàng)建好了realm和period對(duì)象
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對(duì)象是用于notify通知君编,period_config對(duì)象記錄了quota信息,periods.<period-id>.latest_epoch記錄了此period當(dāng)前最新的epoch川慌。
繼續(xù)執(zhí)行zonegroup和zone的創(chuàng)建命令時(shí)吃嘿,.rgw.root
pool下回分別多出三個(gè)相關(guān)對(duì)象:default對(duì)象,name對(duì)象梦重,info對(duì)象兑燥。
此時(shí)period信息仍為空,rgw還不知道新增加的zone配置琴拧。
繼續(xù)執(zhí)行period update --commit
命令降瞳,會(huì)更新period信息,此時(shí)rgw才掌握了新增加的zone配置信息蚓胸。
從上圖可以看出period只有在master zone變更時(shí)才會(huì)產(chǎn)生新的id挣饥,否則一直沿用之前的period-id,只時(shí)每次對(duì)period-epoch進(jìn)行增加沛膳。不執(zhí)行commit時(shí)信息只保存到periods.<realm-id>:staging
對(duì)象中扔枫,不會(huì)寫到realm,所以默認(rèn)情況下rgw仍然無法加載這個(gè)period锹安。