设备管理
Ceph跟踪哪些硬件存储设备(例如,HDDs、SSDs)被哪些守护进程使用,并收集有关这些设备的健康指标,以便提供预测和/或自动响应硬件故障的工具。
设备跟踪
可以使用以下命令查询哪些存储设备正在使用:
ceph device ls
还可以按守护进程或主机列出设备:
ceph device ls-by-daemon <daemon>
ceph device ls-by-host <host>
对于任何单个设备,都可以查询其位置信息以及使用情况:
ceph device info <devid>
启用监控
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守护进程的预训练预测模型
- cloud: 使用由ProphetStor运行的外部云服务共享设备健康和性能指标,可以使用其免费服务,也可以使用具有更准确预测的付费服务
预测模式可以通过以下命令配置:
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>]
预期寿命以时间间隔表示,因此不确定性可以以宽间隔的形式表示。间隔结束也可以不指定。
健康警报
mgr/devicehealth/warn_threshold
控制在生成健康警告之前预期设备故障的发生时间。
可以通过以下方式检查所有设备的存储预期寿命,并生成任何适当的健康警报:
ceph device check-health
自动隔离
如果启用了mgr/devicehealth/self_heal
选项(默认情况下),那么对于预计很快会出现故障的设备,模块将通过将设备标记为“out”来自动迁移数据。
mgr/devicehealth/mark_out_threshold
控制在我们自动将osd标记为“out”之前,预期设备故障的发生时间。