1. 程式人生 > >ceph radosgw 物件定址和元資料組織

ceph radosgw 物件定址和元資料組織

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等)