天天看點

單機版Ceph環境部署,Linux平台環境說明安裝軟體ceph-deploy安裝ceph軟體包

單機版Ceph環境部署,Linux平台環境說明安裝軟體ceph-deploy安裝ceph軟體包

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特性。

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

。下面是一個具體的例子。

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檔案。

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

指令可以檢視叢集的狀态。

單機版Ceph環境部署,Linux平台環境說明安裝軟體ceph-deploy安裝ceph軟體包

圖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

檢視一下狀态。

單機版Ceph環境部署,Linux平台環境說明安裝軟體ceph-deploy安裝ceph軟體包

圖2 Ceph叢集狀态

接下來我們在建立一個運作在整個裸盤上的OSD,也是通過ceph-deploy進行建立,具體指令如下:

ceph-deploy osd create --bluestore zhangsn --data /dev/sdc
           

至此,我們完成了整個安裝過程,可以通過前面的指令看一下叢集的狀态,本文不在贅述。BlueStore在設計的時候就可以支援多個分區,主要目的是為了在同一個OSD的不同内容使用不同的存儲媒體。例如,對于中繼資料采用更高性能的SSD。

今天我們部署了一個基本的環境,後續我們将依賴該環境進行後續的學習,比如BlueStore的實作原理和代碼分析等等。

繼續閱讀