ceph集群安装配置有多种方式,下方cephadm方式是借助容器部署。
cephadm从ceph的octopus版本开始支持。安装需要主机配置安装了容器和python 3。
配置安排:
ceph版本:quincy
主机系统:ubuntu 22.04
docker版本:20.10
ceph-mon | ceph-mgr | ceph-osd | |
ceph100 | √ | √ | √,vdb |
ceph101 | √ | √ | √,vdb |
ceph102 | √ | × | √,vdb |
安装:
1、环境准备
修改hostname,关闭防火墙,并在主机ceph100 hosts文件中将3台主机信息写入。
hostnamectl set-hostname ceph100
systemctl stop ufw
cat >> /etc/hosts <<EOF
192.168.209.100 ceph100
192.168.209.101 ceph101
192.168.209.102 ceph102
EOF
安装docker,3台主机均需安装
安装python3,ubuntu 22.04自带
安装lvm2
apt install lvm2 -y
2、安装cephadm并初始化单节点集群(主机ceph100上执行)
wget https://mirrors.aliyun.com/ceph/debian-17.2.4/pool/main/c/ceph/cephadm_17.2.4-1focal_amd64.deb
dpkg -i cephadm_17.2.4-1focal_amd64.deb
cephadm bootstrap --mon-ip 192.168.209.100 --cluster-network 192.168.209.0/24 --allow-fqdn-hostname
上方配置初始化完成后,节点上会运行mon、mgr进程,但不包含osd。
会在主机ceph100上新建/etc/ceph目录,目录会有如下文件。
root@ceph100:~# ls -al /etc/ceph/
-rw------- 1 root root 151 11月 9 10:14 ceph.client.admin.keyring
-rw-r--r-- 1 root root 289 11月 9 10:47 ceph.conf
-rw-r--r-- 1 root root 595 11月 9 10:07 ceph.pub
配置初始化完成后,可以使用浏览器访问https://192.168.209.100:8443访问dashboard。对应登录用户名密码会在初始化完成后打印到屏幕,如果忘记了可以使用下方命令重置。
# 密码预先放在test.txt文件中
ceph dashboard set-login-credentials admin -i ./test.txt
3、添加节点,实现高可用(主机ceph100上执行)
ssh-copy-id -f -i /etc/ceph/ceph.pub ceph101
ssh-copy-id -f -i /etc/ceph/ceph.pub ceph102
# 安装ceph工具包,包括ceph、rbd、mount
apt install ceph-common
ceph orch host add ceph101
ceph orch host add ceph102
注:
以实验环境为例,添加节点完成后会在3台主机都安装mon、crash和node-exporter,按添加节点操作顺序的前2台安装mgr,初始化第1台节点安装1个altermanager、grafana、prometheus。cephadm预设是5个mon服务、2个mgr服务、3个crash和node-exporter、1个altermanager、prometheus和grafana。
root@ceph100:~# ceph orch ls
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
alertmanager ?:9093,9094 1/1 6m ago 3h count:1
crash 3/3 6m ago 3h *
grafana ?:3000 1/1 6m ago 3h count:1
mgr 2/2 6m ago 3h count:2
mon 3/5 6m ago 2s count:3
node-exporter ?:9100 3/3 6m ago 3h *
prometheus ?:9095 1/1 6m ago 3h count:1
# 调整mon预设数量,同理其它组件也可以
root@ceph100:~# ceph orch apply mon 3
# 关闭mon自动部署,同理其它组件也可以
# 配合下方指定节点上部署mon可实现指定节点安装mon组件
root@ceph100:~# ceph orch apply mon --unmanaged
# 指定节点上部署mon,同理其它组件也可以
# 可用于添加新节点
root@ceph100:~# ceph orch apply mon "ceph100,ceph101,ceph102"
# 指定节点上删除mon,同理其它组件也可以
# --force参数会强制删除指定节点上的mon服务
# 可用于剔除节点
root@ceph100:~# ceph orch daemon rm mon.ceph102 --force
4、添加osd(仍在ceph100主机上配置)
这里添加的节点的硬盘不能做过分区和文件系统。
容量要大于5GB。
ceph orch apply osd --all-available-devices
ceph orch device ls
ceph orch daemon add osd ceph100:/dev/sdb
ceph orch daemon add osd ceph101:/dev/sdb
ceph orch daemon add osd ceph102:/dev/sdb
# 删除指定osd磁盘
# 先获取要删除的osd磁盘id,也就是第一列ID对应的数字
ceph osd tree
# 其次下线对应id磁盘,并停止对应id磁盘的osd进程
ceph osd stop 2
ceph osd out 2
# 然后将其从crush映射、auth认证密钥中删除
ceph osd crush rm osd.2
ceph auth del osd.2
# 最后从osd中删除
ceph osd rm 2
# 重新添加上方删除的硬盘
lsblk
dmsetup remove ceph--b82bcf74--52b9--4d61--9893--12b10a801258-osd--block--999ab762--9b86--4881--ad34--63b8b48c16a7
wipefs -af /dev/sdb
ceph orch device zap ceph100 /dev/sdb --force
ceph orch device ls
ceph orch daemon add osd ceph100:/dev/sdb
添加结果:
root@ceph100:~# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.02939 root default
-7 0.00980 host ceph100
2 hdd 0.00980 osd.2 up 1.00000 1.00000
-3 0.00980 host ceph101
0 hdd 0.00980 osd.0 up 1.00000 1.00000
-5 0.00980 host ceph102
1 hdd 0.00980 osd.1 up 1.00000 1.00000
5、部署完成集群情况
root@ceph100:~# ceph status
cluster:
id: 2895daf4-5fd3-11ed-998e-63fba36fadaf
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph100,ceph101,ceph102 (age 48s)
mgr: ceph100.xzhyib(active, since 38s), standbys: ceph101.xwosnc
osd: 3 osds: 3 up (since 5s), 3 in (since 21s)
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 257 KiB
usage: 71 MiB used, 30 GiB / 30 GiB avail
pgs: 1 active+clean
补充:
1、cephadm方式安装的ceph集群,ceph100节点初始化集群后运行的容器介绍
root@ceph100:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71c967fbe46c quay.io/prometheus/alertmanager:v0.23.0 "/bin/alertmanager -…" 3 hours ago Up 3 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-alertmanager-ceph100
8a93e47c2191 quay.io/prometheus/prometheus:v2.33.4 "/bin/prometheus --c…" 3 hours ago Up 3 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-prometheus-ceph100
47e928f19a94 quay.io/ceph/ceph "/usr/bin/ceph-crash…" 4 hours ago Up 4 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-crash-ceph100
ee4eebe03d53 quay.io/ceph/ceph:v17 "/usr/bin/ceph-mgr -…" 4 hours ago Up 4 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-mgr-ceph100-xzhyib
5d71bcad0918 quay.io/ceph/ceph:v17 "/usr/bin/ceph-mon -…" 4 hours ago Up 4 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-mon-ceph100
ccd727420250 quay.io/ceph/ceph-grafana:8.3.5 "/bin/sh -c 'grafana…" 4 hours ago Up 4 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-grafana-ceph100
e5ece9d56cfd quay.io/prometheus/node-exporter:v1.3.1 "/bin/node_exporter …" 4 hours ago Up 4 hours ceph-2895daf4-5fd3-11ed-998e-63fba36fadaf-node-exporter-ceph100
- ceph-mgr,ceph管理器
- ceph-monitor,ceph监视器
- ceph-crash,ceph崩溃数据收集模块
- prometheus,prometheus监控组件
- grafana,监控数据展示dashboard
- alertmanager,prometheus监控告警组件
- node_exporter,prometheus节点数据收集组件