)
1. 虚拟机环境下的Ceph集群部署实战第一次在虚拟机环境部署Ceph集群时我踩了不少坑。最头疼的就是软件源问题——官方源下载速度慢得像蜗牛换了国内镜像才搞定。建议直接用Nautilus以上版本自带的Dashboard功能更完善。下面分享我的完整部署流程包含Prometheus监控集成方案。虚拟机配置有个小技巧先配好一台模板机做好hosts解析、时间同步这些基础配置再克隆其他节点能省下大量重复劳动。我用的是CentOS 7.9系统三台虚拟机1管理节点2OSD节点每台OSD节点挂载了3块10GB虚拟磁盘。硬件配置如下节点类型vCPU内存磁盘配置管理节点2核4GB系统盘20GB数据盘10GBOSD节点4核8GB系统盘20GB3数据盘各10GB关键准备步骤所有节点关闭SELinux和防火墙生产环境建议配置安全组规则配置NTP时间同步时钟偏差必须小于0.05秒创建专用ceph用户并配置sudo免密权限# 基础环境配置示例所有节点执行 sudo hostnamectl set-hostname ceph-mon1 echo 192.168.10.10 ceph-mon1 | sudo tee -a /etc/hosts sudo setenforce 0 sudo systemctl stop firewalld sudo yum install -y chrony sudo systemctl start chronyd2. Ceph集群部署的坑与解决方案官方推荐的Cephadm部署方式需要K8s基础对新手不太友好。我最终选择了ceph-deploy方案虽然官方已弃用因为它能快速验证学习。安装时特别注意使用阿里云镜像源加速下载指定Luminous版本ceph-deploy install --release luminousPython2环境要提前配好ceph-deploy依赖# 管理节点安装ceph-deploy curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py sudo python2 get-pip.py sudo python2 -m pip install ceph-deploy初始化集群时遇到个典型问题monitor节点启动失败。检查发现是ceph.conf配置不全需要补上网络段声明# ceph.conf关键配置 public network 192.168.10.0/24 osd pool default size 3 osd pool default min size 2 mon allow pool delete true # 测试环境允许删除存储池部署OSD时最容易出错的是磁盘选择。一定要用lsblk确认磁盘标识避免误操作生产数据。我写了个自动化脚本处理多节点部署# 批量创建OSD会清空磁盘数据 for node in {osd1,osd2,osd3}; do for disk in {b,c,d}; do ceph-deploy disk zap ceph-$node /dev/sd$disk ceph-deploy osd create --data /dev/sd$disk ceph-$node done done3. Dashboard与监控系统集成老版本Dashboard功能有限但基本监控够用。启用后记得配置访问IP白名单ceph mgr module enable dashboard ceph dashboard set-login-credentials admin admin123 ceph config set mgr mgr/dashboard/server_addr 0.0.0.0 ceph dashboard set-access-rule 192.168.10.0/24Prometheus集成更实用通过mgr模块直接暴露指标。配置时要注意默认监听9283端口需要同时采集主备mgr节点指标路径为/metrics# /etc/prometheus/prometheus.yml配置示例 scrape_configs: - job_name: ceph static_configs: - targets: [ceph-mon1:9283, ceph-mon2:9283] metrics_path: /metrics honor_labels: trueGrafana可以直接导入官方仪表板ID:2842但需要调整PromQL语句适配老版本指标。监控指标我重点关注这几个集群容量使用率OSD读写延迟PG异常状态计数网络吞吐量4. 生产环境优化建议经过多次测试验证总结出这些经验网络分离public网络和cluster网络分开配置参数调优根据负载调整osd_op_threads等参数监控增强设置OSD下线自动告警定期维护每周执行deep-scrub检查数据一致性性能调优示例# 提升小文件IO性能 ceph config set global osd_recovery_max_active 3 ceph config set global osd_max_backfills 2 ceph config set osd bluestore_prefer_deferred_size 0备份策略也不能忽视# 定期备份集群元数据 ceph mon getmap -o monmap.backup ceph osd getcrushmap -o crushmap.backup ceph auth export -o auth.backup最后提醒虚拟机环境仅适合测试生产部署务必使用物理机SSD。遇到OSD故障时先检查网络和时钟同步这两类问题占了故障的70%。