官术网_书友最值得收藏!

icon1

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。

主站蜘蛛池模板: 彭阳县| 广丰县| 天柱县| 高州市| 阿勒泰市| 巴彦县| 四平市| 汾阳市| 江陵县| 聊城市| 永平县| 北海市| 囊谦县| 正定县| 天祝| 陇西县| 巧家县| 华坪县| 汉寿县| 寻乌县| 广昌县| 信宜市| 黑山县| 威宁| 红原县| 新密市| 新绛县| 临沧市| 永年县| 将乐县| 竹北市| 柳林县| 云和县| 潞西市| 囊谦县| 准格尔旗| 湖北省| 清河县| 盐城市| 鄂州市| 纳雍县|