注意

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

activate

运行准备已经完成运行,可以激活该卷。

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

Note

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

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

新的 OSD

要激活新准备的 OSD,需要提供OSD idOSD uuid。例如:

ceph-volume lvm activate --bluestore 0 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8

Note

UUID 存储在 OSD 路径中的fsid文件中,它在使用准备时生成。

激活所有 OSD

Note

对于由 cephadm 部署的 OSD,请参阅激活现有的OSD instead.

可以通过使用--all标志一次性激活所有现有的 OSD。例如:

ceph-volume lvm activate --all

此调用将检查由 ceph-volume 创建的所有不活动的 OSD 并将它们逐个激活。如果任何 OSD 已经在运行,它将在命令输出中报告它们并跳过它们,使其可以安全地重新运行(幂等)。

需要 uuids

The OSD uuid作为额外的步骤来确保正在激活正确的 OSD。完全有可能存在具有相同 ID 的先前的 OSD,并且最终会激活错误的 OSD。

dmcrypt

如果 OSD 是由 ceph-volume 使用 dmcrypt 准备的,则无需在命令行上再次指定--dmcrypt(该标志在activate子命令中不可用)。一个加密的 OSD 将被自动检测。

发现

对于先前由ceph-volume,执行使用的发现过程。目前仅支持具有 GPT 分区和 LVM 逻辑卷的设备。LVM 标签创建的 OSD,以启用 systemd 单元。

systemd 单元将捕获OSD idOSD uuid并持久化它。内部,激活将像这样启用它:

systemctl enable ceph-volume@lvm-$id-$uuid

例如:

systemctl enable ceph-volume@lvm-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41

将为具有 ID0和 UUID8715BEB4-15C5-49DE-BA6F-401086EC7B41.

Note

更多关于 systemd 工作流程的详细信息,请参阅systemd

systemd 单元将查找匹配的 OSD 设备,并通过查看其LVM 标签将继续:

#. 在相应位置挂载设备(按惯例这是/var/lib/ceph/osd/<cluster name>-<osd id>/)

  1. 确保所有必需的设备都准备好供该 OSD 使用。

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

Note

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

现有 OSD

对于使用ceph-disk部署的现有 OSD,它们需要被扫描并使用简单的子命令激活。现有 OSD

总结

总结一下activate过程 forbluestore:

  1. 需要OSD idOSD uuid

  2. 使用匹配的 ID 和 UUID 启用系统单元

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

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

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

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

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.