注意
本文档适用于 Ceph 的开发版本。
activate
在 prepare 运行完成后,卷可以被激活。
激活卷涉及启用一个 systemd 单元,该单元持久化 OSD ID 及其 UUID(在 Ceph CLI 工具中也称为 fsid)。在这些信息被持久化后,集群可以确定哪个 OSD 已启用并且必须挂载。
注意
此调用的执行是完全幂等的。这意味着可以多次执行该调用,而不会改变其首次成功执行的结果。
有关由 cephadm 部署的 OSD 的信息,请参阅 激活现有 OSD。
新 OSD
要激活新准备的 OSD,需要提供 OSD id 和 OSD uuid。例如
ceph-volume lvm activate --bluestore 0 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8
注意
UUID 存储在 OSD 路径中的 fsid 文件中,该文件在使用 prepare 时生成。
激活所有 OSD
注意
对于由 cephadm 部署的 OSD,请参阅 激活现有 OSD。
可以使用 --all 标志一次性激活所有现有 OSD。例如
ceph-volume lvm activate --all
此调用将检查所有由 ceph-volume 创建的非活动 OSD,并将它们逐一激活。如果任何 OSD 已经在运行,它将在命令输出中报告并跳过它们,使其可以安全地重新运行(幂等)。
需要 uuid
需要 OSD uuid 作为额外步骤,以确保正在激活正确的 OSD。完全有可能存在一个具有相同 ID 的先前 OSD,最终会激活错误的 OSD。
dmcrypt
如果 OSD 是由 ceph-volume 使用 dmcrypt 准备的,则无需在命令行中再次指定 --dmcrypt(该标志不适用于 activate 子命令)。加密的 OSD 将自动检测到。
发现
对于先前由 ceph-volume 创建的 OSD,使用 LVM 标签执行发现过程以启用 systemd 单元。
systemd 单元将捕获 OSD id 和 OSD uuid 并将其持久化。在内部,激活将像下面这样启用它
systemctl enable ceph-volume@lvm-$id-$uuid
例如
systemctl enable ceph-volume@lvm-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
将为 OSD ID 为 0 且 UUID 为 8715BEB4-15C5-49DE-BA6F-401086EC7B41 的 OSD 启动发现过程。
注意
有关 systemd 工作流程的更多详细信息,请参阅 systemd
systemd 单元将查找匹配的 OSD 设备,并通过查看其 LVM 标签继续执行以下操作
#. 在相应位置挂载设备(按照约定为 /var/lib/ceph/osd/<cluster name>-<osd id>/)
确保该 OSD 的所有必需设备都已准备就绪。
启动
ceph-osd@0systemd 单元
注意
系统通过检查应用于 OSD 设备的 LVM 标签来推断对象存储类型
现有 OSD
对于已使用 ceph-disk 部署的现有 OSD,需要使用 simple 子命令扫描并激活它们。如果使用了不同的工具,那么将其移植到新机制的唯一方法是重新准备它们(会丢失数据)。请参阅 现有 OSD 以了解如何操作。
总结
回顾 bluestore 的 activate 过程