Cephadm通過(guò)在單個(gè)主機(jī)上創(chuàng)建一個(gè)Ceph單機(jī)集群,然后向集群中添加主機(jī)以擴(kuò)展集群,進(jìn)而部署其他服務(wù)。
VMware安裝Ubuntu20.04并使用Xshell連接虛擬機(jī):https://blog.csdn.net/gengduc/article/details/134889416
Requirements
-
Python3
-
Systemd
-
Podman或Docker
apt install docker.io # 安裝docker systemctl status docker.service ## 查看服務(wù)運(yùn)行狀態(tài)
-
時(shí)間同步chrony或NTP
apt install chrony systemctl status chronyd.service
-
LVM2
環(huán)境
主機(jī)名hostname | 硬盤(pán)設(shè)備 | ip地址 | Ceph服務(wù) |
---|---|---|---|
node01 | 一塊系統(tǒng)盤(pán)/dev/sda、三塊用于安裝OSD的數(shù)據(jù)盤(pán)/dev/sdb、/dev/sdc、/dev/sdd | 192.168.64.128 | mon×1、mgr×1、osd×3 |
node02 | 一塊系統(tǒng)盤(pán)/dev/sda、三塊用于安裝OSD的數(shù)據(jù)盤(pán)/dev/sdb、/dev/sdc、/dev/sdd | 192.168.64.129 | mon×1、mgr×1、osd×3 |
node03 | 一塊系統(tǒng)盤(pán)/dev/sda、三塊用于安裝OSD的數(shù)據(jù)盤(pán)/dev/sdb、/dev/sdc、/dev/sdd | 192.168.64.130 | mon×1、mgr×1、osd×3 |
我們將通過(guò)cephadm部署Ceph集群,在node01上先部署Ceph單機(jī)集群,然后添加node02和node03主機(jī)擴(kuò)展至三臺(tái)設(shè)備集群。
安裝Cephadm
【node01執(zhí)行】
apt install cephadm # 安裝cephadm工具
whereis cephadm # 檢查安裝情況
# 輸出如下內(nèi)容
root@node01:~# whereis cephadm
cephadm: /usr/sbin/cephadm
部署Ceph單機(jī)集群
引導(dǎo)(bootstrap)建立新集群
Cephadm部署Ceph的方式成為==bootstrap(引導(dǎo))==。創(chuàng)建新Ceph集群的第一步是在Ceph集群的第一臺(tái)主機(jī)上運(yùn)行cephadm bootstrap
命令。在Ceph集群的第一臺(tái)主機(jī)上運(yùn)行cephadm bootstrap
命令的行為會(huì)創(chuàng)建Ceph集群的第一個(gè)“監(jiān)視守護(hù)進(jìn)程”,并且該監(jiān)視守護(hù)進(jìn)程需要IP地址。您必須將Ceph集群node01的IP地址傳遞給ceph bootstrap
。
cephadm bootstrap --mon-ip <node01的ip地址>
# 例如
cephadm bootstrap --mon-ip 192.168.64.128
root@node01:~# cephadm bootstrap --mon-ip 192.168.64.128
Creating directory /etc/ceph for ceph.conf # 創(chuàng)建配置文件目錄
Verifying podman|docker is present... # docker/podman存在
Verifying lvm2 is present... # lvm2存在
Verifying time synchronization is in place... # 時(shí)間同步
Unit systemd-timesyncd.service is enabled and running # 時(shí)間同步啟用并正在運(yùn)行
Repeating the final host check...
podman|docker (/usr/bin/docker) is present # docker存在
systemctl is present
lvcreate is present
Unit systemd-timesyncd.service is enabled and running
Host looks OK # 主機(jī)狀態(tài)OK
Cluster fsid: 3c6aed32-9644-11ee-b2df-17e04a57112a # 集群fsid,是集群的唯一標(biāo)識(shí)
Verifying IP 192.168.64.128 port 3300 ... # 驗(yàn)證主機(jī)端口
Verifying IP 192.168.64.128 port 6789 ...
Mon IP 192.168.64.128 is in CIDR network 192.168.64.0/24 # mon IP地址,及所在網(wǎng)段
Pulling container image quay.io/ceph/ceph:v15... # 拉去ceph鏡像
Extracting ceph user uid/gid from container image...
Creating initial keys...
Creating initial monmap...
Creating mon...
Waiting for mon to start... # 等待mon啟動(dòng)
Waiting for mon...
mon is available
Assimilating anything we can from ceph.conf...
Generating new minimal ceph.conf... # 生成集群的最小配置
Restarting the monitor...
Setting mon public_network...
Creating mgr...
Verifying port 9283 ...
Wrote keyring to /etc/ceph/ceph.client.admin.keyring # 生成密鑰環(huán)
Wrote config to /etc/ceph/ceph.conf # 寫(xiě)入配置
Waiting for mgr to start... # 等待mgr啟動(dòng)
Waiting for mgr...
mgr not available, waiting (1/10)...
mgr not available, waiting (2/10)...
mgr not available, waiting (3/10)...
mgr not available, waiting (4/10)...
mgr not available, waiting (5/10)...
mgr not available, waiting (6/10)...
mgr is available
Enabling cephadm module...
Waiting for the mgr to restart...
Waiting for Mgr epoch 5...
Mgr epoch 5 is available
Setting orchestrator backend to cephadm...
Generating ssh key...
Wrote public SSH key to to /etc/ceph/ceph.pub # 寫(xiě)入SSH密鑰到ceph.pub
Adding key to root@localhost's authorized_keys...
Adding host node01...
Deploying mon service with default placement...
Deploying mgr service with default placement...
Deploying crash service with default placement...
Enabling mgr prometheus module...
Deploying prometheus service with default placement...
Deploying grafana service with default placement...
Deploying node-exporter service with default placement...
Deploying alertmanager service with default placement...
Enabling the dashboard module...
Waiting for the mgr to restart...
Waiting for Mgr epoch 13...
Mgr epoch 13 is available
Generating a dashboard self-signed certificate...
Creating initial admin user...
Fetching dashboard port number...
Ceph Dashboard is now available at: # Ceph Dashboard可用
URL: https://node01:8443/
User: admin
Password: qdnqrh6owz
You can access the Ceph CLI with:
sudo /usr/sbin/cephadm shell --fsid 3c6aed32-9644-11ee-b2df-17e04a57112a -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Please consider enabling telemetry to help improve Ceph:
ceph telemetry on
For more information see:
https://docs.ceph.com/docs/master/mgr/telemetry/
Bootstrap complete. # 引導(dǎo)創(chuàng)建集群完成
- 在node01上為新集群創(chuàng)建mon和mgr守護(hù)程序。
- 為Ceph集群生成新的SSH密鑰,并將其添加到root用戶(hù)的
/root/.ssh/authorized_keys
文件中。 - 將公鑰的副本寫(xiě)入
/etc/ceph/ceph.pub
。 - 將最小配置文件寫(xiě)入
/etc/ceph/ceph.conf
。與集群通信需要此文件。 - 寫(xiě)入
client.admin
管理(特權(quán)!)密鑰/etc/ceph/ceph.client.admin.keyring
- 將
_admin
標(biāo)簽添加到node01引導(dǎo)主機(jī)。默認(rèn)情況下,任何帶有此標(biāo)簽的主機(jī)都將(也)獲得/etc/ceph/ceph.conf
和/etc/ceph/ceph.client.admin.keyring
的副本。
驗(yàn)證:查看集群狀態(tài)
cephadm類(lèi)似與進(jìn)入docker容器的docker exec
命令
Ceph DashBoard訪問(wèn)地址:https://192.168.64.128:8443。
沒(méi)有配置本地主機(jī)的DNS解析,不要直接使用主機(jī)名node01訪問(wèn))。
管理OSD
列出可用的OSD設(shè)備
# 查看設(shè)備列表,顯示可用作OSD的設(shè)備
ceph orch device ls [--hostname=...] [--wide] [--refresh]
部署OSD
# 創(chuàng)建新的OSD
ceph orch daemon add osd <host>:<device-path> [--verbose]
root@node01:/# ceph orch daemon add osd node01:/dev/sdb
Created osd(s) 0 on host 'node01'
root@node01:/# ceph orch daemon add osd node01:/dev/sdc
Created osd(s) 1 on host 'node01'
root@node01:/# ceph orch daemon add osd node01:/dev/sdd
Created osd(s) 2 on host 'node01'
刪除OSD
ceph orch osd rm <osd_id(s)> [--replace] [--force] # 刪除OSD
ceph orch device zap <hostname> <path> # 擦除設(shè)備(清除設(shè)備)
管理主機(jī)
列出主機(jī)信息
ceph orch host ls [--format yaml] [--host-pattern <name>] [--label <label>] [--host-status <status>] [--detail]
添加主機(jī)到集群
將新主機(jī)添加到集群,兩個(gè)步驟:
-
在新主機(jī)的root用戶(hù)的
authorized_keys
文件中安裝群集的公共SSH密鑰:ssh-copy-id -f -i /etc/ceph/ceph.pub root@*<new-host>*
-
告訴Ceph集群新主機(jī)是集群的新節(jié)點(diǎn):
ceph orch host add *<newhost>* [*<ip>*] [*<label1> ...*]
這里在將node03添加進(jìn)集群的時(shí)候,node03節(jié)點(diǎn)的mgr服務(wù)沒(méi)有部署成功。重新放置部署。
從集群中刪除主機(jī)
從主機(jī)中刪除守護(hù)進(jìn)程后,才可以安全的刪除主機(jī)。
ceph orch host rm <host> # 從集群中刪除主機(jī)
部署Ceph集群
按照上面的方法部署三臺(tái)設(shè)備的Ceph集群,步驟如下:
- 使用cephadm bootstrap引導(dǎo)部署Ceph單機(jī)集群
- 在引導(dǎo)主機(jī)node01上部署OSD
- 向集群中添加主機(jī)node02、node03
- 分別在node02和node03上部署OSD
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-753757.html
至此,三臺(tái)設(shè)備的集群部署完成!通過(guò)Ceph Dashboard查看集群信息。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-753757.html
到了這里,關(guān)于Ubuntu20.04使用cephadm部署ceph集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!