Ceph的工作原理及流程簡(jiǎn)述_第1頁(yè)
Ceph的工作原理及流程簡(jiǎn)述_第2頁(yè)
Ceph的工作原理及流程簡(jiǎn)述_第3頁(yè)
Ceph的工作原理及流程簡(jiǎn)述_第4頁(yè)
Ceph的工作原理及流程簡(jiǎn)述_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Ceph的基本架構(gòu)及原理yehu2023年2月1日大綱系統(tǒng)概述Ceph系統(tǒng)的層次結(jié)構(gòu)RADOS尋址流程數(shù)據(jù)操作流程集群維護(hù)總結(jié)2023年2月1日什么是Ceph?Ceph是一種為優(yōu)秀的性能、可靠性和可擴(kuò)展性而設(shè)計(jì)的統(tǒng)一的、分布式的存儲(chǔ)系統(tǒng)。“統(tǒng)一的”:意味著Ceph可以一套存儲(chǔ)系統(tǒng)同時(shí)提供對(duì)象存儲(chǔ)、塊存儲(chǔ)和文件系統(tǒng)存儲(chǔ)三種功能,以便在滿足不同應(yīng)用需求的前提下簡(jiǎn)化部署和運(yùn)維?!胺植际健保涸贑eph系統(tǒng)中則意味著真正的無(wú)中心結(jié)構(gòu)和沒有理論上限的系統(tǒng)規(guī)??蓴U(kuò)展性。為什么要關(guān)注Ceph?首先,Ceph本身確實(shí)具有較為突出的優(yōu)勢(shì)。其先進(jìn)的核心設(shè)計(jì)思想,概括為八個(gè)字—“無(wú)需查表,算算就好”。其次,Ceph目前在OpenStack社區(qū)中備受重視。2023年2月1日系統(tǒng)概述Ceph系統(tǒng)的層次結(jié)構(gòu)自下向上,可以將Ceph系統(tǒng)分為四個(gè)層次:基礎(chǔ)存儲(chǔ)系統(tǒng)RADOS(Reliable,Autonomic,DistributedObjectStore,即可靠的、自動(dòng)化的、分布式的對(duì)象存儲(chǔ))基礎(chǔ)庫(kù)LIBRADOS高層應(yīng)用接口:包括了三個(gè)部分:RADOSGW(RADOSGateway)、RBD(ReliableBlockDevice)和Ceph

FS(CephFileSystem)應(yīng)用層2023年2月1日RADOSCeph的底層是RADOS,它由兩個(gè)組件組成:一種是為數(shù)眾多的、負(fù)責(zé)完成數(shù)據(jù)存儲(chǔ)和維護(hù)功能的OSD(

ObjectStorageDevice)。另一種則是若干個(gè)負(fù)責(zé)完成系統(tǒng)狀態(tài)檢測(cè)和維護(hù)的Monitor。OSD和monitor之間相互傳輸節(jié)點(diǎn)狀態(tài)信息,共同得出系統(tǒng)的總體工作狀態(tài),并形成一個(gè)全局系統(tǒng)狀態(tài)記錄數(shù)據(jù)結(jié)構(gòu),即所謂的clustermap。這個(gè)數(shù)據(jù)結(jié)構(gòu)與RADOS提供的特定算法相配合,便實(shí)現(xiàn)了Ceph“無(wú)需查表,算算就好”的核心機(jī)制以及若干優(yōu)秀特性。2023年2月1日OSD的邏輯結(jié)構(gòu)OSD可以被抽象為兩個(gè)組成部分,即系統(tǒng)部分和守護(hù)進(jìn)程(OSDdeamon)部分。OSD的系統(tǒng)部分本質(zhì)上就是一臺(tái)安裝了操作系統(tǒng)和文件系統(tǒng)的計(jì)算機(jī),其硬件部分至少包括一個(gè)單核的處理器、一定數(shù)量的內(nèi)存、一塊硬盤以及一張網(wǎng)卡。在上述系統(tǒng)平臺(tái)上,每個(gè)OSD擁有一個(gè)自己的OSDdeamon。這個(gè)deamon負(fù)責(zé)完成OSD的所有邏輯功能,包括與monitor和其他OSD(事實(shí)上是其他OSD的deamon)通信以維護(hù)更新系統(tǒng)狀態(tài),與其他OSD共同完成數(shù)據(jù)的存儲(chǔ)和維護(hù),與client通信完成各種數(shù)據(jù)對(duì)象操作等等。2023年2月1日尋址流程三次映射File->Object->PG->OSD(ion,ono)->oid->pgid->(osd1,osd2,osd3)2023年2月1日幾個(gè)概念File

——此處的file就是用戶需要存儲(chǔ)或者訪問(wèn)的文件。對(duì)于一個(gè)基于Ceph開發(fā)的對(duì)象存儲(chǔ)應(yīng)用而言,這個(gè)file也就對(duì)應(yīng)于應(yīng)用中的“對(duì)象”,也就是用戶直接操作的“對(duì)象”。Ojbect——此處的object是RADOS所看到的“對(duì)象”。Object與上面提到的file的區(qū)別是,object的最大size由RADOS限定(通常為2MB或4MB),以便實(shí)現(xiàn)底層存儲(chǔ)的組織管理。因此,當(dāng)上層應(yīng)用向RADOS存入size很大的file時(shí),需要將file切分成統(tǒng)一大小的一系列object(最后一個(gè)的大小可以不同)進(jìn)行存儲(chǔ)。2023年2月1日幾個(gè)概念PG(PlacementGroup)——顧名思義,PG的用途是對(duì)object的存儲(chǔ)進(jìn)行組織和位置映射。具體而言,一個(gè)PG負(fù)責(zé)組織若干個(gè)object(可以為數(shù)千個(gè)甚至更多),但一個(gè)object只能被映射到一個(gè)PG中,即,PG和object之間是“一對(duì)多”映射關(guān)系。同時(shí),一個(gè)PG會(huì)被映射到n個(gè)OSD上,而每個(gè)OSD上都會(huì)承載大量的PG,即,PG和OSD之間是“多對(duì)多”映射關(guān)系。在實(shí)踐當(dāng)中,n至少為2,如果用于生產(chǎn)環(huán)境,則至少為3。一個(gè)OSD上的PG則可達(dá)到數(shù)百個(gè)。事實(shí)上,PG數(shù)量的設(shè)置牽扯到數(shù)據(jù)分布的均勻性問(wèn)題。OSD——即objectstoragedevice。Failuredomain2023年2月1日尋址流程1File->object映射:這次映射的目的是,將用戶要操作的file,映射為RADOS能夠處理的object。其映射十分簡(jiǎn)單,本質(zhì)上就是按照object的最大size對(duì)file進(jìn)行切分。這種切分的好處有二:一是讓大小不限的file變成最大size一致、可以被RADOS高效管理的object;二是讓對(duì)單一file實(shí)施的串行處理變?yōu)閷?duì)多個(gè)object實(shí)施的并行化處理。2023年2月1日尋址流程2Object->PG映射:在file被映射為一個(gè)或多個(gè)object之后,就需要將每個(gè)object獨(dú)立地映射到一個(gè)PG中去。計(jì)算公式:

hash(oid)&mask->pgid根據(jù)RADOS的設(shè)計(jì),給定PG的總數(shù)為m(m應(yīng)該為2的整數(shù)冪),則mask的值為m-1。因此,哈希值計(jì)算和按位與操作的整體結(jié)果事實(shí)上是從所有m個(gè)PG中近似均勻地隨機(jī)選擇一個(gè)?;谶@一機(jī)制,當(dāng)有大量object和大量PG時(shí),RADOS能夠保證object和PG之間的近似均勻映射。2023年2月1日尋址流程3PG->OSD映射:第三次映射就是將作為object的邏輯組織單元的PG映射到數(shù)據(jù)的實(shí)際存儲(chǔ)單元OSD。如圖所示,RADOS采用一個(gè)名為CRUSH的算法,將pgid代入其中,然后得到一組共n個(gè)OSD。這n個(gè)OSD即共同負(fù)責(zé)存儲(chǔ)和維護(hù)一個(gè)PG中的所有object。前已述及,n的數(shù)值可以根據(jù)實(shí)際應(yīng)用中對(duì)于可靠性的需求而配置,在生產(chǎn)環(huán)境下通常為3。具體到每個(gè)OSD,則由其上運(yùn)行的OSDdeamon負(fù)責(zé)執(zhí)行映射到本地的object在本地文件系統(tǒng)中的存儲(chǔ)、訪問(wèn)、元數(shù)據(jù)維護(hù)等操作。2023年2月1日尋址流程3續(xù)PG->OSD映射:和“object->PG”映射中采用的哈希算法不同,這個(gè)CRUSH算法的結(jié)果不是絕對(duì)不變的,而是受到其他因素的影響。其影響因素主要有二:一是當(dāng)前系統(tǒng)狀態(tài),也就是clustermap。當(dāng)系統(tǒng)中的OSD狀態(tài)、數(shù)量發(fā)生變化時(shí),clustermap可能發(fā)生變化,而這種變化將會(huì)影響到PG與OSD之間的映射。二是存儲(chǔ)策略配置。這里的策略主要與安全相關(guān)。利用策略配置,系統(tǒng)管理員可以指定承載同一個(gè)PG的3個(gè)OSD分別位于數(shù)據(jù)中心的不同服務(wù)器乃至機(jī)架上,從而進(jìn)一步改善存儲(chǔ)的可靠性。2023年2月1日數(shù)據(jù)操作流程(以file的寫入過(guò)程為例)當(dāng)某個(gè)client需要向Ceph集群寫入一個(gè)file時(shí),首先需要在本地完成尋址流程,將file變?yōu)橐粋€(gè)object,然后找出存儲(chǔ)該object的一組三個(gè)OSD。找出三個(gè)OSD后,client將直接和PrimaryOSD通信,發(fā)起寫入操作(步驟1)。PrimaryOSD收到請(qǐng)求后,分別向SecondaryOSD和TertiaryOSD發(fā)起寫入操作(步驟2、3)。當(dāng)SecondaryOSD和TertiaryOSD各自完成寫入操作后,

將分別向PrimaryOSD發(fā)送確認(rèn)信息(步驟4、5)。當(dāng)PrimaryOSD確信其他兩個(gè)OSD的寫入完成后,則自己也完成數(shù)據(jù)寫入,并向client確認(rèn)

object寫入操作完成(步驟6)。2023年2月1日集群維護(hù)由若干個(gè)monitor共同負(fù)責(zé)整個(gè)Ceph集群中所有OSD狀態(tài)的發(fā)現(xiàn)與記錄,并且共同形成clustermap的master版本,然后擴(kuò)散至全體OSD以及client。OSD使用clustermap進(jìn)行數(shù)據(jù)的維護(hù),而client使用clustermap進(jìn)行數(shù)據(jù)的尋址。monitor并不主動(dòng)輪詢各個(gè)OSD的當(dāng)前狀態(tài)。正相反,OSD需要向monitor上報(bào)狀態(tài)信息。常見的上報(bào)有兩種情況:一是新的OSD被加入集群,二是某個(gè)OSD發(fā)現(xiàn)自身或者其他OSD發(fā)生異常。在收到這些上報(bào)信息后,monitor將更新clustermap信息并加以擴(kuò)散。2023年2月1日Clustermap的內(nèi)容:Epoch,即版本號(hào),為一個(gè)單調(diào)遞增序列,Epoch越大,則clustermap版本越新。各個(gè)OSD的網(wǎng)絡(luò)地址。各個(gè)OSD的狀態(tài)。up或者down,表明OSD是否正常工作;in或者out,表明OSD是否在至少一個(gè)PG中。CRUSH算法配置參數(shù)。表明了Ceph集群的物理層級(jí)關(guān)系(clusterhierarchy),位置映射規(guī)則(placementrules)。2023年2月1日狀態(tài)UpDownIn正常運(yùn)行,且承載至少一個(gè)PG的數(shù)據(jù)(標(biāo)準(zhǔn)工作狀態(tài))發(fā)生異常,但仍然承載至少一個(gè)PG的數(shù)據(jù)(剛發(fā)生異常)Out正常運(yùn)行,未承載任何PG(新加入或故障修復(fù)重新加入的OSD)徹底發(fā)生故障,不再承載任何PG新增一個(gè)OSD首先根據(jù)配置信息與monitor通信,monitor將其加入clustermap,并設(shè)置為up且out狀態(tài),再將最新版本的clustermap發(fā)給這個(gè)新OSD。自動(dòng)化的故障恢復(fù)(Failurerecovery)收到monitor發(fā)過(guò)來(lái)的clustermap之后,這個(gè)新OSD計(jì)算出自己所承載的PG以及和自己承載同一個(gè)PG的其他OSD。然后與這些OSD取得聯(lián)系。如果這個(gè)PG目前處于降級(jí)狀態(tài)(即承載該P(yáng)G的OSD個(gè)數(shù)少于正常值),則其他OSD將把這個(gè)PG內(nèi)的所有對(duì)象和元數(shù)據(jù)賦值給新OSD。數(shù)據(jù)復(fù)制完成后,新OSD被置為up且in狀態(tài),clustermap也更新。2023年2月1日自動(dòng)化的re-balancing過(guò)程如果該P(yáng)G目前一切正常,則這個(gè)新OSD將替換掉現(xiàn)有OSD中的一個(gè)(PG內(nèi)將重新選出PrimaryOSD),并承擔(dān)其數(shù)據(jù)。在數(shù)據(jù)復(fù)制完成后,新OSD被置為up且in狀態(tài),而被替換的OSD將推出該P(yáng)G。而clustermap內(nèi)容也將據(jù)此更新。自動(dòng)化的故障探測(cè)(Failuredetection)過(guò)程如果一個(gè)OSD發(fā)現(xiàn)和自己共同承擔(dān)一個(gè)PG的另一個(gè)OSD無(wú)法聯(lián)通,則會(huì)將這一情況上報(bào)monitor。此外,如果一個(gè)OSDdeamon發(fā)現(xiàn)自身工作狀態(tài)異常,也將把異常情況主動(dòng)上報(bào)給monitor。此時(shí),monitor將把出現(xiàn)問(wèn)題的OSD的狀態(tài)設(shè)置為down且in。如果超過(guò)某一預(yù)定時(shí)間期限該OSD仍然無(wú)法恢復(fù)正常,則其狀態(tài)將被設(shè)置為down且ou

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論