0

0

Linux rook-ceph 的 cephfs / rbd / object 存储多协议并存配置

舞夢輝影

舞夢輝影

发布时间:2026-02-27 09:33:17

|

936人浏览过

|

来源于php中文网

原创

能,cephfs、rbd、object 可共存于一个 rook-ceph 集群,共享 mon/osd/mgr,仅上层服务组件不同;需分别创建 cephfilesystem、cephblockpool、cephobjectstore cr,并确保 ceph 版本≥16.2.0、rgw 依赖模块启用及网络权限配置正确。

linux rook-ceph 的 cephfs / rbd / object 存储多协议并存配置

cephfs、rbd、object 能不能共存于一个 rook-ceph 集群?

能,而且是默认行为。Rook 0.9+ 版本起,只要集群健康,cephfsrbdrgw(即 object)三种存储后端天然共存——它们共享同一套 monosdmgr,只是上层服务组件不同。

常见错误现象:ceph status 显示 HEALTH_WARN,但 rbd list 可用、ceph fs ls 报空、radosgw-admin realm list 报连接拒绝。这不是协议冲突,而是对应服务未部署或未就绪。

  • 确认 CephCluster CR 中 spec.cephVersion.image 指向支持 RGW 的 Ceph 版本(≥ v16.2.0,推荐 v17.2.7+)
  • CephFilesystemCephBlockPoolCephObjectStore 三个 CR 必须分别创建,缺一不可;Rook 不会自动补全
  • RGW 依赖 mgrdashboardprometheus 模块启用,否则 radosgw-admin 命令可能卡住

为什么 cephfs mount 失败但 rbd map 成功?

根本原因不是协议不兼容,而是内核模块和挂载参数的组合问题。CephFS 依赖客户端内核支持,而 RBD 是块设备,走的是通用块层。

典型错误现象:mount -t ceph ...Operation not supported 或卡在 connecting to mon;但 rbd mapmkfs.xfs /dev/rbd0 完全正常。

  • 检查节点是否加载 ceph 内核模块:lsmod | grep ceph;没输出就 modprobe ceph(需确保内核配置含 CONFIG_CEPH_FS=m
  • 使用 kernel 驱动挂载时,mon_addr 必须是 IP:PORT 格式,不能是 DNS 名;rook 默认生成的 ceph.confmon host 是域名,得手动替换
  • 更稳妥的做法是改用 fuse 挂载:ceph-fuse -n client.admin --keyring /etc/ceph/keyring -r / /mnt/cephfs,绕过内核限制

rgw endpoint 不通,但 rbd 和 cephfs 都正常

RGW 是独立服务,它不依赖 cephfsrbd 是否启用,但严重依赖网络可达性、TLS 配置和用户权限初始化。

Text Mark
Text Mark

处理文本内容的AI助手

下载

常见错误现象:curl http://rook-ceph-rgw-my-store.rook-ceph.svc:80 返回 503 或连接超时;radosgw-admin user listconnection refused

  • CephObjectStore CR 的 spec.gateway.port 必须显式设为 80443;rook 默认用 8080,而多数 S3 客户端(如 awscli)不认非标端口
  • Service 类型必须是 ClusterIP + NodePortLoadBalancer;仅 ClusterIP 无法从集群外访问 RGW
  • 首次启动后,RGW 不会自动生成 admin 用户;必须手动运行 radosgw-admin user create 并保存 access_key/secret_key,否则 S3 请求一律 403

多协议共存时 OSD 使用率不均衡?

不是协议本身导致的,而是 pool 的 crush rule、pg_num 设置和写入模式差异引发的。RBD 默认用 replicated pool,CephFS 元数据 pool 通常用高副本,RGW 默认用 erasure-coded pool —— 这些配置若混用不当,会放大倾斜。

表现:ceph osd df 显示某些 OSD 使用率 85%,另一些仅 30%;rbd benchdd if=/dev/zero of=test bs=4M count=1024 oflag=direct 在不同 pool 上结果差异巨大。

  • 检查各 pool 的 crush_ruleceph osd pool get <pool-name> crush_rule</pool-name>;确保所有 pool 用同一 rule(如 replicated_rule),除非你明确需要 EC
  • 避免给 CephFS data pool 设过小 pg_num(如 32);建议按公式 ceil( (OSD 数 × 100) / 3 ) 计算,再取最接近的 2 的幂次
  • RGW 的 bucket index pool 若未单独设置 pg_num,会继承默认值,极易成为热点;务必显式设置:ceph osd pool set .rgw.root pg_num 128

多协议并存本身不增加运维复杂度,真正容易被忽略的是:每个协议背后对应的 pool、crush rule、keyring 权限、网络暴露方式,都是独立配置项。少设一个,就少一条通路。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

604

2023.11.27

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.12.07

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

833

2023.08.22

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

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

200

2023.11.20

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

452

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

182

2023.10.30

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

77

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

36

2025.11.16

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

1

2026.02.26

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.8万人学习

Git 教程
Git 教程

共21课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号