OP-CEPH02-在OpenEuler 22.03 LTS-SP4上构建高可用CEPH集群:从零到生产就绪
1. 环境准备与系统配置在OpenEuler 22.03 LTS-SP4上部署CEPH集群前我们需要做好充分的环境准备。我建议至少准备3台物理服务器或虚拟机每台配置建议不低于4核CPU、8GB内存和100GB系统盘外加至少一块独立数据盘用于OSD存储。实际生产环境中根据数据量和性能需求硬件配置可能需要相应提升。操作系统安装完成后第一件事就是配置网络环境。我习惯先修改主机名这个操作在所有节点都需要执行hostnamectl set-hostname ceph01.novalocal bash接下来配置主机名解析这个操作只需要在主节点ceph01执行然后同步到其他节点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免密登录是个关键步骤能大大简化后续集群管理。我在ceph01节点上生成密钥并分发ssh-keygen ssh-copy-id 192.168.18.191 ssh-copy-id 192.168.18.100安全策略方面生产环境需要权衡安全性和便利性。我通常会关闭防火墙和SELinux以简化部署systemctl stop firewalld systemctl disable firewalld sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config setenforce 02. 软件安装与依赖配置CEPH的软件源配置很关键我推荐使用华为云的镜像源速度稳定且更新及时cat /etc/yum.repos.d/ceph.repo EOF [ceph] nameceph x86_64 baseurlhttps://repo.huaweicloud.com/ceph/rpm-pacific/el8/x86_64 enabled1 gpgcheck0 [ceph-noarch] nameceph noarch baseurlhttps://repo.huaweicloud.com/ceph/rpm-pacific/el8/noarch enabled1 gpgcheck0 EOF时间同步在分布式系统中至关重要我习惯使用chronyyum -y install chrony systemctl enable --now chronyd chronyc sourcesCEPH的部署工具cephadm需要从Git仓库获取yum -y install git git clone https://gitee.com/yftyxa/openeuler-cephadm.git cp openeuler-cephadm/cephadm /usr/bin/ chmod ax /usr/bin/cephadm容器引擎我选择podman比docker更轻量yum install podman lvm2 -y3. CEPH集群初始化集群初始化是部署的核心环节我通常在主节点执行cephadm bootstrap --mon-ip 192.168.18.204 --allow-fqdn-hostname这个命令会自动完成monitor服务的部署成功后会在控制台输出Dashboard访问地址和初始凭据。我建议立即记录这些信息特别是生成的admin密码。添加集群节点时需要先在主节点配置SSH互信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 --labelsmon ceph orch host add ceph03.novalocal --labelsmon4. OSD部署与存储配置OSD是CEPH的实际存储单元添加前需要确认磁盘设备名。我通常用lsblk查看lsblk添加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部署完成后检查集群状态是必须的ceph -s ceph osd tree健康状态显示HEALTH_OK才算部署成功。如果遇到问题我通常会先检查网络连通性再查看/var/log/ceph下的日志文件。5. Dashboard配置与管理CEPH Dashboard提供了直观的管理界面。初始化完成后通过浏览器访问控制台输出的URL使用生成的凭据登录。首次登录后我强烈建议立即修改默认密码点击右上角用户图标选择Change Password输入新密码并确认Dashboard的功能非常丰富我常用的是集群健康状态监控OSD性能指标查看存储池管理用户权限配置6. 生产环境优化建议在实际生产部署中我总结了几点优化经验网络配置建议使用万兆网络并分离公网和集群网络。我在/etc/ceph/ceph.conf中添加了[global] public network 192.168.18.0/24 cluster network 192.168.100.0/24OSD调优根据硬件性能调整参数。我的常用配置ceph config set osd osd_memory_target 4GB ceph config set osd bluestore_cache_size_hdd 1GB监控告警配置Prometheus和Grafana集成实现更细粒度的监控。Dashboard内置了Prometheus exporter只需在Cluster-Monitoring中启用。定期维护设置cron任务定期执行ceph osd df ceph pg dump7. 常见问题排查部署过程中可能会遇到各种问题我整理了几个常见场景节点添加失败检查SSH互信是否配置正确尝试手动SSH连接测试。OSD无法启动查看/var/log/ceph/ceph-osd.*.log常见原因是权限问题或磁盘未格式化。集群健康告警使用详细命令查看具体问题ceph health detail ceph crash ls性能问题检查网络延迟和磁盘IOiperf3 -c 目标节点 fio --filename/dev/nvme0n1 --rwrandread --ioenginelibaio --direct1 --nametest8. 备份与恢复策略生产环境必须考虑数据安全我通常采用以下策略定期备份集群配置ceph config dump ceph_config_backup.txt ceph mon dump mon_dump.txt重要存储池设置副本数ceph osd pool set mypool size 3使用RBD快照功能rbd snap create pool/imagesnapshot1 rbd snap protect pool/imagesnapshot1考虑异地备份方案可以通过RBD mirroring实现rbd mirror pool enable pool image