尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

为什么ceph新添加的硬盘会自动变为osd

为什么ceph新添加的硬盘会自动变为osd
📅 发布时间:2026/6/20 23:02:04

您好!这是一个非常好的问题,也是 Ceph 运维中一个关键的特性。

根据您图片中的信息和您描述的现象(新硬盘会自动变为 OSD),​​根本原因在于 Ceph 集群(特别是 cephadm)的“自动化运维(Orchestrator)”功能默认是开启的,并且它有一个默认策略:自动识别和利用所有“可用(Available)”的存储设备。​​

下面我为您详细解释为什么会发生这种情况以及如何管理它。

核心原因:Ceph 的自动化设备部署策略

  1. ​​默认的自动化行为​​:现代 Ceph(尤其是使用 cephadm 部署的集群)的设计理念是自动化。一旦您将一块新的、​​干净的​​(即没有文件系统、分区表等元数据)硬盘接入集群中的主机,并被 cephadm 扫描到(ceph orch device ls), Orchestrator 模块就会认为这是一块“可用”的存储资源。

  2. ​​服务规格(Service Specification)​​:Ceph 通过“服务规格”文件(或命令)来定义需要部署什么服务(如 OSD、MDS、MON等)以及如何部署。如果您在部署集群时​​没有明确指定只能在哪些具体设备上创建 OSD​​,Ceph 就会采用默认行为。

  3. ​​“all-available-devices”策略​​:最常见的默认策略就是使用所有可用设备。当您执行了像 ceph orch apply osd --all-available-devices 这样的命令后,就等于给 Ceph 下了一条持续的指令:“​​请确保我集群中所有标记为 ‘Available: Yes’ 的设备都被创建为 OSD,现在和将来发现的都一样​​”。

结合您的图片分析

在您的图片中,所有设备的 AVAILABLE 列都是 No,并且拒绝原因(图中未完全显示,通常是 ceph orch device ls -f json-pretty 查看)是“已有文件系统”或“空间不足”。这说明这些磁盘​​已经被占用​​了,所以 Ceph 不会自动使用它们。

但是,当您插入一块​​全新的、没有任何内容​​的硬盘时:

  1. cephadm 守护进程会定期扫描或通过您的 --refresh 命令触发扫描,发现这块新硬盘。
  2. 扫描后,这块新硬盘的 AVAILABLE 列会显示为 Yes。
  3. Ceph Orchestrator 检测到有新的“可用”设备出现,​​并且​​它记得您之前下过的“apply osd”指令(即使用所有可用设备)。
  4. 于是,它就会自动地在后台执行流程,擦除(zap)这块新硬盘并将其部署为一个新的 OSD,完全无需您手动干预。

​​简单比喻​​:这就像是您告诉一个机器人:“把我家所有空着的花盆都种上花。” 之后,每当您放一个新的空花盆到院子里,这个机器人就会自动过来把它种上花,而不需要您再下一次命令。


如何管理和控制这种行为?

如果您不希望 Ceph 自动使用每一块新硬盘,您有以下几种选择:

1. 【推荐】使用明确的设备列表部署 OSD

这是最精确的控制方法。您可以明确指定使用哪些设备。

  • ​​步骤一:列出设备,确认设备路径和ID​​

    ceph orch device ls

    (确认新硬盘的状态是 Available: Yes)

  • ​​步骤二:使用特定命令将​​特定设备​**​部署为 OSD

    • ​​方法A:使用设备路径(如 /dev/sdx)​​
      ceph orch daemon add osd <hostname>:/dev/sdx
      # 例如:ceph orch daemon add osd ceph01:/dev/sdf
    • ​​方法B:使用设备ID(更可靠,设备路径可能会变,但ID通常不会)​​
      从 ceph orch device ls 输出中找到新硬盘的 DEVICE ID(例如 QEMU_HARDDISK_DRIVE-scsi8)。
      ceph orch daemon add osd <hostname>:/dev/disk/by-id/<device_id>
      # 例如:ceph orch daemon add osd ceph01:/dev/disk/by-id/QEMU_HARDDISK_DRIVE-scsi8

2. 更改默认的 OSD 部署方法

如果您之前应用了 --all-available-devices 策略,可以将其移除,转而采用更精确的方法。

  • ​​检查当前的 OSD 部署规则​​:

    ceph orch ls --service-type osd

    这个命令会显示出当前已应用的 OSD 部署规格,您很可能会看到一条规则使用了 all-available-devices: true。

  • ​​移除旧的自动化规则​​(如果存在):
    您需要先停止这条规则,然后再用新的精确指令来添加 OSD。

    ceph orch rm osd.all-available-devices --force
    # 或者使用其具体的服务名,根据上一条命令的输出而定

    ​​注意:​​ 此操作​​不会​​删除已存在的 OSD,只会阻止 Ceph 未来自动部署新磁盘。

3. 【临时禁用】暂停整个集群的自动化操作

如果您正在进行维护,不希望 Ceph 自动做任何操作,可以暂停 Orchestrator。

  • ​​暂停自动化​​:
    ceph orch pause
  • ​​恢复自动化​​:
    ceph orch resume
    在暂停状态下,您可以安全地添加硬盘,而 Ceph 不会自动部署它们。等您准备好后,再恢复自动化并手动部署。

总结

  • ​​为什么会自动部署?​​ 因为您或部署脚本很可能在早期执行过 ceph orch apply osd --all-available-devices,这是一个“一劳永逸”的自动化指令。
  • ​​如何解决?​​ 您不需要关闭这个功能,而是应该​​改变使用习惯​​:在添加新硬盘前,​​先通过明确的命令​​ ceph orch daemon add osd <hostname>:<device> ​​来告诉 Ceph 您的精确意图​​。或者,彻底移除全自动策略,完全采用手动管理。

希望这能解答您的疑惑!

相关新闻

  • OF SF CF ZF 的判断方式以及例子
  • 2025年30个CRM系统盘点:哪款CRM系统适合你的企业? - SaaS软件
  • TSN Qav测试实践

最新新闻

  • 金融时序数据增强:基于生成模型的评估与应用实战
  • 别被忽悠了!2026实测靠谱的AI论文工具|实测必入避坑版
  • BLEURT、xCOMET与KIWI-23:多语言机器翻译评估指标深度对比与实战选型
  • 嵌入式GUI开发实战:emWin下拉列表与编辑框控件深度解析
  • Android JSONObject解析原理与工程化防护实践
  • 3步掌握终极Windows窗口调整方案:WindowResizer高效工作指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号