带你读《存储漫谈Ceph原理与实践》第三章接入层3.1块存储 RBD(五)

简介: 带你读《存储漫谈Ceph原理与实践》第三章接入层3.1块存储 RBD

    由于请求出队列的过程涉及大量的实时排序调整,因此服务器在生成dmClock- Server队列时,会基于 QoS3个时间标签构造 3 棵完全二叉树,每棵二叉树的节点为各Client 请求子队列,节点在二叉树中的位置取决于其Client请求子队列队首元素的时间标签,构造规则是父节点的时间标签小于子节点。

请求入队列的执行流程如图3-13所示。若某个ClientServer发送请求,如果 Server中该 Client 的请求子队列中不存在未处理的请求,或子队列并不存在(即新来了一Client需要新创建子队列,则不仅需要让请求进入队列,还需将Client加入标签二叉树中,并依据标签时间的大小将其调整到正确位置。如果该Client的请求子队列中存在未处理的请求,则直接将该请求插入队列尾部即可。

 

 image.png

 

3-13 请求入队列的流程

 

请求出队列的执行流程如图3-14所示。先进入预留时间标签阶段,取预留标签二叉树的 root 节点请求队列,判断其队首元素的预留时间标签是否满足出队条件,若满足,则使 root节点队列的队首元素req)出队列(并调整该节点在预留二叉树中的位置,同时也要调整该root节点对应 Client 的子队列在权重二叉树和上限二叉树中的位置;否则进入基于上限和权重时间标签阶段,从上限二叉树的 root节点开始,依次开始判断节点队列的队首元素的上限时间标签是否满足出队条件,将满足出队条件的请求的ready位标记为true,再依据权重时间标签大小将权重二叉树中队列队首元素的ready位被标记为true节点调整到合适位置,让位于权重标签二叉树root 节点的队首元素出队列,最后再去调整Client 在权重、上限、预留标签二叉树中的位置。

image.png

3-14 请求出队列的流程

 

下面以实例形式分析 dmClock算法执行过程。

如表3-3所示,假设某分布式系统中有5Client这些Client的基准时间都为 to=0.0,每个Client的请求队列中有两个请求,QoS模板设置为[rlw],每个请求都以1/r1/l1/w为间隔打标签,若当前时间T=0.024s,请求出队列。

3-3     案例示例数据

 

 

client

 

QoS

request1

request2

R<i,1>

L<i,1>

P<i,1>

R<i,2>

L<i,2>

P<i,2>

1

[20,40,5]

0.05

0.025

0.2

0.1

0.05

0.4

2

[10,30,3]

0.1

0.033

0.333

0.2

0.066

0.666

3

[30,50,2]

0.033

0.02

0.5

0.66

0.04

1

4

[40,60,1.25]

0.025

0.017

0.8

0.05

0.034

1.6

5

[70,100,4]

0.014

0.01

0.25

0.028

0.02

0.5

(1)  构造reservationtag、limittagweighttag二叉树过程(请求入队列的过程


见图 3-15~3-17。

 

 

 image.png

 

3-15构造reservatontag_叉树过程

 

image.png

3-16构造 mttag_叉树过程

 image.png

 

3-17构造 we ghttag_叉树过程

 

(2)  Constraint-based阶段(请求出队列的第一阶段,见图3-18~图3-20。

image.png

 

3-18请求在 Constrant-based 阶段出队列- 预留标签_叉树调整过程

 


image.png

3-19  请求在Constrant-based 阶段出队列- 上限标签_叉树调整过程


image.png

3-20  请求在 Constrant-based 阶段出队列- 权重标签_叉树调整过程

 

 

 

(3)  Weight-based阶段请求出队的过程,见图3-21~3-24。

 image.png


3-21 找出满足出队条件的Cent

image.png


3-21找出满足出队条件的 Cent()

 image.png

 

 

3-22请求在 weght-based阶段出队列- 权重_叉树的调整过程

 image.png

 

 

3-23请求在 weght-based 阶段出队列- 上限时间标签的调整过程

 

 

image.png

 

 

3-24请求在 weght-based 阶段出队列- 预留标签时间的调整过程

 



相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
相关文章
|
存储 容灾 安全
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
|
存储 缓存 Linux
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
|
存储 Linux 虚拟化
带你读《存储漫谈:Ceph原理与实践》——3.1.1 块设备映射
带你读《存储漫谈:Ceph原理与实践》——3.1.1 块设备映射
|
存储 缓存 算法
带你读《存储漫谈:Ceph原理与实践》——3.1.2 快照与克隆
带你读《存储漫谈:Ceph原理与实践》——3.1.2 快照与克隆
|
5月前
|
存储 测试技术
阿里云块存储问题之测试不聚焦可能导致测试不稳定如何解决
阿里云块存储问题之测试不聚焦可能导致测试不稳定如何解决
54 3
|
6月前
|
存储 固态存储 大数据
阿里云服务器实例、块存储、带宽收费标准与云服务器最新活动价格参考
阿里云服务器价格通常包括云服务器实例价格、块存储价格和带宽价格组成,云服务器不同实例规格收费标准不一样,选择不同类型的块存储收费标准也不一样,选择不同的带宽收费标准也不一样。现在阿里云轻量应用服务器2核4G4M峰值带宽298元1年,云服务器2核4G5M固定带宽199元1年、2核8G1M固定带宽652.32元1年、4核8G1M固定带宽955.58元1年、4核16G10M带宽100G ESSD Entry云盘70元1个月。本文为大家整理了目前阿里云服务器实例、块存储、带宽收费标准与云服务器最新的活动价格情况,以供参考。
阿里云服务器实例、块存储、带宽收费标准与云服务器最新活动价格参考
|
5月前
|
存储
阿里云块存储问题之高效的Code Review可以发现70-90%的bug如何解决
阿里云块存储问题之高效的Code Review可以发现70-90%的bug如何解决
51 1
|
5月前
|
存储 Linux 测试技术
阿里云块存储问题之在编码和提交代码时确保代码提交的原子性如何解决
阿里云块存储问题之在编码和提交代码时确保代码提交的原子性如何解决
50 0
|
5月前
|
存储 Cloud Native Linux
阿里云块存储问题之poison发布阻塞机制实现如何解决
阿里云块存储问题之poison发布阻塞机制实现如何解决
61 0
|
5月前
|
存储 Kubernetes 测试技术
阿里云块存储问题之处理信用分低的测试用例(即不稳定Case)如何解决
阿里云块存储问题之处理信用分低的测试用例(即不稳定Case)如何解决
55 0

相关实验场景

更多