数据均衡方法、装置及计算机设备与流程

文档序号:17726743发布日期:2019-05-22 02:34阅读:157来源:国知局
数据均衡方法、装置及计算机设备与流程

本申请实施例涉及数据处理技术领域,尤其涉及一种数据均衡方法、装置及计算机设备。



背景技术:

分布式文件系统利用多台计算机协同解决单台计算机所不能解决的计算以及存储等问题。分布式文件系统主要是用于数据存储,数据资源以文件形式存放在物理机器的存储设备上。

为了方便数据存储、读取以及管理,现有的分布式系统一般由主节点以及与主节点连接的各个数据节点构成,数据节点负责存储数据,主节点负责存储各个数据节点的数据分布信息。每一个数据节点分配有储存空间,通常具有一个或多个存储设备以存储数据。

分布式文件系统在使用过程中会存在存储设备利用率不均衡现象,因此需要对分布式文件系统进行数据均衡,以保证各个数据节点的存储设备利用率满足均衡要求。

现有技术中,通常是根据各个数据节点的存储设备利用率,确定待均衡的任意两个数据节点,从存储设备利用率较高的数据节点中迁移数据至存储设备利用率较低的数据节点中,之后通知主节点更新两个数据节点的数据分布信息即可,这种通过数据迁移来实现数据均衡的方式,需要占用网络带宽,但是为了不影响分布式文件系统的正常运行,数据迁移只能缓慢进行,导致数据均衡需要花费很长时间,效率较低。



技术实现要素:

本申请实施例提供一种数据均衡方法、装置及计算机设备,用以解决现有技术中数据均衡效率低的技术问题。

第一方面,本申请实施例中提供了一种数据均衡方法,包括:

基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点;

确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;

按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点之间的存储设备迁移。

第二方面,本申请实施例中提供了一种数据均衡装置,包括:

第一节点确定模块,用于基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点;

迁移确定模块,用于确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;

第一均衡模块,用于按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点之间的存储设备迁移。

第三方面,本申请实施例中提供了一种计算机设备,包括一个或多个存储组件以及一个或多个处理组件;

所述一个或多个存储组件存储一条或多条计算机程序指令;

所述一个或多个处理组件调用并执行所述一条或多条计算机程序指令,实现如下操作:

基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点;

确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;

按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点之间的存储设备迁移。

本申请实施例中,基于各个数据节点的存储设备利用率,首先确定出待均衡的第一数据节点以及第二数据节点,并确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点之间的存储设备迁移。采用设备迁移的方式快速实现了分布式文件系统的数据重分布,实现数据均衡目的,提高了数据均衡效率。

本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a示出了本申请提供的分布式文件系统的一种结构示意图;

图1b示出了本申请提供的分布式文件系统的又一种结构示意图;

图2示出了本申请提供的一种数据均衡方法一个实施例的流程图;

图3示出了本申请提供的一种数据均衡方法又一个实施例的流程图;

图4示出了本申请提供的一种数据均衡方法又一个实施例的流程图;

图5示出了本申请提供的一种数据均衡方法又一个实施例的流程图;

图6示出了本申请提供的一种数据均衡装置一个实施例的结构示意图;

图7示出了本申请提供的一种数据均衡装置又一个实施例的结构示意图;

图8示出了本申请提供的一种数据均衡装置又一个实施例的结构示意图;

图9示出了本申请提供的一种数据均衡装置又一个实施例的结构示意图;

图10示出了本申请提供的一种计算机设备一个实施例的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

本申请的技术方案主要应用于分布式文件系统中,例如hdfs(hadoopdistributedfilesystem,hadoop分布式文件系统)、nfs(networkfilesystem,网络文件系统)等等,本申请的技术方案可以适用于各种存储场景中,特别是云计算场景,分布式文件系统即为云计算系统中的云存储系统。在云计算机场景中,分布式文件系统中用于存储数据的存储设备位于云端,由网络提供存储空间,也被成为云盘或网盘。

图1a示出了分布式文件系统一种常见的结构示意图,可知,分布式文件系统可以包括主节点10以及与主节点10连接的各个数据节点20。每一个数据节点20可以由一个或多个物理机器实现,可以独立启动一个或多个操作系统进程,并分配有储存空间,通常挂载一个或多个存储设备,用于存储数据。主节点10可以由一个或多个物理机器实现,用于存储各个数据节点的数据分布信息,也被称为“元数据”或者“目录”,以表明数据与存储地址的对应关系。一个大数据通常切分为多个文件块,以文件块的形式存储在各个数据节点中,本文中所涉及的数据,一般情况下可以理解为文件块。

在云计算场景中,如图1b,示出了分布式文件系统在云计算场景中的结构示意图,分布式文件系统为云存储系统。

其中,本申请实施例中,所述的存储设备,可以是指可以读写的设备,其可以是,磁存储器,快闪存储器,磁盘或光盘等,目前通常采用磁盘进行存储数据,磁盘例如可以是ssd(solidstatedrives,固态硬盘)、hdd(mechanicalharddisk,机械硬盘)、shhd(solidstatehybriddrive,混合硬盘)等。

数据节点之间可以进行实际数据的交换,数据节点与主节点之间主要进行数据分布信息的更新。

由于一个数据节点可以具有一个或多个存储设备,数据节点的存储设备利用率可以是指其具有的各个存储设备的利用率的平均利用率,例如某一个数据节点包括存储设备a以及存储设备b两块存储设备,存储设备a的利用率为80%,存储设备b的利用率为90%,则该数据节点的存储设备利用率可以为(80%+90%)/2,即85%。

分布式系文件系统在使用过程中由于各种原因会导致数据节点之间的存储设备利用率不均衡,例如,新增加了数据节点,新产生的数据会优先写入新的数据节点,导致新老数据节点的存储设备利用率差别很大;又如,客户端行为,客户端应用写入数据有一定的倾斜行为,从而导致数据节点之间的存储设备利用率不均衡。存储设备利用率不均衡会导致某些数据节点无法继续写入数据或者无法成功写入数据,而影响分布式文件系统的正常使用,因此就需要进行数据均衡,现有技术中是通过数据节点之间进行数据迁移的方式进行数据重分布来使得数据节点之间存储设备利用率满足均衡需求,但是这种方式必然会占用网络带宽,而为了不影响分布式文件系统的正常运行,数据迁移只能缓慢进行,使得数据均衡效率较低。

为了解决数据均衡效率较低的技术问题,发明人经过一系列研究提出本申请的技术方案,在本申请实施例中,基于各个数据节点的存储设备利用率,首先确定出待均衡的第一数据节点以及第二数据节点;之后确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点的存储设备迁移。本申请采用设备迁移的方式,而无需进行数据节点之间的数据迁移,只需根据存储设备迁移信息更新数据分布信息即可以完成数据节点之间的数据重分布,无需占用网络带宽,可以快速实现分布式文件系统数据均衡的目的,提高了数据均衡效率。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图2为本申请提供的一种数据均衡方法一个实施例的流图,该方法可以包括以下几个步骤:

201:基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点。

本实施例的技术方案可以由主节点执行,也即由主节点执行数据均衡操作,当然也可以由任一个数据节点执行,各个数据节点的存储设备利用率可以通过主节点计算获得;当然也可以由与分布式文件系统独立存在的第三方设备执行,也是通过主节点获得各个数据节点的存储设备利用率。

其中,第一数据节点以及第二数据节点可以是满足待均衡条件的任意两个数据节点,为了方便描述,命名为第一数据节点以及第二数据节点。

该待均衡条件例如可以是指存储设备利用率的差值大于第一预设值,从而可以确定存储设备利用率相差较大的任意两个数据节点需要进行均衡。该第一预设值可以结合第一数据均衡需求以及均衡粒度要求来实际进行设定。比如第一预设值可以为60%,假设数据节点a的存储设备利用率为15%。数据节点b的存储设备利用率为85%,二者之间的差值为70%,大于第一预设值60%,满足待均衡条件,则数据节点a以及数据节点b可以分别作为待均衡的第一数据节点以及第二数据节点。

202:确定所述第一数据节点以及所述第二数据节点对应的存储设备迁移信息。

作为一种可选方式,可以基于第一数据均衡需求,确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息。

第一数据均衡需求可以是指任意两个数据节点的存储设备利用率相等,还可以根据不同实际场景进行设定,例如可以是指每个数据节点的存储设备利用率处于预设范围内或者任意两个数据节点的存储设备利用率差值小于第一均衡阈值等等,本申请不对此进行具体限制。

其中,该第一均衡阈值可以与该第一预设值相等或者小于该第一预设值,如果该第一均衡阈值与第一预设值相等,也即待均衡条件为任意两个数据节点的存储设备利用率的差值大于第一预设值,第一数据均衡需求为任意两个数据节点的存储设备利用率差值小于该第一预设值,待均衡条件可以为第一数据均衡需求的相反条件。需要说明的是,如果任意两个数据节点的存储设备利用率差值等于第一预设值,可以认为该任意两个数据节点满足待均衡条件或者满足该第一数据均衡需求。

存储设备迁移信息可以包括第一数据节点迁移至第二数据节点的存储设备信息,和/或第二数据节点迁移至第一数据节点的存储设备信息。

因此,可以理解的,本申请实施例中,每一个数据节点可以至少具有两个存储设备。

存储设备迁移信息可以基于第一数据均衡需求确定,使得第一数据节点以及第二数据节点进行存储设备迁移之后的各自存储设备利用率满足该第一数据均衡需求。

为了确定存储设备迁移信息,可选地,可以首先确定所述第一数据节点以及所述第二数据节点各自对应的各个存储设备;

基于第一数据均衡需求重新建立所述第一数据节点以及所述第二数据节点分别与所述各个存储设备的对应关系,以获得所述存储设备迁移信息。

例如,第一数据节点包括存储设备a以及存储设备b,存储设备a的利用率为60%。存储设备b的利用率为90%,第一数据节点的存储设备利用率为存储设备a和存储设备b的平均利用率,即为75%;

第二数据节点包括存储设备c以及存储设备d,存储设备c的利用率为10%,存储设备d的利用率为50%,第二数据节点的存储设备利用率即为30%。

假设待均衡条件为任意两个数据节点的存储设备利用率差值大于30%,第一数据节点与第二数据节点的存储设备利用率差值为75%-30%,也即45%,可知,满足该待均衡条件。

假设第一数据均衡需求为任意两个数据节点的存储设备利用率差值小于20%,基于第一数据均衡需求,可以确定两种迁移方式,第一种迁移方式可以将第一数据节点的存储设备b与第二数据节点的存储设备d进行交换;第二种迁移方式可以将第一数据节点存储设备a与第二数据节点的存储设备c进行交换,从而可以使得第一数据节点的存储设备利用率变为55%,第二数据节点的存储设备利用率变成为50%,第一数据节点与第二数据节点的存储设备利用率差值变为5%,满足该第一数据均衡需求。任选一种迁移方式,即可以获得存储设备迁移信息。

当然,作为又一种可选方式,可以按照设备迁移规则,确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;

该设备迁移规则可以为存储设备利用率高的数据节点的高利用率存储设备,与存储设备利用率低的数据节点的低利用率存储设备交换。

如上例中所述,按照设备迁移规则,第一数据节点的存储设备利用率高,且存储设备b的利用率最高;第二数据节点中的存储设备c利用率最低,则可以采用将第一数据节点的存储设备b与该第二数据节点的存储设备c进行交换的迁移方式,从而可以确定存储设备迁移信息即为第一数据节点迁移至第二数据节点的存储设备为存储设备b,以及第二数据节点迁移至第一数据节点的存储设备为存储设备c。

203:按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点的存储设备迁移。

第一数据节点以及第二数据节点如果进行存储设备迁移,需要通知主节点汇报各自的数据信息,以更新主节点中第一数据节点以及第二数据节点分别对应的数据分布信息,从而第一数据节点以及第二数据节点的存储设备迁移才结束。

如果本实施例的技术方案可以由主节点执行,主节点即可以根据存储设备迁移信息,自动更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

如果本实施例的技术方案由非主节点的其他设备执行,可以具体是按照所述存储设备迁移信息,通知所述主节点更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

其中,在一个实际应用,本申请实施例的技术方案可以应用于云计算场景中,如图1b所示,在云计算场景中,数据节点的硬件资源例如处理设备、存储设备等可以是从云计算平台租用的虚拟资源,而并非实际的物理资源,如果存储设备为租用的虚拟资源,数据节点通过维护与其对应的存储设备的对应关系,基于该对应关系,即可以对其租用的存储设备进行数据处理操作。因此,如果存储设备为租用的虚拟资源,第一数据节点以及第二数据节点的存储设备迁移,仅需要重新建立第一数据节点以及第二数据节点分别与各个存储设备的对应关系,并据此更新第一数据节点以及第二数据节点分别对应的数据分布信息即可。

而如果数据节点的硬件资源为实际的物理资源,而非虚拟资源,则作为又一个实施例,确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息之后,还可以包括:

输出存储设备迁移提示信息,以提示用户按照所述存储设备迁移信息,交换所述的所述第一数据节点以及第二数据节点的存储设备。也即可以由用户在物理机器中插拔存储设备以进行存储设备迁移。

本实施例采用设备迁移的方式,无需进行数据节点之间的数据迁移,只需根据存储设备迁移信息更新数据分布信息即可以完成数据节点之间的数据重分布,无需占用网络带宽,可以快速实现数据均衡的目的,提高了数据均衡效率。

图3为本申请提供的一种数据均衡方法又一个实施例的流图,该方法可以包括以下几个步骤:

301:基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点。

302:确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息。

303:按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点之间的存储设备迁移。

步骤301~步骤303可以参见上述实施例中的步骤201~步骤203,在此不再赘述。

304:确定按照所述存储设备迁移信息进行存储设备迁移之后,所述第一数据节点对应的各个第一存储设备以及所述第二数据节点对应的各个第二存储设备。

如果经过存储设备迁移,第一数据节点以及第二数据节点与存储设备的对应关系发生改变。

因此,可以确定进行存储设备迁移之后,第一数据节点对应的各个第一存储设备以及第二数据节点对应的各个第二存储设备。

其中,第一存储设备以及第二存储设备仅是为了从名称上区分第一数据节点以及第二数据节点分别对应的存储设备,并不表示具有顺序或递进或数量等关联关系。

305:基于所述各个第一存储设备的利用率,将所述各个第一存储设备进行数据迁移,以获得第一数据迁移信息。

306:基于所述各个第二存储设备的利用率,将所述各个第二存储设备进行数据迁移,以获得第二数据迁移信息。

由于数据节点的存储设备利用率为其具有的所有存储设备的平均利用率,数据节点的存储设备利用率均衡之后,数据节点内部各个存储设备间的利用率可能还需要进一步均衡。

例如数据节点包括存储设备a以及存储设备b,存储设备a的利用率为20%,存储设备b的利用率为100%,可知,数据节点的内部数据分布并不均衡。

因此可以分别对第一数据节点以及第二数据节点进行内部均衡,也即在内部存储设备之间进行数据迁移。

可选地,可以基于所述各个第一存储设备的利用率以及内部均衡需求,将所述各个第一存储设备进行数据迁移,以获得所述第一数据节点的第一数据迁移信息。

可以基于所述各个第二存储设备的利用率以及内部均衡需求,将所述各个第二存储设备进行数据迁移,以获得所述第二数据节点的第二数据迁移信息。

该内部均衡需求例如可以是每一个存储设备的利用率相等,或者每一个存储设备的利用率处于内部均衡范围内。

如上例中,数据节点的存储设备a的利用率为20%,存储设备b的利用率为100%,内部均衡需求如果是每一个存储设备的利用率相等,则可以执行将存储设备b的数据迁移至存储设备a,使得存储设备a和存储设备b的利用率均达到60%。

307:按照所述第一数据迁移信息、所述第二数据迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

第一数据节点以及第二数据节点进行存储设备迁移之后,如果还进行了内部均衡,则可以按照所述第一数据节点的第一数据迁移信息以及所述第二数据节点的第二数据迁移信息,继续更新各自的数据分布信息。

本实施例中,通过设备迁移方式可以快速实现数据节点之间的存储设备均衡,在设备迁移的基础上,重新调整各个数据节点的内部的存储设备的数据分布,进行内部均衡,进一步保证各个数据节点的数据均衡。

图4为本申请提供的一种数据均衡方法又一个实施例的流图,该方法可以包括以下几个步骤:

401:基于各个数据节点的存储设备利用率,判断是否存在满足待均衡条件的第一数据节点以及第二数据节点,如果是,执行步骤402,如果否,执行步骤404。

该待均衡条件例如可以是存储设备利用率差值大于第一预设值。

402:确定所述第一数据节点以及第二数据节点的存储设备迁移信息。

可选地,可以基于第一数据均衡需求来确定存储设备迁移信息。当然也可以基于设备迁移规则确定存储设备迁移信息,具体可参见上述实施例中的描述。

如果待均衡条件与第一数据均衡需求互为相反的两个条件,判断是否存在满足待均衡条件的第一数据节点以及第二数据节点也可以具体是判断是否存在不满足第一数据均衡需求的第一数据节点以及第二数据节点。也即如果不存在满足待均衡条件的数据节点,可以表明各个数据节点均满足所述第一数据均衡需求。

403:按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点的存储设备迁移。

可选地,还可以确定按照所述存储设备迁移信息进行存储设备迁移之后,所述第一数据节点对应的各个第一存储设备以及所述第二数据节点对应的各个第二存储设备;

基于所述各个第一存储设备的利用率,将所述各个第一存储设备进行数据迁移,以获得第一数据迁移信息;

基于所述各个第二存储设备的利用率,将所述各个第二存储设备进行数据迁移,以获得第二数据迁移信息;

从而可以按照所述第一数据迁移信息以及所述第二数据迁移信息,继续更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

404:基于各个数据节点的存储设备利用率,确定满足待迁移条件的第三数据节点以及第四数据节点。

405:基于第二数据均衡需求,在所述第三数据节点以及所述第四数据节点之间进行数据迁移,以获得第三数据迁移信息。

其中,该待迁移条件例如可以是存储设备利用率差值大于第二预设值,其中所述第二预设值可以小于所述第一预设值。

406:基于所述第三数据迁移信息,更新所述第三数据节点以及所述第四数据节点的数据分布信息。

其中,如果不存在满足待迁移条件的任意两个数据节点,即可以结束流程。

步骤404~步骤406为现有技术中的数据均衡方式,如果不存在满足待均衡条件的第一数据节点以及第二数据节点,即可以查找满足待迁移条件的任意两个数据节点,为了方便描述上的区分,命名为第三数据节点以及第四数据节点。

该第二数据均衡需求例如可以是存储设备利用率差值小于第二均衡阈值;

其中,该第二均衡阈值可以小于或等于该第一均衡阈值。

此外,该第二均衡阈值可以等于该第二预设值或者小于该第二预设值,如果该第二均衡阈值等于该第二预设值,也即待迁移条件与第二数据均衡需求可以是互为相反的两个条件,判断是否存在满足待迁移条件的第三数据节点以及第四数据节点也可以具体是判断是否存在不满足第二数据均衡需求的第三数据节点以及第四数据节点。

基于第二数据均衡需求,可以进行数据迁移并获得第三数据迁移信息,第三数据迁移信息中包括迁移数据标识,从而可以基于第三数据迁移信息,更新数据分布信息。

其中,数据迁移方式与现有技术相同,在此不再赘述。

本实施例中,采用设备迁移方式快速实现数据节点之间的数据均衡,对于均满足第一数据均衡需求的数据节点或者不存待均衡的数据节点时,可以采用数据迁移方式进一步对数据节点进行数据均衡,将数据均衡过程分为两个阶段,从而可以首先利用设备迁移方式进行粗粒度的数据均衡,再利用数据迁移方式进一步进行细粒度的数据均衡,由于已经通过数据迁移方式进行了粗粒度的数据均衡,细粒度的数据均衡仅需要针对部分数据节点中部分数据,因此不需要占用过多网络带宽,因此也不会占用过多时间,在保证数据均衡效率的同时,还保证了数据均衡的精细度。

图5为本申请提供的一种数据均衡方法又一个实施例的流图,该方法可以包括以下几个步骤:

501:基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点。

502:确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息。

可选地,可以基于第一数据均衡需求或者基于设备迁移规则,确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息。

503:按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点的存储设备迁移。

可选地,还可以确定按照所述存储设备迁移信息进行存储设备迁移之后,所述第一数据节点对应的各个第一存储设备以及所述第二数据节点对应的各个第二存储设备;

基于所述各个第一存储设备的利用率,将所述各个第一存储设备进行数据迁移,以获得第一数据迁移信息;

基于所述各个第二存储设备的利用率,将所述各个第二存储设备进行数据迁移,以获得第二数据迁移信息;

从而可以具体是按照所述第一数据迁移信息以及所述第二数据迁移信息,继续更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

504:判断按照所述存储设备迁移信息进行存储设备迁移之后的所述第一数据节点以及所述第二数据节点是否满足第二数据均衡需求,如果否,执行步骤505;如果是返回步骤501继续执行。

505:在所述第一数据节点以及所述第二数据节点之间进行数据迁移,以获得第四数据迁移信息。

506:基于所述第四数据迁移信息,更新所述第一数据节点以及所述第二数据节点的数据分布信息。

本实施例中,如果进行存储设备迁移之后的第一数据节点以及所述第二数据节点不满足该第一数据均衡需求,可以采用数据迁移方式进一步的进行数据均衡,由于第一数据节点以及第二数据节点已进行存储设备迁移,因此数据迁移所需要的迁移的数据会比较小,不会占用较多网络资源以及时间,从而既保证了数据均衡效率的同时,还可以保证数据均衡的精细度。

在实际应用中,目前的分布式文件系统可以采用磁盘存储数据,如果存储设备为磁盘,存储设备利用率即为磁盘利用率,存储设备迁移也即为磁盘迁移,因此通过磁盘迁移以进行数据重分布,即可以实现数据均衡目的,可以保证数据均衡效率。

图6为本申请提供的一种数据均衡装置一个实施例的结构示意图,该数据均衡装置可以配置于主节点、数据节点或者独立与分布式文件系统的第三方设备;

该装置可以包括:

第一节点确定模块601,用于基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点。

可选地,该第一节点确定模块601可以具体用于:

确定所述第一数据节点以及所述第二数据节点各自对应的各个存储设备;

基于第一数据均衡需求,重新建立所述第一数据节点以及所述第二数据节点分别与所述各个存储设备的对应关系,以获得所述存储设备迁移信息。

可选地,该第一节点确定模块601可以具体用于:

基于各个数据节点的存储设备利用率,确定满足待均衡条件的第一数据节点以及第二数据节点。

迁移确定模块602,用于确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息。

第一均衡模块603,用于按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点的存储设备迁移。

本实施例采用设备迁移的方式,而无需进行数据节点之间的数据迁移,只需根据存储设备迁移信息更新数据分布信息即可以完成数据节点之间的数据重分布,无需占用网络带宽,可以快速实现数据均衡的目的,提高了数据均衡效率。

图7为本申请提供的一种数据均衡装置又一个实施例的结构示意图,与图6所示装置不同之处,该装置还可以包括:

设备确定模块701,用于确定按照所述存储设备迁移信息进行存储设备迁移之后,所述第一数据节点对应的各个第一存储设备以及所述第二数据节点对应的各个第二存储设备;

第一信息确定模块702,用于基于所述各个第一存储设备的利用率,将所述各个第一存储设备进行数据迁移,以获得第一数据迁移信息;

第二信息确定模块703,用于基于所述各个第二存储设备的利用率,将所述各个第二存储设备进行数据迁移,以获得第二数据迁移信息;

第二均衡模块704,用于按照所述第一数据迁移信息以及所述第二数据迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

其中,第一节点确定模块601具体可以是基于各个数据节点的存储设备利用率,确定满足待均衡条件的第一数据节点以及第二数据节点。

如果不存在满足待均衡条件的第一数据节点以及第二数据节点,则可以继续采用数据迁移方式对分布式文件系统进行数据均衡,因此,作为又一个实施例,如图8中所示,与图6所示装置不同之处在于,该装置还可以包括:

第二节点确定模块801,用于如果不存在满足待均衡条件的第一数据节点以及第二数据节点,基于各个数据节点的存储设备利用率,确定满足待迁移条件的第三数据节点以及第四数据节点;

第一迁移模块802,用于基于第二数据均衡需求,在所述第三数据节点以及所述第四数据节点之间进行数据迁移,以获得第三数据迁移信息;

第三均衡模块803,用于基于所述第三数据迁移信息,更新所述第三数据节点以及所述第四数据节点的数据分布信息。

其中,所述第一节点确定模块601可以具体用于基于各个数据节点的存储设备利用率,确定存储设备利用率差值大于第一预设值的第一数据节点以及第二数据节点。

第二节点确定模块801可以具体用于如果不存在存储设备利用率差值大于所述第一预设值的任意两个数据节点,基于各个数据节点的存储设备利用率,确定存储设备利用率差值大于第二预设值的第三数据节点以及第四数据节点;其中所述第二预设值小于所述第一预设值。

因此,本实施例数据均衡过程分为两个阶段,从而可以首先利用设备迁移方式进行粗粒度的数据均衡,而利用数据迁移进一步进行细粒度的数据均衡,由于已经通过设备迁移方式进行了粗粒度的数据均衡,细粒度的数据均衡仅需要针对部分数据节点中部分数据,因此不需要占用过多网络带宽,也不会占用过多时间,在保证数据均衡效率的同时,还保证了数据均衡的精细度。

此外,如果进行存储设备迁移之后的第一数据节点以及所述第二数据节点不满足该第一数据均衡需求,可以采用数据迁移方式进一步的进行数据均衡,因此,如图9所示,作为又一个实施例,与图5所示装置不同之处在于,该装置还可以包括:

判断模块901,判断进行存储设备迁移之后的所述第一数据节点以及所述第二数据节点是否满足第二数据均衡需求;

第二迁移模块902,用于如果所述第一数据节点以及所述第二数据节点不满足所述第二数据均衡需求,在所述第一数据节点以及所述第二数据节点之间进行数据迁移,以获得第四数据迁移信息;

第四均衡模块903,用于基于所述第四数据迁移信息,更新所述第一数据节点以及所述第二数据节点的数据分布信息。

本实施例中,如果进行存储设备迁移之后的第一数据节点以及所述第二数据节点不满足该第一数据均衡需求,采用数据迁移方式进一步的进行数据均衡,由于第一数据节点以及第二数据节点已进行设备迁移,因此数据迁移所需要的迁移的数据会比较小,不会占用较多网络资源以及时间,从而既保证了数据均衡效率的同时,还可以保证数据均衡的精细度。

其中,在一个实际应用,本申请实施例的技术方案可以应用于云计算场景中,如图1b所示,数据节点的硬件资源例如处理设备、存储设备等是租用的虚拟资源,第一数据节点以及所述第二数据节点的存储设备迁移,仅需要重新建立第一数据节点以及第二数据节点分别与各个存储设备的对应关系,并据此更新第一数据节点以及第二数据节点分别对应的数据分布信息即可。

而如果数据节点的硬件资源为实际物理资源,则在一些实施例中,该装置还可以包括:

输出模块,用于输出存储设备迁移提示信息;所述存储设备迁移提示信息用于提示用户按照所述存储设备迁移信息交换所述第一数据节点以及所述第二数据节点中的存储设备。也即可以由用户在物理机器中插拔存储设备以实现存储设备迁移。

在一个可能的设计中,上述图6~图9所示的任一数据均衡装置可以实现为一个计算机设备,该计算机设备可以为分布式文件系统中的主节点或者数据节点,也可以是独立于分布式文件系统的第三方设备;

如图10所示,该计算机设备可以包括一个或多个存储组件1001以及一个或多个处理组件1002;

所述一个或多个存储组件1001存储一条或多条计算机程序指令;

所述一个或多个处理组件1002调用并执行所述一条或多条计算机程序指令,实现如下操作:

基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点;

确定所述第一数据节点以及所述第二数据节点的存储设备迁移信息;

按照所述存储设备迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息,以完成所述第一数据节点以及所述第二数据节点的存储设备迁移。

可选地,所述一个或多个处理组件1002确定第一数据节点以及所述第二数据节点的存储设备迁移信息可以具体是:

确定所述第一数据节点以及所述第二数据节点各自对应的各个存储设备;

基于第一数据均衡需求,重新建立所述第一数据节点以及所述第二数据节点分别与所述各个存储设备的对应关系,以获得所述存储设备迁移信息。

可选地,所述一个或多个处理组件1002还用于实现如下操作::

确定按照所述存储设备迁移信息进行存储设备迁移之后,所述第一数据节点对应的各个第一存储设备以及所述第二数据节点对应的各个第二存储设备;

基于所述各个第一存储设备的利用率,将所述各个第一存储设备进行数据迁移,以获得第一数据迁移信息;

基于所述各个第二存储设备的利用率,将所述各个第二存储设备进行数据迁移,以获得第二数据迁移信息;

按照所所述第一数据迁移信息以及所述第二数据迁移信息,更新所述第一数据节点以及所述第二数据节点分别对应的数据分布信息。

可选地,所述一个或多个处理组件1002基于各个数据节点的存储设备利用率,确定待均衡的第一数据节点以及第二数据节点可以是:

基于各个数据节点的存储设备利用率,确定满足待均衡条件的第一数据节点以及第二数据节点。

可选地,所述一个或多个处理组件1002还用于实现如下操作:如果不存在满足待均衡条件的任意两个数据节点,基于各个数据节点的存储设备利用率,确定满足待迁移条件的第三数据节点以及第四数据节点;

基于第二数据均衡需求,在所述第三数据节点以及所述第四数据节点之间进行数据迁移,以获得第三数据迁移信息;

基于所述第三数据迁移信息,更新所述第三数据节点以及所述第四数据节点的数据分布信息。

可选地,所述一个或多个处理组件1002还用于实现如下操作:判断进行存储设备迁移之后的所述第一数据节点以及所述第二数据节点是否满足第二数据均衡需求;

如果所述第一数据节点以及所述第二数据节点不满足所述第二数据均衡需求,在所述第一数据节点以及所述第二数据节点之间进行数据迁移,以获得第四数据迁移信息;

基于所述第四数据迁移信息,更新所述第一数据节点以及所述第二数据节点的数据分布信息。

其中,所述待均衡条件可以是指存储设备利用率差值大于第一预设值,所述待迁移条件可以是指存储设备利用率差值大于第二预设值。

可选地,所述一个或多个处理组件1002还用于实现如下操作:输出存储设备迁移提示信息;所述存储设备迁移提示信息用于提示用户按照所述存储设备迁移信息迁移所述第一数据节点以及所述第二数据节点中的存储设备。

其中,上述存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

在该计算机设备为数据节点时,该一个或多个存储组件1001中即包括存储数据的所述存储设备。

上述处理组件可以为cpu,当然也可以为应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件。

需要说明的是,该计算机设备还可以包括其它必要的一些组件,例如总线、输入或输出接口、电源组件、输出组件等。

此外,本申请实施例还提供了一种计算机存储介质,该计算机存储介质存储一条或多条计算机指令,该一条或多条计算机指令可以使得计算机执行时实现上述任一实施例所述的数据均衡方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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