注意

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

activate

prepare 运行完成后,卷可以被激活。

激活卷涉及启用一个 systemd 单元,该单元持久化 OSD ID 及其 UUID(在 Ceph CLI 工具中也称为 fsid)。在这些信息被持久化后,集群可以确定哪个 OSD 已启用并且必须挂载。

注意

此调用的执行是完全幂等的。这意味着可以多次执行该调用,而不会改变其首次成功执行的结果。

有关由 cephadm 部署的 OSD 的信息,请参阅 激活现有 OSD

新 OSD

要激活新准备的 OSD,需要提供 OSD idOSD 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 idOSD 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>/

  1. 确保该 OSD 的所有必需设备都已准备就绪。

  2. 启动 ceph-osd@0 systemd 单元

注意

系统通过检查应用于 OSD 设备的 LVM 标签来推断对象存储类型

现有 OSD

对于已使用 ceph-disk 部署的现有 OSD,需要使用 simple 子命令扫描并激活它们。如果使用了不同的工具,那么将其移植到新机制的唯一方法是重新准备它们(会丢失数据)。请参阅 现有 OSD 以了解如何操作。

总结

回顾 bluestoreactivate 过程

  1. 需要 OSD idOSD uuid

  2. 启用具有匹配 id 和 uuid 的 systemd 单元

  3. /var/lib/ceph/osd/$cluster-$id/ 中的 OSD 目录处创建 tmpfs 挂载

  4. 通过指向 OSD block 设备,使用 ceph-bluestore-tool prime-osd-dir 重新创建所有需要的文件。

  5. systemd 单元将确保所有设备都已准备就绪并链接

  6. 匹配的 ceph-osd systemd 单元将启动

由 Ceph 基金会为您呈现

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