- 單節點:能夠是VMWare或者VirtualBox虛擬機
- 操做系統: CentOS 7.4 或者 Ubuntu 18.04
- 部署工具:使用 ceph-deploy 進行部署
咱們針對目前比較流行的2個發行版分別介紹,也就是CentOS和Ubuntu系統。對於其它發行版本文暫時不作介紹。後端
準備 centos 7.4 系統的機器(能夠是物理機或者虛擬機),並配置好 ssh 的無密碼登陸。 須要注意的是這裏須要的版本是2.0,不要使用系統默認的版本(默認版本多是1.x)。由於默認版本比較低,可能沒法使用BlueStore特性。centos
yum install https://download.ceph.com/rpm-luminous/el7/noarch/ceph-deploy-2.0.0-0.noarch.rpm
複製代碼
對於Ubuntu系統須要添加安裝源,若是使用系統默認的安裝源ceph-deploy版本過低,後續操做會有問題。緩存
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
複製代碼
上述命令中的ceph-stable-release
是但願安裝Ceph的版本,在具體安裝時須要替換掉,好比但願安裝L版本則須要替換成字符串luminous
, 若是但願安裝M版時,須要替換成字符串mimic
。下面是一個具體的例子。bash
echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
複製代碼
添加完安裝源後,更新apt緩存,而後就能夠安裝ceph-deploy了,具體命令以下:架構
sudo apt update
sudo apt -y install ceph-deploy
複製代碼
建立新集羣 安裝完ceph-deploy以後就能夠經過它安裝ceph軟件了(後續安裝與發行版沒有關係了),固然首先要建立一個ceph集羣。建立ceph集羣也是經過ceph-deploy命令,其本質上是建立配置文件和key文件。ssh
mkdir myceph
cd myceph
ceph-deploy new zhangsn
複製代碼
由於咱們是單節點ceph集羣,所以須要將集羣的副本數量設置爲1,這樣方便一些。具體方法是把以下內容加入到 ceph.conf 裏面。工具
[global]
osd pool default size = 1
osd pool default min size = 1
複製代碼
安裝 ceph 軟件 修改完配置文件以後,咱們就能夠安裝Ceph軟件包了。以安裝L版本的軟件爲例,執行以下命令便可。性能
ceph-deploy install --release luminous zhangsn
複製代碼
初始化 mon Ceph的整個集羣的狀態和配置信息等都是經過一個名爲Monitor的集羣管理的,所以首先須要啓動Monitor服務。能夠執行以下命令完成:學習
ceph-deploy mon create-initial
ceph-deploy admin zhangsn
複製代碼
啓動Monitor節點後Ceph集羣就能夠訪問了,經過ceph -s
命令能夠查看集羣的狀態。 ui
部署ceph mgr ceph mgr也是一個必須部署的組件,能夠經過以下命令部署。
ceph-deploy mgr create zhangsn
複製代碼
部署ceph osd 咱們知道OSD是Ceph中存儲數據的節點,前面咱們部署了Monitor節點,接下來部署 ceph osd。爲了便於咱們後續研究BlueStore的架構及原理,咱們建立2種類型的OSD,一個是具備3個邏輯卷的OSD(模擬不一樣類型的存儲介質),另一個是隻有一個邏輯卷的OSD。 首先建立具備3個邏輯卷的OSD,分別是db、wal和data。分別執行以下命令建立卷組和邏輯卷。
$ pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
$ vgcreate ceph-pool /dev/sdb
Volume group "ceph-pool" successfully created
$ lvcreate -n osd0.wal -L 1G ceph-pool
Logical volume "osd0.wal" created.
$ lvcreate -n osd0.db -L 1G ceph-pool
Logical volume "osd0.db" created.
$ lvcreate -n osd0 -l 100%FREE ceph-pool
Logical volume "osd0" created.
複製代碼
完成邏輯卷的建立後咱們就能夠建立 OSD 了。
ceph-deploy osd create \
--data ceph-pool/osd0 \
--block-db ceph-pool/osd0.db \
--block-wal ceph-pool/osd0.wal \
--bluestore zhangsn
複製代碼
若是一切順利,通過上述步驟後就完成了一個最小的集羣的建立了。能夠在經過ceph -s
查看一下狀態。
接下來咱們在建立一個運行在整個裸盤上的OSD,也是經過ceph-deploy進行建立,具體命令以下:
ceph-deploy osd create --bluestore zhangsn --data /dev/sdc
複製代碼
至此,咱們完成了整個安裝過程,能夠經過前面的命令看一下集羣的狀態,本文不在贅述。BlueStore在設計的時候就能夠支持多個分區,主要目的是爲了在同一個OSD的不一樣內容使用不一樣的存儲介質。例如,對於元數據採用更高性能的SSD。 今天咱們部署了一個基本的環境,後續咱們將依賴該環境進行後續的學習,好比BlueStore的實現原理和代碼分析等等。