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

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.ifnames=0参数。

主机名规划也很关键。我习惯用ceph[编号]-[角色]的格式,比如ceph01-monceph02-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查看所有可用磁盘,确认无误后再添加。有几点经验分享:

  1. 不要用系统盘做OSD,一定要用单独的磁盘
  2. 生产环境建议用SSD做OSD,性能好很多
  3. 可以用ceph-volume命令预先对磁盘进行分区和格式化
  4. 添加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集群发挥最佳性能,需要针对硬件和工作负载进行调优。根据我的经验,以下几个参数对性能影响最大:

  1. osd_memory_target:控制OSD进程的内存使用量
  2. osd_op_num_threads:处理IO请求的线程数
  3. osd_recovery_max_active:恢复操作的最大并发数
  4. 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. 常见问题排查指南

即使配置再完善,实际运行中还是可能遇到各种问题。下面分享几个典型问题的解决方法:

问题1:PG处于incomplete状态

这通常是因为OSD数量不足或配置不当导致的。解决方法:

  1. 检查ceph osd tree确认所有OSD都是up状态
  2. 调整pg_num和pgp_num参数
  3. 必要时手动触发pg修复:ceph pg repair <pg_id>

问题2:集群出现slow requests告警

可能原因包括:

  1. 磁盘性能瓶颈
  2. 网络延迟
  3. 系统负载过高

可以用ceph daemon osd.<id> perf dump查看具体哪个环节耗时最多。

问题3:Dashboard无法访问

检查以下几点:

  1. mgr服务是否正常运行
  2. 防火墙是否放行了端口
  3. SSL证书是否有效

最后提醒一点:任何配置修改前都要做好备份,特别是生产环境。CEPH的配置虽然可以动态修改,但有些参数需要重启服务才能生效。建议先在测试环境验证,确认无误后再应用到生产环境。

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

相关文章:

  • 技术拆解:AI低代码架构设计与全链路落地实现
  • 科晶生物双擎AI驱动,解锁“蛋白/核酸”大分子定向设计新范式
  • 深度剖析SWAP模型,从SWAP模型源代码编译到AI大语言模型辅助建模
  • COMSOL专业模型在激光熔覆与选区熔融仿真中的应用
  • python学习笔记——列表的内置方法
  • 怎么给 Windows 电脑的 C 盘扩容?教你 6 招,一劳永逸释放空间
  • MySQL中between and的基本用法、范围查询
  • ArrayList之模仿电影系统综合案例
  • @SpringBootApplication 与 SPI 机制的终极解密
  • 和BS架构宠物健康咨询系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 决胜2026:10大智能拓客系统硬核横评,帮老板精准选对获客工具
  • JavaEE零基础入门指南
  • 嵌入式AI开发必看:杜绝幻觉,才是工业级IDE的核心底气
  • MCP服务开发与AI集成
  • 开源TOP20项目(2026.03.09-2026.03.15)
  • 微软 Planetary Computer:地理空间数据服务的创新与应用潜力
  • 可调谐石墨烯超材料吸收体的FDTD仿真源文件
  • 如何学习计算机(民办普通大学生心得)
  • PHPStudy2018环境部署全攻略
  • 中控SCADA-MQTT驱动采集与MQTT转发应用详解
  • mathtype中omml2mml缺失问题解决
  • 动力域-混动系统/动力域半实物仿真测试
  • 从 AI 终端爆发看人机交互演进:薄膜开关为何仍是工业控制的核心方案?
  • 小白入门:无刷直流电机BLDC,我从无人机开始学的那些事儿
  • 解决 ScrollView嵌套RecyclerView设置nestedScrollingEnabled=false数据显示不全问题
  • GNS3 入门指南
  • 并联机器人设计快速上手篇:利用iRobotCAM完成机器人夹爪的设计,无缝对接MuJoCo
  • 【2026年-11期】Where lies the future of humanity in the age of AI?
  • Chrome浏览器整页截图方法(MacOS)
  • 355. Java IO API -去除路径中的冗余信息