radosgw搭建zone 的数据同步

来源:互联网 发布:你好万维网 域名转出 编辑:程序博客网 时间:2024/05/22 12:28
一、概念:      
    1、zone:可用区,有一个或多个对象网关实例组成。zone不可以跨集群,配置zone不同于其他典型配置,因为不需要在ceph.conf中配置。
    2、zonegroup:以前叫做“region”,有多个zone组成,一个zonegroup里面有一个master zone,在同一个zonegroup中的多个zone可以同步元数据和数据,提供灾难恢复能力。
    3、realm:代表一个唯一的命名空间,有一个或多个zonegroup组成。在同一个realm中的不同zonegroup只能同步元数据。在realm中有period的概念,表示zonegroup的配置状态,修改zonegroup,必须更新period。
二、在ceph-1集群上配置master zone
      1、创建realm
      radosgw-admin realm create --rgw-realm=movies --default
     如果没有指定default 后面在配置zone 和zonegroup的时候要指定realm
      2、创建master zonegroup
      radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://10.33.0.13:80  --master --default
      3、创建master zone
      radosgw-admin zone create  --rgw-zone=us-east --master --default --endpoints=10.33.0.13:80
      4、创建一个system账户用于和us-west zone同步
       radosgw-admin user create --uid="synchronization-user" --display-name="Synchronization User" --system
     5、用创建system账户产生的access 和secret更新zone配置
     radosgw-admin zone modify --rgw-zone=us-east --access-key={access-key} --secret={secret}
    6、更新period
    radosgw-admin period update --commit
     7、配置ceph.conf
     [client.rgw.node2]
          host = node2
          rgw frontends = "civetweb port=80"
          rgw_zone=us-east
    8、搭建radosgw
       见https://my.oschina.net/u/2326998/blog/838611
三、在ceph-2集群上配置secondary zone
       1、从master zone拉取realm
       radosgw-admin realm pull --url=http://10.33.0.13:80 --access-key={access-key} --secret={secret}
       note:这里的access key 和secret是master zone上system 账户的access key和secret
      2、拉取period
      radosgw-admin period pull --url=http://10.33.0.13:80 --access-key={access-key} --secret={secret}
     note:这里的access key和secret 同上
     3、创建secondary zone
       radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-west \
                            --access-key={system-key} --secret={secret} \
                            --endpoints=http://10.33.0.40:80
       note:这里的access key和secret是在master zone中system账户的创建的。
    4、更新period
       radosgw-admin period update --commit
       note:如果出现认证错误,重启master zone的实例服务
    5、配置ceph.conf
       [client.rgw.rgw2]
        host = node3
        rgw frontends = "civetweb port=80"
        rgw_zone=us-west
    6、搭建radosgw
     见https://my.oschina.net/u/2326998/blog/838611
 
四、验证zone之间数据同步
     1、在secondary zone节点执行
        radosgw-admin sync status
              realm 89daf245-1a59-44d4-b3f9-d8b141dfb226 (movies)
      zonegroup 398ed754-1d07-497d-ad35-84ec99c36f21 (us)
           zone b5752408-e416-4b9c-919e-924d624ea290 (us-west)
  metadata sync syncing
                full sync: 0/4 shards
                metadata is caught up with master
                incremental sync: 4/4 shards
      data sync source: 73dbf160-d57d-41b5-9870-97fe7e7e7c1a (us-east)
                        syncing
                        full sync: 0/8 shards
                        incremental sync: 8/8 shards
                        data is caught up with source
  
  可以看到数据和元数据都已同步
   2、在master zone节点上创建用户
      radosgw-admin user create --uid="testuser" --display-name="First User"
   3、  用s3客户端 创建桶,并put 对象


**注意 在secondary zone节点上也要创建相同的用户才会看到创建的桶,和上传的对象**。

原创粉丝点击