一种云存储服务系统及方法与流程

文档序号:16482159发布日期:2019-01-04 22:46阅读:219来源:国知局
一种云存储服务系统及方法与流程

本发明涉及网络存储技术领域,特别是涉及一种云存储服务系统及方法。



背景技术:

个人云存储服务系统由存储节点、块服务器、任务调度器及相关网络环境组成。用户在客户端的请求首先会到达任务调度器,任务调度器依据一定的调度策略,为任务分配一台块服务器,其前端与用户设备直接交互响应用户请求,后端与存储节点交互执行数据的存取,从而达到响应请求,负载均衡的目的。

现有技术中,应用最为广泛的为轮询调度算法(Round-Robin),它将外部请求按顺序轮流分配到集群中的块服务器上,它假设所有服务器的处理能力相同,均等地对待每一台服务器,而不管服务器实际的连接状态与系统负载。这种算法只在任务请求平稳到达时效果较好,其他状态下容易导致负载不平衡而影响任务的时延以及块服务器集群的吞吐量。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种云存储服务系统及方法,解决现有技术中云存储服务中资源调配效率低的问题。

为实现上述目标及其他相关目标,本发明提供一种云存储服务系统,包括:任务调度器,用于接收来自客户端的请求并建立对应任务;根据所述任务的任务类型,结合基于任务量队列长度的二次随机选择算法为所述任务选择块服务器,以通过所述块服务器提供云存储服务。

可选的,所述基于任务量队列长度的二次随机选择算法包括:从块服务器集群中随机选两台块服务器,比较所述两台块服务器上该任务类型的任务的任务量队列长度,并把所建立的任务分配至其中队列长度较短的块服务器。

可选的,所述任务量为完成某一任务类型的任务需要的系统时间片的个数,所述任务量队列长度为排队等待的相同类型任务的任务量之和。

可选的,所述任务调度器在调度某一任务类型的任务时,获得两个块服务器的相同类型任务的任务量队列长度。

可选的,在单台块服务器进行资源分配时按照最大加权调度机制进行。

为实现上述目标及其他相关目标,本发明提供一种云存储服务方法,包括:接收来自客户端的请求并建立对应任务;根据所述任务的任务类型结合基于任务量队列长度的二次随机选择算法为所述任务选择块服务器,以通过所述块服务器提供云存储服务。

可选的,所述基于任务量队列长度的二次随机选择算法包括:从块服务器集群中随机选两台块服务器,比较所述两台块服务器上该任务类型的任务的任务量队列长度,并把所建立的任务分配至其中队列长度较短的块服务器。

可选的,所述任务量为完成某一任务类型的任务需要的系统时间片的个数,所述任务量队列长度为排队等待的相同类型任务的任务量之和。

可选的,所述的云存储服务方法,包括:在调度某一任务类型的任务时,获得两个块服务器的相同类型任务的任务量队列长度。

可选的,在单台块服务器进行资源分配时按照最大加权调度机制进行。

如上所述,本发明提供一种云存储服务系统及方法,任务调度器接收来自客户端的请求并建立对应任务;根据所述任务的任务类型,结合基于任务量队列长度的二次随机选择算法为所述任务选择块服务器,以通过所述块服务器提供云存储服务;本发明解决计算机云存储系统流量调度问题,显著降低块服务器的最大负载,从而获得服务器间的负载均衡,系统的高吞吐量以及较低的任务响应时延。

附图说明

图1显示为本发明一实施例中的云存储服务系统的结构示意图。

图2显示为本发明一实施例中的云存储服务方法的流程示意图。

图3显示为本发明一实施例中和现有算法对比的80%负荷下任务量队列长度随时间变化趋势示意图。

图4显示为本发明一实施例中和现有算法对比的100%负荷下任务量队列长度随时间变化趋势示意图。

图5显示为本发明一实施例中和现有算法对比的平均时延随负荷量变化趋势示意图。

元件标号说明

1 云存储服务系统

11 客户端

12 块服务器

13 任务调度器

S1~S2 方法步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示,本发明提供一种云存储服务系统1,包括:任务调度器13,用于接收来自客户端11的请求并建立对应任务;根据所述任务的任务类型,结合基于任务量队列长度的二次随机选择算法为所述任务选择块服务器12,以通过所述块服务器12提供云存储服务。在一实施例中,所述任务调度器13接收客户端11的请求是随机的。

在一实施例中,所述基于任务量队列长度的二次随机选择算法包括:从块服务器12集群中随机选两台块服务器12,比较所述两台块服务器12上该任务类型的任务的任务量队列长度,并把所建立的任务分配至其中队列长度较短的块服务器12;所述任务量为完成某一任务类型的任务需要的系统1时间片的个数;优选的,所述任务量队列长度为排队等待的相同类型任务的任务量之和;优选的,所述任务调度器13在调度某一任务类型的任务时,获得两个块服务器12的相同类型任务的任务量队列长度;优选的,在单台块服务器12进行资源分配时按照最大加权调度机制进行;其中所述任务类型与所述请求所需求的带宽相关联。

举一具体实施例来说明,设集群中共有N个块服务器,X个任务调度器,用户上传文件的任务请求所需带宽分为M种任务类型。其中,设第i个块服务器的带宽容量为Ri,任务类型为m的任务所需的带宽大小为rm;块服务器是时间分片的系统,当一个时间片开始时,回收已完成任务释放的可用带宽资源,按照等待队列中的任务,配置可用带宽。定义一个请求的任务量为其所需时间片的个数。例如一个文件上传请求,文件长度为Fj,所要求带宽rm,那么其需要的服务时间片长度可以表示为也称为请求j的任务量。定义Wm(t)为t时刻到来m类型请求的任务量,则这里的rm是t时刻到来的m类型任务的集合。

定义在t时刻,块服务器所处理的m类型请求个数为Dim(t)。可知对于时间分片系统1,(t,t+1]时间段内离开系统1的m类型请求的任务量为此外,为了满足块服务器i的带宽限制,有

令Qim(t)表示t时刻集群中块服务器i上m类型请求的任务量,Wim(t)表示t时刻m类型到达的块服务器i的任务量,Dim(t)表示t时刻m类型任务离开块服务器i的任务量。因此在t+1时刻,块服务器i的m类型请求的任务量为:

Qim(t+1)=[Qim(t)+Wim(t)-Dim(t)]+。 (1)

本发明所提出的云存储上传文件请求的二次随机选择算法例如以下所示:

输入:请求信息req

输出:响应请求的块服务器

/*索引为i的块服务器type-m(表示任务类型为m)任务队列长度为Qim*/

随机到达X个任务调度器中的一个:

1、while(true)do

2、if timeout

3、随机从调度装置所管理的块服务器中选择两台块服务器:

4、if Qam>Qbm

5、将type-m请求引导至块服务器b

6、else

7、将type-m请求引导至块服务器a

8、设置定时器

块服务器:

1while(true)do

2if timeout

3配置块服务器i的可用带宽,也就是找到一种带宽的划分方案Ni*(t)使得从类型1至类型M,其队列长度与该类型任务被调度的个数的乘积之和最大,即并且满足块服务器i的资源容量限制,Nim表示将在块服务器i上调度类型m任务的个数,Nim(t-)表示上一时刻在服务器上得到响应且需要继续占用资源的类型m的任务个数,二值的差别N即为新调度的任务的个数。此分配方案称为最大加权调度机制。

4更新块服务器的任务量队列长度信息,即调度之后此时块服务器i的m类型任务的队列长度变为Qim(t+1)=[Qim(t)+Wim(t)-Dim(t)]+

5设置定时器

即以一具体实施例进一步加以说明:

块服务器集群包括10个节点(块服务器),编号为1至10,两个任务调度器A,B。每个块服务器的带宽容量均为100Mbps。均衡器调度一次的时间间隔为0.01秒,块服务器的时间片长度为0.1秒。以下述5条请求记录的表格为例,第一列代表请求发生的时间(单位秒),第二列代表文件长度(单位Mbits),第三列代表请求所需带宽的类型(即0~M中的类型):设类型0表示所需带宽为10.0Mbps,类型1表示所需带宽为1.0Mbps,类型2表示所需带宽为0.1Mbps;

按照以下流程进行:

第一条记录随机到达任务调度器A,等待调度;第二条记录随机到达任务调度器A,等待调度;第三条记录随机到达任务调度器B,等待调度;

任务调度器在0.01秒时,调度任务:

任务调度器A:随机选择编号为1,2的节点,比较两节点类型0的任务量队列长度,均为0,分配给节点1;随机选编号为2,5的块服务器节点,比较队列长度,分配给2,此时节点2上类型1的队列长度为80。

任务调度器B:随机选择编号为7,8的节点,比较该类型队列长度,均为0,将记录3分配给节点7;

此时,节点1上类型0的队列长度为12(12Mbits的任务在10Mbps的带宽上传输,需要1.2秒,正好12个时间片),节点2上类型1的队列长度为80,节点7上类型2的队列长度为50;其他未提到的节点某任务类型队列长度均为0;

第四条记录到达任务调度器A,随机选择编号2,3的节点,由于节点2上类型1的队列长度为80,而节点3该类型长度为0,因此将此请求分配至节点3,此时节点3类型1的长度为50;

在0.1秒时,块服务器节点时间片开始,以节点1为例,将100Mbps的可用带宽分配10Mbps给第一条任务;其他节点按各自情况进行分配;

第5条请求到达任务调度器B,分配给节点8;在0.2秒时,得到带宽资源。

而假设采用的是传统round-robin算法,则会在0.01秒时,任务调度器A把请求分配至节点1,任务调度器B把请求分配至节点2,在0.02秒时,任务调度器A把请求分配至节点2,任务调度器B把请求分配至节点7,在0.03秒时,任务调度器A把请求分配至节点4,任务调度器B把请求分配至节点8,依次类推。

如图2所示,本发明提供一种云存储服务方法,其技术原理同上述实施例大致相同,因此在不冲突的情况下,上述实施例中的技术特征可通用于方法实施例,故对相同的技术细节不再重复赘述;所述方法包括:

步骤S1:接收来自客户端的请求并建立对应任务;

步骤S2:根据所述任务的任务类型结合基于任务量队列长度的二次随机选择算法为所述任务选择块服务器,以通过所述块服务器提供云存储服务。

在一实施例中,所述基于任务量队列长度的二次随机选择算法包括:从块服务器集群中随机选两台块服务器,比较所述两台块服务器上该任务类型的任务的任务量队列长度,并把所建立的任务分配至其中队列长度较短的块服务器。

在一实施例中,所述任务量为完成某一任务类型的任务需要的系统时间片的个数,所述任务量队列长度为排队等待的相同类型任务的任务量之和。

在一实施例中,所述的云存储服务方法,包括:在调度某一任务类型的任务时,获得两个块服务器的相同类型任务的任务量队列长度。

在一实施例中,在单台块服务器进行资源分配时按照最大加权调度机制进行。

如图3至图5所示,以下再提供实际实验数据,将本发明而“二次随机选择算法”与传统round-robin算法进行性能比较。

实验配置如下:

设集群中有10个任务调度器,500个块服务器节点,每个节点的带宽容量为100Mbps,也即系统上传带宽总量为50Gbps。上传请求的带宽配置3种类型,分别为10Mbps,1.0Mbps,0.1Mbps。块服务器系统时间片长度为0.1秒,任务调度器时间片长度设为0.01秒,采用随机生成的数据作为任务请求日志,在日志中,每条任务记录包含请求时间,请求类型,文件长度三个参量,仿真时间长度为600秒。下面从请求队列长度以及任务平均时延两个方面比较二者性能差异。

1.队列长度量比对

令三种上传请求的到达率分别服从均值为700次/秒,30000次/秒,30000次/秒的泊松分布。三种类型任务的上传请求分别设成均值为1.25MB,0.125MB,12.5KB的帕累托分布,从而上传任务总量以40Gbps的平均速率到达系统,系统平均负载较轻,为80%(40Gbps/50Gbps)。此时任务量队列长度随时间变化趋势如图3所示,可计算知,Round-Robin算法取得的任务队列平均长度为二次随机选择算法的1.14倍。可见,当系统负荷较轻时,3种调度策略取得的系统性能基本一致。

当系统负荷为100%时,请求队列长度对数值变化趋势如图4;从图4中可见,采用传统的Round-Robin算法,系统中的请求队列长度增长非常快,系统已不堪重负。而采用本发明设计的二次随机选择算法,虽然队列长度也在增长,但是速度显著低于Round-Robin算法。

2.时延变化比对

如图5所示,为任务速度从40Gbps到50Gbps变化时,在整个仿真过程中所有任务的平均时延,可以看出,本发明所提出的二次随机选择算法调度策略,平均时延显著好于传统Round-Robin算法。

综上,本发明相对于传统的Round-Robin算法能够取得更好的性能是因为任务调度器在选择服务器需要获知两台块服务器的负载信息,并且将请求调度至负载低的块服务器上,从而降低任务等待时间,使块服务器间负载更加均衡,提高集群吞吐量。

综上所述,本发明提供一种云存储服务系统及方法,任务调度器接收来自客户端的请求并建立对应任务;根据所述任务的任务类型,结合基于任务量队列长度的二次随机选择算法为所述任务选择块服务器,以通过所述块服务器提供云存储服务;本发明解决计算机云存储系统流量调度问题,显著降低块服务器的最大负载,从而获得块服务器间的负载均衡,系统的高吞吐量以及较低的任务响应时延。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1