成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們一起聊聊 Ceph 對象存儲多站點復制

存儲 數據管理
我們詳細講解了如何使用rgw管理器模塊在兩個站點/區域之間部署Ceph對象存儲多站點復制。這只是一個開始,我們的目標是構建一個完整的部署,包括必要的負載均衡。

如何在兩個Ceph集群之間建立初始的多站點復制配置,如下圖所示:

圖片

Ceph 對象存儲多站點初始配置概述

自Quincy版本起,Ceph引入了一個名為rgw的新管理器模塊,集成在cephadm編排器中。該模塊簡化了多站點復制的配置流程。本節將指導您如何使用rgw管理器模塊,通過CLI在兩個獨立Ceph集群(每個集群作為一個區域)之間配置對象存儲多站點復制。

創建RGW模塊配置文件

我們首先為cluster1創建一個RGW模塊配置文件。通過主機標簽來定義哪些節點可以托管每個服務。對于復制RGW服務,我們設置rgwsync標簽。任何配置了此標簽的主機都將啟動一個RGW服務,并使用文件中定義的規格。

[root@ceph-node-00 ~]# cat << EOF >> /root/rgw.spec
placement:
  label: rgwsync
  count_per_host: 1
rgw_realm: multisite
rgw_zone: zone1
rgw_zonegroup: multizg
spec:
  rgw_frontend_port: 8000
EOF

標記主機

在我們的第一個集群中,我們希望在節點ceph-node-00和ceph-node-01上運行rgwsync服務,因此我們需要標記相應的節點:

[root@ceph-node-00 ~]# ceph orch host label add ceph-node-00.cephlab.com rgwsync
Added label rgwsync to host ceph-node-00.cephlab.com
[root@ceph-node-00 ~]# ceph orch host label add ceph-node-01.cephlab.com rgwsync
Added label rgwsync to host ceph-node-01.cephlab.com

啟用RGW管理器模塊并引導配置

標記節點后,我們啟用RGW管理器模塊并引導RGW多站點配置。引導多站點配置時,rgw管理器模塊將執行以下步驟:

  • 創建領域、區域組和區域,并應用周期
  • 創建特定于區域名稱的RGW RADOS池
  • 創建RGW多站點復制同步用戶
  • 為每個RGW服務配置領域、區域組和區域
  • 使用cephadm Orchestrator創建RGW服務

[root@ceph-node-00 ~]# ceph mgr module enable rgw
[root@ceph-node-00 ~]# ceph rgw realm bootstrap -i rgw.spec
Realm(s) created correctly. Please use 'ceph rgw realm tokens' to get the token.

驗證配置

我們可以通過以下命令檢查領域、同步用戶和RADOS池的創建情況:

[root@ceph-node-00 ~]# radosgw-admin realm list
{
    "default_info": "d85b6eef-2285-4072-8407-35e2ea7a17a2",
    "realms": [
        "multisite"
    ]
}

多站點同步用戶:

[root@ceph01 ~]# radosgw-admin user list | grep sysuser
    "Sysuser-multisite"

Zone1 RGW RADOS 池:

[root@ceph01 ~]# ceph osd lspools | grep rgw
24 .rgw.root
25 zone1.rgw.log
26 zone1.rgw.control
27 zone1.rgw.meta

一旦我們創建了第一個桶,桶索引池就會自動創建。此外,一旦我們將第一個對象/數據上傳到zone1中的存儲桶,就會為我們創建數據池。默認情況下,副本為 3 的池是使用集群的預定義 CRUSH 規則replicated_rule創建的。如果我們想在數據池中使用糾刪碼 (EC) 或自定義故障域等,則需要在開始將數據上傳到第一個存儲桶之前,使用自定義內容手動預先創建池。

[!CAUTION]

請務必仔細檢查RGW池的Placement Groups(PG)數量是否正確,以確保所需的性能。我們可以選擇為每個池啟用帶有批量標志(bulk flag)的PG自動擴展管理器模塊,或者借助PG計算器(https://docs.ceph.com/en/squid/rados/operations/pgcalc/)預先靜態計算池所需的PG數量。我們建議每個OSD的PG副本目標值為200,即"PG比例"。

[!CAUTION]

只有RGW數據池可以配置為使用糾刪碼(erasure coding)。RGW其他池必須配置為副本,默認復制因子為3(size=3)。

RGW 服務已啟動并正在端口 8000 上為 S3 端點提供服務:

[root@ceph-node-00 ~]# curl http://ceph-node-00:8000
<?xml versinotallow="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>

RGW 管理器模塊創建一個帶有我們部署的編碼信息的令牌。想要作為復制區域添加到我們的多站點配置的其他 Ceph 集群可以將此令牌導入到 RGW 管理器模塊中,并使用單個命令配置和運行復制。

我們可以使用ceph rgw realm tokens命令檢查令牌的內容,并使用base64命令對其進行解碼。正如您所看到的,它提供了輔助區域連接到主區域組并提取領域和區域組配置所需的信息。

[root@ceph-node-00 ~]# TOKEN=$(ceph rgw realm tokens | jq .[0].token | sed 's/"http://g')
[root@ceph-node-00 ~]# echo $TOKEN | base64 -d
{
    "realm_name": "multisite",
    "realm_id": "d85b6eef-2285-4072-8407-35e2ea7a17a2",
    "endpoint": "http://ceph-node-00.cephlab.com:8000",
    "access_key": "RUB7U4C6CCOMG3EM9QGF",
    "secret": "vg8XFPehb21Y8oUMB9RS0XXXXH2E1qIDIhZzpC"
}

從提示中可以看到,我們已經切換到第二個 Ceph 集群,從第一個集群復制了令牌,并與第一個集群類似地定義了其余參數。

[root@ceph-node-04 ~]# cat rgw2.spec
placement:
  label: rgwsync
  count_per_host: 1
rgw_zone: zone2
rgw_realm_token: ewogICAgInJlYWxtX25hbWUiOiAibXVsdGlzaXRlIiwKICAgICJyZWFsbV9pZCI6ICIxNmM3OGJkMS0xOTIwLTRlMjMtOGM3Yi1lYmYxNWQ5ODI0NTgiLAogICAgImVuZHBvaW50IjogImh0dHA6Ly9jZXBoLW5vZGUtMDEuY2VwaGxhYi5jb206ODAwMCIsCiAgICAiYWNjZXNzX2tleSI6ICIwOFlXQ0NTNzEzUU9LN0pQQzFRUSIsCiAgICAic2VjcmV0IjogImZUZGlmTXpDUldaSXgwajI0ZEw4VGppRUFtOHpRdE01ZGNScXEyTjYiCn0=
spec:
  rgw_frontend_port: 8000

我們標記將運行 Ceph RGW 同步服務的主機:

[root@ceph-node-04 ~]# ceph orch host label add ceph-node-04.cephlab.com rgwsync
Added label rgwsync to host ceph-node-04.cephlab.com
[root@ceph-node-04 ~]# ceph orch host label add ceph-node-05.cephlab.com rgwsync
Added label rgwsync to host ceph-node-05.cephlab.com

啟用該模塊,并使用我們剛才創建的規范文件運行ceph rgw zone create命令:

[root@ceph02 ~]# ceph mgr module enable rgw
[root@ceph02 ~]# ceph rgw zone create -i rgw2.spec --start-radosgw
Zones zone2 created successfully

rgw管理器模塊將負責使用多站點同步用戶的訪問密鑰和密鑰來拉取領域和區域組周期。最后,它將創建zone2并進行最后一次更新,以便所有區域都具有最新的配置更改,并將zone2添加到 zonegroup multizg中。在radosgw-adminzonegroup get命令的以下輸出中,我們可以看到區域組端點。我們還可以看到zone1是我們的 zonegroup 的主區域以及zone1和zone2的相應端點。

[root@ceph-node-00 ~]# radosgw-admin zonegroup get
{
    "id": "2761ad42-fd71-4170-87c6-74c20dd1e334",
    "name": "multizg",
    "api_name": "multizg",
    "is_master": true,
    "endpoints": [
        "http://ceph-node-04.cephlab.com:8000",
        "http://ceph-node-05.cephlab.com:8000"
    ],
    "hostnames": [],
    "hostnames_s3website": [],
    "master_zone": "66df8c0a-c67d-4bd7-9975-bc02a549f13e",
    "zones": [
        {
            "id": "66df8c0a-c67d-4bd7-9975-bc02a549f13e",
            "name": "zone1",
            "endpoints": [
                "http://ceph-node-00.cephlab.com:8000",
                "http://ceph-node-01.cephlab.com:8000"
            ],
            "log_meta": false,
            "log_data": true,
            "bucket_index_max_shards": 11,
            "read_only": false,
            "tier_type": "",
            "sync_from_all": true,
            "sync_from": [],
            "redirect_zone": "",
            "supported_features": [
                "compress-encrypted",
                "resharding"
            ]
        },
        {
            "id": "7b9273a9-eb59-413d-a465-3029664c73d7",
            "name": "zone2",
            "endpoints": [
                "http://ceph-node-04.cephlab.com:8000",
                "http://ceph-node-05.cephlab.com:8000"
            ],
            "log_meta": false,
            "log_data": true,
            "bucket_index_max_shards": 11,
            "read_only": false,
            "tier_type": "",
            "sync_from_all": true,
            "sync_from": [],
            "redirect_zone": "",
            "supported_features": [
                "compress-encrypted",
                "resharding"
            ]
        }
    ],
    "placement_targets": [
        {
            "name": "default-placement",
            "tags": [],
            "storage_classes": [
                "STANDARD"
            ]
        }
    ],
    "default_placement": "default-placement",
    "realm_id": "beeea955-8341-41cc-a046-46de2d5ddeb9",
    "sync_policy": {
        "groups": []
    },
    "enabled_features": [
        "resharding"
    ]
}

為了驗證復制是否正常工作,我們創建一個用戶和一個存儲桶:

[root@ceph-node-00 ~]# radosgw-admin user create --uid='user1' --display-name='First User' --access-key='S3user1' --secret-key='S3user1key'


[root@ceph-node-00 ~]# aws configure
AWS Access Key ID [None]: S3user1
AWS Secret Access Key [None]: S3user1key
Default region name [None]: multizg
Default output format [None]: json
[root@ceph-node-00 ~]# aws --endpoint http://s3.cephlab.com:80 s3 ls
[root@ceph-node-00 ~]# aws --endpoint http://s3.cephlab.com:80 s3 mb s3://firstbucket
make_bucket: firstbucket
[root@ceph-node-00 ~]# aws --endpoint http://s3.cephlab.com:80 s3 cp /etc/hosts s3://firstbucket
upload: ../etc/hosts to s3://firstbucket/hosts

如果我們從第二個 Ceph 集群zone2進行檢查,我們可以看到所有元數據都已復制,并且我們在zone1中創建的所有用戶和存儲桶現在都存在于zone2中。

[!CAUTION]

注意:在此示例中,我們將使用radosgw-admin命令進行檢查,但我們也可以使用 S3 API 命令將 AWS 客戶端指向第二個區域內 RGW 的 IP/主機名。

[root@ceph-node-04 ~]# radosgw-admin user list
[
    "dashboard",
    "user1",
    "sysuser-multisite"
]
[root@ceph-node-04 ~]# radosgw-admin bucket stats --bucket testbucket | jq .bucket
"testbucket"

要檢查復制狀態,我們可以使用radosgw-admin sync status命令。例如:

[root@ceph-node-00 ~]# radosgw-admin sync status
          realm beeea955-8341-41cc-a046-46de2d5ddeb9 (multisite)
      zonegroup 2761ad42-fd71-4170-87c6-74c20dd1e334 (multizg)
           zone 66df8c0a-c67d-4bd7-9975-bc02a549f13e (zone1)
   current time 2024-01-05T22:51:17Z
zonegroup features enabled: resharding
                   disabled: compress-encrypted
  metadata sync no sync (zone is master)
      data sync source: 7b9273a9-eb59-413d-a465-3029664c73d7 (zone2)
                        syncing
                        full sync: 0/128 shards
                        incremental sync: 128/128 shards
                        data is caught up with source

總  結

我們詳細講解了如何使用rgw管理器模塊在兩個站點/區域之間部署Ceph對象存儲多站點復制。這只是一個開始,我們的目標是構建一個完整的部署,包括必要的負載均衡。

圖片 圖片

責任編輯:武曉燕 來源: 新鈦云服
相關推薦

2025-04-16 08:01:05

Ceph對象存儲

2025-05-07 08:01:29

Ceph對象存儲

2025-05-29 01:20:00

Ceph對象存儲

2024-06-12 09:52:00

2024-02-20 21:34:16

循環GolangGo

2021-08-27 07:06:10

IOJava抽象

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-06-30 08:18:51

敏捷開發模式

2022-05-24 08:21:16

數據安全API

2023-09-10 21:42:31

2024-02-26 00:00:00

Go性能工具

2022-10-28 07:27:17

Netty異步Future

2022-11-12 12:33:38

CSS預處理器Sass

2022-06-26 09:40:55

Django框架服務

2023-04-26 07:30:00

promptUI非結構化

2022-02-14 07:03:31

網站安全MFA

2022-12-07 13:12:15

2025-03-27 02:00:00

SPIJava接口

2023-07-27 07:46:51

SAFe團隊測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲激情专区 | 国产精品久久久久久久一区二区 | 欧美精品综合在线 | 日韩一区二区三区在线观看视频 | 超碰电影| 日韩网站免费观看 | 欧美偷偷操 | 国产精品久久久久久久久久久久久 | 中文字幕精品视频 | 欧美国产精品一区二区三区 | 黄色毛片视频 | 超碰男人天堂 | 一级黄a视频 | www.日本三级 | 欧美久久一区二区三区 | 黄色片在线免费看 | 亚洲资源站 | 久久婷婷麻豆国产91天堂 | 男女啪啪高潮无遮挡免费动态 | 精品国产乱码久久久久久蜜退臀 | 亚洲一区二区三区免费在线观看 | 成人欧美一区二区三区黑人孕妇 | 成人在线精品视频 | 天天爱av| 99久久日韩精品免费热麻豆美女 | 熟女毛片| 日本精品在线播放 | 国产在线精品一区二区三区 | 国产高清视频一区二区 | 久久亚洲国产 | 国产精品国产成人国产三级 | 久久夜视频 | av手机在线播放 | 国产伦精品一区二区 | 久久99精品国产99久久6男男 | 日本精品久久久一区二区三区 | 91精品国产综合久久久久久首页 | 国产精品亚洲综合 | 天天操网| 日韩中文电影 | 久久精品视频12 |