发明名称 一种面向云计算环境的两级磁盘调度方法
摘要 一种面向云计算环境的两级磁盘调度方法,属于计算机存储技术领域,降低现有两级磁盘调度方法中存在的两级磁盘调度不协调问题。本发明包括初始化步骤、监测步骤、预测步骤和决策步骤。监测步骤实时监测反映I/O请求合并状态的信息,并将这些信息提供给决策步骤判断上游调度是否处于“过度合并”和“合并不足”状态。监测步骤和决策步骤相互配合形成反馈控制,降低现有两级磁盘调度方法中存在的两级磁盘调度不协调问题,减少驱动域磁盘调度因为虚拟机中磁盘调度出现“过度合并”或者“合并不足”而带来的对I/O请求合并的不良影响,从而提升云计算系统的整体存储性能。
申请公布号 CN103064730B 申请公布日期 2015.07.29
申请号 CN201210557355.1 申请日期 2012.12.20
申请人 华中科技大学 发明人 冯丹;李宁;施展;江泓;柳青;焦田丰
分类号 G06F9/46(2006.01)I;G06F9/455(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 方放
主权项 一种面向云计算环境的两级磁盘调度方法,包括初始化步骤、监测步骤、预测步骤和决策步骤:(1)初始化步骤包括下述子步骤:(1.1)设置参数值:设置采集间隔T,T为0.5秒~10秒;设置合并率最大限定值P<sub>max</sub>和合并率平均限定值P<sub>ave</sub>,P<sub>max</sub>为0.4~0.6,P<sub>ave</sub>为0~0.2;设置合并中止率标准值σ<sub>std</sub>,σ<sub>std</sub>为0.05~0.1;设置上游调度到达I/O请求的大小b为8块~20块,每块512字节;设置第一级合并限制值α的变化步长u<sub>1</sub>=4~11;设置α的取值范围为[a<sub>1</sub>,a<sub>1</sub>+(n<sub>1</sub>‑1)×u<sub>1</sub>],其中,α的取值范围下限a<sub>1</sub>为8~22,α增长的最大步数n<sub>1</sub>为<img file="FDA0000721644190000011.GIF" wi="407" he="83" />符号<img file="FDA0000721644190000012.GIF" wi="86" he="78" />表示对C求整数上限;设置α的调整范围上限α<sub>max</sub>和调整范围下限α<sub>min</sub>;α<sub>max</sub>为88~110,α<sub>min</sub>为23~44;设置潜在I/O请求的大小δ的变化步长u<sub>2</sub>=4~11;设置δ的取值范围为[a<sub>2</sub>,a<sub>2</sub>+(n<sub>2</sub>‑1)×u<sub>2</sub>],其中,δ的取值范围的下限a<sub>2</sub>为8~22,δ变化的最大步数n<sub>2</sub>为<img file="FDA0000721644190000013.GIF" wi="423" he="77" />(1.2)创建二维预测表<img file="FDA0000721644190000014.GIF" wi="512" he="81" />二维索引表<img file="FDA0000721644190000015.GIF" wi="208" he="80" /><img file="FDA0000721644190000016.GIF" wi="640" he="81" />和一维索引表<img file="FDA0000721644190000017.GIF" wi="425" he="83" />二维预测表<img file="FDA0000721644190000018.GIF" wi="487" he="85" />的第一维为<img file="FDA0000721644190000019.GIF" wi="336" he="78" />第二维为α对应的观测请求大小φ,表项为M<sub>i,j</sub>,i=1~n<sub>1</sub>,j=1~512;二维索引表<img file="FDA00007216441900000110.GIF" wi="227" he="78" /><img file="FDA0000721644190000021.GIF" wi="695" he="79" />的第一维为<img file="FDA0000721644190000022.GIF" wi="409" he="78" />第二维为<img file="FDA0000721644190000023.GIF" wi="494" he="83" />其值为α对应φ的序号,表项为Q<sub>i,k</sub>,i=1~n<sub>1</sub>,k=1~n<sub>2</sub>;一维索引表<img file="FDA0000721644190000024.GIF" wi="372" he="84" />的第一维为<img file="FDA0000721644190000025.GIF" wi="333" he="84" />表项为L<sub>i</sub>,i=1~n<sub>1</sub>;符号<img file="FDA0000721644190000026.GIF" wi="78" he="78" />表示对C求整数下限;将上述各表的表项全部清零;(1.3)置i=0,j=0;(1.4)判断是否a<sub>2</sub>+(n<sub>2</sub>‑1)×u<sub>2</sub>&lt;512,是则转子步骤(1.5),否则转子步骤(1.15);(1.5)判断是否i&lt;n<sub>1</sub>,是则转子步骤(1.6),否则转子步骤(1.15);(1.6)判断是否k&lt;n<sub>2</sub>,是则转子步骤(1.7),否则转子步骤(1.14);(1.7)置α=a<sub>1</sub>+i×u<sub>1</sub>;(1.8)置δ=a<sub>2</sub>+k×u<sub>2</sub>,计算潜在合并率p:p=1‑b/δ;(1.9)计算观测合并率m:m=1‑(1‑p)/(1‑p<sup>α</sup>);(1.10)计算观测请求大小φ:<img file="FDA0000721644190000027.GIF" wi="459" he="85" />判断是否φ&lt;512,是则转子步骤(1.11),否则转子步骤(1.15);(1.11)置j=φ,置M<sub>i,j</sub>=δ,置Q<sub>i,k</sub>=φ,置L<sub>j</sub>=L<sub>i</sub>+1;(1.12)置k=k+1,转子步骤(1.6);(1.13)置i=i+1,转子步骤(1.5);(1.14)初始化步骤结束,启动步骤(2)和步骤(4);(1.15)异常退出;(2)监测步骤,包括下述子步骤:(2.1)设置当前时刻t=0;(2.2)统计上游调度发出I/O请求的数量A;统计上游调度发出I/O请求大小的最大值B<sub>1</sub>与累加值B<sub>2</sub>;统计上游调度的合并中止信号数量B<sub>3</sub>;(2.3)获取时间增量Δ,置t=t+Δ,判断是否t≥T,是则转子步骤(2.4),否则转子步骤(2.2);(2.4)计算每秒上游调度发出I/O请求的数量S=A/T;计算上游调度发出I/O请求大小的平均值B<sub>4</sub>=B<sub>2</sub>/A;计算上游调度发出I/O请求中合并中止信号的频率B<sub>5</sub>=B<sub>3</sub>/T;(2.5)置观测请求大小的最大值φ<sub>1</sub>=B<sub>1</sub>,置观测请求大小的平均值φ<sub>2</sub>=B<sub>4</sub>,转预测步骤(3);(2.6)判断是否返回异常标记,是则转子步骤(2.8),否则转子步骤(2.7);(2.7)置上游调度发出I/O请求合并中止信号的频率ρ=B<sub>5</sub>;进行子步骤(2.8);(2.8)置A=0,B<sub>1</sub>=0,B<sub>2</sub>=0,B<sub>3</sub>=0,转子步骤(2.1);(3)预测步骤,包括下述子步骤:(3.1)判断是否成功获取φ<sub>1</sub>和φ<sub>2</sub>,是则转子步骤(3.2),否则转子步骤(3.15);(3.2)判断是否α&lt;a<sub>1</sub>,是则转子步骤(3.3),否则转子步骤(3.4);(3.3)置α=a<sub>1</sub>;(3.4)判断是否α&gt;a<sub>1</sub>+(n<sub>1</sub>‑1)×u<sub>1</sub>,是则转子步骤(3.5),否则转子步骤(3.6);(3.5)置α=a<sub>1</sub>+(n<sub>1</sub>‑1)×u<sub>1</sub>;(3.6)置计数器q=0,<img file="FDA0000721644190000031.GIF" wi="409" he="81" />(3.7)置k=q,判断是否φ<sub>1</sub>&gt;Q<sub>i,k</sub>且q&lt;L<sub>i</sub>,是则转子步骤(3.8),否则转子步骤(3.9);(3.8)置q=q+1,转子步骤(3.7);(3.9)判断是否q≥L<sub>i</sub>,是则转子步骤(3.15),否则转子步骤(3.10);(3.10)置j=Q<sub>i,q</sub>,置潜在请求大小的最大量预测值δ<sub>max</sub>=M<sub>i,j</sub>,置q=0;(3.11)置k=q,判断是否φ<sub>2</sub>&gt;Q<sub>i,k</sub>且q&lt;L<sub>i</sub>,是则转子步骤(3.12),否则转子步骤(3.13);(3.12)设置q=q+1,转子步骤(3.11);(3.13)判断是否q≥L<sub>i</sub>,是则转子步骤(3.15),否则转子步骤(3.14);(3.14)置潜在请求大小的平均量预测值δ<sub>ave</sub>=M<sub>i,j</sub>;预测成功,返回子步骤(2.6);(3.15)置异常标记,返回子步骤(2.6);(4)决策步骤,包括下述子步骤:(4.1)判断δ<sub>max</sub>和δ<sub>ave</sub>是否变化,是则转子步骤(4.3),否则转子步骤(4.2);(4.2)等待2~10ms,转子步骤(4.1);(4.3)判断ρ和S是否变化,是则转子步骤(4.5),否则转子步骤(4.4);(4.4)等待2~10ms,转子步骤(4.3);(4.5)计算合并中止率σ=ρ/S;(4.6)判断是否P<sub>max</sub>&gt;(δ<sub>max</sub>‑α)/δ<sub>max</sub>且P<sub>ave</sub>&gt;(δ<sub>ave</sub>‑α)/δ<sub>ave</sub>,是则转子步骤(4.7),否则转子步骤(4.10);(4.7)判断是否σ≤σ<sub>std</sub>,是则上游调度处于“过度合并”状态,转子步骤(4.8),否则转子步骤(4.10);(4.8)判断是否α&lt;α<sub>min</sub>+u<sub>1</sub>,是则转子步骤(4.1),否则进行子步骤(4.9);(4.9)置α=α–u<sub>1</sub>,转子步骤(4.1);(4.10)判断是否P<sub>max</sub>&lt;(δ<sub>max</sub>‑α)/δ<sub>max</sub>且σ&gt;σ<sub>std</sub>,是则上游调度处于“合并不足”状态,转子步骤(4.12),否则转子步骤(4.11);(4.11)判断是否P<sub>ave</sub>&lt;(δ<sub>ave</sub>‑α)/δ<sub>ave</sub>且σ&gt;σ<sub>std</sub>,是则上游调度处于“合并不足”状态,转子步骤(4.12),否则转子步骤(4.1);(4.12)判断是否α&gt;α<sub>max</sub>‑u<sub>1</sub>,是则转子步骤(4.1),否则转子步骤(4.13);(4.13)置α=α+u<sub>1</sub>,转子步骤(4.1)。
地址 430074 湖北省武汉市洪山区珞喻路1037号