ceph分布式存儲(chǔ)介紹_第1頁(yè)
ceph分布式存儲(chǔ)介紹_第2頁(yè)
ceph分布式存儲(chǔ)介紹_第3頁(yè)
ceph分布式存儲(chǔ)介紹_第4頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Ceph 分布式存儲(chǔ)1 Ceph存儲(chǔ)概述Ceph 最 初 是 一 項(xiàng) 關(guān) 于 存 儲(chǔ) 系 統(tǒng) 的PhD 研 究 項(xiàng) 目 , 由SageWeil在UniversityofCalifornia,SantaCruz( UCSC)實(shí)施。Ceph是開(kāi)源分布式存儲(chǔ),也是主線(xiàn)Linux 內(nèi)核()的一部分。1.1 Ceph架構(gòu)Ceph 生態(tài)系統(tǒng)可以大致劃分為四部分(見(jiàn)圖1):客戶(hù)端(數(shù)據(jù)用戶(hù)),元數(shù)據(jù)服務(wù)器(緩存和同步分布式元數(shù)據(jù)),一個(gè)對(duì)象存儲(chǔ)集群(將數(shù)據(jù)和元數(shù)據(jù)作為對(duì)象存儲(chǔ),執(zhí)行其他關(guān)鍵職能),以及最后的集群監(jiān)視器(執(zhí)行監(jiān)視功能)。圖 1Ceph 生態(tài)系統(tǒng)如圖 1 所示,客戶(hù)使用元數(shù)據(jù)服務(wù)器,執(zhí)行元數(shù)據(jù)操

2、作(來(lái)確定數(shù)據(jù)位置)。元數(shù)據(jù)服務(wù)器管理數(shù)據(jù)位置,以及在何處存儲(chǔ)新數(shù)據(jù)。值得注意的是,元數(shù)據(jù)存儲(chǔ)在一個(gè)存儲(chǔ)集群(標(biāo)為“元數(shù)據(jù)I/O ”)。實(shí)際的文件I/O 發(fā)生在客戶(hù)和對(duì)象存儲(chǔ)集群之間。這樣一來(lái),更高層次的POSIX 功能(例如,打開(kāi)、關(guān)閉、重命名)就由元數(shù)據(jù)服務(wù)器管理,不過(guò) POSIX功能(例如讀和寫(xiě))則直接由對(duì)象存儲(chǔ)集群管理。另一個(gè)架構(gòu)視圖由圖2 提供。一系列服務(wù)器通過(guò)一個(gè)客戶(hù)界面訪(fǎng)問(wèn)Ceph 生態(tài)系統(tǒng),這就明白了元數(shù)據(jù)服務(wù)器和對(duì)象級(jí)存儲(chǔ)器之間的關(guān)系。分布式存儲(chǔ)系統(tǒng)可以在一些層中查看,包括一個(gè)存儲(chǔ)設(shè)備的格式(ExtentandB-tree-basedObjectFileSystemEBOFS

3、或者一個(gè)備選),還有一個(gè)設(shè)計(jì)用于管理數(shù)據(jù)復(fù)制,故障檢測(cè),恢復(fù),以及隨后的數(shù)據(jù)遷移的覆蓋管理層,叫做ReliableAutonomicDistributedObjectStorage( RADOS)。最后,監(jiān)視器用于識(shí)別組件故障,包括隨后的通知。圖 2ceph 架構(gòu)視圖1.2 Ceph組件了解了 Ceph 的概念架構(gòu)之后,您可以挖掘到另一個(gè)層次,了解在Ceph 中實(shí)現(xiàn)的主要組件。 Ceph 和傳統(tǒng)的文件系統(tǒng)之間的重要差異之一就是,它將智能都用在了生態(tài)環(huán)境而不是文件系統(tǒng)本身。圖 3 顯示了一個(gè)簡(jiǎn)單的 Ceph 生態(tài)系統(tǒng)。 CephClient 是 Ceph 文件系統(tǒng)的用戶(hù)。CephMetadata

4、Daemon提供了元數(shù)據(jù)服務(wù)器,而 CephObjectStorageDaemon 提供了實(shí)際存儲(chǔ)(對(duì)數(shù)據(jù)和元數(shù)據(jù)兩者)。最后, CephMonitor 提供了集群管理。要注意的是, Ceph 客戶(hù),對(duì)象存儲(chǔ)端點(diǎn),元數(shù)據(jù)服務(wù)器(根據(jù)文件系統(tǒng)的容量)可以有許多,而且至少有一對(duì)冗余的監(jiān)視器。那么,這個(gè)文件系統(tǒng)是如何分布的呢?圖 3 簡(jiǎn)單的 Ceph生態(tài)系統(tǒng)1.3 Ceph客戶(hù)端因?yàn)?Linux顯示文件系統(tǒng)的一個(gè)公共界面(通過(guò)虛擬文件系統(tǒng)交換機(jī)VFS ), Ceph的用戶(hù)透視圖就是透明的。管理員的透視圖肯定是不同的,考慮到很多服務(wù)器會(huì)包含存儲(chǔ)系統(tǒng)這一潛在因素(要查看更多創(chuàng)建Ceph 集群的信息,見(jiàn)參

5、考資料部分)。從用戶(hù)的角度看,他們?cè)L問(wèn)大容量的存儲(chǔ)系統(tǒng),卻不知道下面聚合成一個(gè)大容量的存儲(chǔ)池的元數(shù)據(jù)服務(wù)器,監(jiān)視器,還有獨(dú)立的對(duì)象存儲(chǔ)設(shè)備。用戶(hù)只是簡(jiǎn)單地看到一個(gè)安裝點(diǎn),在這點(diǎn)上可以執(zhí)行標(biāo)準(zhǔn)文件I/O 。Ceph 文件系統(tǒng)或者至少是客戶(hù)端接口在Linux內(nèi)核中實(shí)現(xiàn)。值得注意的是,在大多數(shù)文件系統(tǒng)中,所有的控制和智能在內(nèi)核的文件系統(tǒng)源本身中執(zhí)行。但是,在Ceph中,文件系統(tǒng)的智能分布在節(jié)點(diǎn)上,這簡(jiǎn)化了客戶(hù)端接口,并為Ceph 提供了大規(guī)模(甚至動(dòng)態(tài))擴(kuò)展能力。Ceph 使用一個(gè)有趣的備選,而不是依賴(lài)分配列表(將磁盤(pán)上的塊映射到指定文件的元數(shù)據(jù))。 Linux透視圖中的一個(gè)文件會(huì)分配到一個(gè)來(lái)自元數(shù)

6、據(jù)服務(wù)器的inodenumber( INO),對(duì)于文件這是一個(gè)唯一的標(biāo)識(shí)符。然后文件被推入一些對(duì)象中(根據(jù)文件的大?。?。使用INO和objectnumber(ONO),每個(gè)對(duì)象都分配到一個(gè)對(duì)象ID(OID)。在OID上使用一個(gè)簡(jiǎn)單的哈希,每個(gè)對(duì)象都被分配到一個(gè)放置組。放置組(標(biāo)識(shí)為PGID)是一個(gè)對(duì)象的概念容器。最后,放置組到對(duì)象存儲(chǔ)設(shè)備的映射是一個(gè)偽隨機(jī)映射,使用一個(gè)叫做ControlledReplicationUnderScalableHashing( CRUSH)的算法。這樣一來(lái),放置組(以及副本)到存儲(chǔ)設(shè)備的映射就不用依賴(lài)任何元數(shù)據(jù),而是依賴(lài)一個(gè)偽隨機(jī)的映射函數(shù)。這種操作是理想的,因?yàn)?/p>

7、它把存儲(chǔ)的開(kāi)銷(xiāo)最小化,簡(jiǎn)化了分配和數(shù)據(jù)查詢(xún)。分配的最后組件是集群映射。集群映射是設(shè)備的有效表示,顯示了存儲(chǔ)集群。有了PGID和集群映射,您就可以定位任何對(duì)象。1.4 Ceph元數(shù)據(jù)服務(wù)器元數(shù)據(jù)服務(wù)器( cmds)的工作就是管理文件系統(tǒng)的名稱(chēng)空間。雖然元數(shù)據(jù)和數(shù)據(jù)兩者都存儲(chǔ)在對(duì)象存儲(chǔ)集群,但兩者分別管理,支持可擴(kuò)展性。事實(shí)上,元數(shù)據(jù)在一個(gè)元數(shù)據(jù)服務(wù)器集群上被進(jìn)一步拆分,元數(shù)據(jù)服務(wù)器能夠自適應(yīng)地復(fù)制和分配名稱(chēng)空間,避免出現(xiàn)熱點(diǎn)。如圖4 所示,元數(shù)據(jù)服務(wù)器管理名稱(chēng)空間部分,可以(為冗余和性能)進(jìn)行重疊。元數(shù)據(jù)服務(wù)器到名稱(chēng)空間的映射在Ceph 中使用動(dòng)態(tài)子樹(shù)邏輯分區(qū)執(zhí)行,它允許Ceph 對(duì)變化的工作負(fù)

8、載進(jìn)行調(diào)整(在元數(shù)據(jù)服務(wù)器之間遷移名稱(chēng)空間)同時(shí)保留性能的位置。圖 4 元數(shù)據(jù)服務(wù)器的 Ceph名稱(chēng)空間的分區(qū)但是因?yàn)槊總€(gè)元數(shù)據(jù)服務(wù)器只是簡(jiǎn)單地管理客戶(hù)端人口的名稱(chēng)空間,它的主要應(yīng)用就是一個(gè)智能元數(shù)據(jù)緩存(因?yàn)閷?shí)際的元數(shù)據(jù)最終存儲(chǔ)在對(duì)象存儲(chǔ)集群中)。進(jìn)行寫(xiě)操作的元數(shù)據(jù)被緩存在一個(gè)短期的日志中,它最終還是被推入物理存儲(chǔ)器中。這個(gè)動(dòng)作允許元數(shù)據(jù)服務(wù)器將最近的元數(shù)據(jù)回饋給客戶(hù)(這在元數(shù)據(jù)操作中很常見(jiàn))。這個(gè)日志對(duì)故障恢復(fù)也很有用:如果元數(shù)據(jù)服務(wù)器發(fā)生故障,它的日志就會(huì)被重放,保證元數(shù)據(jù)安全存儲(chǔ)在磁盤(pán)上。元數(shù)據(jù)服務(wù)器管理 inode 空間,將文件名轉(zhuǎn)變?yōu)樵獢?shù)據(jù)。元數(shù)據(jù)服務(wù)器將文件名轉(zhuǎn)變?yōu)樗饕?jié)點(diǎn),文件

9、大小,和 Ceph客戶(hù)端用于文件 I/O 的分段數(shù)據(jù)(布局)。1.5 Ceph監(jiān)視器Ceph 包含實(shí)施集群映射管理的監(jiān)視器,但是故障管理的一些要素是在對(duì)象存儲(chǔ)本身中執(zhí)行的。當(dāng)對(duì)象存儲(chǔ)設(shè)備發(fā)生故障或者新設(shè)備添加時(shí),監(jiān)視器就檢測(cè)和維護(hù)一個(gè)有效的集群映射。這個(gè)功能按一種分布的方式執(zhí)行,這種方式中映射升級(jí)可以和當(dāng)前的流量通信。 Ceph使用 Paxos,它是一系列分布式共識(shí)算法。1.6 Ceph對(duì)象存儲(chǔ)和傳統(tǒng)的對(duì)象存儲(chǔ)類(lèi)似, Ceph 存儲(chǔ)節(jié)點(diǎn)不僅包括存儲(chǔ),還包括智能。傳統(tǒng)的驅(qū)動(dòng)是只響應(yīng)來(lái)自啟動(dòng)者的命令的簡(jiǎn)單目標(biāo)。但是對(duì)象存儲(chǔ)設(shè)備是智能設(shè)備,它能作為目標(biāo)和啟動(dòng)者,支持與其他對(duì)象存儲(chǔ)設(shè)備的通信和合作。從

10、存儲(chǔ)角度來(lái)看, Ceph 對(duì)象存儲(chǔ)設(shè)備執(zhí)行從對(duì)象到塊的映射(在客戶(hù)端的文件系統(tǒng)層中常常執(zhí)行的任務(wù))。這個(gè)動(dòng)作允許本地實(shí)體以最佳方式?jīng)Q定怎樣存儲(chǔ)一個(gè)對(duì)象。Ceph 的早期版本在一個(gè)名為EBOFS的本地存儲(chǔ)器上實(shí)現(xiàn)一個(gè)自定義低級(jí)文件系統(tǒng)。這個(gè)系統(tǒng)實(shí)現(xiàn)一個(gè)到底層存儲(chǔ)的非標(biāo)準(zhǔn)接口,這個(gè)底層存儲(chǔ)已針對(duì)對(duì)象語(yǔ)義和其他特性(例如對(duì)磁盤(pán)提交的異步通知)調(diào)優(yōu)。今天, B-tree 文件系統(tǒng)( BTRFS)可以被用于存儲(chǔ)節(jié)點(diǎn),它已經(jīng)實(shí)現(xiàn)了部分必要功能(例如嵌入式完整性)。因?yàn)?Ceph 客戶(hù)實(shí)現(xiàn) CRUSH,而且對(duì)磁盤(pán)上的文件映射塊一無(wú)所知,下面的存儲(chǔ)設(shè)備就能安全地管理對(duì)象到塊的映射。這允許存儲(chǔ)節(jié)點(diǎn)復(fù)制數(shù)據(jù)(當(dāng)發(fā)

11、現(xiàn)一個(gè)設(shè)備出現(xiàn)故障時(shí))。分配故障恢復(fù)也允許存儲(chǔ)系統(tǒng)擴(kuò)展,因?yàn)楣收蠙z測(cè)和恢復(fù)跨生態(tài)系統(tǒng)分配。 Ceph 稱(chēng)其為 RADOS。2 Ceph快速配置資源:兩臺(tái)機(jī)器:一臺(tái)server ,一臺(tái) client,安裝 ubuntu12.10其中, server安裝時(shí),另外分出兩個(gè)區(qū),作為osd0、osd1 的存儲(chǔ),沒(méi)有的話(huà),系統(tǒng)安裝好后,使用 loop 設(shè)備虛擬出兩個(gè)也可以。步驟:1、安裝操作系統(tǒng)2、添加 key 到 APT中,更新 sources.list,安裝 ceph#sudowget-q-O-|sudoapt-keyadd-#sudoechodeb$(lsb_release-sc)main|sudo

12、tee#sudoapt-getupdate&&sudoapt-getinstallceph3、查看版本#ceph-v/將顯示 ceph 的版本和 key 信息如果沒(méi)有顯示,請(qǐng)執(zhí)行如下命令#sudoapt-getupdate&&apt-getupgrade4、在 /etc/ceph/下創(chuàng)建 ceph.conf 配置文件,并將配置文件拷貝到Client。global#Forversion0.55andbeyond,youmustexplicitlyenable #ordisableauthenticationwith"auth"entriesin

13、global.authclusterrequired=noneauthservicerequired=noneauthclientrequired=noneosdosdjournalsize=1000#Thefollowingassumesext4filesystem.filestorexattruseomap=true#ForBobtail(v0.56)andsubsequentversions,youmay #addsettingsformkcephfssothatitwillcreateandmount #thefilesystemonaparticularOSDforyou.Remov

14、ethecomment# #characterforthefollowingsettingsandreplacethevalues #inbraceswithappropriatevalues,orleavethefollowingsettings #commentedouttoacceptthedefaultvalues.Youmustspecifythe#-mkfsoptionwithmkcephfsinorderforthedeploymentscriptto #utilizethefollowingsettings,andyoumustdefinethe'devs' #

15、optionforeachosdinstance;seebelow.osdmkfstype=xfsosdmkfsoptionsxfs=-f#defaultforxfsis"-f"osdmountoptionsxfs=rw,noatime#defaultmountoptionis"rw,noatime"#Forexample,forext4,themountoptionmightlooklikethis:#osdmkfsoptionsext4=user_xattr,rw,noatime#Execute$hostnametoretrievethenameof

16、yourhost,#andreplacehostnamewiththenameofyourhost.#Forthemonitor,replaceip-addresswiththeIP#addressofyourhost.mon.ahost=ubuntumonaddr=osd.0host=ubuntu#ForBobtail(v0.56)andsubsequentversions,youmay #addsettingsformkcephfssothatitwillcreateandmount #thefilesystemonaparticularOSDforyou.Removethecomment

17、#characterforthefollowingsettingforeachOSDandspecify #apathtothedeviceifyouusemkcephfswiththe-mkfsoption.devs=/dev/loop0osd.1host=ubuntudevs=/dev/loop1mds.ahost=ubuntu說(shuō)明:1)配置文件請(qǐng)將認(rèn)證設(shè)置成noneauthclusterrequired=noneauthservicerequired=noneauthclientrequired=none2)指定 osd0、osd1 的位置如果沒(méi)有 /sda,可使用 loop 設(shè)備虛擬,

18、方法如下:#losetupa/查看 loop 設(shè)備的使用情況#ddif=/dev/zeroof=osd1bs=1Mcount=1000/格式化#losetup/dev/loop0osd0/建立對(duì)應(yīng)關(guān)系#mkfstxfs/dev/loop0/ 格式化按照相同的方法設(shè)置loop1 為 osd15、創(chuàng)建目錄sudomkdir-p/var/lib/ceph/osd/ceph-0sudomkdir-p/var/lib/ceph/osd/ceph-1sudomkdir-p/var/lib/ceph/mon/ceph-asudomkdir-p/var/lib/ceph/mds/ceph-a6、執(zhí)行初始化cd

19、/etc/cephsudomkcephfs-a-c/etc/ceph/ceph.conf-kceph.keyring7、啟動(dòng)#sudoserviceceph-astart8、執(zhí)行健康檢查sudocephhealth如果返回的是 HEALTH_OK , 代表成功!出 現(xiàn): HEALTH_WARN576pgsstuckinactive;576pgsstuckunclean;noosds之 類(lèi)的 , 請(qǐng)執(zhí)行:#cephpgdump_stuckstale#cephpgdump_stuckinactive#cephpgdump_stuckunclean再次健康檢查是,應(yīng)該是OK注意:重新執(zhí)行如下命令#s

20、udomkcephfs-a-c/etc/ceph/ceph.conf-kceph.keyring前,請(qǐng)先清空創(chuàng)建的四個(gè)目錄:/var/lib/ceph/osd/ceph-0、/var/lib/ceph/osd/ceph-1、/var/lib/ceph/mon/ceph-a、 /var/lib/ceph/mds/ceph-a#rmfrv/var/lib/ceph/osd/ceph-0/*#rmfrv/var/lib/ceph/osd/ceph-1/*#rmfrv/var/lib/ceph/mon/ceph-a/*#rmfrv/var/lib/ceph/mds/ceph-a/*3 CephFS的使

21、用在客戶(hù)端上操作:sudomkdir/mnt/mycephfssudomount-tcephip-address-of-monitor:6789:/mnt/mycephfs或者sudomkdir/home/username/cephfssudoceph-fuse-mip-address-of-monitor:6789/home/username/cephfs#sudomount-lon/mnt/mycephfstypeceph(0)#cd/mnt/mycephfs可進(jìn)行文件操作4 源碼包編譯流程:#sudoapt-getupdate2、添加 ceph 的源到 /etc/apt/sources.

22、list中debquantalmaindeb-srcquantalmain3、新建目錄,存放ceph 源碼包#mkdirceph#ceceph4、下載最新的 ceph 源碼包#apt-getsourceceph包含四個(gè)文件目錄5、進(jìn)入到,開(kāi)始編譯工作6、查看 README 文件,按步驟編譯,如下:#apt-getinstallautomakeautoconfautomakegccg+libboost-devlibedit-devlibssl-devlibtoollibfcgilibfcgi-devlibfuse-devlinux-kernel-headerslibcrypto+-devliba

23、io-devlibgoogle-perftools-devlibkeyutils-devuuid-devlibatomic-ops-devlibboost-program-options-devlibboost-thread-dev#sudoapt-getdpkg-dev#dpkg-checkbuilddeps#makesurewehavealldependenciesapt-getinstall 安裝缺少的依賴(lài)包#dpkg-buildpackage編譯,需要一段時(shí)間8、修改后可使用make 編譯#make9、修改代碼, make 只編譯修改的部分,并指明編譯文件和修改文件5 源碼編譯測(cè)試情況

24、1、替換編譯后的mds 到/usr/bin 下,啟動(dòng)成功,健康檢查如下:rootubuntu:/usr/bin#cephhealthHEALTH_WARN576pgsstale/ 是不是一段時(shí)間沒(méi)動(dòng)?rootubuntu:/usr/bin#cephpgdump_stuckstaleokpg_statobjects mipdegrunfupacting last_scrubbytes logdisklogstatestate_stampvreportedscrub_stamp last_deep_scrubdeep_scrub_stamprootubuntu:/usr/bin#cephhealt

25、hHEALTH_OKClient 可正常創(chuàng)建、拷貝文件2、替換 osd 后, OKrootubuntu:/usr/bin#scp.password:ceph-osd100%93MB10.4MB/s00:09rootubuntu:/usr/bin#serviceceph-astart=mon.a=StartingCephmon.aonubuntu.startingmon.arank0atmon_data/var/lib/ceph/mon/ceph-afsidd188f2d1-d8f3-4f6d-94c6-0a271ff64dab=mds.a=StartingCephmds.aonubuntu.s

26、tartingmds.aat:/0=osd.0=StartingCephosd.0onubuntu.startingosd.0at:/0osd_data/var/lib/ceph/osd/ceph-0/var/lib/ceph/osd/ceph-0/journal=osd.1=StartingCephosd.1onubuntu.startingosd.1at:/0osd_data/var/lib/ceph/osd/ceph-1/var/lib/ceph/osd/ceph-1/journalrootubuntu:/usr/bin#servicecephstatus=mon.a=mds.a=osd

27、.0=osd.1=rootubuntu:/usr/bin#cephhealthHEALTH_OKClient 可正常創(chuàng)建、拷貝文件3、替換 mon,OKrootubuntu:/usr/bin#cpceph-monceph-mon.bakrootubuntu:/usr/bin#scp.password:ceph-mon100%46MB11.4MB/s00:04rootubuntu:/usr/bin#serviceceph-astart=mon.a=StartingCephmon.aonubuntu.startingmon.arank0atmon_data/var/lib/ceph/mon/ceph-afsidd188f2d1-d8f3-4f6d

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論