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

保姆级教程:在OpenEuler 22.03 LTS-SP4上,用cephadm搞定Ceph Pacific集群部署

在OpenEuler 22.03 LTS-SP4上部署Ceph Pacific集群的完整指南

OpenEuler作为国产操作系统的代表,凭借其高性能和安全性,正逐渐成为企业级应用的首选。而Ceph作为开源的分布式存储解决方案,以其高可靠性和可扩展性赢得了广泛认可。本文将详细介绍如何在OpenEuler 22.03 LTS-SP4系统上,使用cephadm工具部署Ceph Pacific集群,为需要国产化解决方案的企业提供参考。

与传统部署方式相比,cephadm提供了更简洁、更自动化的集群管理体验。它采用容器化部署方式,简化了依赖管理,同时保持了Ceph的强大功能。对于需要在国产操作系统环境下构建存储基础设施的团队来说,这套方案尤其有价值。

1. 环境准备与系统配置

在开始部署前,我们需要确保所有节点都满足基本要求。建议使用至少三台配置相同的服务器,每台配备至少4核CPU、8GB内存和100GB存储空间。网络方面,建议使用10Gbps或更高带宽的互联。

1.1 系统初始化设置

首先在所有节点上安装OpenEuler 22.03 LTS-SP4系统。可以从官方镜像站点下载ISO文件:

wget https://mirror.sjtu.edu.cn/openeuler/openEuler-22.03-LTS-SP4/ISO/x86_64/openEuler-22.03-LTS-SP4-x86_64-dvd.iso

安装完成后,进行以下基础配置:

  1. 设置主机名(在所有节点执行):

    hostnamectl set-hostname ceph01.novalocal && bash
  2. 配置主机解析(在第一个节点执行后复制到其他节点):

    echo "192.168.18.204 ceph01.novalocal ceph01" >> /etc/hosts echo "192.168.18.191 ceph02.novalocal ceph02" >> /etc/hosts echo "192.168.18.100 ceph03.novalocal ceph03" >> /etc/hosts
  3. 配置SSH互信(仅在第一个节点执行):

    ssh-keygen ssh-copy-id 192.168.18.191 ssh-copy-id 192.168.18.100

1.2 安全策略调整

为了简化部署过程,我们暂时关闭防火墙和SELinux:

systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0

注意:在生产环境中,应根据实际安全需求配置防火墙规则,而不是完全关闭防火墙。

1.3 配置软件源

添加Ceph Pacific的软件源:

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

2. 依赖软件安装

2.1 安装时间同步服务

集群节点间的时间同步至关重要:

yum -y install chrony git systemctl enable --now chronyd chronyc sources

2.2 获取cephadm工具

cephadm是Ceph官方推荐的部署工具,我们可以从Git仓库获取:

git clone https://gitee.com/yftyxa/openeuler-cephadm.git cp openeuler-cephadm/cephadm /usr/bin/ chmod a+x /usr/bin/cephadm

2.3 安装容器运行时

Ceph Pacific使用容器化部署,我们选择podman作为容器引擎:

yum install podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 lvm2 -y

安装完成后,建议重启所有节点以使配置生效:

reboot

3. Ceph集群初始化

3.1 引导集群

在第一个节点上执行引导命令:

cephadm bootstrap --mon-ip 192.168.18.204 --allow-fqdn-hostname

成功执行后,命令行会输出管理面板的访问信息,包括URL和初始凭据。记录这些信息以备后续使用。

3.2 添加集群节点

将其他节点加入集群:

cd /etc/ceph/ ssh-copy-id -f -i ceph.pub ceph02 ssh-copy-id -f -i ceph.pub ceph03 cephadm shell ceph orch host add ceph02.novalocal --labels=mon ceph orch host add ceph03.novalocal --labels=mon

3.3 配置存储设备

为集群添加OSD(对象存储守护进程):

ceph orch daemon add osd ceph01.novalocal:/dev/nvme0n1 ceph orch daemon add osd ceph02.novalocal:/dev/nvme0n1 ceph orch daemon add osd ceph03.novalocal:/dev/nvme0n1

可以使用以下命令验证OSD状态:

ceph osd tree

3.4 验证集群健康状态

检查集群整体状态:

ceph -s

健康状态应显示为HEALTH_OK,并且所有服务都应正常运行。

4. 管理面板配置

Ceph提供了基于Web的管理面板,方便监控和管理集群。

4.1 访问管理面板

使用引导阶段提供的URL访问管理面板。首次登录需要使用默认凭据,建议立即修改密码。

4.2 面板功能概览

管理面板提供以下主要功能:

  • 集群健康状态监控:实时显示集群健康状况和性能指标
  • 存储池管理:创建和管理不同类型的存储池
  • OSD管理:监控和操作存储设备
  • 用户管理:配置访问权限和配额
  • 日志查看:集中查看集群日志信息

4.3 高级配置建议

对于生产环境,建议配置:

  1. 监控集成:将Ceph监控数据接入现有监控系统
  2. 告警设置:配置关键指标的告警阈值
  3. 定期备份:设置集群配置的定期备份策略

5. 性能优化与故障排除

5.1 性能调优建议

根据工作负载特点,可以调整以下参数:

参数默认值建议值说明
osd_memory_target4GB根据RAM调整控制OSD内存使用
osd_op_num_threads24-8OSD操作线程数
osd_disk_threads12-4磁盘I/O线程数

调整方法:

ceph config set osd osd_memory_target 8G

5.2 常见问题解决

问题1:节点无法加入集群

解决方案

  • 检查SSH互信配置
  • 验证网络连通性
  • 确保时间同步服务正常运行

问题2:OSD状态异常

解决方案

ceph osd repair <osd_id> systemctl restart ceph-osd@<osd_id>

问题3:存储池性能下降

解决方案

  • 检查集群负载均衡
  • 考虑增加PG数量
  • 验证网络带宽使用情况

6. 生产环境最佳实践

在实际生产部署中,除了基本配置外,还需要考虑以下方面:

  1. 网络分离:建议将集群流量(公网、存储网、管理网)分离到不同网络接口
  2. 硬件规划:根据预期负载合理规划OSD数量与类型(SSD/HDD)
  3. 监控告警:部署完善的监控系统,设置合理的告警阈值
  4. 备份策略:定期备份集群关键配置和元数据
  5. 容量规划:预留足够的空间用于集群扩展和故障恢复

对于大规模部署,可以考虑使用以下命令批量添加节点:

for host in ceph{01..10}; do ceph orch host add $host.novalocal done

在OpenEuler上部署Ceph集群的过程中,我发现podman的稳定性对集群运行至关重要。建议定期检查容器状态,并保持系统补丁更新。另外,合理配置日志轮转可以避免日志文件占用过多磁盘空间。

http://www.cnnetsun.cn/news/1635971.html

相关文章:

  • Qwen3.5-2B轻量化优势展示:相同GPU下并发数提升300%实测数据
  • 别再手动CRUD了!用这个SpringBoot+AI的脚手架,5分钟搞定一个智能管理后台
  • Apache Flink 核心面试题深度剖析:从入门到源码级理解
  • 【数据结构与算法】二叉树遍历 集合
  • I.MX6U-MINI开发板系统固化全流程:从uboot编译到rootfs烧录(附网络配置技巧)
  • 深入解析 | 差分进化算法在工程优化中的应用(Matlab/Python实战)
  • 告别EKF的雅可比矩阵:用Python从零实现一个UKF(附完整代码与车辆轨迹预测Demo)
  • DFIG_Wind_Turbine:基于MATLAB/Simulink的双馈异步风力发电机仿真模型
  • 浅谈MIKEURBAN计算进度条停止的解决方法
  • 聚四氟乙烯可以与强酸或者强碱反应吗
  • 国风美学模型在游戏开发中的应用:快速生成场景原画与道具图标
  • Phi-4-mini-reasoning基础教程:tokenizer对长数学表达式(含∑∫√)的切分实测
  • PyTorch动态计算图实战:为什么你的backward()总是报错?
  • KubeSphere All-in-One 安装避坑指南:从零搭建到可视化平台访问
  • 实战应用:基于快马平台从零到一构建功能完备的openclaw101风格项目平台
  • 实测Qwen3.5推理模型:用它写代码、解逻辑题,效果到底有多强?
  • BG3 Mod Manager:智能模组管理工具让博德之门3模组体验升级
  • CVE-bin-tool数据库更新异常完全解决方案:从故障排查到长期防护
  • Beyond Compare 5本地化解决方案:安全激活与跨平台应用指南
  • DAMOYOLO模型在CSDN技术社区的分享与讨论实践
  • BAAI/bge-m3惊艳案例:看AI如何理解“苹果”的不同含义
  • mybatis实战:基于快马构建博客系统,掌握多表查询与事务管理
  • ai辅助开发:描述你的创意,让快马ai为你生成下一代rnn模型代码
  • ai数据库设计:描述业务逻辑,快马自动生成mysql考试系统e-r图与建表语句
  • RL Token:破解 VLA “最后一厘米”精度难题,在线强化学习实现机器人精准操控
  • BiliTools:一站式B站资源下载与管理工具,高效获取高清视频与无损音频
  • 51单片机实战:从零构建电子密码锁系统
  • GESP2025年6月认证C++三级( 第二部分判断题(1-10))
  • 效率飙升,跳过proteus安装配置,用快马ai秒建仿真项目
  • 解锁专业级虚拟摄像头的创造性之道