Ceph手動部署(Jewel版)

2021-10-25 10:25:51 字數 4244 閱讀 3291

其他版本類似,詳見docs.ceph.com/docs/$/install/manual-deployment/

前提:配置好/etc/hosts檔案

生成cluster id(僅節點controller1)

uuidgen
編輯配置檔案(僅節點controller1)

vim /etc/ceph/ceph.conf

#-----------

[global]

fsid=

mon initial members = hostname1,...

mon hosts = ip1,...

public network = 192.168.0.0/16

cluster network = 192.168.0.0/16

## 可根據需求定製

auth cluster required = none

auth service required = none

auth client required = none

## 可根據需求定製

osd pool default size = 3

osd pool default min size = 1

osd crush chooseleaf type = 1

osd pool default pg num = 64

osd pool default pgp num = 64

mon_clock_drift_allowed = 10

#-----------

生成秘鑰(僅節點controller1)

ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'

ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

生成monmap(新增所有mon節點)(僅節點controller1)

monmaptool --create  \

--add controller1 192.168.83.74 \

--add controller2 192.168.83.75 \

--add controller3 192.168.83.76 \

--fsid c5437f73-7a89-4e19-ba71-809643e39433 /etc/ceph/monmap

分發秘鑰以及monmap(除節點controller1)

scp /etc/ceph/ceph* controller2:/etc/ceph/

scp /etc/ceph/monmap controller2:/etc/ceph/

建立並初始化mon資料夾(所有節點)

ceph-mon --mkfs  --monmap /etc/ceph/monmap --keyring /etc/ceph/ceph.mon.keyring -i $(

hostname

)

建立完成標誌檔案(所有節點)

touch /var/lib/ceph/mon/ceph-$(

hostname

)/done

啟動ceph mon(所有節點)

ceph-mon -i $(

hostname

)

此時ceph -s狀態為err,因為沒有部署osd。

執行指令碼(所有osd節點)

./create_osds.sh controller1
指令碼內容:

#! /bin/bash

# version: v1.0

# time: 2020.09.08

# author: ahanwhite

## 部署除根盤以外的所有磁碟

# 需要指定碟符字首及根盤名稱

# 使用: ./create_osds.sh prefix_of_disk root_disk

# 如:./create_osds.sh sd sda

set -e

hostname=

$(hostname

)echo

"######################################正在執行建立主機"

$"上的osd"

ceph osd crush add-bucket $ host

ceph osd crush move $ root=default

\rm /var/lib/ceph/osd/* -rf

for line in

$(lsblk |

grep ^$2 |

awk''

|grep -ev "^sda")do

uuid=

$(uuidgen)

osd_id=

$(ceph osd create $

) echo

"######################################正在建立:osd."

$",其disk是 /dev/"

$mkdir /var/lib/ceph/osd/ceph-$

mkfs.xfs -f /dev/$

mount /dev/$ /var/lib/ceph/osd/ceph-$

ceph-osd -i $ --mkfs --mkkey --osd-uuid $

ceph auth add osd.$ osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-$/keyring

ceph osd crush add osd.$ 1.0 host=

$touch /var/lib/ceph/osd/ceph-$/sysvinit

ceph-osd -i $

done

停下所有mon與osd

kill -9 $(

ps -ef |

grep -e '(-mon|osd)

' | grep -v grep | awk '

')

如無ceph mon/osd程式執行中,則報錯,不用管

解除osd的mount

mount

|grep ceph |

awk''

|bash

刪除相關資料夾與檔案

\rm /var/lib/ceph/mon/* -rf

\rm /var/lib/ceph/osd/* -rf

\rm /etc/ceph/monmap

# 或刪除所有秘鑰與monmap

\rm ceph.client.admin.keyring ceph.mon.keyring monmap

格式化盤

由於create_osds指令碼中建立osd前會進行格式化,所以這裡的命令僅需要時執行:

mkfs.xfs -f /dev/sdb
重啟單個節點上mon:

kill -9 $(

ps -ef |

grep

'ceph-mon'

|grep -v grep

|awk'')

&& ceph-mon -i $(

hostname

)

重啟單個節點上所有osd:

ps -ef |

grep

'ceph-osd'

|grep -v grep

|awk''|

bash

ceph維護命令小結 基於jewel版

列出所有pool root ceph ceph osd pool ls detail 新建pool root ceph ceph osd pool create 刪除pool root ceph ceph osd pool rm yes i really really mean it 重新命名 ro...

手動部署Ceph集群

接上篇,這次使用全手工配置的方式部署一套集群。環境配置及需要做的準備工作和上篇一樣,不再多說了。先從單節點配起,然後逐步進行擴充套件,最終做到三節點。安裝ceph 這裡選擇從倉庫中進行安裝,而不是從源 開始編譯,因為實在是太慢了,跑了一天還沒跑完。apt install ceph ceph mds配...

ceph集群公升級(jewel到luminous)

3個節點 主機名ceph01 ceph02 ceph03monitor osdmds rados閘道器 注意 一旦公升級後不能逆轉。公升級之前請在ceph官網上閱讀發行資訊和其他相關公升級資訊。在公升級之前檢查客戶端的需求,比如核心版本或者其他相關的元件。如果未設定,公升級過程中可能會出現資料丟失的...