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

星涛吖_8427

星涛吖_8427

2026-03-29

344人浏览

原创

根本原因是ceph-deploy不自动分发ceph包,需手动在各节点安装ceph、ceph-common等;cephadm bootstrap失败主因是docker.io镜像拉取超时,应配置国内镜像源或改用quay.io;osd激活卡住多因磁盘残留元数据,须用ceph-volume lvm zap清理;cephfs挂载报错常因内核不支持msgr2,可降级协议或改用ceph-fuse。

linux怎么使用ceph存储_linux如何搭建分布式存储集群【教程】

ceph-deploy 初始化集群失败:找不到 ceph 命令

根本原因不是没装 Ceph,而是 ceph-deploy 默认只在本地执行命令,不会自动把 Ceph 包推送到目标节点。它假设你已经手动在所有节点上装好了 ceph、ceph-mon、ceph-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

cephadm bootstrap 失败:Failed to pull image docker.io/ceph/ceph:v17

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

实操建议:

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

OSD 创建卡在 activating 状态,ceph -s 显示 HEALTH_WARN

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

实操建议:

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

客户端 mount cephfs 报错:mount error(22): Invalid argument

不是密钥错了,是内核版太低或没启用 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 级提示。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1953

5

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.07

2834

5

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2035

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2962

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1016

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3359

7

bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

2026.03.18

625

21

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

2026.03.18

199

9

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.20

2788

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习