注意

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

systemd

作为激活过程的一部分(通过 activateactivate),systemd 单元将被启用,这些单元将使用 OSD ID 和 UUID 作为其名称的一部分。这些单元将在系统启动时运行,并通过其子命令实现来激活相应的卷。

激活的 API 有点松散,它只需要两个部分:要使用的子命令以及用破折号分隔的任何额外元信息。此约定使得单元看起来像

ceph-volume@{command}-{extra metadata}

额外元数据可以是实现处理的子命令可能需要的任何内容。在 lvmsimple 的情况下,两者都希望使用 OSD IDOSD UUID,但这并不是硬性要求,只是子命令的实现方式。

命令和额外元数据都由 systemd 作为单元的“实例名称”的一部分持久化。例如,对于 lvm 子命令,ID 为 0 的 OSD 看起来像

systemctl enable ceph-volume@lvm-0-0A3E1ED2-DA8A-4F0E-AA95-61DEC71768D6

启用的单元是 systemd oneshot 服务,旨在在本地文件系统准备好使用后启动。

故障和重试

系统启动时出现故障是很常见的。设备有时不能完全可用,这种不可预测的行为可能导致 OSD 无法使用。

有两个可配置的环境变量用于设置重试行为

  • CEPH_VOLUME_SYSTEMD_TRIES: 默认为 30

  • CEPH_VOLUME_SYSTEMD_INTERVAL: 默认为 5

“tries” 是一个数字,设置单元在放弃之前尝试激活 OSD 的最大次数。

“interval” 是一个以秒为单位的值,它确定在开始另一次尝试激活 OSD 之前等待的时间。

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入