2026年Linux下Ceph存储搭建教程

Linux下Ceph存储搭建教程blockquote 本文深入解析了在 Linux 环境下搭建 Ceph 分布式存储集群时最常遇到的四大 拦路虎 ceph deploy 因不自动分发软件包导致初始化失败 cephadm 因镜像拉取超时而启动受阻 OSD 激活卡死于残留磁盘元数据 以及 CephFS 挂载因内核协议不兼容报错 并逐一给出精准归因与可落地的实战解决方案 从手动预装组件 配置国内 Docker 镜像源 blockquote

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
    
本文深入解析了在Linux环境下搭建Ceph分布式存储集群时最常遇到的四大“拦路虎”:ceph-deploy因不自动分发软件包导致初始化失败、cephadm因镜像拉取超时而启动受阻、OSD激活卡死于残留磁盘元数据、以及CephFS挂载因内核协议不兼容报错,并逐一给出精准归因与可落地的实战解决方案——从手动预装组件、配置国内Docker镜像源、安全擦除磁盘元数据,到降级通信协议或切换ceph-fuse,覆盖部署、扩容、运维全链路痛点,助你避开官方文档未明说的深坑,高效构建稳定可靠的Ceph存储底座。

Linux怎么使用Ceph存储_Linux如何搭建分布式存储集群【教程】

根本原因不是没装 Ceph,而是 ceph-deploy 默认只在本地执行命令,不会自动把 Ceph 包推送到目标节点。它假设你已经手动在所有节点上装好了 cephceph-monceph-osd 等包。

实操建议:

  • 先在每个节点(包括部署机)运行 sudo apt install ceph ceph-common ceph-mon ceph-osd(Debian/Ubuntu)或 sudo yum install centos-release-ceph-quincy && sudo yum install ceph-common ceph-mon ceph-osd(CentOS 8+)
  • ceph-deploy 不再维护,官方已弃用;新集群直接用 cephadm,它自带包分发能力
  • 如果坚持用 ceph-deploy,必须确认所有节点的 /usr/bin/ceph 存在且可执行,否则初始化到 mon 步骤就会报 command not found

默认拉取的是国外镜像源,国内网络常超时或被重置。这不是配置写错,是网络策略问题。

实操建议:

  • 提前在所有节点配置好国内镜像加速器,比如阿里云的 https:// .mirror.aliyuncs.com ,写入 /etc/docker/daemon.json
  • cephadm 指定镜像:cephadm bootstrap –mon-ip 192.168.10.10 –image quay.io/ceph/ceph:v17(quay.io 在国内比 docker.io 稳定)
  • 若仍失败,先手动拉一次:sudo podman pull quay.io/ceph/ceph:v17cephadm 默认优先用 podman
  • 注意:v17(Quincy)要求内核 ≥ 5.4,老系统(如 CentOS 7)需升级 kernel 或改用 v16(Pacific)

常见于使用裸设备(如 /dev/sdb)但未清空分区表或 LVM 元数据,Ceph 拒绝复用有残留结构的磁盘。

实操建议:

  • 创建前务必清理:用 sudo ceph-volume lvm zap /dev/sdb –destroy(安全擦除),不要只用 dd if=/dev/zero of=/dev/sdb bs=1M count=100
  • 确认磁盘没有挂载、没被 LVM 占用:lsblksudo pvs 都应不显示该设备
  • 若用目录方式(–data /var/lib/ceph/osd/ceph-0),确保父目录属主是 ceph:ceph,权限为 0755
  • 日志看 journalctl -u ceph.target -f,重点搜 bluestoredevice is busy

不是密钥错了,是内核版太低或没启用 CephFS 模块。CentOS 7.9 默认内核 3.10 不支持 cephfs 的新协议(msgr2),而 cephadm 默认启用了 msgr2

实操建议:

  • 检查内核支持:zcat /proc/config.gz | grep -i ceph(需开启 CONFIG_CEPH_FS
  • 临时降级协议:在 mon 节点修改 /etc/ceph/ceph.conf,加 ms_bind_msgr2 = false,然后 sudo systemctl restart ceph-mon.target
  • 推荐用 kernel client + ceph-fuse 作为过渡:ceph-fuse -n client.admin -r / /mnt/cephfs,绕过内核限制
  • 注意:RBD 映射(rbd map)不受此影响,它走的是 block 层,和 cephfs 协议无关

真正麻烦的是跨版本兼容——比如 Pacific 集群混用 Quincy 客户端,某些 crush rule 或 pool 参数会静默失效,得盯紧 ceph health detail 里的 warning 级提示。

以上就是《Linux下Ceph存储搭建教程》的详细内容,更多关于的资料请关注golang学习网公众号!

小讯
上一篇 2026-04-14 08:33
下一篇 2026-04-14 08:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/261571.html