1. 对象寻址
rgw对象寻址的过程就是“拼接对象串“的过程,再结合bucket.pool就能对应到rados对象。
1.1 普通对象
1.2 multipart 对象
1.3 非multipart versioned对象
1.4 multipart versioned 对象
2. rgw元数据pool的作用
struct RGWZoneParams {
rgw_bucket domain_root; // .rgw // bucket 元数据信息
rgw_bucket control_pool; // .rgw.control // watch/notify cache
rgw_bucket gc_pool; // .rgw.gc // 辅助gc
rgw_bucket log_pool; // .log // op/meta/data
rgw_bucket intent_log_pool; // .intent-log // 没有用
rgw_bucket usage_log_pool; // .usage // 读写等统计信息
rgw_bucket user_keys_pool; // .users.uid //存储用户AK和uid的对应关系
rgw_bucket user_email_pool; // .users.email //email 和 uid的对应关系
rgw_bucket user_swift_pool; // .users.swift // swift key和uid的对应关系
rgw_bucket user_uid_pool; // .users.uid // 用户信息和用户创建的buckets
};
// 每个placement 都要设置如下3中pool
struct RGWZonePlacementInfo {
string index_pool; // .rgw.buckets.index
string data_pool; // dpool1
string data_extra_pool; // .rgw.buckets.extra // multiupload 临时对象
}
rgw region root pool // .rgw.root // zone/region(zonegroup) 信息
rgw zone root pool // .rgw.root
jewel版之后添加的
metadata_heap // .rgw.lc // lifecycle 信息
life_cycle // .rgw.meta // metadata heap //metadata 信息(bucket/user等)