6.3. 为什么 ceph-volume 替换 ceph-disk?

以前的 Red Hat Ceph Storage 版本使用 ceph-disk 实用程序来准备、激活和创建 OSD。从 Red Hat Ceph Storage 4 开始,ceph-diskceph-volume 实用程序替代,该实用程序旨在作为 OSD 部署逻辑卷,同时在准备、激活和创建 OSD 时维护类似的 API 到 ceph-disk

ceph-volume 的工作原理?

ceph-volume 是一个模块化工具,目前支持置备硬件设备、传统的 ceph-disk 设备和 LVM(逻辑卷管理器)设备的方法。ceph-volume lvm 命令使用 LVM 标签存储特定于 Ceph 的设备及其与 OSD 的关系信息。它使用这些标签来稍后重新发现和查询与 OSDs 关联的设备,以便它可以激活它们。它还支持基于 LVM 和 dm-cache 的技术。

ceph-volume 实用程序以透明方式使用 dm-cache,并将其视为逻辑卷。根据您要处理的特定工作负载,您可能会考虑使用 dm-cache 时的性能提升和丢失。通常,随机和顺序读取操作的性能会提高较小的块大小;而随机和顺序写入操作的性能则降低更大的块大小。使用 ceph-volume 不会导致任何明显的性能下降。

重要

ceph-disk 实用程序已弃用。

注意

如果这些设备仍在使用,ceph-volume simple 命令可处理旧的 ceph-disk 设备。

ceph-disk 的工作原理?

需要 ceph-disk 工具来支持许多不同类型的 init 系统,如 upstartsysvinit,同时能够发现设备。因此,ceph-disk 只会专注于 GUID 分区表 (GPT) 分区。具体在 GPT GUID 中,以独特的方式标记设备,以如下方式回答问题:

  • 此设备是否为 journal
  • 该设备是否是加密的数据分区?
  • 设备是否部分准备了吗?

为解决这些问题,ceph-disk 使用 UDEV 规则与 GUID 匹配。

使用 ceph-disk 有什么缺点?

使用 UDEV 规则调用 ceph-disk 可能会导致在 ceph-disk systemd 单元和 ceph-disk 间的相互往来。整个过程非常不可靠且消耗时间,可能会导致 OSD 在节点启动过程中根本不会出现。此外,由于 UDEV 的异步行为,很难调试甚至复制这些问题。

由于 ceph-disk 只能用于 GPT 分区,所以它不支持其他技术,如逻辑卷管理器(LVM)卷或类似的设备映射器设备。

为确保 GPT 分区能与设备发现工作流正常工作,ceph-disk 需要大量特殊的标志。此外,这些分区需要设备完全归 Ceph 所有。