一种数据迁移的方法及系统的制作方法

文档序号:7762719阅读:452来源:国知局
专利名称:一种数据迁移的方法及系统的制作方法
技术领域
本发明涉及数据分布式缓存领域,特别是指一种数据迁移的方法及系统。
背景技术
云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均 衡等传统计算机技术和网络技术发展融合的产物;它旨在通过网络将多个成本相对较低的 计算实体整合成一个具有强大计算能力的系统。分布式缓存是云计算范畴中的一个领域, 其作用是提供云计算中海量数据的分布式存储服务以及高速读写访问的能力。提供分布式缓存功能的分布式缓存系统由若干服务器节点以下简称节点、以及客 户端互相连接构成。一般来说,为保证数据的安全性,写入节点的数据不可能只保存在单 个节点上,而是在多台节点上保存同一个数据的副本,互为备份。所述数据由键(Key)和 值(Value)构成,Key相当于数据的索引,Value是Key所代表的数据内容。逻辑上Key和 Value是一对一的关系。分布式缓存系统在长期工作过程中可能出现节点负载不均勻、某些节点不稳定、 系统负荷过大等等的问题,这时就需要将负载较高或不稳定的节点上的部分数据迁移到负 载较低的节点上;或者添加新的节点,将系统中的部分数据迁移至新节点上维护。在分布式 缓存系统中,如何在不影响系统正常工作的前提下迁移数据是比较难以解决的关键问题。现有技术中,数据迁移一般有两种解决方法方案1,停止分布式缓存系统的正常工作,提示客户端分布式缓存系统正在更新, 然后进行分布式缓存系统的数据迁移;方案2,分布式缓存系统正常工作情况下,客户端通过遍历读取要迁出数据的节点 中的数据,然后写入要迁入数据的节点;上述方案1中的方法,要停止分布式缓存系统的正常工作,影响了分布式缓存系 统的正常运行;方案2中的方法,通过遍历的方法读取数据,会导致数据迁移速度缓慢,并 且,在分布式缓存系统正常工作的情况下,新产生的数据可能会被遗漏,导致迁移的数据在 迁出数据的节点与迁入数据的节点之间不一致。

发明内容
有鉴于此,本发明的主要目的在于提供一种数据迁移的方法及系统,可以在保证 系统正常工作的同时,提高数据的迁移速度,保证迁移过程中数据的一致性。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种数据迁移的方法,该方法包括根据用户选择通知数据移出节点进行数据迁移;数据移出节点将迁移数据及重做日志直接发送给数据移入节点;数据移入节点接收迁移数据并保存,根据重做日志对迁移数据进行校验和更新。上述方案中,所述通知包括数据移入节点地址、迁移数据所在的虚节点地址。
上述方案中,所述数据移出节点将迁移数据及重做日志直接发送给数据移入节点 包括数据移出节点根据数据移入节点地址,将虚节点地址中的迁移数据及重做日志以数 据包的形式发送给数据移入节点,在当前重做日志的数据包发送完成后,通知管控平台,管 控平台暂停数据移出节点的服务。上述方案中,所述根据重做日志对迁移数据的校验和更新包括数据移入节点根 据接收到的重做日志,确定重做日志中记录的操作中的数据与迁移数据不同,重新执行一 次该操作。上述方案中,所述根据重做日志对迁移数据进行校验和更新之后,该方法进一步 包括数据移入节点通知管控平台重操作完成,管控平台通知所有节点及客户端,由数据移 入节点代替数据移出节点为客户端提供迁移数据的相关服务,同时清除数据移出节点中的 迁移数据。本发明还提供了一种数据迁移的系统,该系统包括数据迁移管控模块、数据移出 处理模块、数据移入处理模块;数据迁移管控模块,用于根据用户选择通知数据移出处理模块迁移数据;数据移出处理模块,用于将迁移数据及重做日志发送给数据移入处理模块;数据移入处理模块,用于接收迁移数据并保存,根据重做日志对接收的迁移数据 进行校验和更新。上述方案中,所述数据迁移管控模块具体用于,根据用户选择,将包含数据移入节 点地址、迁移数据所在的虚节点地址的通知发送给数据移出处理模块。上述方案中,所述数据移出处理模块具体用于,根据数据移入节点地址,将虚节点 中的迁移数据及重做日志以数据包的形式发送给数据移入处理模块,确定当前重做日志的 数据包发送完成,通知数据迁移管控模块;所述数据迁移管控模块进一步用于,根据数据移 出处理模块的通知,暂停数据移出节点的服务。上述方案中,所述数据移入处理模块进一步用于,重操作完成后通知数据迁移管 控模块;相应的,所述数据迁移管控模块进一步用于,通知所有节点及客户端,由数据移入 节点代替数据移出节点为客户端提供迁移数据的相关服务,清除数据移出节点中的迁移数 据。由此可见,采用本发明所述的方法及系统,将迁移数据从数据移出节点直接发送 到数据移入节点,提高数据迁移的速度;迁移数据在复制后进行迁移,有效保证系统的正常 功能;数据移入节点根据重做日志进行重操作,保证数据迁移期间,客户端向数据移入节点 发送请求时,迁移数据发生变化后,数据移出节点与数据移入节点之间迁移数据的一致性。


图1为本发明实现数据迁移的方法流程示意图;图2为本发明实现数据迁移的系统组成示意图。
具体实施例方式本发明的基本思想是根据用户选择通知数据移出节点进行数据迁移,数据移出 节点将数据及重做(Redo)日志发送给数据移入节点,数据移入节点接收迁移数据并保存,根据重做日志对接收的迁移数据进行校验和更新。下面通过具体实施例与附图来对本发明进行详细说明。一种数据迁移的方法,如图1所示,具体步骤如下步骤101、系统负担过重或负载不均时,根据用户选择通知数据移出节点进行数据 迁移;用户发现系统负载过重或负载不均时,需要启动数据迁移,通过管控平台选择需 要迁移数据的节点,即数据移出节点;以及接收迁移数据的节点,即数据移入节点,通知数 据移出节点进行数据迁移;这里,所述系统指分布式缓存系统;其中,所述通知为管控平台向数据移出节点发送数据迁移信息,所述数据迁移信 息包含需要迁移的虚节点、数据移入节点地址等;所述虚节点是节点将数据进行分组保存 在不同的虚节点中。所述数据移入节点可以是负载较轻的节点,也可以是新增节点,新增节 点接入系统,向管控平台发送自身信息,管控平台根据新增节点发送的自身信息,要求其他 节点与新增节点建立连接,或者要求新增节点与其他节点建立连接;所述自身信息包含自 身地址等。步骤102、数据移出节点将数据及Redo日志直接发送给数据移入节点;数据移出节点根据管控平台的通知,选取虚节点中的数据,以数据包的形式,根据 数据移入节点地址,发送给数据移入节点。如果这时客户端向数据移出节点发送请求,因为数据移出节点的数据仍在,仍可 以向客户端提供服务。同时,因为客户端向数据移出节点发送请求,会导致数据移出节点的 数据发生变化,为保存数据移出节点与数据移入节点中数据的一致性,数据移出节点在数 据迁移期间,将根据客户端发送的请求,数据移出节点做出的响应,即数据移出节点的操作 写入Redo日志,在数据移出节点将迁移数据发送给数据移入节点后,将Redo日志以数据包 的形式发送给数据移出节点,所述Redo用于记录数据移出节点的操作,所述数据移出节点 的操作包括数据移出节点做动作及对应的数据,例如删除及要删除数据、增加及要增加的 数据、修改及修改的数据等,所述Redo日志的功能可通过管控模块选择是否开启。因为客户端会不时的向数据移出节点发送请求,所以Redo日志中的记录会持续 增加,这样会导致迁移无法结束,所以,数据移出节点在当前Redo日志的数据包发送完成 时,通知管控平台,管控平台要求数据移出节点停止服务,数据移出节点停止服务,同时将 从通知管控平台到停止服务期间产生的Redo日志以数据包的形式发送给数据移入节点, 所述停止服务指停止对系统服务提供支持。数据是以Key和Value的形式保存的,一个Key及对应的Value保存在多个节点 中,其中一个称之为协同服务器,即协同节点,其他的称之为副本服务器,即副本节点,协同 服务器与副本服务器之间存在连接关系,协同节点和副本节点的功能相同。Key及节点地址 的对应关系保存在路由表中,一个Key对应多个节点地址,默认选取第一个节点地址作为 处理该Key的协同节点地址,其他节点地址作为副本节点地址。客户端向节点发送请求,会 根据Key查询本地保存的路由表,获取协同节点地址,根据节点地址,向节点发送请求。如 果协同节点停止服务,会根据本地保存的路由表查找Key对应的下一个节点地址,将客户 端发送的请求发送给下一个节点,由该节点作为协同服务器处理该Key相关的请求,因此, 数据移出节点暂停服务后,不影响系统的正常工作和客户端的正常使用。
步骤103、数据移入节点接收迁移数据,根据Redo日志对迁移数据进行校验和更 新,保证数据一致性。这里,数据移入节点接收数据移出节点发送的数据并保存,接收数据移出节点发 送的Redo日志,根据日志的记录,对迁移数据进行校验和更新,所述校验和更新是指数据 移入节点根据接收的Redo日志,获取Redo日志中的操作,将操作对应的数据同迁移数据比 较,若与迁移数据相同,则不做任何操作,若与迁移数据不同,则重新执行一次所述操作,保 证数据一致性,校验和更新完成后,通知管控平台,管控平台向网络中所有节点及客户端发 送节点更换通知消息,所述节点通知消息是指之前由数据移出节点提供的关于迁移数据的 服务,现在由数据移入节点提供;并且,将路由表中迁移数据中Key对应的节点地址,将原 来数据移出节点的地址,替换为数据移入节点的地址,并启动数据移入节点的服务。同时, 管控平台清除数据移出节点中的迁移数据。至此,数据迁移工作全部完成。本发明还提供了一种数据迁移的系统,如图2所述,该系统包括数据迁移管控模 块201、数据移出处理模块202以及数据移入处理模块203 ;数据迁移管控模块201,位于管控模块,用于根据用户选择通知数据移入处理模块 202进行数据迁移;所述通知包括数据移出节点地址、迁移数据所在的虚节点;数据移出处理模块202,位于数据移出节点,用于根据通知将数据及Redo日志以 数据包的形式发送给数据移入处理模块203 ;数据移入处理模块203,位于数据移入节点,用于接收数据包并保存,接收Redo日 志,并根据Redo日志对接收的迁移数据进行校验和更新。数据移出处理模块202具体用于,接收客户端的请求,将数据移出节点的响应,即 数据移出节点的操作,记录在Redo日志中。数据移出处理模块202进一步用于,确定当前Redo日志的数据包发送完成后,通 知数据迁移管控模块201,同时将发送完日志到停止服务之间产生的Redo日志的数据发送 给数据移入处理模块203 ;相应的数据迁移管控模块201,用于暂停数据移出节点的服务。数据移入处理模块203进一步用于,根据接收的Redo日志,获取Redo日志中记录 的操作,将操作中的数据同迁移数据比较,若与迁移数据相同,则不做任何操作,若与迁移 数据不同,则重新执行一次所述操作,保证数据一致性,执行完Redo日志记录的操作后,通 知数据迁移管控模块201 ;数据迁移管控模块201,用于根据数据移入处理模块203的通知,通知所有节点及 客户端,原先由数据移出节点提供的迁移数据相关服务,更改为由数据移入节点提供服务, 并将路由表中Key对应的节点地址中数据移出节点地址,替换为数据移入节点地址。数据迁移管控模块201进一步用于,将数据移出节点中的迁移数据清除。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在 本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护 范围之内。
权利要求
一种数据迁移的方法,其特征在于,该方法包括根据用户选择通知数据移出节点进行数据迁移;数据移出节点将迁移数据及重做日志直接发送给数据移入节点;数据移入节点接收迁移数据并保存,根据重做日志对迁移数据进行校验和更新。
2.根据权利要求1所述的方法,其特征在于,所述通知包括数据移入节点地址、迁移 数据所在的虚节点地址。
3.根据权利要求2所述的方法,其特征在于,所述数据移出节点将迁移数据及重做日 志直接发送给数据移入节点包括数据移出节点根据数据移入节点地址,将虚节点地址中的迁移数据及重做日志以数据 包的形式发送给数据移入节点,在当前重做日志的数据包发送完成后,通知管控平台,管控 平台暂停数据移出节点的服务。
4.根据权利要求1所述的方法,其特征在于,所述根据重做日志对迁移数据的校验和 更新包括数据移入节点根据接收到的重做日志,确定重做日志中记录的操作中的数据与迁移数 据不同,重新执行一次该操作。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据重做日志对迁移数据 进行校验和更新之后,该方法进一步包括数据移入节点通知管控平台重操作完成,管控平台通知所有节点及客户端,由数据移 入节点代替数据移出节点为客户端提供迁移数据的相关服务,同时清除数据移出节点中的 迁移数据。
6.一种数据迁移的系统,其特征在于,该系统包括数据迁移管控模块、数据移出处理 模块、数据移入处理模块;数据迁移管控模块,用于根据用户选择通知数据移出处理模块迁移数据;数据移出处理模块,用于将迁移数据及重做日志发送给数据移入处理模块;数据移入处理模块,用于接收迁移数据并保存,根据重做日志对接收的迁移数据进行 校验和更新。
7.根据权利要求6所述的系统,其特征在于,所述数据迁移管控模块具体用于,根据用户选择,将包含数据移入节点地址、迁移数据 所在的虚节点地址的通知发送给数据移出处理模块。
8.根据权利要求7所述的系统,其特征在于,所述数据移出处理模块具体用于,根据数据移入节点地址,将虚节点中的迁移数据及 重做日志以数据包的形式发送给数据移入处理模块,确定当前重做日志的数据包发送完 成,通知数据迁移管控模块;所述数据迁移管控模块进一步用于,根据数据移出处理模块的通知,暂停数据移出节 点的服务。
9.根据权利要求6所述的系统,其特征在于,所述数据移入处理模块具体用于,读取接收的重做日志中记录的操作,确定所述操作 中的数据与迁移数据不同,重新执行一次该操作。
10.根据权利要求6至9任一项所述的系统,其特征在于,所述数据移入处理模块进一步用于,重操作完成后通知数据迁移管控模块; 相应的,所述数据迁移管控模块进一步用于,通知所有节点及客户端,由数据移入节点 代替数据移出节点为客户端提供迁移数据的相关服务,清除数据移出节点中的迁移数据。
全文摘要
本发明公开了一种数据迁移的方法,该方法包括根据用户选择通知数据移出节点进行数据迁移;数据移出节点将迁移数据及重做日志直接发送给数据移入节点;数据移入节点接收迁移数据并保存,接收重做日志并根据重做日志对接收的迁移数据进行校验和更新。本发明还公开了一种数据迁移的系统,采用本发明所述的方法及系统,可以在保证系统正常工作的同时,提高数据的迁移速度,保证迁移过程中数据的一致性。
文档编号H04L29/12GK101997911SQ201010514650
公开日2011年3月30日 申请日期2010年10月21日 优先权日2010年10月21日
发明者郭斌, 陈典强, 韩银俊 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1