OP-CEPH02-在OpenEuler 22.03 LTS-SP4上构建高可用CEPH集群实战
1. 环境准备与系统配置在OpenEuler 22.03 LTS-SP4上部署CEPH集群首先要做好基础环境准备。我建议使用至少3台物理服务器或虚拟机每台配置4核CPU、8GB内存和100GB系统盘另外准备单独的SSD或HDD作为OSD存储设备。实际项目中遇到过内存不足导致MON进程崩溃的情况这点要特别注意。系统安装镜像可以从国内镜像站获取比如上海交大的镜像源速度就很快。安装时选择最小化安装即可不需要图形界面。装完系统后第一件事就是配置网络这里有个小技巧建议把网卡命名改为传统的eth0格式避免后续CEPH识别出现问题。修改方法是在grub配置里添加net.ifnames0参数。主机名规划也很关键。我习惯用ceph[编号]-[角色]的格式比如ceph01-mon、ceph02-osd这样既清晰又方便管理。修改主机名后一定要记得更新/etc/hosts文件把所有节点信息都加进去。这里有个坑要注意如果用了FQDN格式的主机名后续CEPH部署时要加--allow-fqdn-hostname参数否则会报错。2. 安全策略与软件源配置生产环境安全很重要但部署CEPH时需要临时调整一些安全策略。防火墙建议直接关闭因为CEPH各个组件间的通信端口很多一个个放行太麻烦。SELinux也建议设为permissive模式等集群稳定运行后再考虑开启。软件源配置是另一个容易出问题的地方。OpenEuler自带的源里没有CEPH软件包需要添加华为云的CEPH源。这里要注意版本匹配问题 - OpenEuler 22.03对应的是CentOS 8的软件包架构。我遇到过因为用了错误的软件源导致依赖冲突的情况折腾了好久才发现问题所在。时间同步是分布式系统的生命线。建议在所有节点安装chrony并配置相同的NTP服务器。曾经有个客户环境因为时间不同步导致OSD频繁掉线排查了半天才发现是时间偏差超过了mon_clock_drift_allowed阈值。3. CEPH集群初始化cephadm是现在官方推荐的部署工具用起来确实方便。不过直接从官方拉取容器镜像可能会很慢建议提前配置好国内镜像加速。初始化命令很简单就一行cephadm bootstrap但有几个参数很关键--mon-ip要指定一个固定的IP不要用自动获取的--allow-fqdn-hostname如果用了域名形式的主机名就必须加--registry-url可以指定国内的容器镜像仓库初始化成功后会输出Dashboard的访问地址和默认账号密码。这里建议第一时间修改默认密码并备份好/etc/ceph目录下的关键文件。我曾经因为误删这些文件不得不重新部署整个集群。4. 节点扩展与OSD添加单节点CEPH没什么实用价值至少要3个节点才能保证高可用。添加节点前要确保SSH免密登录配置正确这是很多新手容易忽略的地方。添加节点的命令是ceph orch host add可以同时指定节点角色标签比如mon、osd等。添加OSD是最关键的步骤。建议先用ceph orch device ls查看所有可用磁盘确认无误后再添加。有几点经验分享不要用系统盘做OSD一定要用单独的磁盘生产环境建议用SSD做OSD性能好很多可以用ceph-volume命令预先对磁盘进行分区和格式化添加OSD后记得用ceph osd tree检查状态我曾经遇到过一个坑添加OSD时没注意磁盘已经被其他系统使用过导致CEPH无法正确识别。后来用wipefs -a彻底擦除磁盘后才解决。5. 集群监控与维护CEPH自带的Dashboard功能很强大可以直观地查看集群状态、性能指标和告警信息。不过默认配置可能不符合实际需求建议调整以下几个参数修改pg_num和pgp_num根据OSD数量合理设置配置邮件或Webhook告警设置自动清理旧的监控数据日常维护时常用的命令有# 查看集群状态 ceph -s # 查看OSD状态 ceph osd stat # 查看PG分布 ceph pg dump # 查看性能指标 ceph perf遇到问题时首先要检查日志。CEPH的日志默认在/var/log/ceph目录下不同组件有各自的日志文件。我习惯用ceph -w实时查看集群事件这对排查问题很有帮助。6. 性能调优实战经验要让CEPH集群发挥最佳性能需要针对硬件和工作负载进行调优。根据我的经验以下几个参数对性能影响最大osd_memory_target控制OSD进程的内存使用量osd_op_num_threads处理IO请求的线程数osd_recovery_max_active恢复操作的最大并发数osd_backfill_full_ratio控制backfill行为对于全闪存集群建议启用bluestore的压缩和去重功能。虽然会消耗一些CPU资源但能显著提高存储效率。可以用以下命令启用ceph config set osd bluestore_compression_algorithm snappy ceph config set osd bluestore_compression_mode aggressive网络配置也很关键。建议CEPH集群使用单独的万兆或更高速网络并将public网络和cluster网络分离。在OpenEuler上可以用nmcli配置多网卡绑定提高带宽和可靠性。7. 常见问题排查指南即使配置再完善实际运行中还是可能遇到各种问题。下面分享几个典型问题的解决方法问题1PG处于incomplete状态这通常是因为OSD数量不足或配置不当导致的。解决方法检查ceph osd tree确认所有OSD都是up状态调整pg_num和pgp_num参数必要时手动触发pg修复ceph pg repair pg_id问题2集群出现slow requests告警可能原因包括磁盘性能瓶颈网络延迟系统负载过高可以用ceph daemon osd.id perf dump查看具体哪个环节耗时最多。问题3Dashboard无法访问检查以下几点mgr服务是否正常运行防火墙是否放行了端口SSL证书是否有效最后提醒一点任何配置修改前都要做好备份特别是生产环境。CEPH的配置虽然可以动态修改但有些参数需要重启服务才能生效。建议先在测试环境验证确认无误后再应用到生产环境。