ceph(第一步) 基礎(chǔ)架構(gòu)

前言

ceph 是什么楷兽?
ceph 是一種開源存儲軟件。底層實(shí)現(xiàn)了對象存儲瑰艘,并以此為基礎(chǔ)對外提供對象存儲接口、塊存儲接口肤舞、文件級存儲接口紫新。

ceph 結(jié)構(gòu)包含兩個部分:

  • ceph client:訪問 ceph 底層服務(wù)或組件,對外提供各種接口李剖。比如:對象存儲接口芒率、塊存儲接口、文件級存儲接口篙顺。
  • ceph node:ceph 底層服務(wù)提供端偶芍,也就是 ceph 存儲集群充择。

環(huán)境

ceph 版本:Nautilus

正文

架構(gòu)圖

官網(wǎng)的一張架構(gòu)圖:


ceph 架構(gòu)圖 - 1

對于這張圖,一開始沒有看懂它想表達(dá)什么腋寨,后來明白了聪铺。如下圖:

ceph 架構(gòu)圖 - 2

相關(guān)名詞解釋:

  • RADOS:Reliable Autonomic Distributed Object Store(可靠的,自主的萄窜,分布式的對象存儲)铃剔。在 ceph 中這個名詞經(jīng)常出現(xiàn),有時會以 R 表示 RADOS查刻。實(shí)際上這個詞僅僅是對 ceph 的一個修飾詞键兜,并不代表 ceph 的組件什么的。粗暴的認(rèn)為穗泵, RADOS = ceph 對象存儲集群 即可普气。
  • RGW、RBD佃延、CEPH FS: 這三個就是 ceph clients现诀。
    RGW:對象存儲網(wǎng)關(guān),也就是對象存儲接口履肃。
    RBD:塊設(shè)備仔沿,也就是塊存儲接口。
    CEPH FS:ceph 文件系統(tǒng)尺棋,也就是文件級存儲接口封锉。

ceph 基礎(chǔ)架構(gòu)

ceph 組件分為兩部分:

  • ceph node:構(gòu)成 ceph 集群的基礎(chǔ)組件。
  • ceph client:對外提供多種方式使用 ceph 存儲的組件膘螟。
ceph 基礎(chǔ)組件

此部分介紹構(gòu)成 ceph 集群的基礎(chǔ)組件成福。
其中包含 OSD、Manager荆残、MDS奴艾、Monitor。

  • OSD(ceph-osd):object storage daemon内斯,對象存儲進(jìn)程蕴潦。ceph 管理物理硬盤時,引入了OSD概念嘿期,每一塊盤都會針對的運(yùn)行一個OSD進(jìn)程品擎。換句話說,ceph 集群通過管理 OSD 來管理物理硬盤备徐。OSD 一般功能為:存儲數(shù)據(jù)萄传、維護(hù)數(shù)據(jù)副本、數(shù)據(jù)恢復(fù)、數(shù)據(jù)再平衡以及對ceph monitor組件提供相關(guān)監(jiān)控信息秀菱。

  • Manager(ceph-mgr):用于收集ceph集群狀態(tài)振诬、運(yùn)行指標(biāo),比如存儲利用率衍菱、當(dāng)前性能指標(biāo)和系統(tǒng)負(fù)載赶么。對外提供 ceph dashboard(ceph ui)和 resetful api。Manager組件開啟高可用時脊串,至少2個辫呻。

  • MDS(ceph-mds):Metadata server,元數(shù)據(jù)服務(wù)琼锋。為ceph 文件系統(tǒng)提供元數(shù)據(jù)服務(wù)(ceph 對象存儲和塊存儲不需要MDS)放闺。為 posix 文件系統(tǒng)用戶提供性能良好的基礎(chǔ)命令(ls,find等)缕坎。

  • Monitor(ceph-mon):維護(hù)集群的狀態(tài)怖侦,包含monitor組件信息,manger 組件信息谜叹,osd組件信息匾寝,mds組件信息,crush 算法信息荷腊。還負(fù)責(zé)ceph集群的身份驗(yàn)證功能艳悔,client在連接ceph集群時通過此組件進(jìn)行驗(yàn)證。Monitor組件開啟高可用時停局,至少3個很钓。

ceph clients

此部分介紹 ceph 對外提供各種功能的組件香府。
其中包含:Block Device董栽、Object Storage、Filesystem企孩。

  • Block Device:塊存儲設(shè)備锭碳,RBD。
  • Object Storage: 對象存儲勿璃,RGW擒抛。對外可提供 swift 、s3 接口類型的restful api补疑。
  • Filesystem:文件系統(tǒng)歧沪,CephFS。提供一個兼容POSIX的文件系統(tǒng)莲组。
ceph 存儲過程

前面兩個部分主要介紹了 ceph 的一些組件及對外提供的功能诊胞。
這部分主要介紹 ceph 的存儲邏輯。

首先锹杈,在對象存儲中撵孤,一切都是扁平化的迈着,并且存儲的最小單元為對象(obj)。存儲 obj 如下圖:


image.png

ceph 在對象存儲的基礎(chǔ)上提供了更加高級的思想邪码。

當(dāng)對象數(shù)量達(dá)到了百萬級以上裕菠,原生的對象存儲在索引對象時消耗的性能非常大。ceph 因此引入了 placement group (pg)的概念闭专。一個 pg 就是一組對象的集合奴潘。如下圖:


image.png

obj 和 pg 之間的映射由 ceph client 計算得出。

討論 pg 時影钉,不得不提的另外一個名詞:pgp萤彩。
pgp 決定了 pg 和 osd 之間的映射關(guān)系。一般將 pgp_num 設(shè)置成和 pg_num 一樣大小斧拍。

這里還有一個名詞需要提一下雀扶,在 ceph 中會經(jīng)常見到 crush 算法。簡單來說肆汹,crush 算法就是指 ceph 中數(shù)據(jù)如何存儲愚墓、讀取的過程。

由于 ceph 集群面對許多的獨(dú)立項目昂勉,因此 ceph 還引入了 ceph pool 的概念用于劃分不同的項目浪册。
ceph pool 是對 ceph 對象的邏輯劃分,并不是物理劃分岗照。

pg 和 ceph pool 的區(qū)別:

  • pg 對于用戶來說是透明的村象,只是底層的一種優(yōu)化方案。
  • ceph pool 對于用戶來說攒至,就像 mysql 中的 database厚者。

像大多數(shù)集群軟件一樣,ceph 也提供了緩存的概念迫吐。稱之為 Cache Tier(緩存層库菲,在具體使用時有時會稱之為緩存池)。
緩存池對用戶來說是透明的志膀,因此不會改變用戶的原有使用邏輯熙宇。以下緩存池的介紹,均為底層邏輯溉浙。
在沒有緩存池時烫止,ceph client 直接指向存儲池。
在添加緩存池后戳稽,ceph client 指向緩存池馆蠕,緩存池再指向存儲池。

擴(kuò)展

1. 關(guān)于 osd、pg荆几、pgp 的猜想

官方原話:
When pg_num is increased for any pool, every PG of this pool splits into half, but they all remain mapped to their parent OSD.
Until this time, Ceph does not start rebalancing. Now, when you increase the pgp_num value for the same pool, PGs start to migrate from the parent to some other OSD, and cluster rebalancing starts. This is how PGP plays an important role.
By Karan Singh
個人翻譯:
當(dāng)一個池增加 pg 數(shù)量時吓妆,這個池中的所有 pg 都會變化。但是原 pg 的實(shí)際物理存儲位置不會改變吨铸。
當(dāng)一個池增加 pgp 的數(shù)量時行拢,pg 的實(shí)際物理存儲位置會發(fā)生改變。

首先诞吱,截至目前舟奠,沒有具體查到資料證明以下觀點(diǎn)。(基于一致性hash的猜想)

宏觀上房维,大量的 obj 存儲過程如下:
image.png
由上圖沼瘫,引發(fā)幾個問題:
  1. obj 如何存儲到 pg 上?
  2. pg 如何存儲到 osd 上咙俩?
  3. 那 pgp 又是什么耿戚?
  4. 為什么要有 pg 這個東西?
一幅猜想圖:
猜想圖.png

圖中出現(xiàn)了一個新詞: vosd 阿趁,這個是指虛擬 osd膜蛔。它的數(shù)量等于 pgp 的數(shù)量,而 pgp 一般又等于 pg脖阵。

猜想:
  1. obj 在存儲時皂股,首先經(jīng)過 hash 算法決定存儲在哪個 pg 上。
  2. 再次經(jīng)過 hash 算法命黔,計算出 pg 位于哪個 vosd 上呜呐。
  3. vosd 中存儲了與物理 osd 之間的映射。

pgp 的數(shù)量就是 vosd 的數(shù)量悍募。

引入 pg 可以實(shí)現(xiàn) pool 概念蘑辑,以及優(yōu)化碎片管理(這一點(diǎn)十分不確定)。

引入 pgp(vosd)搜立,是為了在增加 osd 時可以讓數(shù)據(jù)更加均衡的分布以躯。

如猜想圖:
當(dāng)我們增加池的 pg 數(shù)量時槐秧,不會改變 vosd啄踊,因此原 pg 與 vosd 之間的映射未變,原 pg 的實(shí)際物理位置也不會發(fā)生變化刁标。只是會影響同一個池中 obj 的分布颠通。
當(dāng)我們增加池的 pgp 數(shù)量時,相當(dāng)于改變了 vosd膀懈,通過 hash 計算出的部分 pg 與 vosd 之間的映射就要發(fā)生改變顿锰,從而導(dǎo)致 pg 的實(shí)際物理位置發(fā)生改變。

與一致性hash不同的地方:
一般情況下,一致性hash只有一層虛擬化層硼控,并且虛擬化層是根據(jù)物理硬件而變化的刘陶。但是ceph卻是一種反著來的意思。

當(dāng) ceph 增加一個 osd 時牢撼,pg 的物理位置也會發(fā)生改變匙隔。
在該猜想下:
當(dāng)增加 osd 時,并不會增加 vosd 的數(shù)量熏版,原部分 vosd 會映射到新的 osd 上纷责,因此產(chǎn)生一種部分 pg 的實(shí)際物理位置發(fā)生變化的情況。

2. 關(guān)于 pg pgp 數(shù)量設(shè)定

創(chuàng)建池時撼短,會分配固定的 pg再膳,以及設(shè)置與 pg 一樣大小的 pgp。
注意曲横,一般 pg 數(shù)量都設(shè)置為 2 的次方喂柒。

嚴(yán)格意義上,我們無論為池分配多少個 pg 都沒有問題禾嫉。但有時候 pg num 配置小了會報錯胳喷,配置大了也會報錯。這不是因?yàn)檫@么配置不對夭织,是因?yàn)橛衅渌膮?shù)在限制我們隨意配置 pg num吭露。

比如:
osd 有兩個配置,當(dāng)每個 osd 的 pg num 過少(默認(rèn)30)時會告警尊惰,當(dāng)每個 osd 的 pg num 過多(默認(rèn)300)也會告警讲竿。

所以,想要入門使用 ceph弄屡,還是需要了解許多基礎(chǔ)知識才可以题禀。否則,各種意外膀捷。

參考

https://docs.ceph.com/docs/master/architecture/

https://ceph.com/pgcalc/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迈嘹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子全庸,更是在濱河造成了極大的恐慌秀仲,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壶笼,死亡現(xiàn)場離奇詭異神僵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)覆劈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門保礼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沛励,“玉大人,你說我怎么就攤上這事炮障∧颗桑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵胁赢,是天一觀的道長址貌。 經(jīng)常有香客問我,道長徘键,這世上最難降的妖魔是什么练对? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮吹害,結(jié)果婚禮上螟凭,老公的妹妹穿的比我還像新娘。我一直安慰自己它呀,他們只是感情好螺男,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纵穿,像睡著了一般下隧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谓媒,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天淆院,我揣著相機(jī)與錄音,去河邊找鬼句惯。 笑死土辩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抢野。 我是一名探鬼主播拷淘,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼指孤!你這毒婦竟也來了启涯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤恃轩,失蹤者是張志新(化名)和其女友劉穎结洼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體详恼,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡补君,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昧互。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挽铁。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖敞掘,靈堂內(nèi)的尸體忽然破棺而出叽掘,到底是詐尸還是另有隱情,我是刑警寧澤玖雁,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布更扁,位于F島的核電站,受9級特大地震影響赫冬,放射性物質(zhì)發(fā)生泄漏浓镜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一劲厌、第九天 我趴在偏房一處隱蔽的房頂上張望膛薛。 院中可真熱鬧,春花似錦补鼻、人聲如沸哄啄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咨跌。三九已至,卻和暖如春硼婿,著一層夾襖步出監(jiān)牢的瞬間锌半,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工寇漫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拳喻,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓猪腕,卻偏偏與公主長得像冗澈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子陋葡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容