單機版Ceph環境部署,Linux平臺

Ceph已經如火如荼,不少公司都在使用Ceph做爲本身的存儲系統。平常學習不太可能安裝一個Ceph集羣,所以本文介紹如何部署一個單節點的Ceph系統。另外,本文安裝的後端存儲引擎是BlueStore,這個引擎是目前性能比較好,且成熟的引擎。

環境說明

  1. 單節點:能夠是VMWare或者VirtualBox虛擬機
  2. 操做系統: CentOS 7.4 或者 Ubuntu 18.04
  3. 部署工具:使用 ceph-deploy 進行部署

安裝軟件ceph-deploy

咱們針對目前比較流行的2個發行版分別介紹,也就是CentOS和Ubuntu系統。對於其它發行版本文暫時不作介紹。後端

CentOS 7.4

準備 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 18.04

對於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軟件包

建立新集羣 安裝完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

圖1 Ceph集羣狀態

部署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查看一下狀態。

圖2 Ceph集羣狀態

接下來咱們在建立一個運行在整個裸盤上的OSD,也是經過ceph-deploy進行建立,具體命令以下:

ceph-deploy osd create --bluestore zhangsn --data /dev/sdc
複製代碼

至此,咱們完成了整個安裝過程,能夠經過前面的命令看一下集羣的狀態,本文不在贅述。BlueStore在設計的時候就能夠支持多個分區,主要目的是爲了在同一個OSD的不一樣內容使用不一樣的存儲介質。例如,對於元數據採用更高性能的SSD。 今天咱們部署了一個基本的環境,後續咱們將依賴該環境進行後續的學習,好比BlueStore的實現原理和代碼分析等等。

相關文章
相關標籤/搜索