ceph的工作原理及流程簡述_第1頁
ceph的工作原理及流程簡述_第2頁
ceph的工作原理及流程簡述_第3頁
ceph的工作原理及流程簡述_第4頁
ceph的工作原理及流程簡述_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

FS(CephFileSystem)應(yīng)用層2023年5月10日RADOSCeph的底層是RADOS,它由兩個組件組成:一種是為數(shù)眾多的、負(fù)責(zé)完成數(shù)據(jù)存儲和維護功能的OSD(ObjectStorageDevice)。另一種則是若干個負(fù)責(zé)完成系統(tǒng)狀態(tài)檢測和維護的Monitor。OSD和monitor之間相互傳輸節(jié)點狀態(tài)信息,共同得出系統(tǒng)的總體工作狀態(tài),并形成一個全局系統(tǒng)狀態(tài)記錄數(shù)據(jù)結(jié)構(gòu),即所謂的clustermap。這個數(shù)據(jù)結(jié)構(gòu)與RADOS提供的特定算法相配合,便實現(xiàn)了Ceph“無需查表,算算就好”的核心機制以及若干優(yōu)秀特性。2023年5月10日OSD的邏輯結(jié)構(gòu)OSD可以被抽象為兩個組成部分,即系統(tǒng)部分和守護進程(OSDdeamon)部分。OSD的系統(tǒng)部分本質(zhì)上就是一臺安裝了操作系統(tǒng)和文件系統(tǒng)的計算機,其硬件部分至少包括一個單核的處理器、一定數(shù)量的內(nèi)存、一塊硬盤以及一張網(wǎng)卡。在上述系統(tǒng)平臺上,每個OSD擁有一個自己的OSDdeamon。這個deamon負(fù)責(zé)完成OSD的所有邏輯功能,包括與monitor和其他OSD(事實上是其他OSD的deamon)通信以維護更新系統(tǒng)狀態(tài),與其他OSD共同完成數(shù)據(jù)的存儲和維護,與client通信完成各種數(shù)據(jù)對象操作等等。2023年5月10日尋址流程三次映射File->Object->PG->OSD(ion,ono)->oid->pgid->(osd1,osd2,osd3)2023年5月10日幾個概念File——此處的file就是用戶需要存儲或者訪問的文件。對于一個基于Ceph開發(fā)的對象存儲應(yīng)用而言,這個file也就對應(yīng)于應(yīng)用中的“對象”,也就是用戶直接操作的“對象”。Ojbect——此處的object是RADOS所看到的“對象”。Object與上面提到的file的區(qū)別是,object的最大size由RADOS限定(通常為2MB或4MB),以便實現(xiàn)底層存儲的組織管理。因此,當(dāng)上層應(yīng)用向RADOS存入size很大的file時,需要將file切分成統(tǒng)一大小的一系列object(最后一個的大小可以不同)進行存儲。2023年5月10日幾個概念PG(PlacementGroup)——顧名思義,PG的用途是對object的存儲進行組織和位置映射。具體而言,一個PG負(fù)責(zé)組織若干個object(可以為數(shù)千個甚至更多),但一個object只能被映射到一個PG中,即,PG和object之間是“一對多”映射關(guān)系。同時,一個PG會被映射到n個OSD上,而每個OSD上都會承載大量的PG,即,PG和OSD之間是“多對多”映射關(guān)系。在實踐當(dāng)中,n至少為2,如果用于生產(chǎn)環(huán)境,則至少為3。一個OSD上的PG則可達到數(shù)百個。事實上,PG數(shù)量的設(shè)置牽扯到數(shù)據(jù)分布的均勻性問題。OSD——即objectstoragedevice。Failuredomain2023年5月10日尋址流程1File->object映射:這次映射的目的是,將用戶要操作的file,映射為RADOS能夠處理的object。其映射十分簡單,本質(zhì)上就是按照object的最大size對file進行切分。這種切分的好處有二:一是讓大小不限的file變成最大size一致、可以被RADOS高效管理的object;二是讓對單一file實施的串行處理變?yōu)閷Χ鄠€object實施的并行化處理。2023年5月10日尋址流程2Object->PG映射:在file被映射為一個或多個object之后,就需要將每個object獨立地映射到一個PG中去。計算公式:

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論