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

Ceph 對象存儲多站點復制:多站點同步策略

存儲 存儲架構
存儲桶同步策略主要應用于歸檔區域(archive zones)。從歸檔區域的數據移動是單向的,即所有對象可以從活躍區域(active zone)移動到歸檔區域,但不能從歸檔區域移動到活躍區域,因為歸檔區域是只讀的。我們將在博客系列的第六部分詳細討論歸檔區域。

多站點同步策略介紹

在從 Quincy 開始的 Ceph 版本中,Ceph 對象存儲提供了細粒度的存儲桶級復制,提供了很多有用的功能。用戶可以啟用或禁用每個存儲桶的同步,從而實現對復制工作流程的精確控制。這支持全區域復制,同時可以排除特定存儲桶的復制、將單個源存儲桶復制到多目標存儲桶,并實現對稱和定向數據流配置。下圖顯示了正在運行的同步策略功能的示例:

圖片圖片

在我們之前的同步模型中,采用的是全區域同步(full zone sync),即所有數據和元數據都會在區域之間同步。而新的同步策略功能為我們提供了更高的靈活性和細粒度控制,允許我們按存儲桶(bucket)配置復制。

存儲桶同步策略主要應用于歸檔區域(archive zones)。從歸檔區域的數據移動是單向的,即所有對象可以從活躍區域(active zone)移動到歸檔區域,但不能從歸檔區域移動到活躍區域,因為歸檔區域是只讀的。我們將在博客系列的第六部分詳細討論歸檔區域。

以下是Quincy和Reef版本中提供的一些功能列表:

Quincy 版本功能:

  • 一對一存儲桶復制
  • 區域組(Zonegroup)級別的策略配置
  • 存儲桶(Bucket)級別的策略配置
  • 可配置的數據流 - 對稱模式
  • 僅支持全新的多站點部署(Greenfield/New Multisite Deployments)

Reef 版本功能:

  • 對象名稱過濾
  • 從傳統的多站點同步(全區域復制)遷移到同步策略(區域組或存儲桶級別)
  • 歸檔區域同步策略(按存儲桶啟用/禁用復制到歸檔區域)
  • 數據流 - 對稱或定向模式
  • 部分用戶 S3 復制 API(GetBucketReplication、PutBucketReplication、DeleteBucketReplication)
  • 支持不同存儲桶之間的同步(一對一或一對多)
  • 目標參數修改:存儲類別(Storage Class)、目標所有者轉換、用戶模式

同步策略的核心概念:

在深入操作之前,我們需要理解以下同步策略的核心概念。同步策略由以下組件構成:

  1. 組(Groups):包含一個或多個組,每個組可以包含數據流配置列表。
  2. 數據流(Data-flow):定義區域之間復制數據的流向??梢耘渲脼閷ΨQ數據流(多個區域同步數據),也可以配置為定向數據流(數據從一個區域單向傳輸到另一個區域)。
  3. 管道(Pipes):定義可以使用這些數據流的區域和存儲桶及其相關屬性。

同步策略組的三種狀態:

  1. 啟用(Enabled):同步被允許并啟用。啟用后,復制將開始。例如,我們可以啟用全區域組同步,然后按存儲桶禁用(禁止)同步。
  2. 允許(Allowed):同步被允許,但不會自動開始。例如,我們可以將區域組策略配置為“允許”,然后按存儲桶啟用同步策略。
  3. 禁止(Forbidden):該組定義的同步不被允許。

配置級別:

同步策略(組、數據流和管道)可以在區域組和存儲桶級別配置。存儲桶的同步策略始終是其所屬區域組定義策略的子集。例如,如果在區域組級別不允許某種數據流,即使在存儲桶級別允許,該數據流也不會生效。更多關于預期行為的詳細信息,請參考官方文檔。

多站點同步策略配置

以下部分將解釋如何使用新的多站點同步策略功能。默認情況下,正如我們在本系列的第一篇文章中設置的那樣,多站點復制會將所有元數據和數據在區域組(zonegroup)內的所有區域之間進行復制。在本文的剩余部分中,我們將這種同步方法稱為“傳統同步”。

正如我們在上一節中解釋的那樣,同步策略由組(group)、數據流(flow)和管道(pipe)組成。我們首先配置一個非常寬松的區域組策略,允許所有區域上的所有存儲桶進行雙向流量傳輸。配置完成后,我們將添加按存儲桶的同步策略,這些策略在設計上是區域組策略的子集,并具有更嚴格的規則集。

添加區域組策略

我們首先創建一個名為 group1 的新組,并將其狀態設置為“允許”(allowed)?;仡櫳弦还澋膬热?,區域組將允許同步流量流動。策略將被設置為“允許”而非“啟用”(enabled)。在“允許”狀態下,數據同步不會在區域組級別發生,目的是在按存儲桶的基礎上啟用同步。

[root@ceph-node-00 ~]# radosgw-admin sync group create --group-id=group1 --status=allowed --rgw-realm=multisite --rgw-znotallow=multizg

創建對稱/雙向數據流

接下來,我們創建一個對稱/雙向數據流,允許數據在 zone1 和 zone2 之間雙向同步。

[root@ceph-node-00 ~]# radosgw-admin sync group flow create --group-id=group1 --flow-id=flow-mirror --flow-type=symmetrical --znotallow=zone1,zone2

創建管道

最后,我們創建一個管道。在管道中,我們指定要使用的組 ID(group-id),然后為源和目標存儲桶及區域設置通配符 *,這意味著所有區域和存儲桶都可以作為數據的源和目標進行復制。

[root@ceph-node-00 ~]# radosgw-admin sync group pipe create --group-id=group1 --pipe-id=pipe1 --source-znotallow='*' --source-bucket='*' --dest-znotallow='*' --dest-bucket='*'

更新區域組同步策略

區域組同步策略的修改需要更新周期(period),而存儲桶同步策略的修改則不需要更新周期。

[root@ceph-node-00 ~]# radosgw-admin period update --commit

提交新周期(period)后,區域組內的所有數據同步將停止,因為我們的區域組策略設置為“允許”。如果將其設置為“啟用”,同步將繼續以與初始多站點配置相同的方式進行。

區域間的單存儲桶雙向同步

現在,我們可以按存儲桶啟用同步。我們將為現有的存儲桶 testbucket 創建一個存儲桶級別的策略規則。請注意,存儲桶必須在設置此策略之前存在,并且修改存儲桶策略的管理命令必須在主區域(master zone)上運行。不過,存儲桶同步策略不需要更新周期。數據流無需更改,因為它繼承自區域組策略。存儲桶策略的數據流只能是區域組策略中定義的流的子集,管道也是如此。

圖片圖片

創建存儲桶:

[root@ceph-node-00 ~]# aws --endpoint https://s3.zone1.cephlab.com:443 s3 mb s3://testbucket
make_bucket: testbucket

創建一個bucket同步組,使用--bucket參數指定bucket并將狀態設置為enabled以便為我們的bucket testbucket啟用復制

[root@ceph-node-00 ~]# radosgw-admin sync group create --bucket=testbucket --group-id=testbucket-1 --status=enabled

無需指定流,因為我們將從 zonegroup 繼承流,因此我們只需為存儲桶同步策略組定義一個名為testbucket-1管道。一旦應用此命令,該存儲桶的數據同步復制就會開始。

[root@ceph-node-00 ~]# radosgw-admin sync group pipe create --bucket=testbucket --group-id=testbucket-1 --pipe-id=test-pipe1 --source-znotallow='*' --dest-znotallow='*'

[!CAUTION]

注意:您可以安全地忽略以下警告:

WARNING: cannot find source zone id for name=*

使用sync group get命令,可以查看組、流和管道配置。我們在區域組級別運行該命令,我們可以看到狀態是allowed 。

"allowed"

我們在存儲桶級別運行sync group get命令并提供--bucket參數。在這種情況下, testbucket的狀態為Enabled :

[root@ceph-node-00 ~]# radosgw-admin sync group get --bucket testbucket | jq .[0].val.status
"Enabled"

另一個有用的命令是sync info 。通過sync info ,我們可以預覽當前配置將實現的同步復制。因此,例如,在我們當前的區域組同步策略處于allowed狀態的情況下,區域組級別不會發生同步,因此同步信息命令將不會顯示配置的任何源或目標。

[root@ceph-node-00 ~]# radosgw-admin sync info
{
    "sources": [],
    "dests": [],
    "hints": {
        "sources": [],
        "dests": []
    },
    "resolved-hints-1": {
        "sources": [],
        "dests": []
    },
    "resolved-hints": {
        "sources": [],
        "dests": []
    }
}

我們還可以在存儲桶級別使用sync info命令,使用--bucket參數,因為我們已經配置了雙向管道。我們將使用zone2 -> zone1作為源,將zone1 -> zone2作為目的地。這意味著testbucket存儲桶上的復制發生在兩個方向。如果我們將一個對象從zone1放入testbucket ,它將被復制到zone2 ,如果我們將對象放入zone2它將被復制到zone1 。

[root@ceph-node-00 ~]# radosgw-admin sync info --bucket testbucket
{
    "sources": [
        {
            "id": "test-pipe1",
            "source": {
                "zone": "zone2",
                "bucket": "testbucket:89c43fae-cd94-4f93-b21c-76cd1a64788d.34553.1"
            },
            "dest": {
                "zone": "zone1",
                "bucket": "testbucket:89c43fae-cd94-4f93-b21c-76cd1a64788d.34553.1"
            },
            "params": {
                "source": {
                    "filter": {
                        "tags": []
                    }
                },
                "dest": {},
                "priority": 0,
                "mode": "system",
                "user": "user1"
            }
        }
    ],
    "dests": [
        {
            "id": "test-pipe1",
            "source": {
                "zone": "zone1",
                "bucket": "testbucket:89c43fae-cd94-4f93-b21c-76cd1a64788d.34553.1"
            },
            "dest": {
                "zone": "zone2",
                "bucket": "testbucket:89c43fae-cd94-4f93-b21c-76cd1a64788d.34553.1"
            },
            "params": {
                "source": {
                    "filter": {
                        "tags": []
                    }
                },
                "dest": {},
                "priority": 0,
                "mode": "system",
                "user": "user1"
            }
        }
    ],

因此,例如,如果我們只查看源,可以看到它們會根據運行radosgw-admin命令的集群而有所不同。例如,從cluster2 ( ceph-node04 ) 中,我們將zone1視為源:

[root@ceph-node-00 ~]# ssh ceph-node-04 radosgw-admin sync info --bucket testbucket | jq '.sources[].source, .sources[].dest'
{
  "zone": "zone1",
  "bucket": "testbucket:66df8c0a-c67d-4bd7-9975-bc02a549f13e.45330.2"
}
{
  "zone": "zone2",
  "bucket": "testbucket:66df8c0a-c67d-4bd7-9975-bc02a549f13e.45330.2"
}

在cluster1 ( ceph-node-00 ) 中,我們將zone2視為源:

[root@ceph-node-00 ~]# radosgw-admin sync info --bucket testbucket | jq '.sources[].source, .sources[].dest'
{
  "zone": "zone2",
  "bucket": "testbucket:66df8c0a-c67d-4bd7-9975-bc02a549f13e.45330.2"
}
{
  "zone": "zone1",
  "bucket": "testbucket:66df8c0a-c67d-4bd7-9975-bc02a549f13e.45330.2"
}

讓我們使用 AWS CLI 執行快速測試,以驗證配置并確認復制適用于testbucket 。我們將一個對象放入zone1并檢查它是否已復制到zone2 :

[root@ceph-node-00 ~]# aws --endpoint https://s3.zone1.cephlab.com:443 s3 cp /etc/hosts s3://testbucket/firsfile
upload: ../etc/hosts to s3://testbucket/firsfile

我們可以檢查同步是否已完成 radosgw-admin bucket sync checkpoint 命令:

[root@ceph-node-00 ~]# ssh ceph-node-04 radosgw-admin bucket sync checkpoint --bucket testbucket
2024-02-02T02:17:26.858-0500 7f3f38729800  1 bucket sync caught up with source:
      local status: [, , , 00000000004.531.6, , , , , , , ]
    remote markers: [, , , 00000000004.531.6, , , , , , , ]
2024-02-02T02:17:26.858-0500 7f3f38729800  0 bucket checkpoint complete

檢查同步狀態的另一種方法是使用 radosgw-admin bucket sync status 命令:

[root@ceph-node-00 ~]# radosgw-admin bucket sync status --bucket=testbucket
          realm beeea955-8341-41cc-a046-46de2d5ddeb9 (multisite)
      zonegroup 2761ad42-fd71-4170-87c6-74c20dd1e334 (multizg)
           zone 66df8c0a-c67d-4bd7-9975-bc02a549f13e (zone1)
         bucket :testbucket[66df8c0a-c67d-4bd7-9975-bc02a549f13e.37124.2])
   current time 2024-02-02T09:07:42Z


    source zone 7b9273a9-eb59-413d-a465-3029664c73d7 (zone2)
  source bucket :testbucket[66df8c0a-c67d-4bd7-9975-bc02a549f13e.37124.2])
                incremental sync on 11 shards
                bucket is caught up with source

我們看到該對象在zone2中可用。

[root@ceph-node-00 ~]# aws  --endpoint https://object.s3.zone2.dan.ceph.blue:443 s3 ls s3://testbucket/
2024-01-09 06:27:24        233 firsfile

由于復制是雙向的,我們將一個對象放入zone2中,并將其復制到zone1 :

[root@ceph-node-00 ~]# aws --endpoint https://object.s3.zone2.dan.ceph.blue:443 s3 cp   /etc/hosts s3://testbucket/secondfile
upload: ../etc/hosts to s3://testbucket/secondfile
[root@ceph-node-00 ~]# aws  --endpoint https://object.s3.zone1.dan.ceph.blue:443 s3 ls s3://testbucket/
2024-01-09 06:27:24        233 firsfile
2024-02-02 00:40:15        233 secondfile

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

2025-05-29 01:20:00

Ceph對象存儲

2025-03-05 08:02:45

2025-06-12 00:00:00

對象存儲多站點

2025-04-16 08:01:05

Ceph對象存儲

2025-06-04 08:04:26

2025-01-22 08:01:53

2012-11-06 16:51:29

nginx負載均衡

2010-05-19 10:28:55

虛擬化

2015-05-15 10:36:43

ngx_lua_waf多站點

2018-11-30 12:48:36

SDS故障硬件

2024-10-15 11:04:18

2013-11-01 10:43:35

日志分析Awstats實戰Apache

2023-08-30 00:08:22

災難恢復備份

2021-10-12 10:36:06

存儲公有云同步

2011-10-31 10:57:44

VPNIpsec VPN

2009-08-27 14:32:12

VeriSign站點簽章標志

2011-03-04 16:13:54

FileZilla

2011-05-27 14:47:50

友情鏈接

2021-09-30 19:00:17

對象存儲Ceph

2009-10-30 10:40:56

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产亚洲 | 黄色视频a级毛片 | 国产一区二区精品在线 | 国产最新精品视频 | 国产精品美女一区二区三区 | 亚洲视频欧美视频 | 二区在线观看 | 亚洲国产成人精品女人久久久 | 新超碰97| 亚洲精品美女视频 | 天天摸天天看 | www.久久| 午夜免费视频 | 国产视频久久久 | 亚洲精品永久免费 | 成人网av | 国产精品免费一区二区三区四区 | 欧美一级片在线 | 欧美在线观看免费观看视频 | 国产不卡视频在线 | 欧美一区二区三区一在线观看 | 久久久久亚洲精品国产 | 欧美日韩在线一区 | 色综合色综合色综合 | 欧洲成人| 久久久精品网站 | 亚洲中字在线 | 18av在线播放 | 久久69精品久久久久久国产越南 | 一区二区三区小视频 | 国产精品久久国产精品 | 91在线色视频| 欧美日韩一区二区三区视频 | 国内精品久久久久久 | 日韩国产中文字幕 | 国产一区91精品张津瑜 | 欧美精品在线免费观看 | 欧美h视频| xx视频在线 | 日本三级线观看 视频 | 奇米久久 |