投入和产出资源的分配
本节描述了 QoS 如何通过预留,限制和权重分配在内部进行控制。 预期用户不会设置这些控件,因为 mClock 概要文件会自动设置这些控件。 只能使用可用的 mClock 概要文件来调整这些控件。
dmClock 算法按权重比例分配 Ceph 集群的输入和输出 (I/O) 资源。 它实施了最低保留和最大限制的约束,以确保服务能够公平竞争资源。
当前, mclock_scheduler 操作队列将涉及 I/O 资源的 Ceph 服务划分为以下存储区:
client op: 客户机发出的每秒输入和输出操作数 (IOPS)。pg deletion: 主 Ceph OSD 发出的 IOPS。snap trim: 与快照删除相关的请求。pg recovery: 与恢复相关的请求。pg scrub: 与擦除相关的请求。
使用以下三组标记对资源进行分区,这意味着每种服务类型的份额由这三个标记控制:
保留
限制
重量
保留
为服务分配的最小 IOPS。 一项服务拥有的保留越多,保证拥有的资源就越多,只要它需要。
例如,保留设置为 0.1 (或 10%) 的服务始终具有为其自身分配的 OSD IOPS 容量的 10%。 因此,即使客户机开始发出大量 I/O 请求,它们也不会耗尽所有 I/O 资源,即使在高负载的集群中,服务的操作也不会耗尽。
限制
为服务分配的最大 IOPS。 服务获得的请求数不会超过设置的每秒服务请求数,即使它需要,并且没有其他服务与之竞争。 如果服务超过强制限制,那么该操作将保留在操作队列中,直到恢复该限制为止。
注: 如果该值设置为
0 (已禁用) ,那么服务不受限制设置限制,如果没有其他竞争操作,那么它可以使用所有资源。 这在 mClock 概要文件中表示为 "MAX"。注: 保留和限制参数分配是根据 Ceph OSD 下的支持设备类型 (即 HDD 或 SSD) 按分片进行的。
重量
额外容量或系统不足时容量所占的比例。 如果该服务的权重高于其竞争对手的权重,那么该服务可以使用 I/O 资源的较大部分。
注: 服务的预留值和限制值是根据 OSD 总 IOPS 容量的比例指定的。 该比例在 mClock 概要文件中表示为百分比。 权重没有单位。 权重彼此相对,因此如果一类请求的权重为 9 ,另一类请求的权重为 1 ,那么将以 9 与 1 的比率执行这些请求。 但是,仅当满足保留并且这些值包括在保留阶段下执行的操作时,才会发生此情况。
重要信息: 如果权重设置为
W,那么对于给定的请求类,输入的下一个请求的权重标记为 1/W ,上一个权重标记或当前时间 (以较大者为准)。 这意味着,如果 W 太大,因此 1/W 太小,那么在获取当前时间的值时,可能永远不会分配计算的标记。 因此,权重值应始终低于期望每秒处理的请求数。