10.2. 输入和输出资源的分配
本节论述了 QoS 控制如何在内部使用保留、限制和权重分配。用户不会被预期将这些控制设置为 mClock 配置集会自动设置它们。调优这些控制只能使用可用的 mClock 配置集执行。
dmClock 算法分配 Ceph 集群的输入和输出(I/O)资源,以权重为 weight。它实现了最小保留限制和最大限制,以确保服务可以平平地竞争资源。
目前,mclock_scheduler
操作队列将涉及 I/O 资源的 Ceph 服务划分为以下存储桶:
-
客户端 op
:客户端发布的每秒输入和输出操作(IOPS)。 -
PG 删除
:由主 Ceph OSD 发布的 IOPS。 -
snap trim
:快照修剪相关的请求。 -
PG 恢复
:与恢复相关的请求。 -
PG scrub
:清理相关的请求。
资源使用以下三组标签进行分区,即每种服务的共享由以下三个标签控制:
- 保留
- 限制
- Weight
保留
为服务分配的最小 IOPS。服务数量越多,只要服务需要的资源,可以保证这些资源越多。
例如,保留设置为 0.1 (或 10%)的服务始终为自己分配 OSD 的 IOPS 容量的 10%。因此,即使客户端开始发出大量 I/O 请求,它们也不会耗尽所有 I/O 资源,即使具有高负载的集群中服务的操作也不会耗尽。
限制
为服务分配的最大 IOPS。该服务不会超过每秒服务的请求数,即使它要求如此,并且其他服务都不与其竞争。如果服务超过强制限制,则操作队列中会保留在操作队列中,直到恢复限制为止。
如果值设为 0
(禁用),则服务不受限制设置的限制,如果不存在其他竞争操作,则可以使用所有资源。这在 mClock 配置集中以"MAX"表示。
保留和限制参数分配是每个分片,基于 Ceph OSD 下的后备设备类型,即 HDD 或 SSD。有关 osd_op_num_shards_hdd
和 osd_op_num_shards_ssd
参数的详情,请参阅 OSD Object storage 守护进程配置选项。
Weight
如果额外容量或系统不够,则容量比例共享。如果权重高于其竞争者的权重,该服务可以使用更大的 I/O 资源。
服务的保留和限制值按 OSD 总 IOPS 容量的比例指定。比例以 mClock 配置集中的百分比表示。权重没有单元。权重相对于另一个请求,因此如果一个类请求的权重为 9,另一个请求权重为 1,则请求在 9 到 1 的比例执行。但是,这只有在满足保留后才会发生,这些值包括在保留阶段执行的操作。
如果 weight 设为 W
,那么对于下一个输入的请求的给定类,则输入的权重标签为 1/W
,之前的权重标签或当前时间(以较大者为准)。这意味着,如果 W
太大,因此 1/W
太小,则可能无法分配计算的标签,因为它不会获得当前时间的值。
因此,权重的值应始终低于预期每秒可以被处理的请求数量。