其他版本類似,詳見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官網上閱讀發行資訊和其他相關公升級資訊。在公升級之前檢查客戶端的需求,比如核心版本或者其他相關的元件。如果未設定,公升級過程中可能會出現資料丟失的...