分散式儲存ceph 物件儲存配置zone同步

HitTwice發表於2018-07-05

一、架構:  
Ceph天生帶兩地三中心概念,我們要去的雙活就是兩個資料中心,Ceph兩資料中心可以在一個叢集也可以在不同的叢集中。

   

二,概念:        

zone:包含多個RGW例項的一個邏輯概念。zone不能跨叢集。同一個zone的資料儲存在同一組pool中。    

zonegroup:一個zonegroup如果包含1個或多個zone。如果一個zonegroup包含多個zone,必須指定 一個zone作為master zone,用來處理bucket和使用者的建立。一個叢集可以建立多個zonegroup,一個zonegroup也可以跨多個叢集。      

realm:一個realm包含1個或多個zonegroup。如果realm包含多個zonegroup,必須指定一個zonegroup為master zonegroup, 用來處理系統操作。一個系統中可以包含多個realm,多個realm之間資源完全隔離。

RGW多活方式是在同一zonegroup的多個zone之間進行,即同一zonegroup中多個zone之間的資料是完全一致的,使用者可以通過任意zone讀寫同一份資料。 但是,對後設資料的操作,比如建立桶、建立使用者,仍然只能在master zone進行。對資料的操作,比如建立桶中的物件,訪問物件等,可以在任意zone中 處理。

三、在Cluster1叢集上配置master zone

  1. 建立realm
    radosgw-admin realm create --rgw-realm=earth --default

  2. 建立master zonegroup

    先刪除預設的zonegroup
    radosgw-admin zonegroup delete --rgw-zonegroup=default

    建立一個為china的zonegroup
    radosgw-admin zonegroup create --rgw-zonegroup=china --endpoints=ceph-1:7480 --master --default
  3. 建立master zone

    先刪除預設的zone
    adosgw-admin zone delete --rgw-zone=default

    建立一個為huabei的zone
    radosgw-admin zone create --rgw-zonegroup=china --rgw-zone=huabei --endpoints=ceph-1:7480 --default --master

  4. 建立一個system賬戶用於和huadong zone同步
    radosgw-admin user create --uid="sync-user" --display-name="sync user" --system
     
  5. 用建立system賬戶產生的access 和secret更新zone配置
    radosgw-admin zone modify --rgw-zone=huabei --access-key={access-key} --secret={secret}
  6. 更新period

    radosgw-admin period update --commit

  7.  配置ceph.conf

    [client.rgw.ceph-1]

        host = ceph-1

        rgw frontends = "civetweb port=7480"

        rgw_zone=huabei


四、在Cluster2叢集上配置slave zone

  1. 從master zone拉取realm

    radosgw-admin realm pull --url=ceph-2:7480 --access-key={access-key} --secret={secret}

    注意:這裡的access key 和secret是master zone上system 賬戶的access key和secret

  2. 拉取period

    radosgw-admin period pull --url=ceph-2:7480 --access-key={access-key} --secret={secret}

    注意:這裡的access key 和secret是master zone上system 賬戶的access key和secret

  3. 建立slave zone

     radosgw-admin zone create --rgw-zonegroup=china --rgw-zone=huadong \

                                --access-key={system-key} --secret={secret} \

                                --endpoints=ceph-2:7480

     注意:這裡的access key 和secret是master zone上system 賬戶的access key和secret

  4. 更新period

    radosgw-admin period update --commit

    注意:如果出現認證錯誤,重啟master zone的例項服務

配置ceph.conf

       [client.rgw.ceph-2]

        host = ceph-2

        rgw frontends = "civetweb port=7480"

        rgw_zone=huadong

五、驗證zone之間資料同步

  1. 在secondary zone節點執行
    radosgw-admin sync status 
  2. 在master zone節點上建立使用者
    radosgw-admin user create --uid="testuser" --display-name="First User"
  3. 用s3客戶端 建立桶,並put 物件

注意: 在slave zone節點上也要建立相同的使用者才會看到建立的桶,和上傳的物件。

作者:tqyin

原文連結:https://my.oschina.net/ytqvip/blog/1601669

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2157410/,如需轉載,請註明出處,否則將追究法律責任。

相關文章