CN106406754A - 数据迁移方法及装置 - Google Patents

数据迁移方法及装置 Download PDF

Info

Publication number
CN106406754A
CN106406754A CN201610786588.7A CN201610786588A CN106406754A CN 106406754 A CN106406754 A CN 106406754A CN 201610786588 A CN201610786588 A CN 201610786588A CN 106406754 A CN106406754 A CN 106406754A
Authority
CN
China
Prior art keywords
data block
disk
data
back end
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610786588.7A
Other languages
English (en)
Inventor
郭军
刘黎
徐飞明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201610786588.7A priority Critical patent/CN106406754A/zh
Publication of CN106406754A publication Critical patent/CN106406754A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

数据迁移方法及装置
技术领域
本公开涉及分布式技术领域,特别涉及一种数据迁移方法及装置。
背景技术
随着互联网技术的迅速发展,人们越来越多地使用计算机存储数据,这使得对数据存储的需求不断增长。由于单机的文件系统存储容量有限,因此时下各大互联网公司一般均采用自研或开源的分布式文件系统存储数据。其中,分布式文件系统具体通过多个数据节点实现数据存储,每一个数据节点可包括多个磁盘。由于数据节点均有一定的使用寿命,不可避免地存在数据节点宕机或者磁盘损坏的情况,这将给用户带来不必要的麻烦。此时为了保证数据的高可用性,需要将宕机数据节点或损坏磁盘上的数据迁移到其他可用的数据节点或磁盘上。
相关技术中,当出现数据节点宕机或者磁盘损坏等情况时,分布式文件系统会进行基础报警,之后需要维护人员通过人工排查找到宕机数据节点或损坏磁盘,并需维护人员利用数据迁移工具手动将宕机数据节点或损坏磁盘上存储的数据迁移到其他可用的数据节点上。由于数据迁移的过程需要人工介入,因此容易出错,而且不能做到对数据的实时迁移。
发明内容
为克服相关技术中存在的问题,本公开提供一种数据迁移方法及装置。
根据本公开实施例的第一方面,提供一种数据迁移方法,包括:
周期性获取分布式文件系统中每一个数据节点的工作状态信息;
对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;
若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;
对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;
将所述数据块迁移到所述目标数据节点上。
在另一个实施例中,所述基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘,包括:
若所述数据节点的工作状态信息在预设时长内未进行更新,则确定所述数据节点发生宕机,将所述数据节点上每一个磁盘均确定为工作异常的磁盘;或,
若所述工作状态信息中包括至少一个磁盘的异常状态信息,则确定所述至少一个磁盘为工作异常的磁盘。
在另一个实施例中,所述在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点,包括:
在所述其他数据节点中确定存储所述数据块的其他副本的第一数据节点;
在第二数据节点中选取一个有空闲存储位置的数据节点作为所述目标数据节点,所述第二数据节点为所述其他数据节点中除所述第一数据节点之外的数据节点。
在另一个实施例中,所述将所述数据块迁移到所述目标数据节点上,包括:
在存储所述数据块的其他副本的第一数据节点中确定源数据节点;
向所述源数据节点发送数据块复制请求,所述数据块复制请求中至少包括所述数据块的第一属性信息和所述目标数据节点的第二属性信息,以使所述源数据节点在根据所述第一属性信息获取到本地存储的所述数据块后,基于所述第二属性信息将所述数据块发送至所述目标数据节点。
在另一个实施例中,所述方法还包括:
接收所述源数据节点返回的数据写入响应;
获取所述数据块更新后的第三属性信息,所述第三属性信息中至少包括所述目标数据节点的节点标识和存储所述数据块的磁盘的磁盘标识;
根据所述数据块的块标识,将所述第三属性信息更新至所述数据块属性列表中。
在另一个实施例中,所述基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块,包括:
获取所述工作异常的磁盘中每一个磁盘的磁盘标识;
对于每一个工作异常的磁盘,根据所述磁盘标识在所述数据块属性列表中进行查找,得到与所述磁盘标识匹配的至少一个块标识;
将所述至少一个块标识指示的数据块确定为所述工作异常的磁盘上存储的至少一个数据块;
其中,所述数据块属性列表中包括每一个数据块的块标识与存储每一个数据块的磁盘的磁盘标识、以及所述磁盘所属数据节点的节点标识。
根据本公开实施例的第二方面,提供一种数据迁移方法,包括:
接收分布式文件系统中迁移节点发送的数据块复制请求,所述数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;
根据所述第一属性信息获取本地存储的所述数据块;
生成数据块存储请求,所述数据块存储请求中携带所述数据块和所述第二属性信息中包含的磁盘标识;
基于所述第二属性信息包含的节点标识,将所述数据存储请求发送至所述目标数据节点,以使所述目标数据存储所述数据块。
在另一个实施例中,所述根据所述第一属性信息获取本地存储的所述数据块,包括:
根据所述第一属性信息中包括的磁盘标识,确定存储所述数据块的磁盘;
根据所述第一属性信息中包括的块标识,从所述磁盘中获取所述数据块。
在另一个实施例中,所述方法还包括:
向所述目标数据节点发送校验信息,以使所述目标数据节点根据所述校验信息对临时存储文件进行校验,所述临时存储文件由所述目标数据节点在接收到所述数据存储请求后,将所述数据块写入临时文件得到。
根据本公开实施例的第三方面,提供一种数据迁移方法,包括:
接收分布式文件系统中源数据节点发送的数据块存储请求,所述数据块存储请求由所述源数据节点在接收到迁移节点发送的数据块复制请求后发送,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;
获取所述数据块存储请求中携带的数据块,并将所述数据块写入到临时文件中,得到临时存储文件;
接收所述源数据节点发送的校验信息,在根据所述校验信息对所述临时存储文件校验成功后,将所述数据块写入到所述数据块存储请求中携带的磁盘标识指示的磁盘中。
根据本公开实施例的第四方面,提供一种数据迁移装置,包括:
第一获取模块,被配置为周期性获取分布式文件系统中每一个数据节点的工作状态信息;
判断模块,被配置为对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;
确定模块,被配置为若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;
选取模块,被配置为对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;
迁移模块,被配置为将所述数据块迁移到所述目标数据节点上。
在另一个实施例中,所述判断模块,被配置为若所述数据节点的工作状态信息在预设时长内未进行更新,则确定所述数据节点发生宕机,将所述数据节点上每一个磁盘均确定为工作异常的磁盘;或,若所述工作状态信息中包括至少一个磁盘的异常状态信息,则确定所述至少一个磁盘为工作异常的磁盘。
在另一个实施例中,所述选取模块,被配置为在所述其他数据节点中确定存储所述数据块的其他副本的第一数据节点;在第二数据节点中选取一个有空闲存储位置的数据节点作为所述目标数据节点,所述第二数据节点为所述其他数据节点中除所述第一数据节点之外的数据节点。
在另一个实施例中,所述迁移模块,被配置为在存储所述数据块的其他副本的第一数据节点中确定源数据节点;向所述源数据节点发送数据块复制请求,所述数据块复制请求中至少包括所述数据块的第一属性信息和所述目标数据节点的第二属性信息,以使所述源数据节点在根据所述第一属性信息获取到本地存储的所述数据块后,基于所述第二属性信息将所述数据块发送至所述目标数据节点。
在另一个实施例中,所述装置还包括:
接收模块,被配置为接收所述源数据节点返回的数据写入响应;
第二获取模块,被配置为获取所述数据块更新后的第三属性信息,所述第三属性信息中至少包括所述目标数据节点的节点标识和存储所述数据块的磁盘的磁盘标识;
更新模块,被配置为根据所述数据块的块标识,将所述第三属性信息更新至所述数据块属性列表中。
在另一个实施例中,所述确定模块,被配置为获取所述工作异常的磁盘中每一个磁盘的磁盘标识;对于每一个工作异常的磁盘,根据所述磁盘标识在所述数据块属性列表中进行查找,得到与所述磁盘标识匹配的至少一个块标识;将所述至少一个块标识指示的数据块确定为所述工作异常的磁盘上存储的至少一个数据块;
其中,所述数据块属性列表中包括每一个数据块的块标识与存储每一个数据块的磁盘的磁盘标识、以及所述磁盘所属数据节点的节点标识。
根据本公开实施例的第五方面,提供一种数据迁移装置,包括:
接收模块,被配置为接收分布式文件系统中迁移节点发送的数据块复制请求,所述数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;
获取模块,被配置为根据所述第一属性信息获取本地存储的所述数据块;
生成模块,被配置为生成数据块存储请求,所述数据块存储请求中携带所述数据块和所述第二属性信息中包含的磁盘标识;
发送模块,被配置为基于所述第二属性信息包含的节点标识,将所述数据存储请求发送至所述目标数据节点,以使所述目标数据存储所述数据块。
在另一个实施例中,所述获取模块,被配置为根据所述第一属性信息中包括的磁盘标识,确定存储所述数据块的磁盘;根据所述第一属性信息中包括的块标识,从所述磁盘中获取所述数据块。
在另一个实施例中,所述装置还包括:
校验模块,被配置为向所述目标数据节点发送校验信息,以使所述目标数据节点根据所述校验信息对临时存储文件进行校验,所述临时存储文件由所述目标数据节点在接收到所述数据存储请求后,将所述数据块写入临时文件得到。
根据本公开实施例的第六方面,提供一种数据迁移装置,包括:
接收模块,被配置为接收分布式文件系统中源数据节点发送的数据块存储请求,所述数据块存储请求由所述源数据节点在接收到迁移节点发送的数据块复制请求后发送,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;
获取模块,被配置为获取所述数据块存储请求中携带的数据块,并将所述数据块写入到临时文件中,得到临时存储文件;
写入模块,被配置为接收所述源数据节点发送的校验信息,在根据所述校验信息对所述临时存储文件校验成功后,将所述数据块写入到所述数据块存储请求中携带的磁盘标识指示的磁盘中。
根据本公开实施例的第七方面,提供一种数据迁移装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:周期性获取分布式文件系统中每一个数据节点的工作状态信息;对于每一个数据节点,基于所述数据节点的工作状态信息,判断所述数据节点中是否存在工作异常的磁盘;若所述数据节点中存在工作异常的磁盘,则基于数据块属性列表确定所述工作异常的磁盘上存储的至少一个数据块;对于所述至少一个数据块中的每一个数据块,在除所述数据节点之外的其他数据节点中选取待迁移的目标数据节点;将所述数据块迁移到所述目标数据节点上。
根据本公开实施例的第八方面,提供一种数据迁移装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收分布式文件系统中迁移节点发送的数据块复制请求,所述数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;根据所述第一属性信息获取本地存储的所述数据块;生成数据块存储请求,所述数据块存储请求中携带所述数据块和所述第二属性信息中包含的磁盘标识;基于所述第二属性信息包含的节点标识,将所述数据存储请求发送至所述目标数据节点,以使所述目标数据存储所述数据块。
根据本公开实施例的第九方面,提供一种数据迁移装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收分布式文件系统中源数据节点发送的数据块存储请求,所述数据块存储请求由所述源数据节点在接收到迁移节点发送的数据块复制请求后发送,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;获取所述数据块存储请求中携带的数据块,并将所述数据块写入到临时文件中,得到临时存储文件;接收所述源数据节点发送的校验信息,在根据所述校验信息对所述临时存储文件校验成功后,将所述数据块写入到所述数据块存储请求中携带的磁盘标识指示的磁盘中。
本公开的实施例提供的技术方案可以包括以下有益效果:
在周期性获取到分布式文件系统中每一个数据节点的工作状态信息后,对于每一个数据节点,若基于该数据节点的工作状态信息判断出该数据节点中存在工作异常的磁盘,则基于数据块属性列表确定该工作异常的磁盘上存储的至少一个数据块;对于至少一个数据块中的每一个数据块,在除该数据节点之外的其他数据节点中选取待迁移的目标数据节点,并将该数据块迁移到目标数据节点上。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种分布式文件系统的架构图。
图2是根据一示例性实施例示出的一种数据迁移方法的流程图。
图3是根据一示例性实施例示出的一种数据迁移方法的流程图。
图4是根据一示例性实施例示出的一种数据迁移方法的流程图。
图5是根据一示例性实施例示出的一种数据迁移方法的流程图。
图6是根据一示例性实施例示出的一种数据迁移装置的框图。
图7是根据一示例性实施例示出的一种数据迁移装置的框图。
图8是根据一示例性实施例示出的一种数据迁移装置的框图。
图9是根据一示例性实施例示出的一种数据迁移装置的框图。
图10是根据一示例性实施例示出的一种数据迁移装置的框图。
图11是根据一示例性实施例示出的一种数据迁移装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在对本公开实施例进行详细的解释说明之前,先对本公开实施例涉及的分布式文件系统的架构进行简单介绍。参见图1,该分布式文件系统的架构中包括客户端(Client)、主节点(MasterNode)、从节点(SlaveNode)、数据节点(DataNode)以及磁盘(Storage)。
其中,客户端负责提供文件的读写接口。需要说明的是,此处的客户端并不等同于一般意义上的个人固定终端或个人移动终端等客户端,其本质上为分布式文件系统提供的应用服务器。主节点和从节点构成了MHA(Master High Availability,主节点高可用)架构,其中主节点对外提供写服务,一个从节点作为备选主节点,从节点提供读服务,一旦主节点宕机,将会把备选从节点提升为新的主节点继续工作。
此外,主节点负责存储分布式文件系统的相关元数据信息,包括数据块(Block)的分布信息和当前所有数据节点的信息。数据节点负责存储文件的数据和相关的元数据信息,按Block的方式存储,文件占用Block的一部分。Block按照多副本的方式存放在多个数据节点上,一个数据节点上可能有多个磁盘。本公开实施例对上述Block副本个数及数据节点上的磁盘数量均不进行具体限定。
在本公开实施例中,迁移节点存在于MHA架构中,迁移节点中运行有进程DataMoverManager(数据迁移管理),用于实现数据迁移。正常情况下,数据节点的工作状态信息会每隔预设时长(比如10s)更新一次,而DataMoverManager会定期查询每一个数据节点的工作状态信息。若一个数据节点的在一段时间内(比如30min)未更新其工作状态信息,则DataMoverManager确定该数据节点发生宕机,将该数据节点上每一个磁盘均确定为工作异常的磁盘。此时,需要将该数据节点上所有磁盘存储的数据迁移到其他数据节点上。若该数据节点的工作状态信息中包括至少一个磁盘的异常状态信息,则确定该至少一个磁盘为工作异常的磁盘,此时,需要将该至少一个磁盘上存储的数据迁移到其他数据节点上。
图2是根据一示例性实施例示出的一种数据迁移方法的流程图,如图2所示,该方法用于迁移节点中,包括以下步骤。
在步骤201中,周期性获取分布式文件系统中每一个数据节点的工作状态信息。
在步骤202中,对于每一个数据节点,基于该数据节点的工作状态信息,判断该数据节点中是否存在工作异常的磁盘;若该数据节点中存在工作异常的磁盘,则执行下述步骤203;若该数据节点中不存在工作异常的磁盘,则针对该数据节点的处理流程至此结束。
在步骤203中,若该数据节点中存在工作异常的磁盘,则基于数据块属性列表确定该工作异常的磁盘上存储的至少一个数据块。
在步骤204中,对于至少一个数据块中的每一个数据块,在除该数据节点之外的其他数据节点中选取待迁移的目标数据节点,将该数据块迁移到该目标数据节点上。
本公开实施例提供的方法,迁移节点在周期性获取到分布式文件系统中每一个数据节点的工作状态信息后,对于每一个数据节点,若基于该数据节点的工作状态信息判断出该数据节点中存在工作异常的磁盘,则基于数据块属性列表确定该工作异常的磁盘上存储的至少一个数据块;对于至少一个数据块中的每一个数据块,迁移节点在除该数据节点之外的其他数据节点中选取待迁移的目标数据节点,并将该数据块迁移到目标数据节点上。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
在另一个实施例中,基于数据节点的工作状态信息,判断数据节点中是否存在工作异常的磁盘,包括:
若数据节点的工作状态信息在预设时长内未进行更新,则确定数据节点发生宕机,将数据节点上每一个磁盘均确定为工作异常的磁盘;或,
若工作状态信息中包括至少一个磁盘的异常状态信息,则确定至少一个磁盘为工作异常的磁盘。
在另一个实施例中,在除数据节点之外的其他数据节点中选取待迁移的目标数据节点,包括:
在其他数据节点中确定存储数据块的其他副本的第一数据节点;
在第二数据节点中选取一个有空闲存储位置的数据节点作为目标数据节点,第二数据节点为其他数据节点中除第一数据节点之外的数据节点。
在另一个实施例中,将数据块迁移到目标数据节点上,包括:
在存储数据块的其他副本的第一数据节点中确定源数据节点;
向源数据节点发送数据块复制请求,数据块复制请求中至少包括数据块的第一属性信息和目标数据节点的第二属性信息,以使源数据节点在根据第一属性信息获取到本地存储的数据块后,基于第二属性信息将数据块发送至目标数据节点。
在另一个实施例中,将数据块迁移到目标数据节点上之后,该方法还包括:
接收源数据节点返回的数据写入响应;
获取数据块更新后的第三属性信息,第三属性信息中至少包括目标数据节点的节点标识和存储数据块的磁盘的磁盘标识;
根据数据块的块标识,将第三属性信息更新至数据块属性列表中。
在另一个实施例中,基于数据块属性列表确定工作异常的磁盘上存储的至少一个数据块,包括:
获取工作异常的磁盘中每一个磁盘的磁盘标识;
对于每一个工作异常的磁盘,根据磁盘标识在数据块属性列表中进行查找,得到与磁盘标识匹配的至少一个块标识;
将至少一个块标识指示的数据块确定为工作异常的磁盘上存储的至少一个数据块;
其中,数据块属性列表中包括每一个数据块的块标识与存储每一个数据块的磁盘的磁盘标识、以及磁盘所属数据节点的节点标识。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据一示例性实施例示出的一种数据迁移方法的流程图,如图3所示,该方法用于源数据节点中,包括以下步骤。
在步骤301中,接收分布式文件系统中迁移节点发送的数据块复制请求,该数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,该数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送。
在步骤302中,根据第一属性信息获取本地存储的该数据块。
在步骤303中,生成数据块存储请求,该数据块存储请求中携带该数据块和第二属性信息中包含的磁盘标识。
在步骤304中,基于第二属性信息包含的节点标识,将该数据存储请求发送至该目标数据节点,以使该目标数据存储该数据块。
本公开实施例提供的方法,源数据节点在接收到分布式文件系统中迁移节点发送的数据块复制请求后,根据该数据块获取请求中包括的第一属性信息获取本地存储的该数据块,并生成携带该数据块和第二属性信息中包含的磁盘标识的数据块存储请求,之后基于第二属性信息包含的节点标识,将该数据存储请求发送至该目标数据节点,以使该目标数据存储该数据块,由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
在另一个实施例中,根据第一属性信息获取本地存储的数据块,包括:
根据第一属性信息中包括的磁盘标识,确定存储数据块的磁盘;
根据第一属性信息中包括的块标识,从磁盘中获取数据块。
在另一个实施例中,该方法还包括:
向目标数据节点发送校验信息,以使目标数据节点根据校验信息对临时存储文件进行校验,临时存储文件由目标数据节点在接收到数据存储请求后,将数据块写入临时文件得到。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图4是根据一示例性实施例示出的一种数据迁移方法的流程图,如图4所示,该方法用于目标数据节点中,包括以下步骤。
在步骤401中,接收分布式文件系统中源数据节点发送的数据块存储请求,该数据块存储请求由源数据节点在接收到迁移节点发送的数据块复制请求后发送,该数据块复制请求由迁移节点在确定一个数据节点上存在工作异常的磁盘后发送。
在步骤402中,获取该数据块存储请求中携带的数据块,并将该数据块写入到临时文件中,得到临时存储文件。
在步骤403中,接收源数据节点发送的校验信息,在根据该校验信息对该临时存储文件校验成功后,将该数据块写入到该数据块存储请求中携带的磁盘标识指示的磁盘中。
本公开实施例提供的方法,目标数据节点在接收到分布式文件系统中源数据节点发送的数据块存储请求后,获取该数据块存储请求中携带的数据块,并将该数据块写入到临时文件中,得到临时存储文件;之后,接收该源数据节点发送的校验信息,在根据该校验信息对该临时存储文件校验成功后,将该数据块写入到该数据块存储请求中携带的磁盘标识指示的磁盘中。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
图5是根据一示例性实施例示出的一种数据迁移方法的流程图。交互主体包括迁移节点、源数据节点及目标数据节点,如图5所示,包括如下步骤。
在步骤501中,迁移节点周期性获取分布式文件系统中每一个数据节点的工作状态信息,对于每一个数据节点,迁移节点基于该数据节点的工作状态信息,判断该数据节点中是否存在工作异常的磁盘;若该数据节点中存在工作异常的磁盘,则执行下述步骤502;若该数据节点中不存在工作异常的磁盘,则针对该数据节点的处理流程至此结束。
在本公开实施例中,每一个数据节点的工作状态信息由每一个数据节点定时上报到数据库中。其中,数据库存在于图1所示的主节点上,数据节点每一次判断出的磁盘工作状态均会及时更新到数据库中,同时数据库删除之前存储的磁盘工作状态,保证数据库中存储的磁盘工作状态为最新的。此外,为了对各个数据节点上的各个磁盘进行区分,可使用不同的ID(IDentity,身份标识)对各个磁盘进行标识。
详细来讲,每一个数据节点均会定期扫描自身包含的所有磁盘,判断所有磁盘的工作状态,并将得到的工作状态信息存储到数据库中。其中,磁盘的工作状态可分为正常状态和异常状态。其中,异常状态表明该磁盘出现损坏情况。在另一个实施例中,数据库可为每一个数据节点分别维护一个工作状态信息表。该工作状态信息表中包括了一个数据节点上每一个磁盘的磁盘标识与该磁盘的工作状态信息之间的对应关系。
也即,若一个数据节点上出现磁盘损坏的情况,则该磁盘对应的信息条目中显示异常状态信息;其中,异常状态信息具体可为一个取值为0或1的标识信息,用于标识当前磁盘损坏,本公开实例对此不进行具体限定。若一个数据节点上所有磁盘均损坏,则全部磁盘对应的信息条目中均显示磁盘损标识,表明该数据节点当前处于宕机状态,该数据节点不再向数据库更新自身的工作状态信息。
其中,迁移节点在基于数据节点的工作状态信息,判断一个数据节点中是否存在工作异常的磁盘时,可通过下述两种方式实现:
第一种方式、若该数据节点的工作状态信息在预设时长内未进行更新,则确定数据节点发生宕机,将数据节点上每一个磁盘均确定为工作异常的磁盘。
例如,以迁移节点每隔一个小时进行一次数据节点的工作状态信息获取,数据节点每隔半个小时进行一次工作状态信息的更新,预设时长为30分钟为例,若该数据节点上一次更新工作状态信息的时间为10点,同时被迁移节点获取;等到11点迁移节点再一次进行数据节点的工作状态信息获取时,发现该数据节点更新工作状态信息的时间仍为10点,也即未更新工作状态信息的时长大于预设时长30分钟,则认为该数据节点发生宕机。其中,本公开实施例对迁移节点获取数据节点工作状态信息及数据节点更新工作状态信息的时长不进行具体限定。
其中,当一个数据节点发生宕机时,迁移节点会默认该数据节点上所有磁盘均存在工作异常。
第二种方式、若该工作节点的工作状态信息中包括至少一个磁盘的异常状态信息,则确定至少一个磁盘为工作异常的磁盘。
针对第二中方式,迁移节点会获取数据库中为该数据节点维护的工作状态信息表,通过对该工作状态信息表的扫描,确定至少一个磁盘的异常状态信息。例如,该工作状态信息表中将磁盘的异常状态信息记为0,则迁移节点通过获取磁盘的工作状态信息为0的磁盘标识,确定至少一个处于异常状态的磁盘。
在步骤502中,若该数据节点中存在工作异常的磁盘,则迁移节点根据数据块属性列表确定工作异常的磁盘上存储的至少一个数据块。
在本公开实施例中,数据块属性列表可如下表1所示,用于存储数据块标识,与存储每一个数据块的磁盘的磁盘标识、以及该磁盘所属数据节点的节点标识。其中,迁移节点在根据数据块属性列表确定工作异常的磁盘上存储的至少一个数据块时,包括:获取工作异常的磁盘中每一个磁盘的磁盘标识;对于每一个工作异常的磁盘,根据该磁盘标识在下述表1所示的数据块属性列表中进行查找,得到与磁盘标识匹配的至少一个块标识;将至少一个块标识指示的数据块确定为该工作异常的磁盘上存储的至少一个数据块;
其中,如果一个数据节点出现宕机情况,则根据该数据节点的节点标识在下述表1中可直接获取该数据节点上分布的所有磁盘。
数据块标识 数据块属性
Block 1 Storage 1,DataNode 1
Block 2 Storage 1,DataNode 1
Block 3 Storage 2,DataNode 1
Block 4 Storage 3,DataNode 2
Block N Storage M,DataNode L
例如,若Storage 1损坏,通过数据块属性列表获得磁盘上当前的数据块为Block1和Block 2;例如,若Storage 2损坏,通过数据块属性列表获得磁盘上当前的数据块为Block 3;例如,若Storage 3损坏,通过数据块属性列表获得磁盘上当前的数据块为Block4。
本公开实施例对数据块属性列表的形式、数据块标识的表示方法、磁盘标的的表示方法及数据节点的表示方法不进行具体限定。
在步骤503中,迁移节点在存储该数据块的其他副本的第一数据节点中确定源数据节点,在第二数据节点中选取一个有空闲存储位置的数据节点作为目标数据节点,第二数据节点为其他数据节点中除第一数据节点之外的数据节点。
如上述表1所示,例如,若所在数据节点为DataNode 1,则迁移Block 1和Block 2上的数据到除了DataNode 1的其他数据节点的磁盘上;例如,若所在的数据节点为DataNode 1,则迁移Block 3上的数据到除了DataNode 1的其他数据节点的磁盘上;例如,若所在的数据节点为DataNode 2,则迁移Block 4到除了DataNode 2的其他数据节点的磁盘上。
在步骤504中,迁移节点向源数据节点发送数据块复制请求。
其中,该数据块复制请求(CopyBlockRequest)中至少包括该数据块的第一属性信息和所述目标数据节点的第二属性信息。
其中,该第一属性信息中至少包括数据块的块标识及存储该数据块的磁盘的磁盘标识;该第二属性信息中至少包括目标数据节点的节点标识及存储该数据块的磁盘的磁盘标识。
在步骤505中,源数据节点在接收到数据块复制请求后,根据该数据块复制请求中的第一属性信息读取本地存储的需要复制的数据块,生成数据块存储请求,并基于该数据块复制请求中的第二属性信息包含的节点标识,将该数据块存储请求发送给目标数据节点。
其中,源数据节点生成数据块存储请求的方式如下:根据该第一属性信息中包括的存储该数据块磁盘的磁盘标识,确定存储该数据块的磁盘;之后,根据该第一属性信息中包括的数据块的块标识,从该磁盘中获取该块标识对应的数据块。其中,该数据块存储请求中携带该数据块和第二属性信息中用于存储该数据块的磁盘的磁盘标识。
在步骤506中,目标数据节点在接收到该数据存储请求后,获取该数据块存储请求中携带的数据块,并将该数据块写入到临时文件中,得到临时存储文件。
在本公开实施例中,目标数据节点在接收到该数据块后,建立临时文件,例如建立临时文件tmp,将获取到的所有数据块放入到tmp中,等待接收源数据节点发送的校验信息对数据块进行校验。
在步骤507中,源数据节点向目标数据节点发送校验信息。
源数据节点在发送数据块复制请求后,还会生成校验信息,例如校验信息可为CRC(Cyclic Redundancy Check,循环冗余校验)32,本公开实施例对校验信息的类型不进行具体限定。之后源数据节点将该校验信息发送给目标数据节点,目标数据节点利用校验信息对包含该数据块的临时存储文件进行校验。
在步骤508中,目标数据节点在接收到源数据节点发送的校验信息后,对该临时存储文件进行校验,在校验成功后将该数据块写入到该数据块存储请求中携带的磁盘标识指示的磁盘中。
目标数据节点根据校验信息,对临时文件中的数据块进行校验,例如校验信息为CRC32,则根据CRC32检验接收到的数据块是否完整。如果校验得出接收的数据块完整,则将该数据块写入数据块存储请求中的磁盘标识指示的磁盘中,这样便完成了数据块的迁移。如果校验得出接收的数据块不完整,则发送数据块错误的响应给源数据节点,源数据节点重新生成数据块存储请求及校验信息,再次向目标数据节点发送并校验,直到目标数据节点接收到的数据块正确为止。其中,本公开实施例对目标数据节点接收的数据块可能发生的错误不进行具体限定。
在步骤509中,在完成对该数据块的迁移操作后,源数据节点向迁移节点发送数据写入响应。
在本公开实施例中,源数据节点接收到目标数据节点校验数据块正确的响应后,会向迁移节点发送数据写入响应,用于提示迁移节点该数据块的迁移操作成功。
在步骤510中,迁移节点在接收源数据节点返回的数据写入响应后,获取该数据块更新后的第三属性信息,该第三属性信息中至少包括目标数据节点的节点标识和存储该数据块的磁盘的磁盘标识;根据该数据块的块标识,将第三属性信息更新至数据块属性列表中。
由于已经将数据块迁移至目标数据节点,所以为了后续读取该数据块,本公开实施例支持迁移节点在数据块属性列表中修改该数据块的存储位置,也即根据该数据块的块标识,将目标数据节点的节点标识和存储该数据块的磁盘的磁盘标识更新至数据块属性列表中。
需要说明的是,上述步骤503至步骤509描述的是一个数据块的迁移过程,对于工作异常的磁盘上分布的每一个数据块,均可以采取类似上述步骤503至步骤509所示的过程完成数据迁移,本公开实施例对此不进行具体限定。
本公开实施例提供的方法,在迁移节点周期性获取到分布式文件系统中每一个数据节点的工作状态信息后,对于每一个数据节点,若迁移节点基于该数据节点的工作状态信息判断出该数据节点中存在工作异常的磁盘,则基于数据块属性列表确定该工作异常的磁盘上存储的至少一个数据块;对于至少一个数据块中的每一个数据块,迁移节点在除该数据节点之外的其他数据节点中选取待迁移的目标数据节点和存储该数据块的其他副本的源数据节点,并通过源数据节点将该数据块迁移到目标数据节点上。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
图6是根据一示例性实施例示出的一种数据迁移装置的框图。参照图6,该装置包括第一获取模块601,判断模块602,确定模块603,选取模块604,迁移模块605。
该第一获取模块601,被配置为周期性获取分布式文件系统中每一个数据节点的工作状态信息;
该判断模块602,被配置为对于每一个数据节点,基于数据节点的工作状态信息,判断数据节点中是否存在工作异常的磁盘;
该确定模块603,被配置为若数据节点中存在工作异常的磁盘,则基于数据块属性列表确定工作异常的磁盘上存储的至少一个数据块;
该选取模块604,被配置为对于至少一个数据块中的每一个数据块,在除数据节点之外的其他数据节点中选取待迁移的目标数据节点;
该迁移模块605,被配置为将数据块迁移到目标数据节点上。
在另一个实施例中,判断模块602,被配置为若数据节点的工作状态信息在预设时长内未进行更新,则确定数据节点发生宕机,将数据节点上每一个磁盘均确定为工作异常的磁盘;或,若工作状态信息中包括至少一个磁盘的异常状态信息,则确定至少一个磁盘为工作异常的磁盘。
在另一个实施例中,选取模块604,被配置为在其他数据节点中确定存储数据块的其他副本的第一数据节点;在第二数据节点中选取一个有空闲存储位置的数据节点作为目标数据节点,第二数据节点为其他数据节点中除第一数据节点之外的数据节点。
在另一个实施例中,迁移模块605,被配置为在存储数据块的其他副本的第一数据节点中确定源数据节点;向源数据节点发送数据块复制请求,数据块复制请求中至少包括数据块的第一属性信息和目标数据节点的第二属性信息,以使源数据节点在根据第一属性信息获取到本地存储的数据块后,基于第二属性信息将数据块发送至目标数据节点。
在另一个实施例中,参见图7,该装置还包括:
接收模块606,被配置为接收源数据节点返回的数据写入响应;
第二获取模块607,被配置为获取数据块更新后的第三属性信息,第三属性信息中至少包括目标数据节点的节点标识和存储数据块的磁盘的磁盘标识;
更新模块608,被配置为根据数据块的块标识,将第三属性信息更新至数据块属性列表中。
在另一个实施例中,确定模块603,被配置为获取工作异常的磁盘中每一个磁盘的磁盘标识;对于每一个工作异常的磁盘,根据磁盘标识在数据块属性列表中进行查找,得到与磁盘标识匹配的至少一个块标识;将至少一个块标识指示的数据块确定为工作异常的磁盘上存储的至少一个数据块;
其中,数据块属性列表中包括每一个数据块的块标识与存储每一个数据块的磁盘的磁盘标识、以及磁盘所属数据节点的节点标识。
本公开实施例提供的装置,迁移节点在周期性获取到分布式文件系统中每一个数据节点的工作状态信息后,对于每一个数据节点,若基于该数据节点的工作状态信息判断出该数据节点中存在工作异常的磁盘,则基于数据块属性列表确定该工作异常的磁盘上存储的至少一个数据块;对于至少一个数据块中的每一个数据块,迁移节点在除该数据节点之外的其他数据节点中选取待迁移的目标数据节点,并将该数据块迁移到目标数据节点上。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
图8是根据一示例性实施例示出的一种数据迁移装置的框图。参照图8,该装置包括接收模块801,获取模块802,生成模块803,发送模块804。
该接收模块801,被配置为接收分布式文件系统中迁移节点发送的数据块复制请求,所述数据块复制请求中至少包括数据块的第一属性信息和待迁移的目标数据节点的第二属性信息,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;
该获取模块802,被配置为根据所述第一属性信息获取本地存储的所述数据块;
该生成模块803,被配置为生成数据块存储请求,所述数据块存储请求中携带所述数据块和所述第二属性信息中包含的磁盘标识;
该发送模块804,被配置为基于所述第二属性信息包含的节点标识,将所述数据存储请求发送至所述目标数据节点,以使所述目标数据存储所述数据块。
在另一个实施例中,所述获取模块802,被配置为根据所述第一属性信息中包括的磁盘标识,确定存储所述数据块的磁盘;根据所述第一属性信息中包括的块标识,从所述磁盘中获取所述数据块。
在另一个实施例中,参见图9,该装置还包括:
校验模块805,被配置为向所述目标数据节点发送校验信息,以使所述目标数据节点根据所述校验信息对临时存储文件进行校验,所述临时存储文件由所述目标数据节点在接收到所述数据存储请求后,将所述数据块写入临时文件得到。
本公开实施例提供的装置,源数据节点在接收到分布式文件系统中迁移节点发送的数据块复制请求后,根据该数据块获取请求中包括的第一属性信息获取本地存储的该数据块,并生成携带该数据块和第二属性信息中包含的磁盘标识的数据块存储请求,之后基于第二属性信息包含的节点标识,将该数据存储请求发送至该目标数据节点,以使该目标数据存储该数据块,由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
图10是根据一示例性实施例示出的一种数据迁移装置的框图。参照图10,该装置包括接收模块1001,获取模块1002,写入模块1003。
该接收模块1001,被配置为接收分布式文件系统中源数据节点发送的数据块存储请求,所述数据块存储请求由所述源数据节点在接收到迁移节点发送的数据块复制请求后发送,所述数据块复制请求由所述迁移节点在确定一个数据节点上存在工作异常的磁盘后发送;
该获取模块1002,被配置为获取所述数据块存储请求中携带的数据块,并将所述数据块写入到临时文件中,得到临时存储文件;
该写入模块1003,被配置为接收所述源数据节点发送的校验信息,在根据所述校验信息对所述临时存储文件校验成功后,将所述数据块写入到所述数据块存储请求中携带的磁盘标识指示的磁盘中。
本公开实施例提供的装置,在接收到分布式文件系统中源数据节点发送的数据块存储请求后,获取该数据块存储请求中携带的数据块,并将该数据块写入到临时文件中,得到临时存储文件;之后,接收该源数据节点发送的校验信息,在根据该校验信息对该临时存储文件校验成功后,将该数据块写入到该数据块存储请求中携带的磁盘标识指示的磁盘中。由于在数据节点宕机或者磁盘损坏等情况时,数据迁移过程由分布式文件系统自动完成,不需要工作人员人工操作,因此简单方便,实现了数据的实时迁移。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种数据迁移装置1100的框图。例如,装置1100可以被提供为一服务器。参照图11,装置1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理组件1122的执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令,以执行上述数据迁移方法。
装置1100还可以包括一个电源组件1126被配置为执行装置1100的电源管理,一个有线或无线网络接口1150被配置为将装置1100连接到网络,和一个输入输出(I/O)接口1158。装置1100可以操作基于存储在存储器1132的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (23)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610786588.7A CN106406754A (zh) 2016-08-31 2016-08-31 数据迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610786588.7A CN106406754A (zh) 2016-08-31 2016-08-31 数据迁移方法及装置

Publications (1)

Publication Number Publication Date
CN106406754A true CN106406754A (zh) 2017-02-15

Family

ID=58001699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610786588.7A Pending CN106406754A (zh) 2016-08-31 2016-08-31 数据迁移方法及装置

Country Status (1)

Country Link
CN (1) CN106406754A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357536A (zh) * 2017-07-28 2017-11-17 郑州云海信息技术有限公司 分布式存储系统数据修改写方法及系统
CN108255640A (zh) * 2017-12-15 2018-07-06 云南省科学技术情报研究院 分布式存储中冗余数据快速恢复方法及装置
CN108762685A (zh) * 2018-06-04 2018-11-06 平安科技(深圳)有限公司 Io挂死识别方法、装置、计算机装置及存储介质
CN109460188A (zh) * 2018-11-13 2019-03-12 郑州云海信息技术有限公司 一种数据迁移方法、系统、设备及计算机可读存储介质
CN109684298A (zh) * 2018-09-07 2019-04-26 平安科技(深圳)有限公司 数据库迁移方法、装置、设备及存储介质
CN110989929A (zh) * 2019-11-22 2020-04-10 浪潮电子信息产业股份有限公司 一种mon服务迁移方法、装置、设备及可读存储介质
CN111427842A (zh) * 2020-03-13 2020-07-17 苏州浪潮智能科技有限公司 一种分布式文件系统优化的方法和设备
CN111488124A (zh) * 2020-04-08 2020-08-04 深信服科技股份有限公司 一种数据更新方法、装置、电子设备及存储介质
CN111625189A (zh) * 2020-05-19 2020-09-04 无锡华云数据技术服务有限公司 一种数据重平衡状态的检测方法、装置、设备及介质
CN112363678A (zh) * 2021-01-13 2021-02-12 北京东方通软件有限公司 一种基于消息中间件的数据迁移方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521115A (zh) * 2011-12-19 2012-06-27 浪潮电子信息产业股份有限公司 一种基于硬盘性能的数据资源预警方法
CN103389920A (zh) * 2012-05-09 2013-11-13 深圳市腾讯计算机系统有限公司 一种磁盘坏块的自检测方法和装置
CN104572380A (zh) * 2015-01-30 2015-04-29 浪潮(北京)电子信息产业有限公司 一种检测磁盘的方法和装置
CN105138283A (zh) * 2015-08-11 2015-12-09 北京百度网讯科技有限公司 计算机磁盘、用于计算机磁盘的数据管理方法及装置
CN105278882A (zh) * 2015-10-26 2016-01-27 创新科存储技术有限公司 一种分布式文件系统的磁盘管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521115A (zh) * 2011-12-19 2012-06-27 浪潮电子信息产业股份有限公司 一种基于硬盘性能的数据资源预警方法
CN103389920A (zh) * 2012-05-09 2013-11-13 深圳市腾讯计算机系统有限公司 一种磁盘坏块的自检测方法和装置
CN104572380A (zh) * 2015-01-30 2015-04-29 浪潮(北京)电子信息产业有限公司 一种检测磁盘的方法和装置
CN105138283A (zh) * 2015-08-11 2015-12-09 北京百度网讯科技有限公司 计算机磁盘、用于计算机磁盘的数据管理方法及装置
CN105278882A (zh) * 2015-10-26 2016-01-27 创新科存储技术有限公司 一种分布式文件系统的磁盘管理方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357536A (zh) * 2017-07-28 2017-11-17 郑州云海信息技术有限公司 分布式存储系统数据修改写方法及系统
CN108255640A (zh) * 2017-12-15 2018-07-06 云南省科学技术情报研究院 分布式存储中冗余数据快速恢复方法及装置
CN108255640B (zh) * 2017-12-15 2021-11-02 云南省科学技术情报研究院 分布式存储中冗余数据快速恢复方法及装置
CN108762685B (zh) * 2018-06-04 2021-06-22 平安科技(深圳)有限公司 Io挂死识别方法、装置、计算机装置及存储介质
CN108762685A (zh) * 2018-06-04 2018-11-06 平安科技(深圳)有限公司 Io挂死识别方法、装置、计算机装置及存储介质
CN109684298A (zh) * 2018-09-07 2019-04-26 平安科技(深圳)有限公司 数据库迁移方法、装置、设备及存储介质
CN109684298B (zh) * 2018-09-07 2024-02-20 平安科技(深圳)有限公司 数据库迁移方法、装置、设备及存储介质
CN109460188A (zh) * 2018-11-13 2019-03-12 郑州云海信息技术有限公司 一种数据迁移方法、系统、设备及计算机可读存储介质
CN110989929A (zh) * 2019-11-22 2020-04-10 浪潮电子信息产业股份有限公司 一种mon服务迁移方法、装置、设备及可读存储介质
CN111427842A (zh) * 2020-03-13 2020-07-17 苏州浪潮智能科技有限公司 一种分布式文件系统优化的方法和设备
CN111427842B (zh) * 2020-03-13 2023-01-06 苏州浪潮智能科技有限公司 一种分布式文件系统优化的方法和设备
CN111488124A (zh) * 2020-04-08 2020-08-04 深信服科技股份有限公司 一种数据更新方法、装置、电子设备及存储介质
CN111625189A (zh) * 2020-05-19 2020-09-04 无锡华云数据技术服务有限公司 一种数据重平衡状态的检测方法、装置、设备及介质
CN111625189B (zh) * 2020-05-19 2023-07-28 华云数据控股集团有限公司 一种数据重平衡状态的检测方法、装置、设备及介质
CN112363678A (zh) * 2021-01-13 2021-02-12 北京东方通软件有限公司 一种基于消息中间件的数据迁移方法及系统
CN112363678B (zh) * 2021-01-13 2021-04-30 北京东方通软件有限公司 一种基于消息中间件的数据迁移方法及系统

Similar Documents

Publication Publication Date Title
CN106406754A (zh) 数据迁移方法及装置
CN110019140B (zh) 数据迁移方法、装置、设备以及计算机可读存储介质
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
CN109683826B (zh) 用于分布式存储系统的扩容方法和装置
US8117155B2 (en) Collection-based object replication
CN100430936C (zh) 用于数据库备份的一致性检验的系统和方法
CN111399873B (zh) 一种模型更新方法及装置
WO2018000812A1 (zh) 数据存储方法及装置
CN104679611B (zh) 数据资源复制方法以及装置
US9251233B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
US10366106B2 (en) Quorum-based replication of data records
US20110196664A1 (en) Location Assignment Daemon (LAD) Simulation System and Method
US6782399B2 (en) Ultra-high speed database replication with multiple audit logs
CN105824846B (zh) 数据迁移方法及装置
CN104699567A (zh) 用于在分布式数据存储系统中恢复数据对象的方法和系统
CN112835738B (zh) 一种条带数据存储结构的构建方法
US20100217857A1 (en) Consolidating session information for a cluster of sessions in a coupled session environment
CN105446829A (zh) 客户端程序的修复方法、装置、系统及服务器
CN110532123A (zh) HBase系统的故障转移方法及装置
CN105160253A (zh) 修复客户端程序的方法、装置、系统及服务器
CN111625396A (zh) 备份数据的校验方法、服务器及存储介质
CN105354102B (zh) 一种文件系统维护和修复的方法和装置
JP2023505879A (ja) 分散型データベースシステム及びデータ災害バックアップ訓練方法
US8312237B2 (en) Automated relocation of in-use multi-site protected data storage
US11281532B1 (en) Synchronously storing data in a dispersed storage network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215

RJ01 Rejection of invention patent application after publication