6.3. 为什么 ceph-volume 替换 ceph-disk?
以前的 Red Hat Ceph Storage 版本使用 ceph-disk
实用程序来准备、激活和创建 OSD。从 Red Hat Ceph Storage 4 开始,ceph-disk
被 ceph-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 系统,如 upstart
或 sysvinit
,同时能够发现设备。因此,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 所有。