目录
[3、Docker 镜像加速器的配置文件](#3、Docker 镜像加速器的配置文件)
[4、cephadm 配置](#4、cephadm 配置)
[配置ceph yum 源](#配置ceph yum 源)
[1、ceph1 上安装cephadm](#1、ceph1 上安装cephadm)
[2、ceph1 使用cephadm 初始化ceph集群](#2、ceph1 使用cephadm 初始化ceph集群)
[四、安装 ceph-common](#四、安装 ceph-common)
[✅ 集群状态良好](#✅ 集群状态良好)
[七、将 mon 和 mgr 组件部署到指定节点中](#七、将 mon 和 mgr 组件部署到指定节点中)
[八、Ceph Dashboard Web 访问配置](#八、Ceph Dashboard Web 访问配置)
[1.启用 Dashboard 模块](#1.启用 Dashboard 模块)
[2.创建 SSL 证书](#2.创建 SSL 证书)
[3. 配置访问设置](#3. 配置访问设置)
一、安装Docker
所有节点都要安装
1、配置阿里源
bash
cat <<EOF >> /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com//docker-ce/linux/centos/9/x86_64/stable/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF
2、安装docker
bash
yum install -y docker-ce
3、Docker 镜像加速器的配置文件
bash
cat <<EOF >> /etc/docker/daemon.json
{
"registry-mirrors": [
"https://0vmzj3q6.mirror.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://mirror.baidubce.com",
"https://dockerproxy.com",
"https://mirror.iscas.ac.cn",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru",
"https://vlgh0kqj.mirror.aliyuncs.com"
]
}
EOF
4、启动docker
bash
#重载docker配置文件
systemctl daemon-reload
#启动docker并开机自启
systemctl enable --now docker
二、部署ceph集群
所有节点都执行
1、设置主机名
bash
hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
hostnamectl set-hostname ceph3
2、hosts解析
bash
cat >> /etc/hosts << EOF
192.168.158.31 ceph1
192.168.158.32 ceph2
192.168.158.33 ceph3
EOF
3、时间同步
bash
yum install chrony -y
#在/etc/chrony.conf添加如下
vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
pool pool.ntp.org iburst
pool ntp.aliyun.com iburst #添加这一行
[root@ceph1 ~]# vim /etc/chrony.conf
[root@ceph1 ~]# systemctl restart chronyd
[root@ceph1 ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 119.28.183.184 2 6 7 3 -1492us[+1507us] +/- 83ms
^- time.nju.edu.cn 1 6 17 0 -2807us[-2807us] +/- 43ms
^- time.neu.edu.cn 2 6 17 0 -1510us[-1510us] +/- 26ms
^+ stratum2-1.ntp.mow01.ru.> 2 6 7 1 -1748us[-1748us] +/- 91ms
^* 203.107.6.88 2 6 17 1 -733us[+2266us] +/- 32ms

4、cephadm 配置
配置ceph yum 源
bash
cat > /etc/yum.repos.d/ceph.repo <<EOF
[ceph]
name=ceph x86_64
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/x86_64
enabled=1
gpgcheck=0
[ceph-noarch]
name=ceph noarch
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/noarch
enabled=1
gpgcheck=0
[ceph-source]
name=ceph SRPMS
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/SRPMS
enabled=1
gpgcheck=0
EOF
5、安装python3
bash
dnf install python3 -y
6、安装常用软件
bash
yum install vim bash-completion net-tools tree -y
三、ceph1管理主节点执行
1、ceph1 上安装cephadm
bash
[root@ceph1 ~]# yum install cephadm -y
2、ceph1 使用cephadm 初始化ceph集群
bash
[root@ceph1 ~]# cephadm --docker bootstrap \
--mon-ip 192.168.158.31 \
--initial-dashboard-user admin \
--initial-dashboard-password redhat \
--dashboard-password-noupdate \
--allow-fqdn-hostname

3、集群扩容
拷贝公钥至ceph2、ceph3
bash
#生成公钥
[root@ceph1 ~]# ssh-keygen #一路回车
#拷贝公钥给ceph2、ceph3
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph2
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph3
4、添加节点到集群
bash
[root@ceph1 ~]# cephadm shell ceph orch host add ceph2
[root@ceph1 ~]# cephadm shell ceph orch host add ceph3
[root@ceph1 ~]# ceph -s
cluster:
id: 434186fe-9af5-11f0-aa53-000c29f843bc
health: HEALTH_WARN
OSD count 0 < osd_pool_default_size 3
services:
mon: 3 daemons, quorum ceph1,ceph3,ceph2 (age 34m)
mgr: ceph1.myafri(active, since 37m), standbys: ceph3.umfacj
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:

四、安装 ceph-common
但是,如果ceph主节点没有ceph命令的话也需要安装ceph-common
bash
#openEuler 不需要 epel-release
#openEuler 有自己的软件生态体系
[root@ceph1 ~]# yum install epel-release -y #如果是OpenEuler,这步命令可以省略
# 在 ceph1 上执行(图片中缺失的关键步骤!)
[root@ceph1 ~]# yum install ceph-common -y
# 在 ceph2 上执行
[root@ceph2 ~]# yum install ceph-common -y
# 在 ceph3 上执行
[root@ceph3 ~]# yum install ceph-common -y
注意:这个设计体现了Ceph分布式架构的特点
安装ceph-common ⭐关键步骤
需要在每个新节点上单独执行 让每个节点都能识别和执行ceph相关命令 这样新节点才能正常与集群通信和提供服务
bash
•ceph1 节点上不需要执行 yum install ceph-common -y。
只在管理节点 ceph1 上安装 EPEL 仓库
在新增节点 ceph2 、ceph3 上安装 ceph-common 客户端工具
为什么这样设计?••
•职责分离原则•:
•ceph1•:作为管理节点,主要负责集群管理和配置
•ceph2/ceph3•:作为数据节点,需要 ceph-common 来与集群通信
ceph-common 的作用•
ceph-common 是 Ceph 的客户端工具包,包含:
# 包含的关键命令:
ceph # 集群管理命令
rbd # 块设备管理
rados # 对象存储管理
ceph-authtool # 认证管理
•每个要加入 Ceph 集群的节点都需要安装,而不仅仅是管理节点。
检查主机添加结果
bash
# 在ceph1上执行,查看集群中的所有主机
#这时 ceph1 已经设置为管理节点了
[root@ceph1 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph1 192.168.158.31 _admin
ceph2 192.168.158.32
ceph3 192.168.158.33
3 hosts in cluster
#如果ceph1不是管理节点那就执行如下命令,设置ceph1为管理节点,_admin 标签表示 ceph1 具有集群管理权限
[root@ceph1 ~]# ceph orch host label add ceph1 _admin
根据 ceph orch host ls
命令的输出结果,Ceph集群中已经成功添加了以下3台主机:
已添加到集群的主机列表
主机名 | IP地址 | 标签 | 状态 |
---|---|---|---|
ceph1 | 192.168.158.31 | _admin |
正常 |
ceph2 | 192.168.158.32 | 无 | 正常 |
ceph3 | 192.168.158.33 | 无 | 正常 |
关键信息说明
✅ 集群状态良好
-
总主机数: 3台
-
管理节点 : ceph1(带有
_admin
标签) -
所有节点: 状态正常,无错误提示
五、添加osd (对象存储设备)
在ceph1、ceph2、ceph3 添加磁盘,用做添加OSD

bash
# 直接在 ceph1 上添加 /dev/sda 作为 OSD
[root@ceph1 ~]# ceph orch daemon add osd ceph1:/dev/sda
Created osd(s) 0 on host 'ceph1'
# 在ceph1上为ceph2节点添加OSD
[root@ceph1 ~]# ceph orch daemon add osd ceph2:/dev/sda
Created osd(s) 1 on host 'ceph2'
# 在ceph1上为ceph3节点添加OSD
[root@ceph1 ~]# ceph orch daemon add osd ceph3:/dev/sda
Created osd(s) 2 on host 'ceph3'

验证命令
添加后检查操作结果
bash
# 检查 OSD 状态
[root@ceph1 ~]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.05846 root default
-3 0.01949 host ceph1
0 hdd 0.01949 osd.0 up 1.00000 1.00000
-5 0.01949 host ceph2
1 hdd 0.01949 osd.1 up 1.00000 1.00000
-7 0.01949 host ceph3
2 hdd 0.01949 osd.2 up 1.00000 1.00000
# 查看集群存储容量变化
ceph -s
# 确认设备状态
ceph orch device ls

注意:如果是用被使用过的磁盘当作OSD请注意下面几点
执行完后再执行添加osd
bash
#清理磁盘(确保干净)
# 擦除磁盘上的任何残留签名(谨慎操作!)
sudo wipefs -a /dev/sda
# 或者使用dd清理磁盘开头部分(更安全)
sudo dd if=/dev/zero of=/dev/sda bs=1M count=100
# 验证清理结果
sudo blkid /dev/sda # 应该没有输出
注意:如果磁盘之前被使用过,可能需要先擦除。但根据输出,磁盘是干净的,所以不需要额外擦除。不过,为了确保干净,我们可以使用以下命令擦除(如果之前被使用过,但根据输出,这里不需要):
但根据图片,磁盘是干净的,所以跳过擦除步骤。
如果遇到磁盘被占用的情况,可以尝试以下命令擦除:
ceph orch device zap ceph1 /dev/sda --force
六、设置ceph1为管理节点
_admin 标签表示 ceph1 具有集群管理权限
bash
#如果ceph1已经是管理节点了,那这一步略过
[root@ceph1 ~]# ceph orch host label add ceph1 _admin
七、将 mon 和 mgr 组件部署到指定节点中
bash
[root@ceph1 ~]# ceph orch apply mon ceph1,ceph2,ceph3
Scheduled mon update...
[root@ceph1 ~]# ceph orch apply mgr ceph1,ceph2,ceph3
Scheduled mgr update...
验证
bash
[root@ceph1 ~]# ceph -s
cluster:
id: 434186fe-9af5-11f0-aa53-000c29f843bc
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph1,ceph3,ceph2 (age 63m)
mgr: ceph1.myafri(active, since 66m), standbys: ceph3.umfacj, ceph2.xevjxf
osd: 3 osds: 3 up (since 15m), 3 in (since 15m)
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 449 KiB
usage: 81 MiB used, 60 GiB / 60 GiB avail
pgs: 1 active+clean

八、Ceph Dashboard Web 访问配置
1.启用 Dashboard 模块
bash
[root@ceph1 ~]# ceph mgr module enable dashboard
module 'dashboard' is already enabled
2.创建 SSL 证书
bash
[root@ceph1 ~]# ceph dashboard create-self-signed-cert
Self-signed certificate created
3. 配置访问设置
bash
# 设置监听地址(允许所有IP访问)
[root@ceph1 ~]# ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
# 设置端口(默认8443)
[root@ceph1 ~]# ceph config set mgr mgr/dashboard/server_port 8443
4.创建管理员账户
bash
# 创建密码文件
[root@ceph1 ~]# echo "Q1w2e3r4@123.com" > dashboard-password.txt
[root@ceph1 ~]# cat dashboard-password.txt
Q1w2e3r4@123.com
# 创建管理员用户
ceph dashboard ac-user-create admin -i dashboard-password.txt administrator
#如果出现下面用户已存在的情况
[root@ceph1 ~]# ceph dashboard ac-user-create admin -i dashboard-password.txt administrator
User 'admin' already exists
# 重置 admin 用户密码
ceph dashboard ac-user-set-password admin -i dashboard-password.txt
# 删除密码文件(安全考虑)
rm -f dashboard-password.txt
5.获取访问地址
bash
# 查看 dashboard 服务地址
[root@ceph1 ~]# ceph mgr services
{
"dashboard": "https://192.168.158.31:8443/",
"prometheus": "http://192.168.158.31:9283/"
}
6、访问
点击高级

点击继续访问

输入刚才创建好的用户和密码
admin/Q1w2e3r4@123.com










