保姆级教程:在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安装完成后,进行以下基础配置:
设置主机名(在所有节点执行):
hostnamectl set-hostname ceph01.novalocal && bash配置主机解析(在第一个节点执行后复制到其他节点):
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配置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 EOF2. 依赖软件安装
2.1 安装时间同步服务
集群节点间的时间同步至关重要:
yum -y install chrony git systemctl enable --now chronyd chronyc sources2.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/cephadm2.3 安装容器运行时
Ceph Pacific使用容器化部署,我们选择podman作为容器引擎:
yum install podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 lvm2 -y安装完成后,建议重启所有节点以使配置生效:
reboot3. 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=mon3.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 tree3.4 验证集群健康状态
检查集群整体状态:
ceph -s健康状态应显示为HEALTH_OK,并且所有服务都应正常运行。
4. 管理面板配置
Ceph提供了基于Web的管理面板,方便监控和管理集群。
4.1 访问管理面板
使用引导阶段提供的URL访问管理面板。首次登录需要使用默认凭据,建议立即修改密码。
4.2 面板功能概览
管理面板提供以下主要功能:
- 集群健康状态监控:实时显示集群健康状况和性能指标
- 存储池管理:创建和管理不同类型的存储池
- OSD管理:监控和操作存储设备
- 用户管理:配置访问权限和配额
- 日志查看:集中查看集群日志信息
4.3 高级配置建议
对于生产环境,建议配置:
- 监控集成:将Ceph监控数据接入现有监控系统
- 告警设置:配置关键指标的告警阈值
- 定期备份:设置集群配置的定期备份策略
5. 性能优化与故障排除
5.1 性能调优建议
根据工作负载特点,可以调整以下参数:
| 参数 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
| osd_memory_target | 4GB | 根据RAM调整 | 控制OSD内存使用 |
| osd_op_num_threads | 2 | 4-8 | OSD操作线程数 |
| osd_disk_threads | 1 | 2-4 | 磁盘I/O线程数 |
调整方法:
ceph config set osd osd_memory_target 8G5.2 常见问题解决
问题1:节点无法加入集群
解决方案:
- 检查SSH互信配置
- 验证网络连通性
- 确保时间同步服务正常运行
问题2:OSD状态异常
解决方案:
ceph osd repair <osd_id> systemctl restart ceph-osd@<osd_id>问题3:存储池性能下降
解决方案:
- 检查集群负载均衡
- 考虑增加PG数量
- 验证网络带宽使用情况
6. 生产环境最佳实践
在实际生产部署中,除了基本配置外,还需要考虑以下方面:
- 网络分离:建议将集群流量(公网、存储网、管理网)分离到不同网络接口
- 硬件规划:根据预期负载合理规划OSD数量与类型(SSD/HDD)
- 监控告警:部署完善的监控系统,设置合理的告警阈值
- 备份策略:定期备份集群关键配置和元数据
- 容量规划:预留足够的空间用于集群扩展和故障恢复
对于大规模部署,可以考虑使用以下命令批量添加节点:
for host in ceph{01..10}; do ceph orch host add $host.novalocal done在OpenEuler上部署Ceph集群的过程中,我发现podman的稳定性对集群运行至关重要。建议定期检查容器状态,并保持系统补丁更新。另外,合理配置日志轮转可以避免日志文件占用过多磁盘空间。
