Ceph Pacific 版本磁盘预测模块

发布时间 2023-04-23 17:14:33作者: Varden

磁盘预测模块利用 Ceph 设备运行状况检查来收集磁盘运行状况指标,并使用内部预测器模块生成磁盘故障预测并返回到 Ceph。它不需要任何外部服务器进行数据分析和输出结果。其内部预测器的准确率约为70%。

1. 启用

运行以下命令以在 Ceph 环境中启用diskprediction_local模块:

ceph mgr module enable diskprediction_local

要启用本地预测变量,请执行以下操作:

ceph config set mgr device_failure_prediction_mode local

要禁用预测,请执行以下操作:

ceph config set mgr device_failure_prediction_mode none

diskprediction_local需要至少六个设备运行状况指标数据集来预测设备的使用寿命。并且,仅当启用了运行状况监视时,才会收集这些运行状况指标。

运行以下命令以检索给定设备的预期寿命。

ceph device predict-life-expectancy <device id>

2. 配置

默认情况下,该模块每天执行预测。您可以使用以下命令调整此间隔:

ceph config set mgr mgr/diskprediction_local/predict_interval <interval-in-seconds>

~# ceph config get mgr mgr/diskprediction_local/predict_interval
86400  # 默认1天

3. 调试

如果要调试磁盘预测模块映射到 Ceph 日志记录级别,请使用以下命令。

[mgr]

    debug mgr = 20

将日志记录设置为管理器的调试后,模块将打印出带有前缀 mgr[diskprediction] 的日志记录消息,以便于过滤。

4. 启用设备监控

Ceph 还可以监控与您的设备关联的运行状况指标。例如,SATA 硬盘实现一种称为 SMART 的标准,该标准提供有关设备使用情况和运行状况的各种内部指标,例如开机小时数、电源周期数或不可恢复的读取错误。其他设备类型(如 SAS 和 NVMe)实现了一组类似的指标(通过略有不同的标准)。所有这些都可以由 Ceph 通过 smartctl 工具收集。

您可以使用以下方法启用或禁用运行状况监控:

ceph device monitoring on

或者:

ceph device monitoring off

4.1 指标抓取

如果启用了监控,将定期自动抓取指标。该间隔可以配置为:

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]

4.2 故障预测

Ceph 可以根据收集的健康指标预测预期寿命和设备故障。有2种模式:

  none:禁用设备故障预测。
  local:使用来自 Ceph-MGR 守护程序的预训练预测模型

预测模式可以配置为:

ceph config set mgr 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>]

预期寿命表示为时间间隔,因此不确定性可以用宽间隔的形式表示。间隔结束也可以不指定。

4.3 健康警报

mgr/devicehealth/warn_threshold 控制在生成运行状况警告之前,预期设备故障必须多久发生。

~# ceph config get mgr mgr/devicehealth/warn_threshold
7257600  # 默认84天

可以通过以下方式检查所有设备的预期寿命,并生成任何适当的运行状况警报:

ceph device check-health

4.4 自动故障隔离

如果启用了 mgr/devicehealth/self_heal 选项(默认情况下),则对于预计很快会发生故障的设备,模块将通过将设备标记为“out”来自动将数据从它们中迁移出去。

mgr/devicehealth/mark_out_threshold 控制在自动将 osd 标记为“out”之前,预期设备故障必须多久发生。

默认:

~# ceph config get mgr mgr/devicehealth/self_heal
true
~# ceph config get mgr mgr/devicehealth/mark_out_threshold
2419200  # 默认28天

禁用自动隔离:

ceph config set mgr mgr/devicehealth/self_heal false