文章目录
前言
X86架构下,在ubuntu2204上使用cephadm工具部署三点的ceph17版本的集群。
这个方案里面选择的是docker的容器引擎,没有选择podman。
一、为什么选择ubunut2204、ceph17
我实验的时间是25年6月,试着用ubuntu2404来进行部署,发现很多平台没有现成的包,这就很尴尬,所以只能退而求其次使用ubuntu2204。
使用ceph17是因为看到说17算是一个比较稳定的版本,之前比较熟悉的版本还是10和12两个古老版本,所以这次试着用下17版本。
还有一个关键点是我部署的这个集群要能和train版本的openstack对接上,所以诸多限制下选择了这个方案。
二、部署步骤
1.准备工作
准备三台ubuntu2204的虚拟机,然后每台虚拟机上3块数据盘给osd使用
- 192.168.150.91 ceph1
- 192.168.150.92 ceph2
- 192.168.150.93 ceph3
打开root访问 杂七杂八的基础配置这里就不写了,直接从docker安装开始进行
2.三节点安装docker
# 安装docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io -y && sudo rm -rf /var/lib/docker;
sudo apt-get update && sudo apt install curl apt-transport-https ca-certificates curl gnupg lsb-release -y
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y install docker-ce docker-ce-cli containerd.io
# 卸载podman
dpkg -P podman && dpkg -l |grep podman
# 下载镜像
docker pull quay.io/ceph/ceph:v17 &&
docker pull quay.io/ceph/ceph-grafana:9.4.7 &&
docker pull quay.io/prometheus/alertmanager:v0.25.0 &&
docker pull quay.io/prometheus/node-exporter:v1.5.0 &&
docker pull quay.io/prometheus/prometheus:v2.43.0 && date
3.三节点准备host文件
cat >> /etc/hosts <<EOF
192.168.150.91 ceph1
192.168.150.92 ceph2
192.168.150.93 ceph3
EOF
4.ceph1节点下载安装部署工具cephadm,使用docker引擎
curl --silent --remote-name --location https://download.ceph.com/rpm-17.2.9/el9/noarch/cephadm
# 赋权
chmod +x cephadm
# 切换需要安装的ceph的版本
./cephadm add-repo --version 17.2.9
# 检查有无cephadm安装包残留
dpkg -P cephadm && dpkg -l |grep cephadm
./cephadm --docker install cephadm ceph-common
# 检查版本
cephadm --docker version
# 下载镜像
cephadm --docker pull
# 检查环境
cephadm --docker check-host
5.ceph1节点开始部署集群
cephadm --docker bootstrap --mon-ip 192.168.150.91 --cluster-network 192.168.150.0/24
6.ceph1节点将另外两个节点增加到集群
cd /etc/ceph/
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3
ceph orch host add ceph2
ceph orch host add ceph3
# 如果没有ceph.pub文件的话,可以重新用命令获取
# ceph cephadm get-pub-key > ~/ceph.pub
7.ceph1节点设置mon节点mgr节点
ceph orch apply mon ceph1,ceph2,ceph3
ceph orch apply mgr ceph1,ceph2,ceph3
# 查看进展
ceph orch ls
# 进展
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
alertmanager ?:9093,9094 1/1 65s ago 44m count:1
crash 3/3 4m ago 44m *
grafana ?:3000 1/1 65s ago 44m count:1
mgr 3/3 4m ago 85s ceph1;ceph2;ceph3
mon 3/3 4m ago 35m ceph1;ceph2;ceph3
node-exporter ?:9100 3/3 4m ago 44m *
prometheus ?:9095 1/1 65s ago 44m count:1
# 如果没有ceph.pub文件的话,可以重新用命令获取
# ceph cephadm get-pub-key > ~/ceph.pub
8.ceph1节点增加osd
# 查看硬盘列表
ceph orch device ls
# 手动增加osd
ceph orch daemon add osd ceph1:/dev/vdb
ceph orch daemon add osd ceph1:/dev/vdc
ceph orch daemon add osd ceph1:/dev/vdd
ceph orch daemon add osd ceph2:/dev/vdb
ceph orch daemon add osd ceph2:/dev/vdc
ceph orch daemon add osd ceph2:/dev/vdd
ceph orch daemon add osd ceph3:/dev/vdb
ceph orch daemon add osd ceph3:/dev/vdc
ceph orch daemon add osd ceph3:/dev/vdd
查看增加结果
ceph -s
# 输出
root@ceph1:~# ceph -s
cluster:
id: 463755be-5586-11f0-bb17-254662edc2ef
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 17m)
mgr: ceph1.omouno(active, since 17m), standbys: ceph2.hyjpdu, ceph3.vzmeof
osd: 9 osds: 9 up (since 2s), 9 in (since 50s)
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 449 KiB
usage: 2.3 GiB used, 1.6 TiB / 1.6 TiB avail
pgs: 1 active+clean
9. ceph1节点创建存储池
# 设置可以删除存储池
ceph config set mon "mon_allow_pool_delete" true
# 关闭pg自动调整功能
ceph config set global osd_pool_default_pg_autoscale_mode off
# 创建pool
ceph osd pool create glance 128 128 replicated
ceph osd pool create cinder 128 128 replicated
ceph osd pool create nova 128 128 replicated
# 初始化pool
rbd pool init glance
rbd pool init cinder
rbd pool init nova
三、卸载集群
ceph1节点执行
#首先将非部署节点的节点卸载掉
ceph orch host drain ceph3 --rm-crush-entry
ceph orch host drain ceph2 --rm-crush-entry
ceph orch host rm ceph3 --rm-crush-entry
ceph orch host rm ceph2 --rm-crush-entry
# 最后将部署节点上集群删除
cephadm --docker rm-cluster --force --zap-osds --fsid XXXXXX
总结
后续学习下podman的相关的东西 有机会的话用podman引擎再试试部署