- Ceph分布式存儲實戰(zhàn)
- Ceph中國社區(qū)
- 1930字
- 2019-01-04 06:06:50

1.1 Ceph概述
1.Ceph簡介
從2004年提交第一行代碼開始到現(xiàn)在,Ceph已經(jīng)是一個有著十年之久的分布式存儲系統(tǒng)軟件,目前Ceph已經(jīng)發(fā)展為開源存儲界的當(dāng)紅明星,當(dāng)然這與它的設(shè)計思想以及OpenStack的推動有關(guān)。
“Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability.”這句話說出了Ceph的特性,它是可靠的、可擴展的、統(tǒng)一的、分布式的存儲系統(tǒng)。Ceph可以同時提供對象存儲RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、塊存儲RBD(Rados Block Device)、文件系統(tǒng)存儲Ceph FS(Ceph Filesystem)3種功能,以此來滿足不同的應(yīng)用需求。
Ceph消除了對系統(tǒng)單一中心節(jié)點的依賴,從而實現(xiàn)了真正的無中心結(jié)構(gòu)的設(shè)計思想,這也是其他分布式存儲系統(tǒng)所不能比的。通過后續(xù)章節(jié)內(nèi)容的介紹,你可以看到,Ceph幾乎所有優(yōu)秀特性的實現(xiàn),都與其核心設(shè)計思想有關(guān)。
OpenStack是目前最為流行的開源云平臺軟件。Ceph的飛速發(fā)展離不開OpenStack的帶動。目前而言,Ceph已經(jīng)成為OpenStack的標(biāo)配開源存儲方案之一,其實際應(yīng)用主要涉及塊存儲和對象存儲,并且開始向文件系統(tǒng)領(lǐng)域擴展。這一部分的相關(guān)情況,在后續(xù)章節(jié)中也將進行介紹。
2.Ceph的發(fā)展
Ceph是加州大學(xué)Santa Cruz分校的Sage Weil(DreamHost的聯(lián)合創(chuàng)始人)專為博士論文設(shè)計的新一代自由軟件分布式文件系統(tǒng)。
2004年,Ceph項目開始,提交了第一行代碼。
2006年,OSDI學(xué)術(shù)會議上,Sage發(fā)表了介紹Ceph的論文,并在該篇論文的末尾提供了Ceph項目的下載鏈接。
2010年,Linus Torvalds將Ceph Client合并到內(nèi)核2.6.34中,使Linux與Ceph磨合度更高。
2012年,擁抱OpenStack,進入Cinder項目,成為重要的存儲驅(qū)動。
2014年,Ceph正趕上OpenStack大熱,受到各大廠商的“待見”,吸引來自不同廠商越來越多的開發(fā)者加入,Intel、SanDisk等公司都參與其中,同時Inktank公司被Red Hat公司1.75億美元收購。
2015年,Red Hat宣布成立Ceph顧問委員會,成員包括Canonical、CERN、Cisco、Fujitsu、Intel、SanDisk和SUSE。Ceph顧問委員會將負(fù)責(zé)Ceph軟件定義存儲項目的廣泛議題,目標(biāo)是使Ceph成為云存儲系統(tǒng)。
2016年,OpenStack社區(qū)調(diào)查報告公布,Ceph仍為存儲首選,這已經(jīng)是Ceph第5次位居調(diào)查的首位了。
3.Ceph應(yīng)用場景
Ceph可以提供對象存儲、塊設(shè)備存儲和文件系統(tǒng)服務(wù),其對象存儲可以對接網(wǎng)盤(owncloud)應(yīng)用業(yè)務(wù)等;其塊設(shè)備存儲可以對接(IaaS),當(dāng)前主流的IaaS云平臺軟件,例如OpenStack、CloudStack、Zstack、Eucalyptus等以及KVM等,本書后續(xù)章節(jié)中將介紹OpenStack、CloudStack、Zstack和KVM的對接;其文件系統(tǒng)文件尚不成熟,官方不建議在生產(chǎn)環(huán)境下使用。
4.Ceph生態(tài)系統(tǒng)
Ceph作為開源項目,其遵循LGPL協(xié)議,使用C++語言開發(fā),目前Ceph已經(jīng)成為最廣泛的全球開源軟件定義存儲項目,擁有得到眾多IT廠商支持的協(xié)同開發(fā)模式。目前Ceph社區(qū)有超過40個公司的上百名開發(fā)者持續(xù)貢獻代碼,平均每星期的代碼commits超過150個,每個版本通常在2000個commits左右,代碼增減行數(shù)在10萬行以上。在過去的幾個版本發(fā)布中,貢獻者的數(shù)量和參與公司明顯增加,如圖1-1所示。

圖1-1 部分廠商和軟件
5.Ceph用戶群
Ceph成為了開源存儲的當(dāng)紅明星,國內(nèi)外已經(jīng)擁有眾多用戶群體,下面簡單說一下Ceph的用戶群。
(1)國外用戶群
1)CERN:CERN IT部門在2013年年中開始就運行了一個單一集群超過10000個VM和100000個CPU Cores的云平臺,主要用來做物理數(shù)據(jù)分析。這個集群后端Ceph包括3PB的原始容量,在云平臺中作為1000多個Cinder卷和1500多個Glance鏡像的存儲池。在2015年開始測試單一30 PB的塊存儲RBD集群。
2)DreamHost:DreamHost從2012年開始運行基于Ceph RADOSGW的大規(guī)模對象存儲集群,單一集群在3PB以下,大約由不到10機房集群組成,直接為客戶提供對象存儲服務(wù)。
3)Yahoo Flick:Yahoo Flick自2013年開始逐漸試用Ceph對象存儲替換原有的商業(yè)存儲,目前大約由10機房構(gòu)成,每個機房在1PB~2PB,存儲了大約2500億個對象。
4)大學(xué)用戶:奧地利的因斯布魯克大學(xué)、法國的洛林大學(xué)等。
(2)國內(nèi)用戶群
1)以O(shè)penStack為核心的云廠商:例如UnitedStack、Awcloud等國內(nèi)云計算廠商。
2)Ceph產(chǎn)品廠商:SanDisk、XSKY、H3C、杉巖數(shù)據(jù)、SUSE和Bigtera等Ceph廠商。
3)互聯(lián)網(wǎng)企業(yè):騰訊、京東、新浪微博、樂視、完美世界、平安科技、聯(lián)想、唯品會、福彩網(wǎng)和魅族等國內(nèi)互聯(lián)網(wǎng)企業(yè)。
6.社區(qū)項目開發(fā)迭代
目前Ceph社區(qū)采用每半年一個版本發(fā)布的方式來進行特性和功能的開發(fā),每個版本發(fā)布需要經(jīng)歷設(shè)計、開發(fā)、新功能凍結(jié),持續(xù)若干個版本的Bug修復(fù)周期后正式發(fā)布下一個穩(wěn)定版本。其發(fā)布方式跟OpenStack差不多,也是每半年發(fā)布一個新版本。
Ceph會維護多個穩(wěn)定版本來保證持續(xù)的Bug修復(fù),以此來保證用戶的存儲安全,同時社區(qū)會有一個發(fā)布穩(wěn)定版本的團隊來維護已發(fā)布的版本,每個涉及之前版本的Bug都會被該團隊移植回穩(wěn)定版本,并且經(jīng)過完整QA測試后發(fā)布下一個穩(wěn)定版本。
代碼提交都需要經(jīng)過單元測試,模塊維護者審核,并通過QA測試子集后才能合并到主線。社區(qū)維護一個較大規(guī)模的測試集群來保證代碼質(zhì)量,豐富的測試案例和錯誤注入機制保證了項目的穩(wěn)定可靠。
7.Ceph版本
Ceph正處于持續(xù)開發(fā)中并且迅速提升。2012年7月3日,Sage發(fā)布了Ceph第一個LTS版本:Argonaut。從那時起,陸續(xù)又發(fā)布了9個新版本。Ceph版本被分為LTS(長期穩(wěn)定版)以及開發(fā)版本,Ceph每隔一段時間就會發(fā)布一個長期穩(wěn)定版。Ceph版本具體信息見表1-1。欲了解更多信息,請訪問https://Ceph.com/category/releases/。
表1-1 Ceph版本信息

1.2 Ceph的功能組件
Ceph提供了RADOS、OSD、MON、LIBRADOS、RBD、RGW和Ceph FS等功能組件,但其底層仍然使用RADOS存儲來支撐上層的那些組件,如圖1-2所示。

圖1-2 Ceph功能組件的整體架構(gòu)
下面分為兩部分來講述Ceph的功能組件。
(1)Ceph核心組件
在Ceph存儲中,包含了幾個重要的核心組件,分別是Ceph OSD、Ceph Monitor和Ceph MDS。一個Ceph的存儲集群至少需要一個Ceph Monitor和至少兩個Ceph的OSD。運行Ceph文件系統(tǒng)的客戶端時,Ceph的元數(shù)據(jù)服務(wù)器(MDS)是必不可少的。下面來詳細(xì)介紹一下各個核心組件。
?Ceph OSD:全稱是Object Storage Device,主要功能包括存儲數(shù)據(jù),處理數(shù)據(jù)的復(fù)制、恢復(fù)、回補、平衡數(shù)據(jù)分布,并將一些相關(guān)數(shù)據(jù)提供給Ceph Monitor,例如Ceph OSD心跳等。一個Ceph的存儲集群,至少需要兩個Ceph OSD來實現(xiàn)active +clean健康狀態(tài)和有效的保存數(shù)據(jù)的雙副本(默認(rèn)情況下是雙副本,可以調(diào)整)。注意:每一個Disk、分區(qū)都可以成為一個OSD。
?Ceph Monitor:Ceph的監(jiān)控器,主要功能是維護整個集群健康狀態(tài),提供一致性的決策,包含了Monitor map、OSD map、PG(Placement Group)map和CRUSH map。
?Ceph MDS:全稱是Ceph Metadata Server,主要保存的是Ceph文件系統(tǒng)(File System)的元數(shù)據(jù)(metadata)。溫馨提示:Ceph的塊存儲和Ceph的對象存儲都不需要Ceph MDS。Ceph MDS為基于POSIX文件系統(tǒng)的用戶提供了一些基礎(chǔ)命令,例如ls、find等命令。
(2)Ceph功能特性
Ceph可以同時提供對象存儲RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、塊存儲RBD(Rados Block Device)、文件系統(tǒng)存儲Ceph FS(Ceph File System)3種功能,由此產(chǎn)生了對應(yīng)的實際場景,本節(jié)簡單介紹如下。
RADOSGW功能特性基于LIBRADOS之上,提供當(dāng)前流行的RESTful協(xié)議的網(wǎng)關(guān),并且兼容S3和Swift接口,作為對象存儲,可以對接網(wǎng)盤類應(yīng)用以及HLS流媒體應(yīng)用等。
RBD(Rados Block Device)功能特性也是基于LIBRADOS之上,通過LIBRBD創(chuàng)建一個塊設(shè)備,通過QEMU/KVM附加到VM上,作為傳統(tǒng)的塊設(shè)備來用。目前OpenStack、CloudStack等都是采用這種方式來為VM提供塊設(shè)備,同時也支持快照、COW(Copy On Write)等功能。
Ceph FS(Ceph File System)功能特性是基于RADOS來實現(xiàn)分布式的文件系統(tǒng),引入了MDS(Metadata Server),主要為兼容POSIX文件系統(tǒng)提供元數(shù)據(jù)。一般都是當(dāng)做文件系統(tǒng)來掛載。
后面章節(jié)會對這幾種特性以及對應(yīng)的實際場景做詳細(xì)的介紹和分析。
1.3 Ceph架構(gòu)和設(shè)計思想
1.Ceph架構(gòu)
Ceph底層核心是RADOS。Ceph架構(gòu)圖如圖1-3所示。

圖1-3 Ceph架構(gòu)圖
?RADOS:RADOS具備自我修復(fù)等特性,提供了一個可靠、自動、智能的分布式存儲。
?LIBRADOS:LIBRADOS庫允許應(yīng)用程序直接訪問,支持C/C++、Java和Python等語言。
?RADOSGW:RADOSGW是一套基于當(dāng)前流行的RESTful協(xié)議的網(wǎng)關(guān),并且兼容S3和Swift。
?RBD:RBD通過Linux內(nèi)核(Kernel)客戶端和QEMU/KVM驅(qū)動,來提供一個完全分布式的塊設(shè)備。
?Ceph FS:Ceph FS通過Linux內(nèi)核(Kernel)客戶端結(jié)合FUSE,來提供一個兼容POSIX的文件系統(tǒng)。
具體的RADOS細(xì)節(jié)以及RADOS的靈魂CRUSH(Controlled Replication Under Scalable Hashing,可擴展哈希算法的可控復(fù)制)算法,這兩個知識點會在后面的第2、3章詳細(xì)介紹和分析。
2.Ceph設(shè)計思想
Ceph是一個典型的起源于學(xué)術(shù)研究課題的開源項目。雖然學(xué)術(shù)研究生涯對于Sage而言只是其光輝事跡的短短一篇,但畢竟還是有幾篇學(xué)術(shù)論文可供參考的。可以根據(jù)Sage的幾篇論文分析Ceph的設(shè)計思想。
理解Ceph的設(shè)計思想,首先還是要了解Sage設(shè)計Ceph時所針對的應(yīng)用場景,換句話說,Sage當(dāng)初做Ceph的初衷的什么?
事實上,Ceph最初針對的應(yīng)用場景,就是大規(guī)模的、分布式的存儲系統(tǒng)。所謂“大規(guī)模”和“分布式”,至少是能夠承載PB級別的數(shù)據(jù)和成千上萬的存儲節(jié)點組成的存儲集群。
如今云計算、大數(shù)據(jù)在中國發(fā)展得如火如荼,PB容量單位早已經(jīng)進入國內(nèi)企業(yè)存儲采購單,DT時代即將來臨。Ceph項目起源于2004年,那是一個商用處理器以單核為主流,常見硬盤容量只有幾十GB的年代。當(dāng)時SSD也沒有大規(guī)模商用,正因如此,Ceph之前版本對SSD的支持不是很好,發(fā)揮不了SSD的性能。如今Ceph高性能面臨的最大挑戰(zhàn)正是這些歷史原因,目前社區(qū)和業(yè)界正在逐步解決這些性能上的限制。
在Sage的思想中,我們首先說一下Ceph的技術(shù)特性,總體表現(xiàn)在集群可靠性、集群擴展性、數(shù)據(jù)安全性、接口統(tǒng)一性4個方面。
?集群可靠性:所謂“可靠性”,首先從用戶角度來說數(shù)據(jù)是第一位的,要盡可能保證數(shù)據(jù)不會丟失。其次,就是數(shù)據(jù)寫入過程中的可靠性,在用戶將數(shù)據(jù)寫入Ceph存儲系統(tǒng)的過程中,不會因為意外情況出現(xiàn)而造成數(shù)據(jù)丟失。最后,就是降低不可控物理因素的可靠性,避免因為機器斷電等不可控物理因素而產(chǎn)生的數(shù)據(jù)丟失。
?集群可擴展性:這里的“可擴展”概念是廣義的,既包括系統(tǒng)規(guī)模和存儲容量的可擴展,也包括隨著系統(tǒng)節(jié)點數(shù)增加的聚合數(shù)據(jù)訪問帶寬的線性擴展。
?數(shù)據(jù)安全性:所謂“數(shù)據(jù)安全性”,首先要保證由于服務(wù)器死機或者是偶然停電等自然因素的產(chǎn)生,數(shù)據(jù)不會丟失,并且支持?jǐn)?shù)據(jù)自動恢復(fù),自動重平衡等??傮w而言,這一特性既保證了系統(tǒng)的高度可靠和數(shù)據(jù)絕對安全,又保證了在系統(tǒng)規(guī)模擴大之后,其運維難度仍能保持在一個相對較低的水平。
?接口統(tǒng)一性:所謂“接口統(tǒng)一”,本書開頭就說到了Ceph可以同時支持3種存儲,即塊存儲、對象存儲和文件存儲。Ceph支持市面上所有流行的存儲類型。
根據(jù)上述技術(shù)特性以及Sage的論文,我們來分析一下Ceph的設(shè)計思路,概述為兩點:充分發(fā)揮存儲本身計算能力和去除所有的中心點。
?充分發(fā)揮存儲設(shè)備自身的計算能力:其實就是采用廉價的設(shè)備和具有計算能力的設(shè)備(最簡單的例子就是普通的服務(wù)器)作為存儲系統(tǒng)的存儲節(jié)點。Sage認(rèn)為當(dāng)前階段只是將這些服務(wù)器當(dāng)做功能簡單的存儲節(jié)點,從而產(chǎn)生資源過度浪費(如同虛擬化的思想一樣,都是為了避免資源浪費)。而如果充分發(fā)揮節(jié)點上的計算能力,則可以實現(xiàn)前面提出的技術(shù)特性。這一點成為了Ceph系統(tǒng)設(shè)計的核心思想。
?去除所有的中心點:搞IT的最忌諱的就是單點故障,如果系統(tǒng)中出現(xiàn)中心點,一方面會引入單點故障,另一方面也必然面臨著當(dāng)系統(tǒng)規(guī)模擴大時的可擴展性和性能瓶頸。除此之外,如果中心點出現(xiàn)在數(shù)據(jù)訪問的關(guān)鍵路徑上,也必然導(dǎo)致數(shù)據(jù)訪問的延遲增大。雖然在大多數(shù)存儲軟件實踐中,單點故障點和性能瓶頸的問題可以通過為中心點增加HA或備份加以緩解,但Ceph系統(tǒng)最終采用Crush、Hash環(huán)等方法更徹底地解決了這個問題。很顯然Sage的眼光和設(shè)想還是很超前的。
1.4 Ceph快速安裝
在Ceph官網(wǎng)上提供了兩種安裝方式:快速安裝和手動安裝??焖侔惭b采用Ceph-Deploy工具來部署;手動安裝采用官方教程一步一步來安裝部署Ceph集群,過于煩瑣但有助于加深印象,如同手動部署OpenStack一樣。但是,建議新手和初學(xué)者采用第一種方式快速部署并且測試,下面會介紹如何使用Ceph-Deploy工具來快速部署Ceph集群。
1.4.1 Ubuntu/Debian安裝
本節(jié)將介紹如何使用Ceph-Deploy工具來快速部署Ceph集群,開始之前先普及一下Ceph-Deploy工具的知識。Ceph-Deploy工具通過SSH方式連接到各節(jié)點服務(wù)器上,通過執(zhí)行一系列腳本來完成Ceph集群部署。Ceph-Deploy簡單易用同時也是Ceph官網(wǎng)推薦的默認(rèn)安裝工具。本節(jié)先來講下在Ubuntu/Debian系統(tǒng)下如何快速安裝Ceph集群。
1)配置Ceph APT源。
root@localhos`t:~# echo deb http://ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
2)添加APT源key。
root@localhost:~# wget –q –O -'https://ceph.com/git/? p=ceph.git; a=blob_ plain; f=keys/release.asc' | sudo apt-key add -
3)更新源并且安裝ceph-deploy。
root@localhost:~# sudo apt-get update &&sudo apt-get install ceph-deploy -y
4)配置各個節(jié)點hosts文件。
root@localhost:~# cat /etc/hosts 192.168.1.2 node1 192.168.1.3 node2 192.168.1.4 node3
5)配置各節(jié)點SSH無密碼登錄,這就是本節(jié)開始時講到的Ceph-Deploy工具要用過SSH方式連接到各節(jié)點服務(wù)器,來安裝部署集群。輸完ssh-keygen命令之后,在命令行會輸出以下內(nèi)容。
root@localhost:~# ssh-keygen Generating public/private key pair. Enter file in which to save the key (/ceph-client/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /ceph-client/.ssh/id_rsa. Your public key has been saved in /ceph-client/.ssh/id_rsa.pub
6)復(fù)制key到各節(jié)點。
root@localhost:~# ssh-copy-idnode1 root@localhost:~# ssh-copy-idnode2 root@localhost:~# ssh-copy-idnode3
7)在執(zhí)行ceph-deploy的過程中會生成一些配置文件,建議創(chuàng)建一個目錄,例如my-cluster。
root@localhost:~# mkdir my-cluster root@localhost:~# cd my-cluster
8)創(chuàng)建集群(Cluster),部署新的monitor節(jié)點。
root@localhost:~# ceph-deploy new {initial-monitor-node(s)}
例如:
root@localhost:~# ceph-deploy new node1
9)配置Ceph.conf配置文件,示例文件是默認(rèn)的,可以根據(jù)自己情況進行相應(yīng)調(diào)整和添加。具體優(yōu)化情況本書后面會介紹。
[global] fsid = 67d997c9-dc13-4edf-a35f-76fd693aa118 mon_initial_members = node1, node2 mon_host = 192.168.1.2,192.168.1.3 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx filestore_xattr_use_omap = true <! -----以上部分都是ceph-deploy默認(rèn)生成的----> public network = {ip-address}/{netmask} cluster network={ip-addesss}/{netmask} <! -----以上兩個網(wǎng)絡(luò)是新增部分,默認(rèn)只是添加public network,一般生產(chǎn)都是定義兩個網(wǎng)絡(luò),集 群網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò)分開--------> [osd] …… [mon] ……
這里配置文件不再過多敘述。
10)安裝Ceph到各節(jié)點。
root@localhost:~# ceph-deploy install {ceph-node}[{ceph-node} ...]
例如:
root@localhost:~# ceph-deploy install node1 node2 node3
11)獲取密鑰key,會在my-cluster目錄下生成幾個key。
root@localhost:~# ceph-deploy mon create-initial
12)初始化磁盤。
root@localhost:~# ceph-deploy disk zap {osd-server-name}:{disk-name}
例如:
root@localhost:~# ceph-deploy disk zap node1:sdb
13)準(zhǔn)備OSD。
root@localhost:~# ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
例如:
root@localhost:~# ceph-deploy osd prepare node1:sdb1:sdc
14)激活OSD。
root@localhost:~# ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
例如:
root@localhost:~# ceph-deploy osd activate node1:sdb1:sdc
15)分發(fā)key。
root@localhost:~# ceph-deploy admin {admin-node} {ceph-node}
例如:
root@localhost:~# ceph-deploy admin node1 node2 node3
16)給admin key賦權(quán)限。
root@localhost:~# sudo chmod +r /etc/ceph/ceph.client.admin.keyring
17)查看集群健康狀態(tài),如果是active+clean狀態(tài)就是正常的。
root@localhost:~# ceph health
提示
安裝Ceph前提條件如下。
① 時間要求很高,建議在部署Ceph集群的時候提前配置好NTP服務(wù)器。
② 對網(wǎng)絡(luò)要求一般,因為Ceph源在外國有時候會被屏蔽,解決辦法多嘗試機器或者代理。
1.4.2 RHEL/CentOS安裝
本節(jié)主要講一下在RHEL/CentOS系統(tǒng)下如何快速安裝Ceph集群。
1)配置Ceph YUM源。
root@localhost:~# vim /etc/yum.repos.d/ceph.repo [ceph-noarch] name=Cephnoarch packages baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://ceph.com/git/? p=ceph.git; a=blob_plain; f=keys/release.asc
2)更新源并且安裝ceph-deploy。
root@localhost:~# yum update &&yum install ceph-deploy -y
3)配置各個節(jié)點hosts文件。
root@localhost:~# cat /etc/hosts 192.168.1.2 node1 192.168.1.3 node2 192.168.1.4 node3
4)配置各節(jié)點SSH無密碼登錄,通過SSH方式連接到各節(jié)點服務(wù)器,以安裝部署集群。輸入ssh-keygen命令,在命令行會輸出以下內(nèi)容。
root@localhost:~# ssh-keygen Generating public/private key pair. Enter file in which to save the key (/ceph-client/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /ceph-client/.ssh/id_rsa. Your public key has been saved in /ceph-client/.ssh/id_rsa.pub
5)拷貝key到各節(jié)點。
root@localhost:~# ssh-copy-id node1 root@localhost:~# ssh-copy-id node2 root@localhost:~# ssh-copy-id node3
6)在執(zhí)行ceph-deploy的過程中會生成一些配置文件,建議創(chuàng)建一個目錄,例如my-cluster。
root@localhost:~# mkdir my-cluster root@localhost:~# cd my-cluster
7)創(chuàng)建集群(Cluster),部署新的monitor節(jié)點。
root@localhost:~# ceph-deploy new {initial-monitor-node(s)}
例如:
root@localhost:~# ceph-deploy new node1
8)配置Ceph.conf配置文件,示例文件是默認(rèn)的,可以根據(jù)自己情況進行相應(yīng)調(diào)整和添加。具體優(yōu)化情況本書后面會介紹。
[global] fsid = 67d997c9-dc13-4edf-a35f-76fd693aa118 mon_initial_members = node1, node2 mon_host = 192.168.1.2,192.168.1.3 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx filestore_xattr_use_omap = true <! -----以上部分都是ceph-deploy默認(rèn)生成的----> public network = {ip-address}/{netmask} cluster network={ip-addesss}/{netmask} <! -----以上兩個網(wǎng)絡(luò)是新增部分,默認(rèn)只是添加public network,一般生產(chǎn)都是定義兩個網(wǎng)絡(luò),集群網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò)分開--------> [osd] …… [mon] ……
這里配置文件不再過多敘述。
9)安裝Ceph到各節(jié)點。
root@localhost:~# ceph-deploy install {ceph-node}[{ceph-node} ...]
例如:
root@localhost:~# ceph-deploy install node1 node2 node3
10)獲取密鑰key,會在my-cluster目錄下生成幾個key。
root@localhost:~# ceph-deploy mon create-initial
11)初始化磁盤。
root@localhost:~# ceph-deploy disk zap {osd-server-name}:{disk-name}
例如:
root@localhost:~# ceph-deploy disk zap node1:sdb
12)準(zhǔn)備OSD。
root@localhost:~# ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
例如:
root@localhost:~# ceph-deploy osd prepare node1:sdb1:sdc
13)激活OSD。
root@localhost:~# ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
例如:
root@localhost:~# ceph-deploy osd activate node1:sdb1:sdc
14)分發(fā)key。
root@localhost:~# ceph-deploy admin {admin-node} {ceph-node}
例如:
root@localhost:~# ceph-deploy admin node1 node2 node3
15)給admin key賦權(quán)限。
root@localhost:~# sudo chmod +r /etc/ceph/ceph.client.admin.keyring
16)查看集群健康狀態(tài),如果是active + clean狀態(tài)就是正常的。
root@localhost:~# ceph health
1.5 本章小結(jié)
本章主要從Ceph的歷史背景、發(fā)展事件、Ceph的架構(gòu)組件、功能特性以及Ceph的設(shè)計思想方面介紹了Ceph,讓大家對Ceph有一個全新的認(rèn)識,以便后面更深入地了解Ceph。
- 操作系統(tǒng)實用教程(Linux版)
- Mastering ElasticSearch
- Cybersecurity:Attack and Defense Strategies
- Learning Android Intents
- Haskell Financial Data Modeling and Predictive Analytics
- Windows Phone 8 Application Development Essentials
- Docker+Kubernetes應(yīng)用開發(fā)與快速上云
- Linux運維最佳實踐
- 計算機系統(tǒng):基于x86+Linux平臺
- Linux服務(wù)器配置與管理
- AWS SysOps Cookbook
- 分布式高可用架構(gòu)之道
- Linux軟件管理平臺設(shè)計與實現(xiàn)
- 從實踐中學(xué)習(xí)Windows滲透測試
- Linux從入門到精通(視頻教學(xué)版)