数据迁移方法及装置制造方法

文档序号:7771653阅读:124来源:国知局
数据迁移方法及装置制造方法
【专利摘要】本发明公开了一种数据迁移方法及装置,应用于分布式存储系统。其中,该方法包括:第一服务器节点接收第二服务器节点发送的第一数据迁移请求,或者向第二服务器节点方式第二数据迁移请求,其中,第一服务器节点的负荷大于第二服务器节点;第一服务器节点通过数据复制管道将需要迁移的数据发送给第二服务器节点,其中,数据复制管道为第一服务器节点与第二服务器节点之间的数据传输链路;在数据迁移过程结束前的预定时间间隔内,第一服务器节点暂停向客户端提供数据访问服务。通过本发明,可以使分布式存储系统运行地更加高效。
【专利说明】数据迁移方法及装置

【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种数据迁移方法及装置。

【背景技术】
[0002]云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualizat1n)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物,其旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统。分布式存储是云计算范畴中的一个领域,其作用是提供海量数据的分布式存储服务以及高速读写访问的能力。
[0003]分布式存储系统是由管理节点、若干服务器节点和客户端互相连接构成的。管理节点负责监控系统的运行情况,并提供自动或人工调整各个服务器节点数据负荷的功能;服务器节点负责在内存和磁盘中存储和管理数据,并在多个服务器节点存储数据的多个副本,用来保证部分服务器节点宕机后,整个系统仍能使用其他副本数据继续为应用提供正常服务;客户端可以对服务器节点做数据的写入、读取、更新、删除等操作。
[0004]一般来说写入的数据不可能只保存在单个服务器节点上,而是在多台服务器节点上保存同一个数据的副本,互为备份。数据由键(Key)和值(Value)构成,其中,Key相当于数据的索引,Value是Key所代表的数据内容。逻辑上Key和Value是一对一的关系。
[0005]对某一个特定数据的Key,逻辑上可以根据一定的优先级把服务器集群中某几台服务器节点看作一个主节点服务器和多个副本服务器,不同的Key可能有不同的主节点服务器和副本服务器。主节点服务器负责处理来自客户端的请求,并将数据写入其他几个副本服务器。
[0006]在分布式存储系统中,可以按KEY的值域范围将数据切分成若干分区,然后将分区范围内的数据存储在不同的服务器节点上。这种数据分布方式,能够为范围查询提供很好的性能,但同时也有弊端,由于KEY本身没有规律,很难将KEY的值域范围切分均匀,因此会出现一些服务器节点的数据分区内数据量很大,而另一些服务器节点的数据量很小。出现这种情况后,就需要将数据量大的数据分区进行分裂,然后将分裂出的新分区的数据迁移到数据量小的服务器节点,最终达到所有的服务器节点负荷均衡。数据分裂迁移是一个复杂而耗时的过程,并且要保证数据分裂迁移期间系统的数据访问服务不能中断,这是个难度较高的技术问题。
[0007]针对相关技术中以数据分裂方式对服务器节点负荷进行均衡的过程过于复杂和费时的问题,目如尚未提出有效的解决方案。


【发明内容】

[0008]本发明提供了一种数据迁移方法及装置,以至少解决上述问题。
[0009]根据本发明的一个方面,提供了一种数据迁移方法,应用于分布式存储系统,包括:第一服务器节点接收第二服务器节点发送的第一数据迁移请求,或者向第二服务器节点发送第二数据迁移请求,其中,第一服务器节点的负荷大于第二服务器节点;第一服务器节点通过数据复制管道将需要迁移的数据发送给第二服务器节点,其中,数据复制管道为第一服务器节点与第二服务器节点之间的数据传输链路;在数据迁移过程结束前的预定时间间隔内,第一服务器节点暂停向客户端提供数据访问服务。
[0010]优选地,当数据迁移过程结束时,包括:第一服务器节点向分布式存储系统内除第一服务器节点和第二服务器节点之外的其他服务器节点以及客户端发送通知消息,其中,通知消息用于指示迁移到第二服务器节点的数据已经生效。
[0011]优选地,在第一服务器节点接收第二服务器节点发送的第一数据迁移请求之前,包括:第一服务器节点接收来自管理节点的数据分区分裂消息。
[0012]优选地,在第一服务器节点通过数据复制管道将需要迁移的数据发送给第二服务器节点之前,还包括:第一服务器节点根据第一服务器节点与第二服务器节点之间的网络信道建立数据复制管道;第一服务器节点遍历本地的所有数据分区中的数据,确定需要迁移的数据。
[0013]优选地,第一数据迁移请求是第二服务器节点在接收到来自管理节点的接收迁移数据消息后向第一服务器节点发送的。
[0014]优选地,迁移成功的数据被设置存储于第二服务器节点中新建的数据分区中。
[0015]根据本发明的另一方面,提供了一种数据迁移装置,位于分布式存储系统的第一服务器节点,包括:处理模块,用于接收第二服务器节点发送的第一数据迁移请求,其中,第一服务器节点的负荷大于第二服务器节点;第一发送模块,用于通过数据复制管道将需要迁移的数据发送给第二服务器节点,其中,数据复制管道为第一服务器节点与第二服务器节点之间的数据传输链路;暂停模块,用于在数据迁移过程结束前的预定时间间隔内,暂停向客户端提供数据访问服务。
[0016]优选地,该装置还包括:第二发送模块,用于当数据迁移过程结束时,向分布式存储系统内除第一服务器节点和第二服务器节点之外的其他服务器节点以及客户端发送通知消息,其中,通知消息用于指示迁移到第二服务器节点的数据已经生效。
[0017]优选地,该装置还包括:接收模块,用于在处理模块接收数据迁移请求之前,接收来自管理节点的数据分区分裂消息。
[0018]优选地,该装置还包括:建立模块,连接于处理模块,用于根据第一服务器节点与第二服务器节点之间的网络信道建立数据复制管道;确定模块,连接于建立模块,用于遍历本地的所有数据分区中的数据,确定需要迁移的数据。
[0019]优选地,第一数据迁移请求是第二服务器节点在接收到来自管理节点的接收数据分区消息后向第一服务器节点发送的。
[0020]通过本发明,采用在负荷较重的服务器节点向负荷较轻的服务器节点迁移数据的过程中,使用独立的数据复制通道进行数据迁移,且不停止向客户端提供数据访问服务,只在数据迁移过程将要结束的短暂时间间隔内暂停向客户端提供服务的方式,解决了相关技术中以数据分裂方式对服务器节点负荷进行均衡的过程过于复杂和费时的问题,进而达到了数据访问服务不中断,数据不丢失,安全可靠地完成分布式存储系统中服务器节点间的负荷调整的效果。

【专利附图】

【附图说明】
[0021]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022]图1是根据本发明实施例的数据迁移方法流程图;
[0023]图2是根据本发明优选实施例的网元结构图;
[0024]图3是根据本发明优选实施例的节点数据分裂迁移操作流程图;
[0025]图4是根据本发明实施例的数据迁移装置的结构框图;以及
[0026]图5是根据本发明优选实施例的数据迁移装置的结构框图。

【具体实施方式】
[0027]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0028]本实施例公开了一种数据迁移方法及装置,可以应用于分布式存储系统。在分布式存储系统的数据分裂迁移过程中,通过本实施例的技术方案,能够保证系统的数据访问服务不中断,数据不丢失,可以安全可靠地完成分布式存储系统中服务器节点间的负荷调整,使分布式存储系统运行的更加高效。
[0029]本发明实施例提供了一种数据迁移方法。图1是根据本发明实施例的数据迁移方法流程图,如图1所示,该方法主要包括以下步骤(步骤S102-步骤S106):
[0030]步骤S102,第一服务器节点接收第二服务器节点发送的第一数据迁移请求,或者向第二服务器节点发送第二数据迁移请求,其中,第一服务器节点的负荷大于第二服务器节点;
[0031]步骤S104,第一服务器节点通过数据复制管道将需要迁移的数据发送给第二服务器节点,其中,数据复制管道为第一服务器节点与第二服务器节点之间的数据传输链路;
[0032]步骤S106,在数据迁移过程结束前的预定时间间隔内,第一服务器节点暂停向客户端提供数据访问服务。
[0033]通过上述步骤,可以在为终端提供数据访问服务的持续状态下,将数据负荷较重的第一服务器节点上的数据迁移到数据负荷较轻的第二服务器节点上,在迁移过冲即将结束的很短一段时间内(即上述预定时间间隔)才暂停对于终端的数据访问服务,并在迁移过程结束后立即恢复数据访问服务,从而可以高效安全的完成整个数据迁移过程。
[0034]为了实现本实施例,在实际应用中,可以先在分布式存储系统中配置多个服务器节点用于存储数据,客户端与分布式存储系统中的多个服务器节点建立连接,服务器节点间互相建立连接并且处于正常运行的状态,其中,管理节点可以监控系统运行状况。
[0035]在本实施例中,在第一服务器节点接收第二服务器节点发送的第一数据迁移请求之前,第一服务器节点可以接收来自管理节点的数据分区分裂消息。
[0036]在实际应用中,当管理节点发现个别服务器节点(例如上述第一服务器节点)的负荷过重,则可以向其发送数据分区分裂消息,当然还需要向负荷较轻的服务器节点(例如上述第二服务器节点)通知做好准备接受数据的消息。在本实施例的一个优选实施例方式中,可以采用以下方式来实现:(1)管理节点发送数据分区分裂消息到负荷重的服务器节点(即第一服务器节点),并发送接收新数据分区消息到负荷轻服务器节点(即第二服务器节点);(2)负荷重的服务器节点和负荷轻服务器节点向管理节点回复同意迁移数据。
[0037]在本实施例中,第一数据迁移请求是第二服务器节点在接收到来自管理节点的接收迁移数据消息后向第一服务器节点发送的。
[0038]在负荷重的服务器节点与负荷轻的服务器节点均向管理节点反馈同意迁移数据做好迁移数据值,二者就可以开始为数据迁移做准备了,具体表现为:负荷轻的服务器节点发送消息(即上述数据迁移请求)到负荷重的服务器节点,请求建立数据复制管道,负荷重的服务器节点同意建立数据复制管道。在本实施例中,第一服务器节点可以根据第一服务器节点与第二服务器节点之间的网络信道建立数据复制管道,当数据复制管道建立好之后,第一服务器节点就可以遍历本地的所有数据分区中的数据,将符合新数据分区范围的数据记录过滤出来,以确定需要迁移的数据。
[0039]在实际应用中,复制管道是一个虚拟的数据传送通道,是两个服务器节点基于网络信道建立的数据发送链路。在数据复制过程中,负荷轻的服务器节点中的新建数据分区只接收来自复制管道的数据,并不对外提供数据访问服务,而负荷重的服务器节点仍然按照旧的数据分区正常处理客户端的数据访问和存储请求。因此,新的数据分区其实并未生效,而只是在后台自动构建数据。
[0040]在数据迁移数据过程开启后,第一服务器节点中需要迁移的数据将会逐渐被迁移到第二服务器节点中,为了方便将迁移的数据存储,可以在第二服务器节点中重新建立一个新的数据分区,也可以直接将迁移数据直接存储在第二服务器节点。在本实施例中,迁移成功的数据可以被设置存储于第二服务器节点中新建的数据分区中。在实际应用中,负荷轻的服务器节点接收来自复制管道的数据,并保存在本地的新建数据分区里。
[0041]在本实施例的一个优选实施方式中,当负荷重的服务器节点快要发送完所有符合条件的数据(即上述需要迁移的数据)时,将负荷重的服务器节点中相应数据分区标记为临时不可服务状态(即暂停向客户端提供数据访问服务)。当处于该状态时,客户端对数据分区的访问服务都被拒绝,该服务器节点的数据不再发生变化,但是,该服务器节点能够快速地将符合分裂条件的数据(即上述需要迁移的数据)发送到负荷轻的服务节点上。
[0042]需要说明的是,在该临时不可服务状态期间,可以优选地采用这样的处理方式:当客户端被服务器节点拒绝访问请求时,客户端可以自动进行延时重发请求(发起请求的次数可以预先设置,例如:3次,以使客户端的用户感觉延时并不明显为标准),客户端通过自动重发,能顺利地跳过服务器节点短暂的不服务状态,保证数据访问始终是持续可用的,而且在新分区生效后,客户端会到负荷轻的服务器节点访问新的数据分区。
[0043]在实际应用中,将负荷较重的服务器节点标记为不可服务状态,能保证本地数据不再发生变化,数据量不会再增长。当负荷重的服务器节点存储的数据量固定不变后,可以快速地将满足条件的数据(即需要迁移的数据)发送到负荷轻的服务器节点,能够保证负荷轻的服务器节点新数据分区数据的完整性。
[0044]在绝大多数情况下,最后的不可服务状态持续时间很短,负荷轻的服务节点内的新分区都能快速生效,从而保证客户端的请求在多次重试后,能成功执行。
[0045]在本实施例中,当数据迁移过程结束时,第一服务器节点可以向分布式存储系统内除第一服务器节点和第二服务器节点之外的其他服务器节点以及客户端发送通知消息,其中,通知消息用于指示迁移到第二服务器节点的数据已经生效。
[0046]通过这种通知方式,其他服务器节点可以及时知道哪些第一服务器节点与第二服务器节点之间的数据变化。例如,在实际应用中,在数据迁移完成后,可以以广播的方式通知所有服务器节点和客户端新的数据分区已经生效。
[0047]在实际应用中,当负荷轻的服务节点内的新分区生效后,负荷重的服务器节点在后台自动删除本地存储的新分区内的数据,释放占用的存储资源,以彻底完成数据分裂迁移。
[0048]通过上述实施例提供的数据迁移方法,可以保证在数据分裂迁移过程中,系统的数据访问服务不中断,数据不丢失,安全可靠地完成分布式存储系统中服务器节点间的负荷调整,使分布式存储系统运行的更加高效。
[0049]下面结合图2和图3以及优选实例对上述实施例提供的数据迁移方法进行更加详细的描述。
[0050]本优选实施例的目的在于,在云计算领域分布式存储系统中,当服务器节点负荷不均衡时,解决如何将负荷重的服务器节点的数据分裂迁移出一部分到负荷轻的服务器节点的问题。通过本优选实施例,可以安全可靠地将服务器节点的数据分裂迁移到其他服务器节点。
[0051]图2是根据本发明优选实施例的网元结构图,在以下优选实施例提供的技术方案中,由管理节点、服务器节点和客户端构成的分布式存储系统如图1所示,对某一个特定数据的Key,逻辑上可以根据一定的优先级把服务器集群中某几台服务器节点看作一个主节点服务器和多个副本服务器,不同的Key可能有不同的主节点服务器和副本服务器,主节点服务器的选取可以参考当时的网络条件。
[0052]图3是根据本发明优选实施例的节点数据分裂迁移操作流程图,如图3所示,该流程包括以下步骤:
[0053]步骤S302,管理节点发送数据分区分裂消息到负荷重的服务器节点;
[0054]步骤S304,负荷重的服务器节点同意执行数据分裂迁移;
[0055]步骤S306,管理节点发送接收新数据分区消息到负荷轻的服务器节点;
[0056]步骤S308,负荷轻的服务器节点同意接收新的数据分区,然后发送消息到负荷重的服务器节点,请求建立数据复制管道;
[0057]步骤S310,负荷重的服务器节点同意建立数据复制管道;
[0058]步骤S312,负荷重的服务器节点通过复制管道发送符合分裂条件的数据;
[0059]步骤S314,负荷轻的服务器节点保存来自复制管道的数据;
[0060]步骤S316,负荷重的服务器节点在复制快要结束时,停止数据访问服务;
[0061]步骤S318,客户端服务被拒绝后,延时重发请求;
[0062]步骤S320,负荷重的服务器节点复制完所有符合条件的数据,广播通知复制完成,新分区生效,并开始清除本地保存的分裂出去的数据;
[0063]步骤S322,客户端重发数据访问请求到负荷轻的服务节点;
[0064]步骤S324,负荷轻的服务器节点的新分区可用,回复客户端访问成功;
[0065]步骤S326,负荷重的服务器节点清理完无效数据,数据分裂迁移完成。
[0066]采用上述实施例提供的数据迁移方法,可以使负荷较重的服务器节点的数据能够高效、安全可靠地分裂迁移到负荷轻的服务器节点,从而大大改善了分布式存储系统的运行效率。
[0067]图4是根据本发明实施例的数据迁移装置的结构框图,该装置位于分布式存储系统的第一服务器节点,用以实现上述实施例提供的数据迁移方法,如图4所示,该装置主要包括:处理模块10、第一发送模块20以及暂停模块30。其中,处理模块10,用于接收第二服务器节点发送的第一数据迁移请求,或者向第二服务器节点发送第二数据迁移请求,其中,第一服务器节点的负荷大于第二服务器节点;第一发送模块20,连接至处理模块10,用于通过数据复制管道将需要迁移的数据发送给第二服务器节点,其中,数据复制管道为第一服务器节点与第二服务器节点之间的数据传输链路;暂停模块30,连接至第一发送模块20,用于在数据迁移过程结束前的预定时间间隔内,暂停向客户端提供数据访问服务。
[0068]图5是根据本发明优选实施例的数据迁移装置的结构框图,如图5所示,该数据迁移装置还可以包括:第二发送模块40,用于当数据迁移过程结束时,向分布式存储系统内除第一服务器节点和第二服务器节点之外的其他服务器节点以及客户端发送通知消息,其中,通知消息用于指示迁移到第二服务器节点的数据已经生效。
[0069]在本优选实施例中,该装置还可以包括:接收模块50,用于在处理模块10接收第一数据迁移请求之前,接收来自管理节点的数据分区分裂消息。
[0070]在本优选实施例中,该装置还可以包括:建立模块60,连接于处理模块10,用于根据第一服务器节点与第二服务器节点之间的网络信道建立数据复制管道;确定模块70,连接于建立模块60,用于遍历本地的所有数据分区中的数据,确定需要迁移的数据。
[0071]优选地,第一数据迁移请求是第二服务器节点在接收到来自管理节点的接收数据分区消息后向第一服务器节点发送的。
[0072]采用上述实施例提供的数据迁移装置,可以使负荷较重的服务器节点的数据能够高效、安全可靠地分裂迁移到负荷轻的服务器节点,从而大大改善了分布式存储系统的运行效率。
[0073]从以上的描述中,可以看出,本发明实现了如下技术效果:在保证服务不中断,数据不丢失的同时,将负荷重的服务器节点的一部分数据分裂迁移到负荷轻的服务器节点,解决了服务器节点负荷不均衡的问题。
[0074]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0075]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据迁移方法,应用于分布式存储系统,其特征在于,包括: 第一服务器节点接收第二服务器节点发送的第一数据迁移请求,或者向所述第二服务器节点发送第二数据迁移请求,其中,所述第一服务器节点的负荷大于所述第二服务器节占.所述第一服务器节点通过数据复制管道将需要迁移的数据发送给所述第二服务器节点,其中,所述数据复制管道为所述第一服务器节点与所述第二服务器节点之间的数据传输链路; 在数据迁移过程结束前的预定时间间隔内,所述第一服务器节点暂停向客户端提供数据访问服务。
2.根据权利要求1所述的方法,其特征在于,当数据迁移过程结束时,包括: 所述第一服务器节点向分布式存储系统内除所述第一服务器节点和所述第二服务器节点之外的其他服务器节点以及所述客户端发送通知消息,其中,所述通知消息用于指示迁移到所述第二服务器节点的数据已经生效。
3.根据权利要求1所述的方法,其特征在于,在第一服务器节点接收第二服务器节点发送的第一数据迁移请求之前,包括: 所述第一服务器节点接收来自管理节点的数据分区分裂消息。
4.根据权利要求3所述的方法,其特征在于,在所述第一服务器节点通过数据复制管道将需要迁移的数据发送给所述第二服务器节点之前,还包括: 所述第一服务器节点根据所述第一服务器节点与所述第二服务器节点之间的网络信道建立所述数据复制管道; 所述第一服务器节点遍历本地的所有数据分区中的数据,确定所述需要迁移的数据。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一数据迁移请求是所述第二服务器节点在接收到来自管理节点的接收迁移数据消息后向所述第一服务器节点发送的。
6.根据权利要求1至4中任一项所述的方法,其特征在于,迁移成功的数据被设置存储于所述第二服务器节点中新建的数据分区中。
7.一种数据迁移装置,位于分布式存储系统的第一服务器节点,其特征在于,包括: 处理模块,用于接收第二服务器节点发送的第一数据迁移请求,或者向所述第二服务器节点发送第二数据迁移请求,其中,所述第一服务器节点的负荷大于所述第二服务器节占.第一发送模块,用于通过数据复制管道将需要迁移的数据发送给所述第二服务器节点,其中,所述数据复制管道为所述第一服务器节点与所述第二服务器节点之间的数据传输链路; 暂停模块,用于在数据迁移过程结束前的预定时间间隔内,暂停向客户端提供数据访问服务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 第二发送模块,用于当数据迁移过程结束时,向分布式存储系统内除所述第一服务器节点和所述第二服务器节点之外的其他服务器节点以及所述客户端发送通知消息,其中,所述通知消息用于指示迁移到所述第二服务器节点的数据已经生效。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括: 接收模块,用于在所述处理模块接收所述第一数据迁移请求之前,接收来自管理节点的数据分区分裂消息。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 建立模块,连接于所述处理模块,用于根据所述第一服务器节点与所述第二服务器节点之间的网络信道建立所述数据复制管道; 确定模块,连接于所述建立模块,用于遍历本地的所有数据分区中的数据,确定所述需要迁移的数据。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述第一数据迁移请求是所述第二服务器节点在接收到来自管理节点的接收数据分区消息后向所述第一服务器节点发送的。
【文档编号】H04L29/08GK104468674SQ201310442840
【公开日】2015年3月25日 申请日期:2013年9月25日 优先权日:2013年9月25日
【发明者】李豪伟 申请人:南京中兴新软件有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1