当前位置: 首页 > news >正文

基于OpenEuler--docker容器化部署ceph集群 - 实践

目录

一、安装Docker

1、配置阿里源

2、安装docker

3、Docker 镜像加速器的配置文件

4、启动docker

二、部署ceph集群

1、设置主机名

2、hosts解析

3、时间同步

4、cephadm 配置

配置ceph yum 源

5、安装python3

6、安装常用软件

三、ceph1管理主节点执行

1、ceph1 上安装cephadm

2、ceph1 使用cephadm 初始化ceph集群

3、集群扩容

拷贝公钥至ceph2、ceph3

4、添加节点到集群

四、安装 ceph-common

检查主机添加结果

已添加到集群的主机列表

关键信息说明

✅ 集群状态良好

五、添加osd (对象存储设备)

验证命令

六、设置ceph1为管理节点

七、将 mon 和 mgr 组件部署到指定节点中

验证

八、Ceph Dashboard Web 访问配置

1.启用 Dashboard 模块

2.创建 SSL 证书

3. 配置访问设置

4.创建管理员账户

5.获取访问地址

6、访问


一、安装Docker

所有节点都要安装

1、配置阿里源

cat <> /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

yum install -y docker-ce
3、Docker 镜像加速器的配置文件
 cat <> /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

#重载docker配置文件
systemctl daemon-reload
#启动docker并开机自启
systemctl enable --now docker

二、部署ceph集群

所有节点都执行

1、设置主机名

 hostnamectl set-hostname ceph1hostnamectl set-hostname ceph2hostnamectl set-hostname ceph3

2、hosts解析

cat >> /etc/hosts << EOF
192.168.158.31 ceph1
192.168.158.32 ceph2
192.168.158.33 ceph3
EOF

3、时间同步

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 源
cat > /etc/yum.repos.d/ceph.repo <

5、安装python3

dnf install python3 -y

6、安装常用软件

yum install vim bash-completion net-tools tree -y

三、ceph1管理主节点执行

1、ceph1 上安装cephadm

[root@ceph1 ~]# yum install cephadm -y

2、ceph1 使用cephadm 初始化ceph集群

[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
#生成公钥
[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、添加节点到集群

[root@ceph1 ~]# cephadm shell ceph orch host add ceph2
[root@ceph1 ~]# cephadm shell ceph orch host add ceph3
[root@ceph1 ~]# ceph -scluster:   id:     434186fe-9af5-11f0-aa53-000c29f843bc   health: HEALTH_WARN           OSD count 0 < osd_pool_default_size 3services:   mon: 3 daemons, quorum ceph1,ceph3,ceph2 (age 34m)   mgr: ceph1.myafri(active, since 37m), standbys: ceph3.umfacj   osd: 0 osds: 0 up, 0 indata:   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

#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相关命令 这样新节点才能正常与集群通信和提供服务

•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 集群的节点都需要安装,而不仅仅是管理节点。

检查主机添加结果

# 在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地址标签状态
ceph1192.168.158.31_admin正常
ceph2192.168.158.32正常
ceph3192.168.158.33正常
关键信息说明
✅ 集群状态良好
  • 总主机数: 3台

  • 管理节点: ceph1(带有 _admin 标签)

  • 所有节点: 状态正常,无错误提示

五、添加osd (对象存储设备)

在ceph1、ceph2、ceph3 添加磁盘,用做添加OSD

# 直接在 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'

验证命令

添加后检查操作结果

# 检查 OSD 状态
[root@ceph1 ~]# ceph osd tree
ID  CLASS  WEIGHT   TYPE NAME       STATUS  REWEIGHT  PRI-AFF
-1         0.05846  root default
-3         0.01949      host ceph10    hdd  0.01949          osd.0       up   1.00000  1.00000
-5         0.01949      host ceph21    hdd  0.01949          osd.1       up   1.00000  1.00000
-7         0.01949      host ceph32    hdd  0.01949          osd.2       up   1.00000  1.00000
​
# 查看集群存储容量变化
ceph -s
​
# 确认设备状态
ceph orch device ls

注意:如果是用被使用过的磁盘当作OSD请注意下面几点

执行完后再执行添加osd

#清理磁盘(确保干净)
# 擦除磁盘上的任何残留签名(谨慎操作!)
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 具有集群管理权限

#如果ceph1已经是管理节点了,那这一步略过
[root@ceph1 ~]# ceph orch host label add ceph1 _admin

七、将 mon 和 mgr 组件部署到指定节点中

[root@ceph1 ~]# ceph orch apply mon ceph1,ceph2,ceph3
Scheduled mon update...
[root@ceph1 ~]# ceph orch apply mgr ceph1,ceph2,ceph3
Scheduled mgr update...
验证
[root@ceph1 ~]# ceph -scluster:   id:     434186fe-9af5-11f0-aa53-000c29f843bc   health: HEALTH_OKservices:   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 模块
[root@ceph1 ~]# ceph mgr module enable dashboard
module 'dashboard' is already enabled
2.创建 SSL 证书
[root@ceph1 ~]# ceph dashboard create-self-signed-cert
Self-signed certificate created
3. 配置访问设置
# 设置监听地址(允许所有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.创建管理员账户
# 创建密码文件
[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.获取访问地址
# 查看 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

http://www.hskmm.com/?act=detail&tid=29351

相关文章:

  • 接口导入 jmeter
  • 深入理解MySQL的MVCC(多版本并发控制)实现原理
  • Kubernetes环境下Nginx代理Nacos服务请求故障诊断
  • 备考笔记1
  • 2025年新型振动电机厂家权威推荐榜:创新技术与高效性能深度
  • SSL/TLS协议如何确保HTTP通信的安全
  • 2025钢衬塑储罐厂家最新权威推荐榜:耐腐性能与结构强度双优
  • 2023-网鼎杯web-platfrom
  • 区分iBatis与MyBatis:两个Java数据库框架的比较
  • 2025大棕拉链厂家权威推荐榜:品质工艺与创新设计深度解析
  • JavaScript加密与解密技术:Hook技术应用案例分析
  • Oracle数据库创建表空间和索引的SQL语法示例
  • NOIP2016普及组port
  • 从增长焦虑到经营确定性:巨益OMS业财一体化的实践路径
  • 数据结构-双向链表
  • Alexa对话式AI技术进展全解析
  • AI小说生成器:智能创作与一致性维护的全流程解决方案
  • 2025无锡考编培训机构权威推荐榜:专业辅导与高通过率口碑之
  • 数据结构-单向循环链表
  • 论人工智能,对人类生产的影响。
  • 2025高频超声波检测设备厂家权威推荐榜:精准检测与技术创新
  • HEU KMS Activator最新功能使用教程及介绍,附HEU KMS Activator最新版下载
  • PWN手的成长之路-14-ciscn_2019_c_1-ret2libc
  • 国内高速下载镜像
  • 2025数控高速滚齿机厂家权威推荐榜:精密加工与高效产能标杆
  • 完整教程:prompt提示词工程---如何让大模型更听得懂人话
  • 2025年10月广州 1688 代运营服务商推荐,阿里巴巴1688店铺代运营、全店托管代运营公司推荐!
  • 2025拉伸器厂家最新权威推荐榜:技术实力与市场口碑深度解析
  • 2025年10月工作服厂家最新推荐排行榜,春夏秋冬季工作服,工人工作服,车间工作服,防静电工作服公司推荐!
  • 2023-网鼎杯web-thinkshop