注意
本文档适用于 Ceph 的开发版本。
systemd
作为激活过程的一部分(通过 activate 或 activate),systemd 单元将被启用,这些单元将使用 OSD ID 和 UUID 作为其名称的一部分。这些单元将在系统启动时运行,并通过其子命令实现来激活相应的卷。
激活的 API 有点松散,它只需要两个部分:要使用的子命令以及用破折号分隔的任何额外元信息。此约定使得单元看起来像
ceph-volume@{command}-{extra metadata}
额外元数据可以是实现处理的子命令可能需要的任何内容。在 lvm 和 simple 的情况下,两者都希望使用 OSD ID 和 OSD UUID,但这并不是硬性要求,只是子命令的实现方式。
命令和额外元数据都由 systemd 作为单元的“实例名称”的一部分持久化。例如,对于 lvm 子命令,ID 为 0 的 OSD 看起来像
systemctl enable ceph-volume@lvm-0-0A3E1ED2-DA8A-4F0E-AA95-61DEC71768D6
启用的单元是 systemd oneshot 服务,旨在在本地文件系统准备好使用后启动。
故障和重试
系统启动时出现故障是很常见的。设备有时不能完全可用,这种不可预测的行为可能导致 OSD 无法使用。
有两个可配置的环境变量用于设置重试行为
CEPH_VOLUME_SYSTEMD_TRIES: 默认为 30CEPH_VOLUME_SYSTEMD_INTERVAL: 默认为 5
“tries” 是一个数字,设置单元在放弃之前尝试激活 OSD 的最大次数。
“interval” 是一个以秒为单位的值,它确定在开始另一次尝试激活 OSD 之前等待的时间。