版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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)一的、分布式的存儲系統(tǒng)?!敖y(tǒng)一的”:意味著Ceph可以一套存儲系統(tǒng)同時(shí)提供對象存儲、塊存儲和文件系統(tǒng)存儲三種功能,以便在滿足不同應(yīng)用需求的前提下簡化部署和運(yùn)維?!胺植际健保涸贑eph系統(tǒng)中則意味著真正的無中心結(jié)構(gòu)和沒有理論上限的系統(tǒng)規(guī)??蓴U(kuò)展性。為什么要關(guān)注Ceph?首先,Ceph本身確實(shí)具有較為突出的優(yōu)勢。其先進(jìn)的核心設(shè)計(jì)思想,概括為八個(gè)字—“無需查表,算算就好”。其次,Ceph目前在OpenStack社區(qū)中備受重視。2023年2月1日系統(tǒng)概述Ceph系統(tǒng)的層次結(jié)構(gòu)自下向上,可以將Ceph系統(tǒng)分為四個(gè)層次:基礎(chǔ)存儲系統(tǒng)RADOS(Reliable,Autonomic,DistributedObjectStore,即可靠的、自動化的、分布式的對象存儲)基礎(chǔ)庫LIBRADOS高層應(yīng)用接口:包括了三個(gè)部分:RADOSGW(RADOSGateway)、RBD(ReliableBlockDevice)和Ceph
FS(CephFileSystem)應(yīng)用層2023年2月1日RADOSCeph的底層是RADOS,它由兩個(gè)組件組成:一種是為數(shù)眾多的、負(fù)責(zé)完成數(shù)據(jù)存儲和維護(hù)功能的OSD(
ObjectStorageDevice)。另一種則是若干個(gè)負(fù)責(zé)完成系統(tǒng)狀態(tài)檢測和維護(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“無需查表,算算就好”的核心機(jī)制以及若干優(yōu)秀特性。2023年2月1日OSD的邏輯結(jié)構(gòu)OSD可以被抽象為兩個(gè)組成部分,即系統(tǒng)部分和守護(hù)進(jìn)程(OSDdeamon)部分。OSD的系統(tǒng)部分本質(zhì)上就是一臺安裝了操作系統(tǒng)和文件系統(tǒng)的計(jì)算機(jī),其硬件部分至少包括一個(gè)單核的處理器、一定數(shù)量的內(nèi)存、一塊硬盤以及一張網(wǎng)卡。在上述系統(tǒng)平臺上,每個(gè)OSD擁有一個(gè)自己的OSDdeamon。這個(gè)deamon負(fù)責(zé)完成OSD的所有邏輯功能,包括與monitor和其他OSD(事實(shí)上是其他OSD的deamon)通信以維護(hù)更新系統(tǒng)狀態(tài),與其他OSD共同完成數(shù)據(jù)的存儲和維護(hù),與client通信完成各種數(shù)據(jù)對象操作等等。2023年2月1日尋址流程三次映射File->Object->PG->OSD(ion,ono)->oid->pgid->(osd1,osd2,osd3)2023年2月1日幾個(gè)概念File
——此處的file就是用戶需要存儲或者訪問的文件。對于一個(gè)基于Ceph開發(fā)的對象存儲應(yīng)用而言,這個(gè)file也就對應(yīng)于應(yīng)用中的“對象”,也就是用戶直接操作的“對象”。Ojbect——此處的object是RADOS所看到的“對象”。Object與上面提到的file的區(qū)別是,object的最大size由RADOS限定(通常為2MB或4MB),以便實(shí)現(xiàn)底層存儲的組織管理。因此,當(dāng)上層應(yīng)用向RADOS存入size很大的file時(shí),需要將file切分成統(tǒng)一大小的一系列object(最后一個(gè)的大小可以不同)進(jìn)行存儲。2023年2月1日幾個(gè)概念PG(PlacementGroup)——顧名思義,PG的用途是對object的存儲進(jìn)行組織和位置映射。具體而言,一個(gè)PG負(fù)責(zé)組織若干個(gè)object(可以為數(shù)千個(gè)甚至更多),但一個(gè)object只能被映射到一個(gè)PG中,即,PG和object之間是“一對多”映射關(guān)系。同時(shí),一個(gè)PG會被映射到n個(gè)OSD上,而每個(gè)OSD上都會承載大量的PG,即,PG和OSD之間是“多對多”映射關(guān)系。在實(shí)踐當(dāng)中,n至少為2,如果用于生產(chǎn)環(huán)境,則至少為3。一個(gè)OSD上的PG則可達(dá)到數(shù)百個(gè)。事實(shí)上,PG數(shù)量的設(shè)置牽扯到數(shù)據(jù)分布的均勻性問題。OSD——即objectstoragedevice。Failuredomain2023年2月1日尋址流程1File->object映射:這次映射的目的是,將用戶要操作的file,映射為RADOS能夠處理的object。其映射十分簡單,本質(zhì)上就是按照object的最大size對file進(jìn)行切分。這種切分的好處有二:一是讓大小不限的file變成最大size一致、可以被RADOS高效管理的object;二是讓對單一file實(shí)施的串行處理變?yōu)閷Χ鄠€(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í)際存儲單元OSD。如圖所示,RADOS采用一個(gè)名為CRUSH的算法,將pgid代入其中,然后得到一組共n個(gè)OSD。這n個(gè)OSD即共同負(fù)責(zé)存儲和維護(hù)一個(gè)PG中的所有object。前已述及,n的數(shù)值可以根據(jù)實(shí)際應(yīng)用中對于可靠性的需求而配置,在生產(chǎn)環(huán)境下通常為3。具體到每個(gè)OSD,則由其上運(yùn)行的OSDdeamon負(fù)責(zé)執(zhí)行映射到本地的object在本地文件系統(tǒng)中的存儲、訪問、元數(shù)據(jù)維護(hù)等操作。2023年2月1日尋址流程3續(xù)PG->OSD映射:和“object->PG”映射中采用的哈希算法不同,這個(gè)CRUSH算法的結(jié)果不是絕對不變的,而是受到其他因素的影響。其影響因素主要有二:一是當(dāng)前系統(tǒng)狀態(tài),也就是clustermap。當(dāng)系統(tǒng)中的OSD狀態(tài)、數(shù)量發(fā)生變化時(shí),clustermap可能發(fā)生變化,而這種變化將會影響到PG與OSD之間的映射。二是存儲策略配置。這里的策略主要與安全相關(guān)。利用策略配置,系統(tǒng)管理員可以指定承載同一個(gè)PG的3個(gè)OSD分別位于數(shù)據(jù)中心的不同服務(wù)器乃至機(jī)架上,從而進(jìn)一步改善存儲的可靠性。2023年2月1日數(shù)據(jù)操作流程(以file的寫入過程為例)當(dāng)某個(gè)client需要向Ceph集群寫入一個(gè)file時(shí),首先需要在本地完成尋址流程,將file變?yōu)橐粋€(gè)object,然后找出存儲該object的一組三個(gè)OSD。找出三個(gè)OSD后,client將直接和PrimaryOSD通信,發(fā)起寫入操作(步驟1)。PrimaryOSD收到請求后,分別向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并不主動輪詢各個(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,即版本號,為一個(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集群的物理層級關(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。自動化的故障恢復(fù)(Failurerecovery)收到monitor發(fā)過來的clustermap之后,這個(gè)新OSD計(jì)算出自己所承載的PG以及和自己承載同一個(gè)PG的其他OSD。然后與這些OSD取得聯(lián)系。如果這個(gè)PG目前處于降級狀態(tài)(即承載該P(yáng)G的OSD個(gè)數(shù)少于正常值),則其他OSD將把這個(gè)PG內(nèi)的所有對象和元數(shù)據(jù)賦值給新OSD。數(shù)據(jù)復(fù)制完成后,新OSD被置為up且in狀態(tài),clustermap也更新。2023年2月1日自動化的re-balancing過程如果該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ù)此更新。自動化的故障探測(Failuredetection)過程如果一個(gè)OSD發(fā)現(xiàn)和自己共同承擔(dān)一個(gè)PG的另一個(gè)OSD無法聯(lián)通,則會將這一情況上報(bào)monitor。此外,如果一個(gè)OSDdeamon發(fā)現(xiàn)自身工作狀態(tài)異常,也將把異常情況主動上報(bào)給monitor。此時(shí),monitor將把出現(xiàn)問題的OSD的狀態(tài)設(shè)置為down且in。如果超過某一預(yù)定時(shí)間期限該OSD仍然無法恢復(fù)正常,則其狀態(tài)將被設(shè)置為down且ou
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人擔(dān)保保證書
- 房屋買賣合同糾紛案例解讀
- 電子元器件采購合同樣本
- 塑料袋配送購銷合同
- 創(chuàng)業(yè)聯(lián)盟協(xié)議書
- 設(shè)備租賃合同范本范本格式
- 酒店食堂服務(wù)招標(biāo)公告
- 事業(yè)單位采購合同中的支付方式
- 銷售合同調(diào)整協(xié)議的修改要點(diǎn)
- 購銷合同有效期內(nèi)的合同履行條件
- 幕墻維護(hù)與保養(yǎng)技術(shù)
- 美容門診感染管理制度
- 2023年電商高級經(jīng)理年度總結(jié)及下一年計(jì)劃
- 模具開發(fā)FMEA失效模式分析
- 年產(chǎn)40萬噸灰底涂布白板紙?jiān)旒堒囬g備料及涂布工段初步設(shè)計(jì)
- 1-3-二氯丙烯安全技術(shù)說明書MSDS
- 學(xué)生思想政治工作工作證明材料
- 一方出資一方出力合作協(xié)議
- 污水處理藥劑采購?fù)稑?biāo)方案(技術(shù)方案)
- 環(huán)保設(shè)施安全風(fēng)險(xiǎn)評估報(bào)告
- 數(shù)字邏輯與計(jì)算機(jī)組成 習(xí)題答案 袁春風(fēng) 第3章作業(yè)批改總結(jié)
評論
0/150
提交評論