ceph(第二步) 三節(jié)點(diǎn)部署(ceph-deploy)

前言

這篇文章解決了什么問題:

使用 ceph-deploy 工具部署 ceph 存儲(chǔ)集群。

整體介紹:

使用虛擬機(jī)構(gòu)建三節(jié)點(diǎn) ceph 存儲(chǔ)集群。

環(huán)境

全篇使用 root 權(quán)限。

虛擬化軟件:vmware
虛擬機(jī)操作系統(tǒng):centos 7.6
每臺(tái)虛擬機(jī)配置:2G內(nèi)存,1塊系統(tǒng)盤(50G),2塊ceph將使用的硬盤(每塊20G)
虛擬機(jī)網(wǎng)絡(luò):一條虛擬機(jī)間互通,并且可以上網(wǎng)的網(wǎng)絡(luò)即可(NAT)。
總共三臺(tái)虛擬機(jī):ceph01、ceph02、ceph03

ceph 版本:nautilus
ceph-deploy 版本:2.0.1

當(dāng)前時(shí)間: 2019.10

正文

部署過程整體描述:
首先選出一臺(tái)機(jī)器作為部署節(jié)點(diǎn),部署節(jié)點(diǎn)負(fù)責(zé)為機(jī)器部署 ceph 軟件。這里直接選擇 ceph01 作為部署節(jié)點(diǎn)。

基礎(chǔ)環(huán)境配置

1. 配置網(wǎng)絡(luò)

我這里 ceph01、ceph02、ceph03 對(duì)應(yīng)的地址分別為:
10.10.10.31、10.10.10.32、10.10.10.33

2. 關(guān)閉防火墻

所有機(jī)器均關(guān)閉掉防火墻。

systemctl disable iptables
systemctl stop iptables
systemctl disable firewalld
systemctl stop firewalld
3. 配置加速源

所有機(jī)器均配置 yum 國內(nèi)加速源:

yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

所有機(jī)器均配置 pip 國內(nèi)加速源:

mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF 
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
4. 配置主機(jī)名解析

這里配置的是部署節(jié)點(diǎn)到其它機(jī)器間的主機(jī)解析。

在所有節(jié)點(diǎn)上執(zhí)行:

vim /etc/hosts 添加如下內(nèi)容:

10.10.10.31 ceph01 
10.10.10.32 ceph02 
10.10.10.33 ceph03
5. 配置機(jī)器間的免密登錄

這里配置的是部署節(jié)點(diǎn)到其它機(jī)器間的免密登錄。

在 ceph01 (部署節(jié)點(diǎn))節(jié)點(diǎn)上執(zhí)行:
  1. 生成公私鑰:
ssh-keygen
  1. 拷貝公鑰到其它機(jī)器上:

注意:以下每行命令執(zhí)行后都需要輸入密碼,不能直接全部復(fù)制粘貼。

ssh-copy-id -i /root/.ssh/id_rsa.pub root@ceph01
ssh-copy-id -i /root/.ssh/id_rsa.pub root@ceph02 
ssh-copy-id -i /root/.ssh/id_rsa.pub root@ceph03
  1. 測(cè)試免密登錄

命令參考如下,盡量每個(gè)節(jié)點(diǎn)都測(cè)試一下

ssh root@ceph03
6. 安裝 ntp 服務(wù)

所有機(jī)器執(zhí)行如下命令:

yum install -y ntp ntpdate ntp-doc
7. 配置主機(jī)名

注意!當(dāng)前步驟十分重要。

在 ceph 中讀取了 hostname 命令產(chǎn)生的結(jié)果。
因此在每個(gè)節(jié)點(diǎn)上均需修改自己的 hostname。命令參考:

進(jìn)入到 ceph01 節(jié)點(diǎn)上:

hostname ceph01
echo "ceph01" > /etc/hostname

按照此方法修改其它節(jié)點(diǎn)的 hostname。

開始部署 ceph

主要分兩步:
第一步,安裝 ceph-deploy
第二步,使用 ceph-deploy 安裝 ceph 組件。

第一步:在 node01(部署節(jié)點(diǎn))上安裝 ceph-deploy

該步驟所有命令均在部署節(jié)點(diǎn)上執(zhí)行。

安裝 ceph-deploy:

yum install -y python-pip 
pip install -U pip
pip install ceph-deploy==2.0.1
第二步:在 node01(部署節(jié)點(diǎn))上使用 ceph-deploy 部署 ceph 組件

該步驟所有命令均在部署節(jié)點(diǎn)上執(zhí)行。

1. 更換 ceph-deploy 將使用的 ceph 源(決定安裝什么版本的 ceph):
export CEPH_DEPLOY_REPO_URL=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7 
export CEPH_DEPLOY_GPG_URL=http://mirrors.aliyun.com/ceph/keys/release.asc
2. 創(chuàng)建部署臨時(shí)目錄:
mkdir /opt/ceph-deploy
cd /opt/ceph-deploy
3. 部署一個(gè)新集群,生成初始配置(參數(shù) ceph01 是指該集群的第一個(gè)節(jié)點(diǎn)):
ceph-deploy new ceph01
4. 在該目錄下生成了新集群的一些配置文件。接下來需要對(duì)這些配置文件做一些改動(dòng):

vim /opt/ceph-deploy/ceph.conf
在 global 中增加:

public network = 10.10.10.0/24
5. 安裝 ceph:
ceph-deploy install ceph01 ceph02 ceph03
6. 初始化 ceph monitor:
ceph-deploy mon create-initial

當(dāng)前命令執(zhí)行以后,可以在當(dāng)前目錄下發(fā)現(xiàn)許多的 keyring 文件,這是連接其它節(jié)點(diǎn)的憑據(jù)。以后的 ceph-deploy 命令均在當(dāng)前目錄下執(zhí)行才可正常使用。

7. 同步配置文件

將當(dāng)前臨時(shí)文件夾下的配置文件同步到所有節(jié)點(diǎn)的 /etc/ceph/ 下

ceph-deploy admin ceph01 ceph02 ceph03
8. 安裝 ceph mgr
ceph-deploy mgr create ceph01
9. 安裝 ceph mds
ceph-deploy mds create ceph01
10. 為集群增加 osd

我這個(gè)環(huán)境有三臺(tái)虛擬機(jī),每臺(tái)虛擬機(jī)上有額外2塊硬盤用于 ceph 集群,它們是 sdb、sdc。這個(gè)要根據(jù)自己的環(huán)境找到正確的硬盤。

命令參考如下:

ceph-deploy osd create --data /dev/sdb ceph01
ceph-deploy osd create --data /dev/sdc ceph01
ceph-deploy osd create --data /dev/sdb ceph02
ceph-deploy osd create --data /dev/sdc ceph02
ceph-deploy osd create --data /dev/sdb ceph03
ceph-deploy osd create --data /dev/sdc ceph03

其中/dev/sdb ceph01,表示 ceph01 節(jié)點(diǎn)上的 /dev/sdb 硬盤。

命令執(zhí)行完以后,基礎(chǔ)的環(huán)境就算搭建完成了??梢詧?zhí)行如下命令查看集群的狀態(tài):
ceph 健康: ceph health
ceph 集群詳細(xì)狀態(tài):ceph -s
ceph 集群 osd 狀態(tài):ceph osd tree

image.png

至此,該集群還處于一個(gè)基礎(chǔ)的狀態(tài),并不能正常使用。

接下來需要配置 ceph pool 相關(guān)信息,以及安裝配置 rgw 從而使用對(duì)象存儲(chǔ)功能。

11. 配置 ceph pool

vim /opt/ceph-deploy/ceph.conf
在 global 中增加如下:

osd pool default size = 3
osd pool default min size = 2
osd pool default pg_num = 128
osd pool default pgp_num = 128

其中 pg num 需要計(jì)算得出,pgp num 與 pg num 保持一致。

粗略的計(jì)算方法:
( osd 數(shù)量 * 100 ) / 池副本數(shù)。

同步配置文件:

ceph-deploy --overwrite-conf admin ceph01 ceph02 ceph03
12. 安裝配置 rgw

vim /opt/ceph-deploy/ceph.conf
增加如下內(nèi)容:

[client]
rgw frontends = civetweb port=17480

整體配置如下:


image.png

安裝 rgw:

ceph-deploy --overwrite-conf rgw create ceph01
基礎(chǔ)安裝結(jié)束

至此,我們可以去創(chuàng)建一個(gè) pool,并上傳文件測(cè)試集群了。

這個(gè)時(shí)候執(zhí)行 ceph -s
可以看到集群報(bào)了 warn 信息,如下:


image.png

這不是因?yàn)槲覀兡睦锱渲糜袉栴},這是 ceph 的某個(gè)告警配置。當(dāng)某個(gè) osd 的 pg 小于 30 時(shí)會(huì)發(fā)出告警?,F(xiàn)在可以忽略這個(gè)問題。ceph 提供這個(gè)配置,可能是擔(dān)心集群在未來使用中出現(xiàn) pg 分布不均勻的情況。
參考:
https://docs.ceph.com/docs/master/rados/configuration/pool-pg-config-ref/

簡(jiǎn)單使用對(duì)象存儲(chǔ)功能

查看池列表:ceph osd lspools

ceph 默認(rèn)的池已經(jīng)創(chuàng)建一些 pg。為了解決前面的告警,我們需要滿足每個(gè) osd 都有超過30個(gè) pg,因此創(chuàng)建一個(gè)具有80個(gè) pg 的池。

  1. 創(chuàng)建池:
# 創(chuàng)建池
ceph osd pool create mytest 80

# 初始化池為 rgw 使用的池
ceph osd pool application enable mytest rgw

(此時(shí)用 ceph -s 可以看到集群狀態(tài)又是 HEALTH_OK 了)

  1. 生成要上傳的文件
echo 1234 > /tmp/testfile.txt
  1. 上傳文件到池中

命令參考:

rados put {object-name} {file-path} --pool=mytest
rados put test-object-1 /tmp/testfile.txt --pool=mytest
  1. 查看池
rados ls -p mytest

可以看到文件已經(jīng)上傳上去了,并且叫 test-object-1


image.png
  1. 下載文件

rados get test-object-1 /tmp/test-object-1 -p mytest


image.png

可以看到兩個(gè)文件的內(nèi)容是一樣的,到此,基本的部署及使用均正常了。

擴(kuò)展

關(guān)于 hostname

在 ceph 中,hostname 是一個(gè)非常重要的屬性。

hostname 命令只可以臨時(shí)改變當(dāng)前主機(jī)的主機(jī)名,并不會(huì)永久生效。

目前已知兩種方式會(huì)永久影響主機(jī)名。

  1. /etc/hostname 中存儲(chǔ)著默認(rèn)的主機(jī)名。

  2. /etc/hosts 中存儲(chǔ)著對(duì)應(yīng)地址使用的主機(jī)名。

第一種情況,很直觀,不再多做介紹。

第二種情況時(shí):

10.10.10.31 ceph01 

這樣的配置,會(huì)讓通過 10.10.10.31 地址訪問進(jìn)來的連接所識(shí)別到的主機(jī)名改為 ceph01。

在本環(huán)境中,不同的 ceph 節(jié)點(diǎn)之間通過 10.10.10.0/24 地址進(jìn)行通信,所以只需要為該地址配置主機(jī)名。

在 ceph 中,如果主機(jī)名混亂,會(huì)發(fā)生什么?
ceph osd tree 這個(gè)命令可以讓你看到主機(jī)名混亂帶來的后果:

image.png

如果糟糕的事情已經(jīng)發(fā)生了,我們只需要修改好主機(jī)名,然后重啟機(jī)器,一切都會(huì)恢復(fù)正常:


image.png

第一種方式的優(yōu)先級(jí)高于第二種。
因此只需要更改 /etc/hostname 即可。文件內(nèi)容參考如下:


參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 參考文檔 https://www.linuxidc.com/Linux/2017-09/146760.htmhtt...
    三杯水Plus閱讀 4,545評(píng)論 0 8
  • 系統(tǒng)環(huán)境: centos73.10.0-514.26.2.el7.x86_64 機(jī)器數(shù)量:五臺(tái) 硬盤:四塊一塊為系...
    think_lonely閱讀 5,052評(píng)論 0 5
  • 集群管理 每次用命令啟動(dòng)、重啟、停止Ceph守護(hù)進(jìn)程(或整個(gè)集群)時(shí),必須指定至少一個(gè)選項(xiàng)和一個(gè)命令,還可能要指定...
    Arteezy_Xie閱讀 19,922評(píng)論 0 19
  • ceph簡(jiǎn)介 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),誕生于2004年,是最早致力于開發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目。隨...
    愛吃土豆的程序猿閱讀 6,173評(píng)論 0 21
  • 一、概述 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),誕生于2004年,最早致力于開發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目。隨著云計(jì)...
    魏鎮(zhèn)坪閱讀 49,899評(píng)論 3 54

友情鏈接更多精彩內(nèi)容