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

技术编号:14642193 阅读:207 留言:0更新日期:2017-02-15 22:10
本公开是关于一种数据迁移方法及装置,属于分布式技术领域。所述方法包括:周期性获取分布式文件系统中每一个数据节点的工作状态信息;对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;将所述数据块迁移到所述目标数据节点上。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。

【技术实现步骤摘要】

本公开涉及分布式
,特别涉及一种数据迁移方法及装置
技术介绍
随着互联网技术的迅速发展,人们越来越多地使用计算机存储数据,这使得对数据存储的需求不断增长。由于单机的文件系统存储容量有限,因此时下各大互联网公司一般均采用自研或开源的分布式文件系统存储数据。其中,分布式文件系统具体通过多个数据节点实现数据存储,每一个数据节点可包括多个磁盘。由于数据节点均有一定的使用寿命,不可避免地存在数据节点宕机或者磁盘损坏的情况,这将给用户带来不必要的麻烦。此时为了保证数据的高可用性,需要将宕机数据节点或损坏磁盘上的数据迁移到其他可用的数据节点或磁盘上。相关技术中,当出现数据节点宕机或者磁盘损坏等情况时,分布式文件系统会进行基础报警,之后需要维护人员通过人工排查找到宕机数据节点或损坏磁盘,并需维护人员利用数据迁移工具手动将宕机数据节点或损坏磁盘上存储的数据迁移到其他可用的数据节点上。由于数据迁移的过程需要人工介入,因此容易出错,而且不能做到对数据的实时迁移。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种数据迁移方法及装置。根据本公开实施例的第一方面,提供一种数据迁移方法,包括:周期性获取分布式文件系统中每一个数据节点的工作状态信息;对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;将所述数据块迁移到所述目标数据节点上。在另一个实施例中,所述基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘,包括:若所述数据节点的工作状态信息在预设时长内未进行更新,则确定所述数据节点发生宕机,将所述数据节点上每一个磁盘均确定为工作异常的磁盘;或,若所述工作状态信息中包括至少一个磁盘的异常状态信息,则确定所述至少一个磁盘为工作异常的磁盘。在另一个实施例中,所述在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点,包括:在所述其他数据节点中确定存储所述数据块的其他副本的第一数据节点;在第二数据节点中选取一个有空闲存储位置的数据节点作为所述目标数据节点,所述第二数据节点为所述其他数据节点中除所述第一数据节点之外的数据节点。在另一个实施例中,所述将所述数据块迁移到所述目标数据节点上,包括:在存储所述数据块的其他副本的第一数据节点中确定源数据节点;向所述源数据节点发送数据块复制请求,所述数据块复制请求中至少包括所述数据块的第一属性信息和所述目标数据节点的第二属性信息,以使所述源数据节点在根据所述第一属性信息获取到本地存储的所述数据块后,基于所述第二属性信息将所述数据块发送至所述目标数据节点。在另一个实施例中,所述方法还包括:接收所述源数据节点返回的数据写入响应;获取所述数据块更新后的第三属性信息,所述第三属性信息中至少包括所述目标数据节点的节点标识和存储所述数据块的磁盘的磁盘标识;根据所述数据块的块标识,将所述第三属性信息更新至所述数据块属性列表中。在另一个实施例中,所述基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块,包括:获取所述工作异常的磁盘中每一个磁盘的磁盘标识;对于每一个工作异常的磁盘,根据所述磁盘标识在所述数据块属性列表中进行查找,得到与所述磁盘标识匹配的至少一个块标识;将所述至少一个块标识指示的数据块确定为所述工作异常的磁盘上存储的至少一个数据块;其中,所述数据块属性列表中包括每一个数据块的块标识与存储每一个数据块的磁盘的磁盘标识、以及所述磁盘所属数据节点的节点标识。根据本公开实施例的第二方面,提供一种数据迁移方法,包括:接收分布式文件系统中迁移节点发送的数据块复制请求,所述数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;根据所述第一属性信息获取本地存储的所述数据块;生成数据块存储请求,所述数据块存储请求中携带所述数据块和所述第二属性信息中包含的磁盘标识;基于所述第二属性信息包含的节点标识,将所述数据存储请求发送至所述目标数据节点,以使所述目标数据存储所述数据块。在另一个实施例中,所述根据所述第一属性信息获取本地存储的所述数据块,包括:根据所述第一属性信息中包括的磁盘标识,确定存储所述数据块的磁盘;根据所述第一属性信息中包括的块标识,从所述磁盘中获取所述数据块。在另一个实施例中,所述方法还包括:向所述目标数据节点发送校验信息,以使所述目标数据节点根据所述校验信息对临时存储文件进行校验,所述临时存储文件由所述目标数据节点在接收到所述数据存储请求后,将所述数据块写入临时文件得到。根据本公开实施例的第三方面,提供一种数据迁移方法,包括:接收分布式文件系统中源数据节点发送的数据块存储请求,所述数据块存储请求由所述源数据节点在接收到迁移节点发送的数据块复制请求后发送,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;获取所述数据块存储请求中携带的数据块,并将所述数据块写入到临时文件中,得到临时存储文件;接收所述源数据节点发送的校验信息,在根据所述校验信息对所述临时存储文件校验成功后,将所述数据块写入到所述数据块存储请求中携带的磁盘标识指示的磁盘中。根据本公开实施例的第四方面,提供一种数据迁移装置,包括:第一获取模块,被配置为周期性获取分布式文件系统中每一个数据节点的工作状态信息;判断模块,被配置为对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;确定模块,被配置为若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;选取模块,被配置为对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;迁移模块,被配置为将所述数据块迁移到所述目标数据节点上。在另一个实施例中,所述判断模块,被配置为若所述数据节点的工作状态信息在预设时长内未进行更新,则确定所述数据节点发生宕机,将所述数据节点上每一个磁盘均确定为工作异常的磁盘;或,若所述工作状态信息中包括至少一个磁盘的异常状态信息,则确定所述至少一个磁盘为工作异常的磁盘。在另一个实施例中,所述选取模块,被配置为在所述其他数据节点中确定存储所述数据块的其他副本的第一数据节点;在第二数据节点中选取一个有空闲存储位置的数据节点作为所述目标数据节点,所述第二数据节点为所述其他数据节点中除所述第一数据节点之外的数据节点。在另一个实施例中,所述迁移模块,被配置为在存储所述数据块的其他副本的第一数据节点中确定源数据节点;向所述源数据节点发送数据块复制请求,所述数据块复制请求中至少包括所述数据块的第一属性信息和所述目标数据节点的第二属性信息,以使所述源数据节点在根据所述第一属性信息获取到本地存储的所述数据块后,基于所述第二属性信息将所述数据块发送至所述目标数据节点。在另一个实施例中,所述装置还包括:接收模块,被配置为接收所述源数据节点本文档来自技高网...
数据迁移方法及装置

【技术保护点】
一种数据迁移方法,其特征在于,所述方法包括:周期性获取分布式文件系统中每一个数据节点的工作状态信息;对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;将所述数据块迁移到所述目标数据节点上。

【技术特征摘要】
1.一种数据迁移方法,其特征在于,所述方法包括:周期性获取分布式文件系统中每一个数据节点的工作状态信息;对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;将所述数据块迁移到所述目标数据节点上。2.根据权利要求1所述的方法,其特征在于,所述基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘,包括:若所述数据节点的工作状态信息在预设时长内未进行更新,则确定所述数据节点发生宕机,将所述数据节点上每一个磁盘均确定为工作异常的磁盘;或,若所述工作状态信息中包括至少一个磁盘的异常状态信息,则确定所述至少一个磁盘为工作异常的磁盘。3.根据权利要求1所述的方法,其特征在于,所述在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点,包括:在所述其他数据节点中确定存储所述数据块的其他副本的第一数据节点;在第二数据节点中选取一个有空闲存储位置的数据节点作为所述目标数据节点,所述第二数据节点为所述其他数据节点中除所述第一数据节点之外的数据节点。4.根据权利要求1所述的方法,其特征在于,所述将所述数据块迁移到所述目标数据节点上,包括:在存储所述数据块的其他副本的第一数据节点中确定源数据节点;向所述源数据节点发送数据块复制请求,所述数据块复制请求中至少包括所述数据块的第一属性信息和所述目标数据节点的第二属性信息,以使所述源数据节点在根据所述第一属性信息获取到本地存储的所述数据块后,基于所述第二属性信息将所述数据块发送至所述目标数据节点。5.根据权利要求4所述的方法,其特征在于,所述将所述数据块迁移到所述目标数据节点上之后,所述方法还包括:接收所述源数据节点返回的数据写入响应;获取所述数据块更新后的第三属性信息,所述第三属性信息中至少包括所述目标数据节点的节点标识和存储所述数据块的磁盘的磁盘标识;根据所述数据块的块标识,将所述第三属性信息更新至所述数据块属性列表中。6.根据权利要求1所述的方法,其特征在于,所述基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块,包括:获取所述工作异常的磁盘中每一个磁盘的磁盘标识;对于每一个工作异常的磁盘,根据所述磁盘标识在所述数据块属性列表中进行查找,得到与所述磁盘标识匹配的至少一个块标识;将所述至少一个块标识指示的数据块确定为所述工作异常的磁盘上存储的至少一个数据块;其中,所述数据块属性列表中包括每一个数据块的块标识与存储每一个数据块的磁盘的磁盘标识、以及所述磁盘所属数据节点的节点标识。7.一种数据迁移方法,其特征在于,所述方法包括:接收分布式文件系统中迁移节点发送的数据块复制请求,所述数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;根据所述第一属性信息获取本地存储的所述数据块;生成数据块存储请求,所述数据块存储请求中携带所述数据块和所述第二属性信息中包含的磁盘标识;基于所述第二属性信息包含的节点标识,将所述数据存储请求发送至所述目标数据节点,以使所述目标数据存储所述数据块。8.根据权利要求7所述的方法,其特征在于,所述根据所述第一属性信息获取本地存储的所述数据块,包括:根据所述第一属性信息中包括的磁盘标识,确定存储所述数据块的磁盘;根据所述第一属性信息中包括的块标识,从所述磁盘中获取所述数据块。9.根据权利要求7所述的方法,其特征在于,所述方法还包括:向所述目标数据节点发送校验信息,以使所述目标数据节点根据所述校验信息对临时存储文件进行校验,所述临时存储文件由所述目标数据节点在接收到所述数据存储请求后,将所述数据块写入临时文件得到。10.一种数据迁移方法,其特征在于,所述方法包括:接收分布式文件系统中源数据节点发送的数据块存储请求,所述数据块存储请求由所述源数据节点在接收到迁移节点发送的数据块复制请求后发送,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;获取所述数据块存储请求中携带的数据块,并将所述数据块写入到临时文件中,得到临时存储文件;接收所述源数据节点发送的校验信息,在根据所述校验信息对所述临时存储文件校验成功后,将所述数据块写入到所述数据块存储请求中携带的磁盘标识指示的磁盘中。11.一种数据迁移装置,其特征在于,所述装置包括:第一获取模块,被配置为周期性获取分布式文件系统中每一个数据节点的工作状态信息;判断模块,被配置为对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;确定模块,被配置为若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;选取模块,被配置为对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;迁移模块,被配置为将所述数据块迁移到所述目标数据节点上。12.根据权利要求11所述的装置,其特征在于,所述判断模块,被配置为若所述数据节点的工作状态信息在预设时长内未进行更新,则确定所述数据节点发生宕机,将所述数据节点上每一个磁盘均确定为工作异常的磁盘;或,若所述工作状态信息中包括至少一个磁盘的异常状态信息,则确定所述至少一个磁盘为工作异常的磁盘。13.根据权...

【专利技术属性】
技术研发人员:郭军刘黎徐飞明
申请(专利权)人:北京小米移动软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1