如何快速掌握核心显示命令?

核心显示命令(如cat、more、less、head、tail)用于查看文件内容,cat直接输出全部,more/less支持分页浏览,head/tail分别显示文件开头或结尾部分,适用于不同查看需求。

在Ceph分布式存储系统中,osd(对象存储守护进程)是核心组件之一,负责实际的数据存储、复制、恢复等操作,管理和监控OSD的状态是日常运维的关键。ceph osd 命令组是查询和显示OSD信息的主要工具,它提供了多种子命令来展示不同维度的OSD状态。

  1. ceph osd stat (或 ceph osd status)

    • 作用: 提供OSD集群的全局概览,显示最关键的汇总信息。
    • 输出示例:
      osdmap e537: 12 osds: 12 up, 12 in; 300 remapped pgs
    • 解读:
      • osdmap e537: 当前OSD Map的版本号 (epoch)。
      • 12 osds: 集群中配置的OSD总数。
      • 12 up: 当前处于运行状态 (up) 的OSD数量(守护进程正在运行)。
      • 12 in: 当前处于集群内 (in) 的OSD数量(数据分布包含这些OSD)。
      • 300 remapped pgs: 正在进行重映射的PG(归置组)数量(通常发生在OSD状态变化期间)。
    • 用途: 快速检查集群整体健康度,确认upin的数量是否等于总OSD数,如果不相等,说明有OSD出现问题。
  2. ceph osd dump

    • 作用: 提供最详细的OSD信息转储,它以JSON格式(默认)或纯文本格式输出当前OSD Map的全部内容。
    • (关键部分):
      • OSD Map版本 (epoch)
      • 集群ID (fsid)
      • 创建/修改时间 (created, modified)
      • 所有配置的OSD列表 (osds): 每个OSD的详细信息包括:
        • osd: OSD编号 (如 0, 1, 2…)
        • up/down: 守护进程状态 (1=up, 0=down)
        • in/out: 集群内状态 (1=in, 0=out)
        • primary_affinity: 主OSD亲和性(权重)
        • last_clean_begin/last_clean_end: 上次深度清理的PG范围
        • up_from, up_thru, down_at: 状态变更时间戳
        • state: 状态集合 (e.g., exists, up, in)
        • weight: CRUSH权重(影响数据分布)
        • public_addr, cluster_addr: 网络地址
        • uuid: OSD的UUID
      • PG Map相关信息 (pg_temp, primary_temp)
      • CRUSH Map版本 (crush_version)
      • 各种参数 (flags, min_osd_epoch, min_compat_client, require_osd_release, require_min_compat_client, full, nearfull, backfillfull, remapped, recovery_priority)
    • 用途: 获取单个OSD或所有OSD的最全面信息,用于深度排查问题或脚本解析,信息量巨大,通常结合 grepjq 过滤查看特定OSD (e.g., ceph osd dump | grep -A 30 "osd.0")。
  3. ceph osd tree

    • 作用:树形结构可视化展示OSD在CRUSH Map中的位置(Bucket层级,如host, rack, row, room, root)及其状态和权重。
    • 输出示例:
      ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF
      -1       0.87898 root default
      -3       0.43949     host ceph-node1
       0   hdd 0.10987         osd.0      up  1.00000 1.00000
       1   hdd 0.10987         osd.1      up  1.00000 1.00000
       2   hdd 0.10987         osd.2      up  1.00000 1.00000
       3   hdd 0.10987         osd.3      up  1.00000 1.00000
      -5       0.43949     host ceph-node2
       4   hdd 0.10987         osd.4      up  1.00000 1.00000
      ...
    • 解读:
      • ID: 节点ID(负数为Bucket,正数为OSD)。
      • CLASS: 设备类型 (e.g., hdd, ssd)。
      • WEIGHT: CRUSH权重(Bucket是其子项权重之和)。
      • TYPE: 节点类型 (root, host, osd 等)。
      • NAME: 节点名称 (主机名或osd.N)。
      • STATUS: OSD状态 (up/down),Bucket状态是其子项状态的聚合(如果所有子OSD都up,则显示up;如果有一个down,则显示down)。
      • REWEIGHT: 管理员设置的临时权重(用于调整数据分布,通常为1.0)。
      • PRI-AFF: 主OSD亲和性(通常为1.0)。
    • 用途: 直观查看OSD的物理/逻辑位置分布,快速定位故障OSD所在的物理主机或机架,理解数据分布结构,是最常用的查看OSD拓扑和状态的方式。
  4. ceph osd df (或 ceph osd df tree)

    • 作用: 显示每个OSD(或按树形聚合)的磁盘空间使用情况(原始容量、已用、可用)和利用率百分比
    • 输出示例 (简化):
      ID CLASS WEIGHT  REWEIGHT SIZE    RAW USE DATA    OMAP META  AVAIL  %USE VAR  PGS STATUS
       0   hdd 0.10987  1.00000 111 GiB 5.4 GiB 4.9 GiB  0 B 0 B 106 GiB 4.88 1.00  68     up
       1   hdd 0.10987  1.00000 111 GiB 5.5 GiB 5.0 GiB  0 B 0 B 105 GiB 4.95 1.01  70     up
      ...
      TOTAL 1.31845       1.00 1333 GiB 65 GiB  59 GiB  0 B 0 B 1268 GiB 4.88
      MIN/MAX VAR: 0.98/1.05  STDDEV: 0.52
    • 解读:
      • SIZE: OSD后端存储设备的原始总容量
      • RAW USE: OSD实际占用的原始磁盘空间(包含数据、内部元数据、预分配空间等),这是最接近df -h看到的已用空间的概念。
      • DATA: 用户数据实际占用的空间(不包括副本/纠删码开销)。
      • OMAP: OSD的Object Map使用的空间(通常很小,除非使用RGW bucket索引等)。
      • META: OSD内部元数据占用的空间。
      • AVAIL: 可用空间 (SIZERAW USE)。
      • %USE: 空间利用率 (RAW USE / SIZE * 100%)。
      • VAR: 该OSD利用率与集群平均利用率的方差(接近1.0表示均衡)。
      • PGS: 该OSD上存储的PG数量
    • 用途: 监控磁盘容量和负载均衡,识别即将满的OSD (%USE过高) 或负载不均衡 (VAR偏离1.0过多) 的情况。ceph osd df tree 会按CRUSH树形结构聚合显示空间使用。
  5. ceph osd ls

    • 作用: 仅列出所有已存在的OSD的ID编号。
    • 输出示例:
      0
      1
      2
      3
      4
      ...
    • 用途: 获取一个简单的OSD ID列表,常用于脚本中遍历所有OSD。

理解 up vs in

  • up (运行状态): 指OSD守护进程是否正在运行并与Monitor保持通信。ceph -sceph osd stat 中的 up 数量表示运行中的OSD数,一个OSD down 通常意味着该服务器上的ceph-osd进程崩溃、服务器宕机或网络中断。
  • in (集群内状态): 指OSD是否被包含在数据分布(CRUSH Map)中。ceph -sceph osd stat 中的 in 数量表示集群内参与数据存储的OSD数,管理员可以手动将OSD标记为 out (ceph osd out <osd-id>),将其从集群中移除(数据会迁移走),一个OSD down 一段时间后,集群可能会自动将其标记为 out(取决于配置)。

重要提示与最佳实践:

  1. 权限: 执行这些命令通常需要具有适当权限的Ceph客户端密钥环(如 client.admin)。
  2. 集群健康: 在执行任何管理操作(如 osd out, osd down)之前,务必先检查 ceph -s 确保集群总体是 HEALTH_OKHEALTH_WARN(了解警告原因),在非健康状态下操作风险更高。
  3. 谨慎操作: ceph osd downceph osd out管理命令,会改变集群状态并触发数据迁移/恢复,仅在明确需要时才使用(如更换故障磁盘前)。ceph osd dump 等显示命令是只读查询,相对安全。
  4. 结合使用: 通常先用 ceph osd statceph -s 看全局,再用 ceph osd tree 看拓扑和状态定位具体OSD,最后用 ceph osd df 看该OSD的容量或 ceph osd dump 看其详细信息。
  5. 过滤输出: 对于 ceph osd dumpceph osd df 等输出量大的命令,善用 grep (e.g., ceph osd dump | grep osd.1) 或 jq (处理JSON格式) 来聚焦特定OSD的信息。
  6. 版本差异: 不同Ceph版本(如Luminous, Nautilus, Octopus, Pacific, Quincy, Reef)的命令输出格式和可用字段可能有细微差别,请以实际环境输出和官方文档为准。

要有效显示Ceph OSD的信息,核心在于掌握 ceph osd 命令组的几个关键子命令:

  • 快速全局状态: ceph osd stat
  • 查看拓扑和状态: ceph osd tree (最常用)
  • 查看磁盘空间: ceph osd df / ceph osd df tree
  • 获取最详细信息: ceph osd dump
  • 仅列ID: ceph osd ls

理解 upin 状态的区别对于诊断问题至关重要,始终优先使用只读查询命令 (stat, tree, df, dump, ls) 来监控和诊断,谨慎使用会改变集群状态的管理命令 (down, out),结合 ceph -s 查看集群整体健康是操作前的必要步骤。


引用说明:

  • 基于Ceph官方文档关于ceph osd命令的说明,特别是stat, dump, tree, df, ls等子命令的描述,核心概念如OSD状态(up/in/down/out)、CRUSH Map、PG等均遵循Ceph的架构设计,具体命令参数和输出细节可参考对应Ceph版本的官方文档:https://docs.ceph.com/。
  • 空间使用统计(SIZE, RAW USE, DATA等)的解释参考了ceph osd df命令的输出说明及社区讨论中对这些字段含义的共识。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6016.html

(0)
酷番叔酷番叔
上一篇 2025年7月1日 21:51
下一篇 2025年7月1日 22:12

相关推荐

  • 命令行如何快速退出当前环境?

    退出当前命令行环境通常输入 exit 命令并按回车,在 Linux/macOS 终端中,也可使用快捷键 Ctrl + D,对于某些特定环境(如 Python 虚拟环境),需使用 deactivate 命令。

    2025年7月8日
    3000
  • 如何快速进入Windows 10/11?

    带命令提示符的安全模式(Safe Mode with Command Prompt)是Windows系统用于高级故障排除的特殊启动模式,它仅加载最基本的系统驱动和服务,同时提供命令提示符窗口(而非图形界面),适用于解决因驱动程序冲突、恶意软件或系统文件损坏导致的严重问题,以下是不同Windows版本的进入方法……

    2025年6月13日
    3000
  • 电脑黑屏白字的神秘代码是什么?

    DOS命令行是早期磁盘操作系统(如MS-DOS)的文本界面,用户通过输入特定文本命令来操作计算机、运行程序、管理文件和配置系统,是图形用户界面普及前的主要交互方式。

    2025年7月10日
    2400
  • 怎么用命令提示符关机操作

    基础关机命令打开命令提示符按下 Win + R 键,输入 cmd 后按回车,或以管理员身份运行:搜索“命令提示符” > 右键选择“以管理员身份运行”(需权限时使用),执行关机命令输入以下命令并回车:shutdown /s系统将在 1分钟后 自动关闭,屏幕显示警告提示,预留时间保存工作,进阶参数与场景应用根……

    2025年6月18日
    3000
  • Linux下如何安全删除文件夹?

    核心命令:rm 和 rmdir删除非空文件夹:rm -r命令作用:递归删除文件夹及其内部所有内容(包括子文件夹和文件),基本语法:rm -r 文件夹路径常用选项:-r(或 -R):递归删除(必需),-f:强制删除(不提示确认),-i:交互模式(删除前逐项确认),-v:显示删除详情(verbose 模式),示例……

    2025年6月13日
    3100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信