Ceph 對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制:第一部分
在本系列文章中,我們將通過(guò)詳細(xì)的實(shí)踐案例,指導(dǎo)大家如何配置和優(yōu)化Ceph對(duì)象存儲(chǔ)解決方案中最核心的復(fù)制功能。我們將重點(diǎn)介紹Reef版本中新增的多站點(diǎn)復(fù)制增強(qiáng)特性,幫助用戶構(gòu)建更強(qiáng)大、更可靠的分布式存儲(chǔ)系統(tǒng)。
本系列文章將涵蓋以下核心主題:
- Ceph對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制入門——深入解析多站點(diǎn)復(fù)制的基本概念和核心價(jià)值
- Ceph對(duì)象多站點(diǎn)架構(gòu)與配置指南——詳細(xì)講解系統(tǒng)架構(gòu)設(shè)計(jì)原理與最佳實(shí)踐配置方案
- Reef版本性能優(yōu)化:復(fù)制同步公平性——重點(diǎn)介紹新版本在復(fù)制性能方面的突破性改進(jìn)
- RGW服務(wù)負(fù)載均衡:Ceph Ingress服務(wù)部署——手把手指導(dǎo)如何實(shí)現(xiàn)高可用、高性能的服務(wù)部署
- Ceph對(duì)象多站點(diǎn)同步策略——深入探討靈活高效的同步策略配置方案
- Ceph對(duì)象存儲(chǔ)歸檔區(qū)域——全面解析歸檔存儲(chǔ)的最佳實(shí)踐與實(shí)施方法
在數(shù)據(jù)保護(hù)領(lǐng)域,復(fù)制、災(zāi)難恢復(fù)、備份和恢復(fù)策略的選擇直接影響著業(yè)務(wù)連續(xù)性。不同的策略對(duì)應(yīng)著不同的服務(wù)級(jí)別協(xié)議(SLA),特別是在恢復(fù)時(shí)間目標(biāo)(RTO)和恢復(fù)點(diǎn)目標(biāo)(RPO)方面表現(xiàn)出顯著差異。
以復(fù)制策略為例,同步復(fù)制能夠?qū)崿F(xiàn)最低的RPO,理論上可以達(dá)到零數(shù)據(jù)丟失。Ceph通過(guò)跨數(shù)據(jù)中心的集群擴(kuò)展能力,能夠?qū)崿F(xiàn)高效的站點(diǎn)間同步復(fù)制。相比之下,異步復(fù)制雖然接受非零RPO,但在大規(guī)模分布式場(chǎng)景下展現(xiàn)出更好的擴(kuò)展性和成本效益。
Ceph為每種存儲(chǔ)模式(對(duì)象、塊和文件)都提供了專門的異步復(fù)制機(jī)制。其中,對(duì)象存儲(chǔ)的異步多站點(diǎn)復(fù)制通過(guò)將數(shù)據(jù)跨集群復(fù)制,為地理分布式部署提供了強(qiáng)大的支持。本系列文章將重點(diǎn)探討對(duì)象存儲(chǔ)的多站點(diǎn)異步復(fù)制方案,解析其在分布式環(huán)境下的最佳實(shí)踐。
一、Ceph 對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制
在深入技術(shù)細(xì)節(jié)之前,讓我們先概覽Ceph對(duì)象存儲(chǔ)(RGW)的核心能力:它提供了一套成熟完善的企業(yè)級(jí)地理復(fù)制解決方案。RGW的多站點(diǎn)復(fù)制機(jī)制支持跨區(qū)域部署,無(wú)論是單一區(qū)域還是多區(qū)域架構(gòu),都能實(shí)現(xiàn)高效的異步對(duì)象復(fù)制。得益于異步復(fù)制和最終一致性模型的設(shè)計(jì),Ceph對(duì)象存儲(chǔ)能夠在廣域網(wǎng)(WAN)環(huán)境下保持卓越的性能表現(xiàn)。
Ceph 對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制為企業(yè)帶來(lái)了顯著優(yōu)勢(shì),尤其是那些需要跨多個(gè)地理位置存儲(chǔ)和管理海量數(shù)據(jù)的企業(yè)。以下是其主要優(yōu)勢(shì):
提高數(shù)據(jù)可用性,多區(qū)域支持
Ceph對(duì)象存儲(chǔ)支持地理分布式集群部署,顯著提升數(shù)據(jù)可用性。通過(guò)最終一致性模型的異步復(fù)制機(jī)制,有效規(guī)避硬件故障、自然災(zāi)害等風(fēng)險(xiǎn),同時(shí)無(wú)需嚴(yán)格網(wǎng)絡(luò)延遲要求,確保業(yè)務(wù)連續(xù)性。
Active/Active復(fù)制架構(gòu)
采用Active/Active復(fù)制架構(gòu),支持多終端用戶就近訪問(wèn)。用戶可通過(guò)最近的RGW(S3)端點(diǎn)進(jìn)行并發(fā)讀寫操作,實(shí)現(xiàn)數(shù)據(jù)雙向同步。這種設(shè)計(jì)不僅提升了數(shù)據(jù)訪問(wèn)速度,還大幅降低了系統(tǒng)停機(jī)風(fēng)險(xiǎn)。
值得注意的是,只有區(qū)域組中指定的主區(qū)域接受元數(shù)據(jù)更新。例如,在創(chuàng)建用戶和存儲(chǔ)桶時(shí),非主區(qū)域上的所有元數(shù)據(jù)修改都將轉(zhuǎn)發(fā)到配置的主區(qū)域。如果主節(jié)點(diǎn)發(fā)生故障,則必須觸發(fā)手動(dòng)主區(qū)域故障轉(zhuǎn)移。
彈性擴(kuò)展能力
多站點(diǎn)復(fù)制架構(gòu)賦予系統(tǒng)卓越的擴(kuò)展性。企業(yè)可根據(jù)業(yè)務(wù)需求靈活添加新站點(diǎn)或集群,實(shí)現(xiàn)存儲(chǔ)基礎(chǔ)設(shè)施的無(wú)縫擴(kuò)展,完全規(guī)避容量瓶頸和性能限制。
Realm, Zonegroups 以及 Zones
Ceph 對(duì)象存儲(chǔ)多站點(diǎn)集群由領(lǐng)域(Realm), 區(qū)域組(Zonegroup) 以及 區(qū)域(Zone) 組成:
- Realm定義了跨多個(gè)Ceph存儲(chǔ)集群的全局命名空間,確保在整個(gè)分布式系統(tǒng)中的對(duì)象標(biāo)識(shí)唯一性。
- 每個(gè)Zonegroup可以包含一個(gè)或多個(gè)zone,作為邏輯分組單元,管理特定地理范圍內(nèi)的存儲(chǔ)資源。
- zones是Ceph多站點(diǎn)配置的最小單元,由單個(gè)Ceph集群內(nèi)的一個(gè)或多個(gè)對(duì)象網(wǎng)關(guān)(RGW)組成,負(fù)責(zé)具體的存儲(chǔ)操作和數(shù)據(jù)服務(wù)。
如下圖所示,Ceph對(duì)象存儲(chǔ)的多站點(diǎn)復(fù)制發(fā)生在Zone級(jí)別。在一個(gè)典型的配置中,我們擁有一個(gè)全局Realm和多個(gè)Zonegroup。Realm級(jí)別的全局對(duì)象命名空間確保了跨Zonegroup和Zone的對(duì)象ID唯一性。
每個(gè)存儲(chǔ)桶由其創(chuàng)建時(shí)所在的Zonegroup擁有,其對(duì)象數(shù)據(jù)僅會(huì)復(fù)制到該Zonegroup的其他區(qū)域。當(dāng)其他Zonegroup接收到該存儲(chǔ)桶的數(shù)據(jù)請(qǐng)求時(shí),系統(tǒng)會(huì)自動(dòng)將請(qǐng)求重定向到存儲(chǔ)桶所在的Zonegroup進(jìn)行處理。
在Ceph對(duì)象存儲(chǔ)集群中,您可以配置一個(gè)或多個(gè)獨(dú)立的領(lǐng)域(Realm)。每個(gè)領(lǐng)域都是一個(gè)自包含的全局對(duì)象命名空間,這意味著:
- 每個(gè)領(lǐng)域都維護(hù)著獨(dú)立的用戶、存儲(chǔ)桶和對(duì)象集合
- 同一領(lǐng)域內(nèi)不允許存在同名存儲(chǔ)桶
- 領(lǐng)域之間完全隔離,互不影響
Ceph對(duì)象存儲(chǔ)還提供了租戶(Tenant)概念,用于實(shí)現(xiàn)S3命名空間的進(jìn)一步隔離。雖然租戶機(jī)制不在本系列討論范圍內(nèi),但可以通過(guò)官方文檔深入了解這一特性。
如圖所示,我們展示了一個(gè)典型的多領(lǐng)域配置場(chǎng)景。兩個(gè)獨(dú)立的領(lǐng)域分別擁有自己的區(qū)域組和復(fù)制區(qū)域,形成了完全隔離的命名空間體系。這種架構(gòu)設(shè)計(jì)為不同業(yè)務(wù)單元或客戶群體提供了安全的數(shù)據(jù)隔離方案。
每個(gè)區(qū)域代表一個(gè) Ceph 集群,一個(gè)區(qū)域組中可以有一個(gè)或多個(gè)區(qū)域。配置后,多站點(diǎn)復(fù)制將在區(qū)域之間進(jìn)行。在本系列博客中,我們將僅在一個(gè)區(qū)域組中配置兩個(gè)區(qū)域,但可以在單個(gè)區(qū)域組中配置更多數(shù)量的復(fù)制區(qū)域。
Ceph 多站點(diǎn)復(fù)制策略
Ceph對(duì)象存儲(chǔ)新版本引入了革命性的"多站點(diǎn)同步策略",實(shí)現(xiàn)了細(xì)粒度的存儲(chǔ)桶級(jí)別復(fù)制控制。這一創(chuàng)新特性為用戶帶來(lái)了前所未有的靈活性和成本優(yōu)化空間,同時(shí)解鎖了多項(xiàng)關(guān)鍵復(fù)制功能:
核心功能亮點(diǎn)
- 存儲(chǔ)桶級(jí)復(fù)制控制
用戶可針對(duì)單個(gè)存儲(chǔ)桶獨(dú)立啟用或禁用同步功能,實(shí)現(xiàn)對(duì)復(fù)制工作流的精確控制。 - 選擇性復(fù)制機(jī)制
支持全區(qū)域復(fù)制的同時(shí),可靈活排除特定存儲(chǔ)桶,實(shí)現(xiàn)更精細(xì)的資源管理。 - 多目標(biāo)復(fù)制架構(gòu)
單個(gè)源存儲(chǔ)桶可同時(shí)向多個(gè)目標(biāo)存儲(chǔ)桶進(jìn)行數(shù)據(jù)復(fù)制,滿足復(fù)雜業(yè)務(wù)場(chǎng)景需求。 - 靈活數(shù)據(jù)流配置
支持按存儲(chǔ)桶配置對(duì)稱或定向數(shù)據(jù)流,實(shí)現(xiàn)最優(yōu)化的數(shù)據(jù)同步方案。
下圖展示了同步策略功能在實(shí)際應(yīng)用中的典型場(chǎng)景。
二、Ceph 多站點(diǎn)配置
自Quincy版本起,Ceph引入了一個(gè)全新的rgw管理器模塊,集成在cephadm編排器中。該模塊顯著簡(jiǎn)化了多站點(diǎn)復(fù)制的配置流程。本節(jié)將指導(dǎo)您如何使用rgw管理器模塊,通過(guò)命令行界面(CLI)在兩個(gè)獨(dú)立Ceph集群(每個(gè)集群作為一個(gè)區(qū)域)之間配置對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制。
注意:從Reef版本開(kāi)始,多站點(diǎn)配置也可通過(guò)Ceph UI/儀表板完成。雖然本指南主要使用CLI方式,但可以在官方文檔中找到圖形化配置的相關(guān)信息。
在我們的示例配置中,采用以下邏輯架構(gòu):
- 領(lǐng)域(Realm):命名為multisite
- 區(qū)域組(Zonegroup):命名為multizg
- 區(qū)域(Zone):包含zone1和zone2兩個(gè)區(qū)域
每個(gè)區(qū)域代表一個(gè)地理分布的數(shù)據(jù)中心內(nèi)的獨(dú)立Ceph集群。下圖展示了該多站點(diǎn)配置的邏輯架構(gòu)示意圖:
集群配置說(shuō)明(作為實(shí)驗(yàn)環(huán)境部署,我們采用了一個(gè)精簡(jiǎn)的配置方案):
- 節(jié)點(diǎn)配置:每個(gè)Ceph集群包含4個(gè)節(jié)點(diǎn)
- 存儲(chǔ)配置:每個(gè)節(jié)點(diǎn)配置6個(gè)OSD
- 服務(wù)部署:每個(gè)集群部署4個(gè)RGW服務(wù)(每個(gè)節(jié)點(diǎn)1個(gè))
服務(wù)角色分配:
- 客戶端服務(wù):2個(gè)RGW專門處理S3客戶端請(qǐng)求
- 復(fù)制服務(wù):其余RGW負(fù)責(zé)多站點(diǎn)復(fù)制操作
網(wǎng)絡(luò)通信機(jī)制:
Ceph對(duì)象存儲(chǔ)的多站點(diǎn)復(fù)制數(shù)據(jù)通過(guò)RGW服務(wù)使用HTTP協(xié)議在集群間傳輸。這種設(shè)計(jì)帶來(lái)了顯著的網(wǎng)絡(luò)優(yōu)勢(shì):我們只需在需要配置多站點(diǎn)的Ceph集群(區(qū)域)之間啟用HTTP通信即可。
下圖展示了我們將逐步配置的最終架構(gòu)示意圖。
在我們的示例配置中,客戶端SSL連接將在每個(gè)站點(diǎn)的負(fù)載均衡器層終止。RGW服務(wù)之間的所有通信將使用純HTTP協(xié)議。
在配置TLS/SSL時(shí),我們可以選擇在負(fù)載均衡器層或RGW服務(wù)層終止客戶端到S3端點(diǎn)的加密連接。雖然理論上可以同時(shí)采用兩種方式(即在負(fù)載均衡器和RGW之間重新加密),但目前Ceph ingress服務(wù)尚不支持這種配置方案。
在接下來(lái)的第二篇文章中,我們將詳細(xì)介紹如何在Ceph集群之間建立多站點(diǎn)復(fù)制,具體步驟將基于下圖所示的架構(gòu)展開(kāi)。
但在開(kāi)始配置 Ceph 對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制之前,我們需要提供更多有關(guān)初始狀態(tài)的上下文。我們部署了兩個(gè) Ceph 集群,第一個(gè)集群的節(jié)點(diǎn)為ceph-node-00到ceph-node-03 ,第二個(gè)集群的節(jié)點(diǎn)為ceph-node-04到ceph-node-07 。
[root@ceph-node-00 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph-node-00.cephlab.com 192.168.122.12 _admin,osd,mon,mgr
ceph-node-01.cephlab.com 192.168.122.179 osd,mon,mgr
ceph-node-02.cephlab.com 192.168.122.94 osd,mon,mgr
ceph-node-03.cephlab.com 192.168.122.180 osd
4 hosts in cluster
[root@ceph-node-04 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph-node-04.cephlab.com 192.168.122.138 _admin,osd,mon,mgr
ceph-node-05.cephlab.com 192.168.122.175 osd,mon,mgr
ceph-node-06.cephlab.com 192.168.122.214 osd,mon,mgr
ceph-node-07.cephlab.com 192.168.122.164 osd
4 hosts in cluster
核心Ceph服務(wù)已完成部署,包括Ceph的可觀測(cè)性組件棧,但目前尚未部署RGW服務(wù)。所有Ceph服務(wù)均以容器化方式運(yùn)行在RHEL系統(tǒng)上,通過(guò)Podman進(jìn)行管理。
[root@ceph-node-00 ~]# ceph orch ls
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
alertmanager ?:9093,9094 1/1 6m ago 3w count:1
ceph-exporter 4/4 6m ago 3w *
crash 4/4 6m ago 3w *
grafana ?:3000 1/1 6m ago 3w count:1
mgr 3/3 6m ago 3w label:mgr
mon 3/3 6m ago 3w label:mon
node-exporter ?:9100 4/4 6m ago 3w *
osd.all-available-devices 4 6m ago 3w label:osd
prometheus ?:9095 1/1 6m ago 3w count:1
[root@ceph-node-00 ~]# ceph version
ceph version 18.2.0-131.el9cp (d2f32f94f1c60fec91b161c8a1f200fca2bb8858) reef (stable)
[root@ceph-node-00 ~]# podman inspect cp.icr.io/cp/ibm-ceph/ceph-7-rhel9 | jq .[].Labels.summary
"Provides the latest IBM Storage Ceph 7 in a fully featured and supported base image."
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.2 (Plow)
總結(jié)
在本系列的第一部分中,我們?nèi)嫣接懥薈eph對(duì)象存儲(chǔ)多站點(diǎn)復(fù)制的核心特性和架構(gòu)設(shè)計(jì)。通過(guò)深入解析多站點(diǎn)復(fù)制的工作原理、配置要素和最佳實(shí)踐,為后續(xù)的實(shí)際配置奠定了堅(jiān)實(shí)基礎(chǔ)。