专利名称:一种i/o负载均衡方法及i/o服务器的制作方法
技术领域:
本发明涉及数据存储技术领域,尤其涉及一种I/O负载均衡方法及I/O服务器。
技术背景
随着数据信息量的急速增长,集群文件系统、集群存储在高性能计算、互联网、视频领域得到广泛的应用。集群存储是将数据分布到集群中各节点的存储方式,可以为非结构化数据提供具备极高I/O带宽和灵活可扩展性的存储解决方案。
在集群存储中,随着I/O服务器数量的大量增加,会造成严重的网络延时和负载不均衡现象,降低集群存储系统的I/O服务质量,降低存储资源的利用率。为了充分利用集群存储现有的资源,进一步提高并行I/O访问能力,在I/O服务器间实现负载均衡就显得尤其重要。
现有技术中,大多数集群存储中负载多变化且无规律,通常采用动态负载均衡方法,具体的,由一个集中服务器实时监测并收集每台I/O服务器的负载数据,然后根据收集到的数据,通过算法来决策如何进行负载的迁移,以实现当前时刻各I/O服务器间的负载均衡。但是,当存储系统规模很大时,服务器间的通信量会很大,若整个系统负载很高,更会出现明显的网络通信延时现象,而网络通信延时会影响到集中服务器收集负载数据,进而会延迟负载均衡决策的做出。例如,如果当前时刻有A、B两个I/O服务器负载高,动态负载均衡决定迁移A、B的负载,但由于网络通信延时造成了负载均衡策略的延迟,待执行该负载均衡策略进行负载迁移时,A、B的负载可能已经降低,在下一次负载均衡时,可能又要把刚从A、B迁移出去的负载再迁移回来。因此,现有技术中的动态负载均衡方法在出现网络通信延时时,会产生I/O服务器间负载的频繁迁移。发明内容
本发明实施例提供一种I/O负载均衡方法及I/O服务器,能够在出现网络通信延时时,减少I/O服务器间负载的频繁迁移。
为了解决上述技术问题,本发明实施例的技术方案如下
本发明实施例提供了一种I/O负载均衡方法,所述方法应用一 I/O服务器中,以至少两台所述I/O服务器构成一存储系统,包括
在第一时刻下根据一预测算法计算出第二时刻的第二负载值;
获取所述存储系统在所述第二时刻下的负载平均值;
当所述第二负载值大于所述负载平均值时,将待迁移的数据文件迁移至目标I/O 服务器,所述目标I/O服务器在所述第二时刻下的负载值小于所述第二负载值。
进一步,还包括
获得所述第一时刻下的第一负载值;
当所述第二负载值大于所述第一负载值时,再执行所述获取所述存储系统在所述第二时刻下的负载平均值的步骤。
进一步,还包括
获取所述存储系统在所述第二时刻下的负载均衡因子;
当所述负载均衡因子小于负载均衡因子阈值时,再执行所述将待迁移的数据文件迁移至目标I/O服务器的步骤。
进一步,所述I/O服务器获取所在存储系统在所述第二时刻下的负载平均值,包括
向所述存储系统的其它I/O服务器发送收集所述第二时刻下的负载值的请求;
接收所述其它I/O服务器反馈的在所述第二时刻下的负载值;
根据所述其它I/O服务器在所述第二时刻下的负载值及所述第二负载值计算所述存储系统在所述第二时刻下的负载平均值。
进一步,所述将待迁移的数据文件迁移至目标I/O服务器,包括
选择待迁移的数据文件;
向所述目标I/O服务器发送迁移请求;
接收所述目标I/O服务器返回的迁移响应;
将所述待迁移的数据文件发送至所述目标I/O服务器,并删除本地的所述待迁移的数据文件。
进一步,所述选择待迁移的数据文件,包括
计算存储的每一个数据文件的负载值与数据量的比值;
选择比值最大的预定数量的数据文件作为待迁移的数据文件。
进一步,还包括
根据一预定策略在所述存储系统的其他I/O服务器确定一所述目标I/O服务器;
所述预定策略为所述目标I/O服务器在所述第二时刻下的负载值与所述待迁移的数据文件的负载值之和不大于所述I/O服务器在所述第二时刻下的负载值。
本发明实施例还提供了一种I/O服务器,应用于至少两台所述I/O服务器构成的一存储系统中,包括
负载预测单元,用于在第一时刻下根据一预测算法计算出第二时刻的第二负载值;
负载获取单元,用于获取所述存储系统在所述第二时刻下的负载平均值;
负载迁移单元,用于当所述第二负载值大于所述负载平均值时,将待迁移的数据文件迁移至目标I/O服务器,所述目标I/O服务器在所述第二时刻下的负载值小于所述第二负载值。
进一步,还包括
负载计算单元,用于计算第一时刻下的第一负载值;
所述负载获取单元,还用于当所述第二负载值大于所述第一负载值时,再获取所述存储系统在所述第二时刻下的负载平均值。
进一步,还包括
均衡因子获取单元,用于获取所述存储系统在所述第二时刻下的负载均衡因子;
所述负载迁移单元,还用于当所述负载均衡因子小于负载均衡因子阈值时,再将待迁移的数据文件迁移至目标I/O服务器。5
进一步,所述负载获取单元包括
负载请求子单元,用于向所述存储系统的其它I/O服务器发送收集所述第二时刻下的负载值的请求;
负载接收子单元,用于接收所述其它I/O服务器反馈的在所述第二时刻下的负载值;
计算子单元,用于根据所述其它I/O服务器在所述第二时刻下的负载值及所述第二负载值计算所述存储系统在所述第二时刻下的负载平均值。
进一步,所述负载迁移单元包括
选择子单元,用于选择待迁移的数据文件;
迁移请求子单元,用于向所述目标I/O服务器发送迁移请求;
响应接收子单元,用于接收所述目标I/O服务器发送的迁移响应;
迁移子单元,用于将所述待迁移的数据文件发送至所述目标I/O服务器,并删除本地的所述待迁移的数据文件。
进一步,所述选择子单元包括
比值计算子单元,用于计算存储的每一个数据文件的负载值与数据量的比值;
文件选择子单元,用于选择比值最大的预定数量的数据文件作为待迁移的数据文件。
进一步,所述负载迁移单元还包括
确定子单元,用于根据一预定策略在所述存储系统的其他I/O服务器确定一所述目标I/O服务器;所述预定策略为所述目标I/O服务器在所述第二时刻下的负载值与所述待迁移的数据文件的负载值之和不大于所述I/O服务器在所述第二时刻下的负载值。
本发明实施例中I/O服务器预测下一时刻的负载值,并获取系统的负载平均值, 进而进行负载值的比较,当比较结果满足条件时,再发起负载迁移,以满足下一时刻系统的负载均衡。本发明实施例方法通过基于下一时刻的负载值确定负载均衡策略,实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种I/O负载均衡方法的流程图2是本发明实施例另一种I/O负载均衡方法的流程图3是本发明实施例另一种I/O负载均衡方法中负载迁移的方法流程图4是本发明实施例一种I/O服务器的结构示意图5是本发明实施例另一种I/O服务器的结构示意图6是本发明实施例一种存储系统的结构示意图。
具体实施方式
为了使本领域技术人员能进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,附图仅提供参考与说明,并非用来限制本发明。
现有技术中的动态负载均衡方法由于需要根据当前时刻收集的I/O服务器的负载数据,对当前时刻各I/O服务器间的负载进行均衡,所以,一旦网络通信延迟就会导致获得负载数据的延后,进而会延迟负载均衡策略的做出,由于负载的动态变化,该负载均衡策略可能已经不适用于延时后各I/O服务器的负载情况,再执行该负载均衡策略则很可能会造成不准确的负载迁移,甚至会加重系统的负载不均衡,进而会产生负载的频繁迁移。
基于此,本发明实施例提出了一种I/O负载均衡方法及I/O服务器,I/O服务器预测下一时刻的负载值,并获取系统的负载平均值,进而进行各负载值的比较,当比较结果满足条件时,再发起负载迁移,以满足下一时刻系统的负载均衡。本发明实施例方法通过基于下一时刻的负载值确定负载均衡策略,实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移。
下面结合附图和实施例,对本发明的技术方案进行描述。
参见图1,为本发明实施例一种I/O负载均衡方法的流程图。
该方法应用于一 I/O服务器中,且至少两台I/O服务器构成一存储系统,该方法可以包括
步骤101,I/O服务器在第一时刻下根据预测算法计算第二时刻下的第二负载值。
在本实施例中,I/O服务器根据基于一定的预测模型获得的预测算法对自己在下一时刻(第二时刻)可能的负载值进行预测,也即该第二负载值为该I/O服务器的预测负载值,并非在第二时刻下的真实值。其中,第一时刻与第二时刻仅为区分前后的两个时间点,并非特指具体某一时间点。两时刻之间的时间间隔可以根据需要进行设定,例如若系统负载情况变化较快,则设定时间间隔较短,若负载情况变化较慢,则可设定时间间隔较长等。预测算法可以是依据现有的模型和算法,例如线性预测自相关(Levinson-Durbin)算法、赤池信息准则、自回归AR预测模型等,此处不再赘述。负载值可以是指I/O服务器的IO 吞吐量等,具体可以根据要实现负载均衡的参数进行设定。
I/O服务器在执行本步骤时可以是实时的,也可以是周期唤醒的也即周期性执行本步骤,该周期也可以根据需要设定,此处不再赘述。
步骤102,获取存储系统在第二时刻下的负载平均值。
I/O服务器在第一时刻下获取第二时刻下的负载值后,进一步获取第二时刻下该 I/O服务器所在存储系统的负载平均值,具体的获取方法可以是该I/O服务器向其它I/O服务器请求第二时刻下的负载值后计算获得,也可以是由其它I/O服务器直接发送的,具体请参见后续实施例的描述。该第二时刻下的负载平均值也为预测值。
步骤103,当第二负载值大于负载平均值时,将待迁移的数据文件迁移至目标I/O 服务器。
当I/O服务器的第二负载值大于存储系统的负载平均值时,说明该I/O服务器在第二时刻的负载情况相对于存储系统内的其它I/O服务器来说,将处于高负载状态,要在第二时刻达到存储系统的负载均衡,需要将该I/O服务器内的部分数据文件迁移至负载相7对较低的I/O服务器中。此时,该I/O服务器将本地待迁移的数据文件迁移至目标I/O服务器中,该目标I/O服务器在第二时刻下的负载值要小于第二负载值。
当然在本步骤中,还可以增加其它的限定条件,以在实现第二时刻存储系统负载均衡的前提下,尽量减少负载迁移。具体请参见后续实施例。
本实施例中,存储系统中的每台I/O服务器都运行上述均衡方法,这种独立分布式的结构可以避免传统集中式管理方法的瓶颈和单点故障的问题;该负载均衡算法可以减少I/O服务器间的交互依赖,尽可能让工作量在本服务器上,只有满足一定条件的服务器才需要进一步收集必要的信息。本发明实施例通过基于下一时刻的负载值确定负载均衡策略,实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移。
参见图2,为本发明实施例另一种I/O负载均衡方法的流程图。
该方法可以包括
步骤201,I/O服务器计算第一时刻下的第一负载值a。
I/O服务器可以采用现有技术的计算方法,计算第一时刻下的负载值a,该第一时刻也即当前时刻。
步骤202,I/O服务器在第一时刻下根据预测算法计算第二时刻下的第二负载值 b。
然后根据预测算法预测第二时刻下的负载值b。本步骤与前述实施例中的步骤 101类似,此处不再赘述。
步骤203,当b大于a时,获取I/O服务器所在存储系统在第二时刻下的负载平均值Co
当I/O服务器在第二时刻下的负载值b大于第一时刻下的负载值a时,说明该I/O 服务器的负载将增加,然后再获取该I/O服务器所在存储系统的第二时刻下的负载平均值 c,以确定是否需要进行负载迁移以实现存储系统的负载均衡。
如果b小于等于C,说明存储系统内其它I/O服务器也存在负载升高的情况,且比本I/O服务器负载升高更多,本I/O服务器的负载情况仍处于平均水平或平均水平以下,则本I/O服务器无需进行负载迁移。如果b大于C,说明本I/O服务器负载升高较为严重,转入下一步骤进一步判断是否需要进行负载迁移。
其中,存储系统的第二时刻下的负载平均值c可以通过以下步骤获得
该I/O服务器向所在存储系统的其它I/O服务器发送收集第二时刻下的负载值的请求;
该I/O服务器接收其它I/O服务器发送的在第二时刻下的负载值;
该I/O服务器根据其它I/O服务器在第二时刻下的负载值及本I/O服务器的第二负载值,计算存储系统在第二时刻下的负载平均值。
在其它实施例中,也可以是该I/O服务器将自己在第二时刻下的负载值发送至其它某一 I/O服务器,由其它I/O服务器计算获得平均值后,发送至该I/O服务器。
步骤204,I/O服务器获取存储系统在第二时刻下的负载均衡因子。
在本实施例中,I/O服务器还可以进一步获取存储系统在第二时刻下的负载均衡因子,该负载均衡因子能够体现存储系统在某个时刻整个系统负载均衡的程度。若该负载均衡因子小于预设的负载均衡因子阈值,则说明存储系统的负载已经失衡,需要进行负载迁移以实现负载均衡。
其中,该负载均衡因子阈值为衡量该存储系统负载均衡的下限,小于该下限说明负载失衡,具体数值可以根据需要进行设定,此处不作限定。
I/O服务器获取存储系统负载均衡因子的方法可以是基于存储系统的负载平均值 c计算获得的,具体的可以是存储系统的负载平均值占存储系统最大负载值的百分比,该最大负载值是根据存储系统的存储性能设定的。该负载均衡因子越大,说明存储系统的负载越均衡。负载均衡的计算方法要求简单有效,尽可能不要增加高负载下I/O服务器的额外负载。加入负载均衡因子后作为迁移的参考条件后,能够提高负载迁移决策的有效度,避免一些无效负载迁移的动作。
步骤205,当b大于c,且存储系统的负载均衡因子小于负载均衡因子阈值时,I/O 服务器将待迁移的数据文件迁移至目标I/O服务器。
当该I/O服务器第二时刻的负载值大于存储系统的负载平均值,且存储系统的负载均衡因子小于负载均衡因子阈值,则说明该I/O服务器需要进行负载迁移,以降低自身的负载值,以均衡存储系统的负载。显然,该I/O服务器进行负载迁移的目标I/O服务器的负载值至少需要小于该I/O服务器的负载值。
其中,具体的负载迁移过程可以如图3所示,包括
步骤301,I/O服务器选择待迁移的数据文件。
在本实施例中,I/O服务器决定进行负载迁移后,需要选择待迁移的数据文件,该选择过程可以是首先,计算存储的每一个数据文件的负载值与数据量的比值。然后,选择比值最大的一定数量的数据文件作为待迁移的数据文件。
其中,数据文件负载值与数据量比值越大,说明该数据文件在该I/O服务器中占的负载值越大,可以优先选择迁移该数据文件,则可以实现迁移少量该类数据文件即可快速降低本I/O服务器的负载值。选择比值最大的一定数量的数据文件作为待迁移数据文件,其中,该一定数量可以是预先约定的,在本实施例中,可以选择比值最大的前十个数据文件作为待迁移的数据文件。
步骤302,I/O服务器根据一预定策略在存储系统的其他I/O服务器确定一目标I/ 0服务器。
在本实施例中,该预定策略可以是
目标I/O服务器在第二时刻下的负载值与待迁移的数据文件的负载值之和不大于该I/O服务器在第二时刻下的负载值;或者,目标I/O服务器在第二时刻下的负载值与待迁移的数据文件的负载值之和不大于该I/O服务器在第二时刻下的负载值与待迁移的数据文件的负载值之差。当然,在其它实施例中,还可以根据存储系统的负载情况设定其它选择目标I/O服务器的条件,此处不再一一列举。
采用这样的策略是为了判断当某个负载从高负载的I/O服务器迁移到低负载目标I/O服务器时,目标I/O服务器的负载不能高于I/O服务器第二时刻的负载值,这样才能消除高负载I/O服务器,有效均衡整个存储系统的负载分布情况。
本步骤与前一步骤可以同时进行或调整顺序。
步骤303,I/O服务器向目标I/O服务器发送迁移请求。
在该I/O服务器选定待迁移的数据文件和目标I/O服务器之后,即获取待迁移的数据文件的属性,并向目标I/O服务器发送迁移请求,该请求中可以包括该待迁移数据文件的属性。
目标I/O服务器接收到迁移请求后,可以根据该请求中包含的待迁移数据文件的属性,在本地建立新的文件属性,然后向I/O服务器发送迁移响应。
步骤304,I/O服务器接收目标I/O服务器反馈的迁移响应。
步骤305,I/O服务器将待迁移的数据文件发送至目标I/O服务器,并删除本地的待迁移的数据文件。
I/O服务器接收到迁移响应后,即可将待迁移数据文件发送至目标I/O服务器,然后将本地的该数据文件删除。迁移完成后,I/O服务器还可以进一步通知元数据服务器以更新该数据文件的分布信息。
本发明实施例方法实现了对下一时刻系统负载的均衡,而且加入负载均衡因子后,能够提高负载迁移决策的有效度,避免一些无效负载迁移的动作。所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移;另一方面,通过比较各负载值对是否进行负载均衡的情况进行筛选,更减少了负载的频繁迁移。
参见图4,为本发明实施例一种I/O服务器的结构示意图。
本实施例中,该I/O服务器应用于至少由两台I/O服务器构成的存储系统中,该I/ 0服务器可以包括
负载预测单元401,用于在第一时刻下根据一预测算法计算出第二时刻的第二负载值。
负载获取单元402,用于获取存储系统在第二时刻下的负载平均值。
负载迁移单元403,用于当第二负载值大于负载平均值时,将待迁移的数据文件迁移至目标I/O服务器,目标I/O服务器在第二时刻下的负载值小于第二负载值。
负载预测单元401基于一定的预测算法对自己在下一时刻可能的负载值进行预测。预测算法可以是依据现有的模型和/或算法,例如线性预测自相关(Levinson-Durbin) 算法、赤池信息准则、自回归AR预测模型等,此处不再赘述。负载获取单元402进一步获取第二时刻下该I/O服务器所在存储系统的负载平均值,具体的获取方法可以是该I/O服务器向其它I/O服务器请求第二时刻下的负载值后计算获得,也可以是由其它I/O服务器直接发送的。当I/O服务器的第二负载值大于存储系统的负载平均值时,说明该I/O服务器在第二时刻的负载情况相对于存储系统内的其它I/O服务器来说,处于高负载状态,要在第二时刻达到存储系统的负载均衡,需要将该I/O服务器内的部分数据文件迁移至负载相对较低的I/O服务器中。此时,负载迁移单元403将本地待迁移的数据文件迁移至目标I/ 0服务器中,实现存储系统负载的均衡。
本发明实施例通过上述单元实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移。
参见图5,为本发明实施例另一种I/O服务器的结构示意图。
该I/O服务器除了可以包括负载预测单元501、负载获取单元502、负载迁移单元 503之外,还可以包括负载计算单元504和均衡因子获取单元505。
其中,负载预测单元501与前述实施例中的负载预测单元401类似,此处不再赘述。
负载计算单元504,用于计算第一时刻下的第一负载值。
负载获取单元502,还可以用于当第二负载值大于第一负载值时,再获取存储系统在第二时刻下的负载平均值。
均衡因子获取单元505,用于获取存储系统在第二时刻下的负载均衡因子。
负载迁移单元503,还可以用于当负载均衡因子小于负载均衡因子阈值时,再将待迁移的数据文件迁移至目标I/O服务器。
具体的,负载获取单元502又可以包括
负载请求子单元5021,用于向存储系统的其它I/O服务器发送收集第二时刻下的负载值的请求。
负载接收子单元5022,用于接收其它I/O服务器反馈的在所述第二时刻下的负载值。
计算子单元5023,用于根据其它I/O服务器在第二时刻下的负载值及第二负载值计算存储系统在第二时刻下的负载平均值。
负载迁移单元503又可以包括
选择子单元5031,用于选择待迁移的数据文件。选择子单元5031还可以包括比值计算子单元和文件选择子单元。其中,比值计算子单元用于计算存储的每一个数据文件的负载值与数据量的比值;文件选择子单元用于选择比值最大的预定数量的数据文件作为待迁移的数据文件。
确定子单元5032,用于根据一预定策略在存储系统的其他I/O服务器确定一目标 I/O服务器;预定策略可以为目标I/O服务器在第二时刻下的负载值与待迁移的数据文件的负载值之和不大于I/O服务器在第二时刻下的负载值。
迁移请求子单元5033,用于向目标I/O服务器发送迁移请求。
响应接收子单元5034,用于接收目标I/O服务器发送的迁移响应。
迁移子单元5035,用于将待迁移的数据文件发送至目标I/O服务器,并删除本地的待迁移的数据文件。
负载预测单元501预测获得I/O服务器在第二时刻下的第二负载值,负载计算单元504计算获得I/O服务器在第一时刻下的第一负载值之后,通过比较,若第二负载值大于第一负载值,则负载获取单元502通过负载请求子单元5021、负载接收子单元5022和计算子单元5023,获得该I/O服务器所在的存储系统在第二时刻下的负载平均值,均衡因子获取单元505获取存储系统在第二时刻下的负载均衡因子。当该I/O服务器的第二负载值大于负载平均值,且存储系统的负载均衡因子小于预设的阈值时,负载迁移单元503通过选择子单元5031、确定子单元5032、迁移请求子单元5033、响应接收子单元5034和迁移子单元5035将待迁移数据文件迁移至目标I/O服务器。该目标I/O服务器在第二时刻下的负载值与待迁移的数据文件的负载值之和不大于I/O该服务器在第二时刻下的负载值。
本发明实施例通过上述单元基于下一时刻的负载值确定负载均衡策略,实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移;另一方面,通过多个单元比较各负载值对是否进行负载均衡的情况进行筛选,更减少了负载的频繁迁移。
参见图6,为本发明实施例一种存储系统的结构示意图。
该存储系统中包括至少两台I/O服务器,本实施例以三台I/O服务器601、602、603 为例。
每台I/O服务器均用于在第一时刻下根据一预测算法计算出第二时刻的第二负载值;获取存储系统在第二时刻下的负载平均值;当第二负载值大于负载平均值时,将待迁移的数据文件迁移至目标I/O服务器,目标I/O服务器在第二时刻下的负载值小于第二负载值。
每台I/O服务器还可以首先获得第一时刻下的第一负载值,当第二负载值大于第一负载值时,再获取存储系统在第二时刻下的负载平均值的步骤。每台I/O服务器也还可以首先获取存储系统在第二时刻下的负载均衡因子,当负载均衡因子小于负载均衡因子阈值时,再将待迁移的数据文件迁移至目标I/O服务器的步骤。
在本实施例中,I/O服务器601、602、603分别计算自己当前时刻(也即第一时刻) 下的负载值,并根据预测算法计算第二时刻下的负载值,然后分别请求其它I/O服务器第二时刻的负载值,计算获得存储系统的负载平均值,并计算获得第二时刻下存储系统的负载均衡因子。假设I/O服务器601第二时刻下的负载值大于第一时刻下的负载值,且大于负载平均值,而且第二时刻下存储系统的负载均衡因子小于负载均衡因子阈值,则I/O服务器601在本地的数据文件中选择负载值与数据量的比值最大的数据文件作为待迁移的数据文件,在I/O服务器602、603中选择第二时刻下的负载值与待迁移的数据文件的负载值之和不大于I/O服务器601在第二时刻下的负载值的一个,作为目标I/O服务器,例如为 I/O服务器602。I/O服务器601向I/O服务器602发送迁移请求,待接收到I/O服务器602 返回的迁移响应后,将待迁移的数据文件发送至I/O服务器602,并删除本地待迁移的数据文件,完成数据文件从高负载的I/O服务器601向低负载的I/O服务器602的迁移,从而实现存储系统内的负载均衡。
本实施例中,存储系统通过在每台I/O服务器上都运行上述均衡方法,这种独立分布式的结构可以避免传统集中式管理方法的瓶颈和单点故障的问题;该负载均衡算法可以减少I/O服务器间的交互信赖,尽可能让工作量在本服务器上,只有满足一定条件的服务器才需要进一步收集必要的信息。本发明实施例通过每台I/O服务器基于下一时刻的负载值确定负载均衡策略,实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移。
以上装置中各单元、子单元及系统的具体实现过程请参照前述方法实施例中的相应描述,此处不再赘述。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
权利要求
1.一种I/O负载均衡方法,所述方法应用一 I/O服务器中,以至少两台所述I/O服务器构成一存储系统,其特征在于,包括在第一时刻下根据一预测算法计算出第二时刻的第二负载值; 获取所述存储系统在所述第二时刻下的负载平均值;当所述第二负载值大于所述负载平均值时,将待迁移的数据文件迁移至目标I/O服务器,所述目标I/O服务器在所述第二时刻下的负载值小于所述第二负载值。
2.根据权利要求1所述的方法,其特征在于,还包括 获得所述第一时刻下的第一负载值;当所述第二负载值大于所述第一负载值时,再执行所述获取所述存储系统在所述第二时刻下的负载平均值的步骤。
3.根据权利要求1所述的方法,其特征在于,还包括 获取所述存储系统在所述第二时刻下的负载均衡因子;当所述负载均衡因子小于负载均衡因子阈值时,再执行所述将待迁移的数据文件迁移至目标I/O服务器的步骤。
4.根据权利要求1所述的方法,其特征在于,所述I/O服务器获取所在存储系统在所述第二时刻下的负载平均值,包括向所述存储系统的其它I/O服务器发送收集所述第二时刻下的负载值的请求; 接收所述其它I/O服务器反馈的在所述第二时刻下的负载值; 根据所述其它I/O服务器在所述第二时刻下的负载值及所述第二负载值计算所述存储系统在所述第二时刻下的负载平均值。
5.根据权利要求1所述的方法,其特征在于,所述将待迁移的数据文件迁移至目标I/O 服务器,包括选择待迁移的数据文件;向所述目标I/O服务器发送迁移请求;接收所述目标I/O服务器返回的迁移响应;将所述待迁移的数据文件发送至所述目标I/O服务器,并删除本地的所述待迁移的数据文件。
6.根据权利要求5所述的方法,其特征在于,所述选择待迁移的数据文件,包括 计算存储的每一个数据文件的负载值与数据量的比值;选择比值最大的预定数量的数据文件作为待迁移的数据文件。
7.根据权利要求6所述的方法,其特征在于,还包括根据一预定策略在所述存储系统的其他I/O服务器确定一所述目标I/O服务器; 所述预定策略为所述目标I/O服务器在所述第二时刻下的负载值与所述待迁移的数据文件的负载值之和不大于所述I/O服务器在所述第二时刻下的负载值。
8.一种I/O服务器,应用于至少两台所述I/O服务器构成的一存储系统中,其特征在于,包括负载预测单元,用于在第一时刻下根据一预测算法计算出第二时刻的第二负载值; 负载获取单元,用于获取所述存储系统在所述第二时刻下的负载平均值; 负载迁移单元,用于当所述第二负载值大于所述负载平均值时,将待迁移的数据文件迁移至目标I/O服务器,所述目标I/O服务器在所述第二时刻下的负载值小于所述第二负载值。
9.根据权利要求8所述的I/O服务器,其特征在于,还包括 负载计算单元,用于计算第一时刻下的第一负载值;所述负载获取单元,还用于当所述第二负载值大于所述第一负载值时,再获取所述存储系统在所述第二时刻下的负载平均值。
10.根据权利要求8所述的I/O服务器,其特征在于,还包括均衡因子获取单元,用于获取所述存储系统在所述第二时刻下的负载均衡因子; 所述负载迁移单元,还用于当所述负载均衡因子小于负载均衡因子阈值时,再将待迁移的数据文件迁移至目标I/O服务器。
11.根据权利要求8所述的I/O服务器,其特征在于,所述负载获取单元包括负载请求子单元,用于向所述存储系统的其它I/O服务器发送收集所述第二时刻下的负载值的请求;负载接收子单元,用于接收所述其它I/O服务器反馈的在所述第二时刻下的负载值; 计算子单元,用于根据所述其它I/O服务器在所述第二时刻下的负载值及所述第二负载值计算所述存储系统在所述第二时刻下的负载平均值。
12.根据权利要求8所述的I/O服务器,其特征在于,所述负载迁移单元包括 选择子单元,用于选择待迁移的数据文件;迁移请求子单元,用于向所述目标I/O服务器发送迁移请求; 响应接收子单元,用于接收所述目标I/O服务器发送的迁移响应; 迁移子单元,用于将所述待迁移的数据文件发送至所述目标I/O服务器,并删除本地的所述待迁移的数据文件。
13.根据权利要求12所述的I/O服务器,其特征在于,所述选择子单元包括 比值计算子单元,用于计算存储的每一个数据文件的负载值与数据量的比值;文件选择子单元,用于选择比值最大的预定数量的数据文件作为待迁移的数据文件。
14.根据权利要求13所述的I/O服务器,其特征在于,所述负载迁移单元还包括确定子单元,用于根据一预定策略在所述存储系统的其他I/O服务器确定一所述目标 I/O服务器;所述预定策略为所述目标I/O服务器在所述第二时刻下的负载值与所述待迁移的数据文件的负载值之和不大于所述I/O服务器在所述第二时刻下的负载值。
全文摘要
本发明提供一种I/O负载均衡方法及I/O服务器。I/O负载均衡方法应用一I/O服务器中,以至少两台所述I/O服务器构成一存储系统,包括在第一时刻下根据一预测算法计算出第二时刻的第二负载值;获取所述存储系统在所述第二时刻下的负载平均值;当所述第二负载值大于所述负载平均值时,将待迁移的数据文件迁移至目标I/O服务器,所述目标I/O服务器在所述第二时刻下的负载值小于所述第二负载值。本发明实施例方法通过基于下一时刻的负载值确定负载均衡策略,实现了对下一时刻系统负载的均衡,所以即使当前时刻存在网络通信延时,也不会对下一时刻系统的负载均衡产生较大影响,从而减少了因为网络通信延时而造成的负载频繁迁移。
文档编号H04L29/08GK102480502SQ201010562558
公开日2012年5月30日 申请日期2010年11月26日 优先权日2010年11月26日
发明者潘勇 申请人:联想(北京)有限公司