ceph-anisble部署
909
2022-05-28
一、Ceph概述
1、背景
Ceph是一個(gè)去中心化的分布式存儲(chǔ)系統(tǒng), 提供較好的性能、可靠性和可擴(kuò)展性。Ceph項(xiàng)目最早起源于Sage就讀博士期間的工作(最早的成果于2004年發(fā)表),并隨后貢獻(xiàn)給開源社區(qū), 遵循LGPL協(xié)議 (LESSER GENERAL PUBLIC LICENSE的簡(jiǎn)寫,中文譯為“較寬松公共許可證”)。在經(jīng)過(guò)了數(shù)年的發(fā)展之后,目前已得到眾多云計(jì)算廠商(OpenStack、CloudStack、OpenNebula、Hadoop)的支持并被廣泛應(yīng)用。
2、介紹
Ceph是一個(gè)可靠、自動(dòng)重均衡、自動(dòng)恢復(fù)的分布式存儲(chǔ)系統(tǒng),根據(jù)場(chǎng)景劃分可以將Ceph分為三大塊,分別是對(duì)象存儲(chǔ)、塊設(shè)備和文件系統(tǒng)服務(wù)。
Ceph的主要優(yōu)點(diǎn)是分布式存儲(chǔ),在存儲(chǔ)每一個(gè)數(shù)據(jù)時(shí),都會(huì)通過(guò)計(jì)算得出該數(shù)據(jù)存儲(chǔ)的位置,盡量將數(shù)據(jù)分布均衡,不存在傳統(tǒng)的單點(diǎn)故障的問(wèn)題,可以水平擴(kuò)展。
Ceph存儲(chǔ)集群至少需要一個(gè)Ceph Monitor和兩個(gè)OSD守護(hù)進(jìn)程。而運(yùn)行Ceph文件系統(tǒng)客戶端時(shí),則必須要有元數(shù)據(jù)服務(wù)器(Metadata Server)。
3、特點(diǎn)
Ceph適合跨集群的小文件存儲(chǔ), 擁有以下特點(diǎn):
高性能
Client和Server直接通信, 不需要代理和轉(zhuǎn)發(fā);
Client不需要負(fù)責(zé)副本的復(fù)制, 有Primary主節(jié)點(diǎn)負(fù)責(zé), 這樣可以有效降低clien網(wǎng)絡(luò)的消耗;
采用CRUSH算法,數(shù)據(jù)分布均衡,并行度高,支持上千個(gè)存儲(chǔ)節(jié)點(diǎn), 支持TB及PB級(jí)數(shù)據(jù)。
高可用性
數(shù)據(jù)多副本, 支持故障域分隔,數(shù)據(jù)強(qiáng)一致性;
沒(méi)有單點(diǎn)故障,較好的容錯(cuò)性, 有效支撐各種故障場(chǎng)景;
支持所有故障的檢測(cè)和自動(dòng)恢復(fù),可以做到自動(dòng)化管理;
支持并行恢復(fù),能夠極大的降低數(shù)據(jù)恢復(fù)時(shí)間, 提高數(shù)據(jù)的可靠性。
高擴(kuò)展性
高度并行化設(shè)計(jì),沒(méi)有單個(gè)中心控制組件,所有負(fù)載都能動(dòng)態(tài)的劃分到各個(gè)服務(wù)器上。
去中心化、靈活、隨節(jié)點(diǎn)增加線性增長(zhǎng)。
場(chǎng)景豐富
支持三種存儲(chǔ)接口類型: 塊存儲(chǔ)、文件存儲(chǔ)、對(duì)象存儲(chǔ)。 同時(shí)支持自定義接口,C++為底層實(shí)現(xiàn), 兼容多種語(yǔ)言。
塊存儲(chǔ): 將磁盤空間映射給主機(jī)使用, 適用 docker容器、虛擬機(jī)磁盤存儲(chǔ)分配;日志存儲(chǔ), 文件存儲(chǔ)。
文件存儲(chǔ): 解決塊存儲(chǔ)無(wú)法共享問(wèn)題, 在服務(wù)器架設(shè)FTP和NFS服務(wù)器,適用目錄結(jié)構(gòu)的存儲(chǔ)、日志存儲(chǔ)等。
對(duì)象存儲(chǔ): 大容量硬盤, 安裝存儲(chǔ)管理軟件, 對(duì)外提供讀寫訪問(wèn)能力, 具備塊存儲(chǔ)的高速讀寫能力, 也具備文件存儲(chǔ)共享的特性; 適用圖片存儲(chǔ)或視頻存儲(chǔ)。
4、分布式存儲(chǔ)系統(tǒng)橫縱對(duì)比
二、Ceph架構(gòu)設(shè)計(jì)
1、Ceph整體設(shè)計(jì)
基礎(chǔ)存儲(chǔ)系統(tǒng)RADOS
Reliable, Autonomic,Distributed Object Store,即可靠的、自動(dòng)化的、分布式的對(duì)象存儲(chǔ)這就是一個(gè)完整的對(duì)象存儲(chǔ)系統(tǒng),所有存儲(chǔ)在Ceph系統(tǒng)中的用戶數(shù)據(jù)事實(shí)上最終都是由這一層來(lái)存儲(chǔ)的。而Ceph的高可靠、高可擴(kuò)展、高性能、高自動(dòng)化等等特性本質(zhì)上也是由這一層所提供的。
基礎(chǔ)庫(kù)librado
這層的功能是對(duì)RADOS進(jìn)行抽象和封裝,并向上層提供API,以便直接基于RADOS(而不是整個(gè)Ceph)進(jìn)行應(yīng)用開發(fā)。特別要注意的是,RADOS是一個(gè)對(duì)象存儲(chǔ)系統(tǒng),因此,librados實(shí)現(xiàn)的API也只是針對(duì)對(duì)象存儲(chǔ)功能的。RADOS采用C++開發(fā),所提供的原生librados API包括C和C++兩種。
高層應(yīng)用接口
這層包括了三個(gè)部分:RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和CephFS(Ceph File System),其作用是在librados庫(kù)的基礎(chǔ)上提供抽象層次更高、更便于應(yīng)用或客戶端使用的上層接口。其中,RADOS GW是一個(gè)提供與Amazon S3和Swift兼容的RESTful API的gateway,以供相應(yīng)的對(duì)象存儲(chǔ)應(yīng)用開發(fā)使用。RADOS GW提供的API抽象層次更高,但功能則不如librados強(qiáng)大。
應(yīng)用層
這層是不同場(chǎng)景下對(duì)于Ceph各個(gè)應(yīng)用接口的各種應(yīng)用方式,例如基于librados直接開發(fā)的對(duì)象存儲(chǔ)應(yīng)用,基于RADOS GW開發(fā)的對(duì)象存儲(chǔ)應(yīng)用,基于RBD實(shí)現(xiàn)的云硬盤等等。librados和RADOSGW的區(qū)別在于,librados提供的是本地API,而RADOS GW提供的則是RESTfulAPI。
由于Swift和S3支持的API功能近似,這里以Swift舉例說(shuō)明。Swift提供的API功能主要包括:
用戶管理操作:用戶認(rèn)證、獲取賬戶信息、列出容器列表等;
容器管理操作:創(chuàng)建/刪除容器、讀取容器信息、列出容器內(nèi)對(duì)象列表等;
對(duì)象管理操作:對(duì)象的寫入、讀取、復(fù)制、更新、刪除、訪問(wèn)許可設(shè)置、元數(shù)據(jù)讀取或更新等。
2、邏輯架構(gòu)
3、Ceph專業(yè)術(shù)語(yǔ)
Monitors: Ceph監(jiān)視器,Monitor維護(hù)著展示集群狀態(tài)的各種圖表,包括監(jiān)視器圖、OSD圖、歸置組(PG)圖、和CRUSH圖。
PG:Ceph歸置組,每個(gè)Object最后都會(huì)通過(guò)CRUSH計(jì)算映射到某個(gè)PG中,一個(gè)PG可以包含多個(gè)Object。
OSD: Ceph的對(duì)象存儲(chǔ)設(shè)備,OSD守護(hù)進(jìn)程的功能是存儲(chǔ)數(shù)據(jù),處理數(shù)據(jù)的復(fù)制、恢復(fù)、回填、再均衡,并通過(guò)檢查其他OSD守護(hù)進(jìn)程的心跳來(lái)向Ceph Monitors 提供一些監(jiān)控信息。
MDS: Ceph元數(shù)據(jù)服務(wù)器(MDS),為Ceph文件系統(tǒng)存儲(chǔ)元數(shù)據(jù)。
CephFS: Ceph文件系統(tǒng),CephFS提供了一個(gè)任意大小且兼容POSIX的分布式文件系統(tǒng)。
RADOS: Reliable Autonomic Distributed Object Store,表示可靠、自動(dòng)、分布式的對(duì)象存儲(chǔ)。Ceph中的一切都是以對(duì)象形式存儲(chǔ),RADOS就負(fù)責(zé)存儲(chǔ)這些對(duì)象,RADOS層確保數(shù)據(jù)一致性和可靠性。
Librados:librados庫(kù)是一種用來(lái)簡(jiǎn)化訪問(wèn)RADOS的方法,目前支持PHP、Python、Ruby、Java、C和C++語(yǔ)言。
RBD:Ceph 的塊設(shè)備,它對(duì)外提供塊存儲(chǔ),可以被映射、格式化進(jìn)而像其他磁盤一樣掛載到服務(wù)器
RGW/RADOSGW:Ceph 對(duì)象網(wǎng)關(guān),它提供了一個(gè)兼容S3和Swift的restful API接口。
【與云原生的故事】有獎(jiǎng)?wù)魑幕馃徇M(jìn)行中:https://bbs.huaweicloud.com/blogs/345260
專屬分布式存儲(chǔ)服務(wù) 分布式
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。