如何在Linux中安装并配置Ceph集群 Linux搭建分布式存储系统的方法

小宇同学_1036

小宇同学_1036

2026-05-23

568人浏览

原创

cephadm是ceph官方主推的部署工具,适合新集群;ceph-deploy已进入维护模式,不建议用于新生产环境;手动部署仅适用于调试或特殊定制。

如何在linux中安装并配置ceph集群 linux搭建分布式存储系统的方法

cephadm 是当前官方主推的部署方式,适合大多数新集群场景;ceph-deploy 仍可用但已进入维护模式,不建议用于新生产环境。手动部署复杂度高、易出错,仅限调试或特殊定制需求。

选对工具:为什么优先用 cephadm 而不是 ceph-deploy

从 Ceph Octopus(15.x)起,cephadm 成为默认推荐工具,它基于容器运行所有组件(Podman/Docker),规避了系统依赖冲突、版本混杂、权限混乱等问题。而 ceph-deploy 直接在宿主机安装二进制和配置,容易因 Python 版本、pkg_resources 缺失、SELinux 策略等失败——你遇到的 ImportError: No module named pkg_resources 就是典型症状。

关键区别:

  • cephadm 自带完整运行时环境,升级只需拉新镜像,无需重装系统包
  • ceph-deploy 要求所有节点 Python 2/3 兼容、pip 可用、ssh 免密通,任意一环断掉就卡住
  • cephadm bootstrap 一步生成 monitor + mgr + crash + dashboard,ceph-deploy new 后还要手动 add mon、osd、mgr

最小可行部署:三节点 cephadm 集群实操

以三台 CentOS/RHEL 8+ 或 Ubuntu 22.04 节点为例(IP 分别为 192.168.1.101、192.168.1.102、192.168.1.103),执行以下步骤:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 所有节点安装基础依赖:sudo apt update && sudo apt install -y python3-pip podman curl gnupg lvm2(Ubuntu)或 sudo dnf install -y python3-pip podman curl gnupg2 lvm2(RHEL/CentOS)
  • 在 192.168.1.101 下载并启用 cephadm:curl --silent --location https://github.com/ceph/ceph/raw/quincy/src/cephadm/cephadm | sudo bash,再 sudo ln -sf /usr/bin/cephadm /usr/local/bin/cephadm
  • 引导集群:sudo cephadm bootstrap --mon-ip 192.168.1.101。这会自动部署 monitor、mgr,并监听 8443 端口提供 dashboard
  • 添加其余节点:sudo cephadm adopt --fsid <your-fsid> --image quay.io/ceph/ceph:v17</your-fsid>(先 cephadm shell -- ceph fsid 查 fsid),再用 ceph orch host add 加入 192.168.1.102 和 192.168.1.103

注意:bootstrap 默认不开启 dashboard,如需访问 Web 界面,进 shell 后执行:ceph mgr module enable dashboard,再 ceph dashboard set-login-credentials admin password123。

OSD 准备与挂载:别直接用 /dev/sdb,先确认磁盘状态

添加 OSD 前必须清理目标磁盘——残留的 LVM 元数据、旧文件系统、RAID 标签都会导致 ceph orch daemon add osd 失败并报错 Device is in use 或 failed to identify device。

  • 在目标节点上,用 lsblk -f 和 sudo sgdisk -p /dev/sdb 检查是否干净;若有 ceph 相关分区或 LVM2_member,用 sudo wipefs -a /dev/sdb 清除
  • 确保磁盘未被 udev 规则占用(常见于云平台虚拟盘),检查 /etc/udev/rules.d/ 下是否有绑定该设备的规则
  • 执行 ceph orch apply osd --all-available-devices 让 cephadm 自动发现并部署;若只想用某块盘,改用 ceph orch daemon add osd node2:/dev/sdb
  • OSD 创建后,状态可能卡在 creating,此时看日志:cephadm logs --name osd.<id></id>,常见原因是 /var/lib/ceph 所在分区空间不足(至少预留 5GB)

客户端挂载 RBD 或 CephFS:配置文件和密钥环缺一不可

客户端无法仅靠 ceph.conf 连接集群,client.admin.keyring 必须存在且权限为 600,否则会报 error connecting to the cluster 或 Permission denied。

  • 从 monitor 节点复制两个文件:scp root@192.168.1.101:/etc/ceph/ceph.conf /etc/ceph/ 和 scp root@192.168.1.101:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
  • 验证连接:ceph -s 应返回集群状态;若提示 connection timed out,检查 client 节点能否 telnet 通 monitor 的 6789 端口
  • RBD 映射:rbd map rbd/image1 --id admin(注意 --id 指定用户,非 keyring 文件名);CephFS 挂载:mount -t ceph 192.168.1.101:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring
  • 避免硬编码 IP:在 ceph.conf 的 [global] 段加 mon_host = [v2:192.168.1.101:3300,v1:192.168.1.101:6789],[v2:192.168.1.102:3300,v1:192.168.1.102:6789],支持多 monitor 自动故障转移

真正容易被忽略的是时间同步——哪怕只有 0.5 秒偏差,ceph -s 就可能显示 clock skew detected on mon 并拒绝认证。务必在所有节点启用 chronyd 并指向同一 NTP 源。

相关文章

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

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

下载

相关标签:

linux

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

相关专题

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

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

2023.08.11

1973

5

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

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

2023.10.07

2874

5

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2513

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6070

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5722

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3353

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2845

4

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习