X86架构下,在ubuntu2204上使用cephadm工具部署三点的ceph17版本的集群

发布于:2025-07-02 ⋅ 阅读:(16) ⋅ 点赞:(0)


前言

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引擎再试试部署