注意
本文档适用于 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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.