本发明专利技术公开了一种数据迁移方法及数据迁移装置。用于对键值系统各节点中的数据进行迁移,该方法包括:将各节点中的数据划分成多个分区并将各节点中存放相同数据的分区赋予相同的分区标识;当需要进行数据迁移时,确定需要进行数据迁移的节点的迁出分区;关闭所确定的迁出分区并以分区为单位将所确定的迁出分区中的数据迁移至迁入数据节点中;将迁入到迁入数据节点中与所述迁出分区中的数据对应的数据确定为一分区并为所确定的分区赋予与所述迁出节点相同的分区标识。应用本发明专利技术,可以降低遍历获取待迁移数据所需的时间、提升KV系统的利用率。
【技术实现步骤摘要】
本专利技术涉及数据备份技术,具体涉及一种数据迁移方法及数据迁移装置。
技术介绍
云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等计算机技术和通信网络技术发展融合的产物,通过通信网络将多个计算实体(例如,计算机)整合成一个具有强大计算能力的系统。分布式计算系统是云计算范畴中的一个领域,用以提供云计算中海量数据的分布式存储服务以及高速读写访问的能力。分布式计算系统中,包含有多个由服务器组成的节点(node)以及大量客户端。为了保证分布式计算系统中数据的安全性,同样的数据需要分布存储在多个节点形成冗余,即在多个节点上保存同一数据的副本,多个节点间的数据副本互为备份。其中,数据由键(Key)和值(Value)构成,Key相当于数据的索引,Value是Key对应的数据内容,从而在逻辑上,Key和Value形成一一映射关系。采用键值(KV,Key Value)进行数据存储的分布式计算系统也称为KV系统,常用于数据容灾以及备份领域。随着通信技术的发展,通信网络产生的数据数量越来越庞大,因而,需要定时或不定时地对KV系统进行扩容以满足数据存储以及提供数据服务的需要;或者,当节点负载不均匀,各节点负载相差较大时,需要平衡各节点之间的负载。例如,需要将负载较高或不稳定的节点上的部分数据迁移到负载较低的节点上,或者,添加新的节点,将KV系统中的部分数据迁移至新节点上进行维护。在对系统进行扩容或负载平衡时,在确定需要对哪些节点进行数据迁移后,需要涉及对KV系统中具有实际业务价值的数据进行迁移,因而,如何在不影响KV系统正常工作的前提下实现数据迁移是研究的热点问题。由于KV系统中存储有海量数据,很难在较短的时间内遍历所有确定的节点中的数据库,并对迁移后的数据进行校验和评估,以保障迁移数据的一致性。因而,KV系统数据迁移过程复杂,很难保证数据在迁移前后的一致性,使得KV系统中的数据迁移是一个复杂的工程,面临诸多挑战。此外,KV系统需要提供高效稳定的数据服务,而在迁移数据的同时,很难不影响KV系统的正常运行,从而影响数据服务的可靠性。现有的KV系统数据库迁移方法,一般通过先确定待迁移节点,在数据迁移之前,将确定的各节点关闭,然后,按照需要迁移的数据量,遍历KV系统中确定的各节点,遍历出每条数据对应的key,从而读取该确定的节点中的待迁移数据,并将读取的每条待迁移数据写入预先设置的待迁入数据节点,即对分布在确定的各节点进行遍历操作,从而读出该节点上的所有需要进行迁移的数据,并依序将该读出的每一数据复制到预先设置的节点,然后,追加该节点关闭期间的数据至该预先设置的节点(待迁入数据节点),从而实现数据迁移。具体来说,追加数据的流程如下:该节点(先前关闭的节点)和存储有相同待迁移数据的其它节点均保留一份操作日志(binlog)文件,操作日志始终以追加方式写入用户对数据库的每一步操作,通过比对不同节点对应的操作日志文件,从而可以将该节点被关闭期间由其它节点记录的日志信息复制到该节点,并回放到该节点的数据库中。通过重复上述步骤,可以实现其它节点中待迁移数据的迁移,最终完成KV系统的整体数据迁移。由上述可见,现有遍历KV系统实现数据迁移的方法,由于需要针对待迁移数据所在的节点,遍历整个节点的数据库并依序读取待迁移数据,迁移过程需要的时间较长,迁移性能低,迁移效率不高;进一步地,在进行数据迁移时,需要关闭KV系统中迁移数据所在节点较长时间并中断提供数据服务,从而影响在线数据访问,降低了 KV系统的利用率。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的迁移数据的方法及数据迁移装置。依据本专利技术的一个方面,提供了数据迁移的方法,用于对键值系统各节点中的数据进行迁移,该方法包括:将各节点中的数据划分成多个分区并将各节点中存放相同数据的分区赋予相同的分区标识;当需要进行数据迁移时,确定需要进行数据迁移的节点的迁出分区;关闭所确定的迁出分区并以分区为单位将所确定的迁出分区中的数据迁移至迁入数据节点中;将迁入到迁入数据节点中与所述迁出分区中的数据对应的数据确定为一分区并为所确定的分区赋予与所述迁出节点相同的分区标识。优选地,所述方法还包括:为所述分区标识相同的迁入分区生成第一操作日志文件;确定待迁移数据同步完毕,读取所述迁出分区中最后更新的第二操作日志文件以及其它节点中存储所述待迁移数据的分区中最新的第三操作日志文件;比对第三操作日志文件与第二操作日志文件,将在第三操作日志文件中记录但未在第二操作日志文件中记录的日志信息复制到所述第一操作日志文件中,并回放到所述第一操作日志文件对应迁入分区的数据库中。优选地,在所述关闭所确定的迁出分区之前,所述方法还包括:调用键值系统的暂离接口。优选地,在所述回放到所述第一操作日志文件对应分区的数据库中之后,所述方法还包括: 删除所述迁出分区中的待迁移数据。优选地,在所述回放到所述第一操作日志文件对应迁入分区的数据库中之后,所述方法还包括:在待迁出数据对应的备份集中,加入所述迁入数据节点中与所述分区标识相同的迁入分区,删除该待迁出数据所在的迁出分区,所述备份集由各节点上存放相同数据或数据副本的分区的集合构成,每一备份集中的各分区具有相同的分区标识。优选地,在所述加入所述迁入数据节点中与所述分区标识相同的迁入分区之后,所述方法还包括:将访问待迁出数据所在节点中的迁出分区的入口地址变更为所述迁入数据节点中与所述分区标识相同的迁入分区的入口地址。优选地,所述方法还包括:将预设的更新数据的存储地址从所述待迁移数据所在迁出分区的存储地址变更为所述迁入数据节点中与所述分区标识相同的迁入分区的存储地址。优选地,所述方法还包括:将所述迁出分区中存储的预先设置时间点之前写入的数据同步至迁入数据节点中;获取在所述预先设置时间点之后,与所述确定的分区标识相同的分区的操作日志文件,所述操作日志文件至少包括写入与所述确定的分区标识相同的分区的数据;根据获取的操作日志文件更新所述迁入数据节点中与所述分区标识相同的迁入分区中的数据。优选地,所述待迁移数据信息为待迁移数据条数,所述分区信息为分区存储的数据条数。优选地,所述待迁移数据信息为待迁移数据容量,所述分区信息为分区存储容量。根据本专利技术的另一个方面提供了一种数据迁移装置,用于对键值系统各节点中的数据进行迁移,该装置包括:分区标识配置模块、迁出分区确定模块以及数据同步模块,其中,分区标识配置模块,用于划分键值系统各节点的数据库为多个分区并将各节点中存放相同数据的分区赋予相同的分区标识;迁出分区确定模块,用于当需要进行数据迁移时,确定需要进行数据迁移的节点的迁出分区;数据同步模块,用于关闭所确定的迁出分区并以分区为单位将所确定的迁出分区中的数据迁移至迁入数据节点中;将迁入到迁入数据节点中与所述迁出分区中的数据对应的数据确定为一分区并为所确定的分区赋予与所述迁出节点相同的分区标识。优选地,所述数据同步模块包括:读取单元、迁入同步单元、操作日志文件获取单元以及操作日志文件比对单元,其中,读取单元,用于读取迁出分区中的待迁移数据;迁入同步单元,用于关闭所确定的迁出分区并以分区为单位将读取的待迁移数据同步至迁入数据节点本文档来自技高网...
【技术保护点】
一种数据迁移方法,用于对键值系统各节点中的数据进行迁移,该方法包括:将各节点中的数据划分成多个分区并将各节点中存放相同数据的分区赋予相同的分区标识;当需要进行数据迁移时,确定需要进行数据迁移的节点的迁出分区;关闭所确定的迁出分区并以分区为单位将所确定的迁出分区中的数据迁移至迁入数据节点中;将迁入到迁入数据节点中与所述迁出分区中的数据对应的数据确定为一分区并为所确定的分区赋予与所述迁出节点相同的分区标识。
【技术特征摘要】
【专利技术属性】
技术研发人员:王超,陈磊,陈营,陈宗志,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。