注意

本文档适用于 Ceph 开发版本。

设备管理

设备管理允许 Ceph 处理硬件故障。Ceph 跟踪硬件存储设备(HDD、SSD)以查看哪些设备由哪些守护进程管理。Ceph 还收集这些设备的相关健康指标。通过这种方式,Ceph 可以提供预测硬件故障的工具,并可以自动响应硬件故障。

设备跟踪

要查看正在使用的存储设备列表,请运行以下命令:

ceph device ls

或者,要按守护进程或按主机列出设备,请运行以下形式之一命令:

ceph device ls-by-daemon <daemon>
ceph device ls-by-host <host>

要查看特定设备的位置以及设备的使用情况,请运行以下形式命令:

ceph device info <devid>

识别物理设备

为了使故障磁盘的更换更容易且减少错误,您可以通过运行以下形式命令,在硬件外设上“闪烁”驱动器的 LED:

device light on|off <devid> [ident|fault] [--force]

Note

使用此命令闪烁灯光可能不起作用。它是否起作用将取决于您的内核版本、您的 SES 固件或您的 HBA 设置等因素。

The <devid>参数是设备标识。要检索此信息,请运行以下命令:

ceph device ls

The [ident|fault]参数确定将闪烁哪种灯光。默认情况下,使用的是标识灯光。

Note

此命令仅在启用 Cephadm 或 Rook 模块时才有效。要查看启用的编排器模块,请运行以下命令:orchestrator module is enabled. To see which orchestrator module is enabled, run the following command:

ceph orch status

使驱动器 LED 闪烁的命令是lsmcli。要自定义此命令,请通过运行以下形式命令的 Jinja2 模板进行配置:

ceph config-key set mgr/cephadm/blink_device_light_cmd "<template>"
ceph config-key set mgr/cephadm/<host>/blink_device_light_cmd "lsmcli local-disk-{{ ident_fault }}-led-{{'on' if on else 'off'}} --path '{{ path or dev }}'"

以下参数可用于自定义 Jinja2 模板:

  • on

    布尔值。

  • ident_fault

    包含标识符故障.

  • dev

    包含设备 ID 的字符串:例如,SanDisk_X400_M.2_2280_512GB_162924424784.

  • path

    包含设备路径的字符串:例如,/dev/sda.

启用监控

Ceph 还可以监控与您的设备相关的健康指标。例如,SATA 驱动器实现了一个称为 SMART 的标准,该标准提供了关于设备使用情况和健康情况的广泛内部指标(例如:开机小时数、电源循环次数、不可恢复读取错误次数)。其他设备类型(如 SAS 和 NVMe)提供类似的指标集(通过略微不同的标准)。所有这些指标都可以通过 Ceph 的smartctl工具收集。

您可以通过运行以下命令之一来启用或禁用健康监控:

ceph device monitoring on
ceph device monitoring off

数据采集

如果监控已启用,设备指标将按固定间隔自动采集。要配置该间隔,请运行以下形式命令:

ceph config set mgr mgr/devicehealth/scrape_frequency <seconds>

默认情况下,设备指标每 24 小时采集一次。

要手动采集所有设备,请运行以下命令:

ceph device scrape-health-metrics

要采集单个设备,请运行以下形式命令:

ceph device scrape-health-metrics <device-id>

要采集单个守护进程的设备,请运行以下形式命令:

ceph device scrape-daemon-health-metrics <who>

要检索存储的设备健康指标(可选地为特定时间戳),请运行以下形式命令:

ceph device get-health-metrics <devid> [sample-timestamp]

故障预测

Ceph 通过分析它收集的健康指标可以预测驱动器预期寿命和设备故障。预测模式如下:

  • none: 禁用设备故障预测。

  • local: 使用预训练的预测模型ceph-mgr守护进程。

要配置预测模式,请运行以下形式命令:

ceph config set global device_failure_prediction_mode <mode>

在正常情况下,故障预测在后台定期运行。因此,预期寿命值可能需要经过相当长的时间后才能填充。所有设备的预期寿命都在以下命令的输出中显示:

ceph device ls

要查看特定设备的元数据,请运行以下形式命令:

ceph device info <devid>

要强制预测特定设备的预期寿命,请运行以下形式命令:

ceph device predict-life-expectancy <devid>

除了 Ceph 的内部设备故障预测外,您可能还有关于设备故障的外部信息来源。要通知 Ceph 特定设备的预期寿命,请运行以下形式命令:

ceph device set-life-expectancy <devid> <from> [<to>]

预期寿命表示为时间段。这意味着预期寿命的不确定性可以表示为时间范围,可能是一个广泛的时间范围。时间段的结束可以不指定。

健康警报

The mgr/devicehealth/warn_threshold配置选项控制预期设备故障的健康检查。如果设备在指定的时间段内预期会故障,则会触发警报。

要检查所有设备的存储预期寿命并生成任何适当健康警报,请运行以下命令:

ceph device check-health

自动迁移

The mgr/devicehealth/self_heal选项(默认启用)自动将数据从预期即将故障的设备迁移出去。如果启用此选项,该模块将标记此类设备out以便自动迁移发生。

Note

The mon_osd_min_up_ratio配置选项可以帮助防止此过程级联到完全故障。如果“自我修复”模块标记out的 OSD 数量使mon_osd_min_up_ratio的比率值超过,则集群会触发DEVICE_HEALTH_TOOMANY健康检查。有关在此情况下应采取的操作说明,请参阅DEVICE_HEALTH_TOOMANY.

The mgr/devicehealth/mark_out_threshold配置选项指定自动迁移的时间段。如果设备在指定的时间段内预期会故障,它将被自动标记out.

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.