一种对象数据服务器读写请求的调度方法技术

技术编号:7551798 阅读:186 留言:0更新日期:2012-07-14 00:09
一种对象数据服务器读写请求的的调度方法,属于计算机存储领域,解决现有Linux系统自带软件不能保证存储设备负载均衡的问题,从而进一步提高对象数据服务器的可用性和性能。本发明专利技术包括:初始化步骤、负载检测步骤、负载统计步骤、判断迁移条件步骤、对象数据块迁移步骤和读写请求调度步骤。本发明专利技术通过在多设备间的请求调度,多设备的并行性,同时通过数据迁移实现设备间的负载均衡,提高存储系统可用性和性能;本发明专利技术在软件层实现磁盘阵列成本很低,面对异构存储设备优势明显,同时可以使用附网存储系统(NAS)架构的存储设备,提高了可扩展性。

【技术实现步骤摘要】

本专利技术属于计算机存储领域,具体涉及一种对象数据服务器读写请求的的调度方法。
技术介绍
随着互联网业务量的增加、访问量和数据流量的快速增长,存储系统各个核心部分的处理的强度也相应增大,使得单一存储设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,势必造成现有资源的浪费,而且再面临下一次业务量的提升,又将导致再一次硬件升级的高额成本投入,性能再卓越的设备也不能满足当前业务量要求。 所以现在的存储系统需要面对性能、容量不同的异构存储设备。在对象存储系统中,对象数据服务器实际上是部署在一台完整的服务器上,其后端直接或者通过网络挂载许多存储设备,如高端磁盘,固态盘(SSD)、附网存储系统(NAS), 存储区域网(SAN),这些存储设备的能力有强有弱,存储的容量也有大有小。对象数据服务器计算功能强大,但网络的吞吐量远远大于存储设备的吞吐量,所以对象数据服务器处理读写请求的性能瓶颈往往存在于存储设备上;处理上层的读写请求,现有的一种做法是对象数据服务器使用磁盘阵列(RAID) 控制器将多个存储设备配成高性能的磁盘阵列,这就是硬件RAID的解决方法;还有一种做法是使用Linux系统自带的软件,将多个存储设备配成磁盘阵列,成为软RAID机制。硬件 RAID的方法可以提高设备的性能和可靠性,但是它需要存储设备之间的性能和容量相当, 无法配备异构的存储设备,而且往往价格昂贵。Linux系统自带的软RAID机制,可以便捷的解决不同性能、容量存储设备的调度,提高对象数据服务器的性能,但是它不能根据上层 IO请求选择合适的存储设备进行服务,也不能在多个存储设备之间进行负载的迁移,不能保证存储设备的负载均衡。本专利技术依据Linux系统,其中存储设备,包括磁盘、固态盘(SSD)以及非本机的附网存储系统(NAQ、存储区域网(SAN),其中,将非本机的附网存储系统(NAQ、存储区域网 (SAN)定义为虚拟设备。设备挂载路径指的是存储设备挂载(mount)时,使用者指定的在Iinux操作系统上的路径,它与存储设备一一对应,通过对设备挂载路径的读写来实现对存储设备的读写操作。设备标示符是存储设备的唯一标识;在对象存储系统中,对象标示符(OID)为64 位的整数,用于唯一标识一个对象;对象标示符由客户端产生,并在请求的时候,作为参数传给对象数据服务器;对象数据服务器在处理读写请求的时候,由对象标示符对应的对象会被写在由设备标示符标识的存储设备上。
技术实现思路
本专利技术提供一种对象数据服务器读写请求的的调度方法,解决现有Linux系统自带软件不能保证存储设备负载均衡的问题,从而进一步提高对象数据服务器的可用性和性能。本专利技术的一种对象数据服务器读写请求的的调度方法,包括下述步骤A.初始化步骤,包括以下过程(Al)设置设备列表、设备负载表、小磁盘组表、中磁盘组表、大磁盘组表、容量利用率升序表、源设备队列、目标设备队列、元数据信息表;设备列表表项包括设备标示符及其对应的设备挂载路径,设备负载表表项包括设备标示符及其对应的读写速率、容量、可用容量和设备利用率因子;大、中、小磁盘组表表项均包括磁盘组标示符及其对应的设备标示符、读写速率、容量、可用容量和设备利用率因子;容量利用率升序表表项包括设备标示符及其对应的可用容量和设备利用率因子;源设备队列表项和目标设备队列表项包括设备标示符;元数据信息表表项包括对象标示符及其对应的设备标示符;按照各存储设备的可用容量大小,将存储设备分别归入大、中、小磁盘组;磁盘组标示符用于标示大、中、小磁盘组的类别;(A2)除设备列表外,将上述其他各表的全部表项清空;用所有设备标示符及其对应的设备挂载路径初始化设备列表;B.负载检测步骤,包括以下过程(Bi).以文件系统标准测试程序iozone测试各存储设备的最大读写带宽,然后求 N次测试的平均值,作为存储设备的最大读写带宽Wi ;N^ 3;(B2).使用Linux系统调用应用程序接口(API)获取各存储设备负载信息,包括读写速率、容量和可用容量;(B3).计算各存储设备利用率因子设备利用率因子=设备读写速率/该存储设备的最大读写带宽Wi ;(B4).对各存储设备的设备利用率因子进行判断设备利用率因子< S1,延时、秒后,进行过程(B5) ; S1S设备利用率因子< δ2, 延时、秒后,进行过程(BQ ;设备利用率因子彡δ 2,延时、秒后,进行过程(BQ ;0< S1 < δ2 < 1,利用率因子下阈值δ i = 30% 50%,利用率因子上阈值δ2 = 60% 80%, 0 <、< t2 < t3,、= 3 5 秒,t2 = 6 10 秒,t3 = 10 15 秒;(B5).再次使用Linux系统调用应用程序接口(API),获取本存储设备的负载息,并将存储设备负载信息及相应的设备利用率因子保存在设备负载表中,转过程(B2);C.负载统计步骤,包括以下过程(Cl).从设备负载表中获取各存储设备的负载信息和设备利用率因子;(C2).按照各存储设备的可用容量,对存储设备进行分组可用容量< a,分到小磁盘组表;a <可用容量< b,分到中磁盘组表;可用容量> b,分到大磁盘组表;‘、.- 其中,容量下阈值a=,容量上阈值b=Ni为存储设备可用容量,m为存储设备个数,符号L」表示对符号内的数值向下取整;(C3).对大、中、小磁盘组表中各存储设备,按照设备利用率因子从小到大排序,转过程(Cl);D.判断迁移条件步骤,包括以下过程(Dl).判断系统繁忙状态使用Iinux系统调用,获取对象数据服务器的CPU利用率U,判断是否U > T,是则认为对象数据服务器处于繁忙状态,延时t4秒后,转过程(Dl), 否则转过程(D2);其中,40%彡利用率阈值T彡80%,t4 = 30 60秒;(D2).从设备负载表中获取各存储设备的负载信息,计算各存储设备容量利用率 Z -N,其中,4为存储设备容量;(D3).按照存储设备容量利用率从小到大对存储设备排序,保存在容量利用率升序表中,置循环变量η = 1,进行过程(D4);(D4).计算存储设备容量利用率差θ θ =Τω_η+1-Τη; \为容量利用率升序表中的第i个元素的设备容量利用率;判断是否θ < W,是则转过程(D6);否则将容量利用率升序表中的第m-η+Ι个存储设备的设备标示符放到目标设备队列中,将第η个存储设备的设备标示符放到源设备队列中,转过程(D5) ;20%彡迁移阈值W彡80% ;(D5)置 η = η+1,转过程(D4);(D6).判断源设备队列和目标设备队列是否均不为空,是则转步骤E ;否则转过程 (Dl);Ε.对象数据块迁移步骤,包括以下过程(El).从源设备队列中取出队首设备标示符e,从目标设备队列中取出队首设备标示符f,源设备队列和目标设备队列中剩余设备标示符依序递升为各自所在队列的队首设备标示符;(E2).将设备标示符e对应存储设备上大小为y的任一对象数据块d迁移到设备标示符f对应的存储设备上;其中,y = (Ze-Ne-Zf+Nf)/2,Ze,Zf分别为设备标示符e、f对应的存储设备容量、Ne、 Nf分别为设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王芳冯丹施展谭支鹏陈奇李楚
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术