CN113467722B - 一种分布式存储系统的数据迁移方法及装置 - Google Patents

一种分布式存储系统的数据迁移方法及装置 Download PDF

Info

Publication number
CN113467722B
CN113467722B CN202110843471.9A CN202110843471A CN113467722B CN 113467722 B CN113467722 B CN 113467722B CN 202110843471 A CN202110843471 A CN 202110843471A CN 113467722 B CN113467722 B CN 113467722B
Authority
CN
China
Prior art keywords
data
storage area
data node
stored
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.)
Active
Application number
CN202110843471.9A
Other languages
English (en)
Other versions
CN113467722A (zh
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202110843471.9A priority Critical patent/CN113467722B/zh
Publication of CN113467722A publication Critical patent/CN113467722A/zh
Application granted granted Critical
Publication of CN113467722B publication Critical patent/CN113467722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种分布式存储系统的数据迁移方法及装置,用以在人工无法介入的场景下实现分布式存储集群中的各个数据节点之间的负载均衡。方法包括:元数据服务器确定需要从第一数据节点中选择部分数据迁移到第二数据节点时,根据第一映射表将第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系;元数据服务器向第一数据节点发送迁移指令,迁移指令用于指示第一存储区域;元数据服务器接收第一数据节点读取的第一存储区域存储的多个数据块;元数据服务器将多个数据块写入第二数据节点。

Description

一种分布式存储系统的数据迁移方法及装置
技术领域
本发明涉及分布式存储领域,尤其涉及一种分布式存储系统的数据迁移方法及装置。
背景技术
在现有分布式存储系统的使用过程中,随着业务规模的增长,分布式存储系统难免会遇到容量不足的情况,此时就需要对分布式存储系统进行扩容,新增一些数据节点或者新增一些SMR存储器。由于分布式存储系统的元数据服务器通常都是基于数据节点的可用容量实现的负载均衡,所以元数据服务器会将数据优先写入新加入分布式存储系统的数据节点中,导致新加入的数据节点出现资源和内存不足的情况。
目前解决这种问题的方法是人工将数据节点中的SMR存储器进行迁移,即手动将SMR存储器在不同的数据节点之间进行插拔,实现SMR存储器的迁移,以使得数据节点之间负载均衡。但是,这种方法需要人工介入,操作比较繁琐,并且不适用于人工无法进入机房实时手动硬盘迁移的场景。
发明内容
本申请实施例提供了一种分布式存储系统的数据迁移方法及装置,用以在人工无法介入的场景下实现分布式存储集群中的各个数据节点之间的负载均衡。
第一方面,本申请实施例提供了一种分布式存储系统的数据迁移方法,包括:
元数据服务器确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系;
所述元数据服务器向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述元数据服务器接收所述第一数据节点读取的所述第一存储区域存储的多个数据块;
所述元数据服务器将所述多个数据块写入所述第二数据节点。
基于上述方案,元数据服务器根据第一映射表确定待迁移的数据,自动触发进行迁移,实现了无需人工干预的数据迁移,使得数据节点之间的负载均衡。并且,由元数据服务器管理的第一映射表中只用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系。不再需要元数据服务器取管理数据块存储的具体地址,减少了元数据服务器所管理的数据量,节约元数据服务器的资源。
在一些实施例中,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
基于上述方案,可以看出在本申请中,是根据数据节点的剩余存储空间来确定剩余存储空间小的数据节点需要进行数据迁移,剩余存储空间大的数据节点作为数据迁移的目标数据节点,这样可以使得数据节点之间的负载均衡。
在一些实施例中,所述元数据服务器确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点,包括:
所述元数据服务器接收来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
基于上述方案,元数据服务器可以根据第一数据节点的迁移请求确定需要从第一数据节点中迁移走一些数据,再进一步确定第二数据节点为剩余存储空间最大的数据节点,然后确定需要从第一数据节点中选择部分数据前移到第二数据节点中,以此在不需要人工参与的情况下实现数据节点之间的负载均衡。
在一些实施例中,所述第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,所述元数据服务器将所述多个数据块写入所述第二数据节点之后,所述方法还包括:
所述元数据服务器将所述第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
基于上述方案,迁移完成后,元数据服务器会对应更新第一映射表,保证第一映射表的准确性。
在一些实施例中,所述元数据服务器向所述第一数据节点发送迁移指令之前,所述方法还包括:
所述元数据服务器确定第一时间段与第二时间段的重叠部分为可迁移时间段;所述第一时间段是根据所述第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间段确定的,所述第二时间段是根据所述第二数据节点在所述历史设定时长内处理的数据量小于第二设定阈值的时间段确定的;
所述元数据服务器向所述第一数据节点发送迁移指令,包括:
所述元数据服务器在所述可迁移时间段内向所述第一数据节点触发所述迁移指令。
基于上述方案,元数据服务器在进行迁移之前,会评估数据节点处理数据量的情况,选择数据节点处理数据量少的时间段进行数据迁移,减小数据迁移对数据节点正常业务的影响。
第二方面,本申请实施例提供了另一种分布式存储系统的数据迁移方法,包括:
所述分布式存储系统的第一数据节点接收来自所述分布式存储系统的元数据服务器的迁移指令,所述迁移指令用于指示第一存储区域;所述第一存储区域为所述第一数据节点的第一SMR存储器中的存储区域;
所述第一数据节点根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述第一数据节点将所述多个数据块发送给所述元数据服务器。
在一些实施例中,所述第一数据节点将所述多个数据块发送给所述元数据服务器之后,所述方法还包括:
所述第一数据节点将所述第一存储区域中的所述多个数据块删除;
所述第一数据节点将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
基于上述方案,由数据节点管理数据块存储的具体地址,可以减少元数据服务器管理的数据量,节省元数据服务器的资源。
在一些实施例中,所述第一数据节点在接收来自所述元数据服务器的迁移指令之前,所述方法还包括:
所述第一数据节点根据所述第一存储区域存储的所述多个数据块的地址确定所述第一存储区域中存在的非连续存储的数据块的数量;所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同;
所述第一数据节点在确定所述非连续存储的数据块的数量大于设定阈值时,向所述元数据服务器发送迁移请求,所述迁移请求用于指示所述第一存储区域中存储有非连续存储的数据块。
基于上述方案,第一数据节点根据第一存储区域中数据块的存储地址确定是否存在非连续存储的数据块,进而确定非连续存储的数据块的数量大于设定阈值时,向元数据服务器发送迁移请求。从而实现数据在存储区域中连续分布,避免存储空间的浪费。
第三方面,本申请实施例提供了一种分布式存储系统的数据迁移方法,包括:
所述分布式存储系统的第二数据节点接收来自所述分布式存储系统的元数据服务器的写数据指令,所述写数据指令中包括多个数据块;
所述第二数据节点根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
第四方面,本申请实施例提供了一种分布式存储系统,包括:
元数据服务器,用于确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系;
所述元数据服务器,还用于向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述第一数据节点,用于接收所述迁移指令,并根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述第一数据节点,还用于将所述多个数据块发送给所述元数据服务器;
所述元数据服务器,还用于接收所述多个数据块,并向所述第二数据节点发送写数据指令,所述写数据指令中包括所述多个数据块;
所述第二数据节点,用于接收所述写数据指令,根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
在一些实施例中,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
在一些实施例中,所述元数据服务器,在确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,具体用于:
接收来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
在一些实施例中,所述第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,所述元数据服务器将所述多个数据块写入所述第二数据节点之后,所述元数据服务器,还用于:
将所述第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
在一些实施例中,所述元数据服务器向所述第一数据节点发送迁移指令之前,还用于:
确定第一时间段与第二时间段的重叠部分为可迁移时间段;所述第一时间段是根据所述第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间段确定的,所述第二时间段是根据所述第二数据节点在所述历史设定时长内处理的数据量小于第二设定阈值的时间段确定的;
所述元数据服务器,在向所述第一数据节点发送迁移指令时,具体用于:
在所述可迁移时间段内向所述第一数据节点触发所述迁移指令。
在一些实施例中,所述第一数据节点将所述多个数据块发送给所述元数据服务器之后,还用于:
将所述第一存储区域中的所述多个数据块删除;
将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
在一些实施例中,所述第一数据节点在接收来自所述元数据服务器的迁移指令之前,还用于:
根据所述第一存储区域存储的所述多个数据块的地址确定所述第一存储区域中存在的非连续存储的数据块的数量;所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同;
在确定所述非连续存储的数据块的数量大于设定阈值时,向所述元数据服务器发送迁移请求,所述迁移请求用于指示所述第一存储区域中存储有非连续存储的数据块。
第五方面,本申请实施例提供了一种分布式存储系统的数据迁移装置,所述装置应用于元数据服务器,所述装置包括:
处理单元,用于确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系;
收发单元,用于向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述收发单元,还用于接收所述第一数据节点读取的所述第一存储区域存储的多个数据块;
所述处理单元,还用于将所述多个数据块写入所述第二数据节点。
在一些实施例中,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
在一些实施例中,所述处理单元,在确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,具体用于:
在通过所述收发单元接收到来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
在一些实施例中,所述第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,所述元数据服务器将所述多个数据块写入所述第二数据节点之后,所述处理单元还用于:
将所述第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
在一些实施例中,所述处理单元还用于:
确定第一时间段与第二时间段的重叠部分为可迁移时间段;所述第一时间段是根据所述第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间段确定的,所述第二时间段是根据所述第二数据节点在所述历史设定时长内处理的数据量小于第二设定阈值的时间段确定的;
所述收发单元在向所述第一数据节点发送迁移指令时,具体用于:
在所述可迁移时间段内向所述第一数据节点触发所述迁移指令。
第六方面,本申请实施例提供了一种分布式存储系统的数据迁移装置,所述装置应用于第一数据节点,所述装置包括:
收发单元,用于接收来自所述分布式存储系统的元数据服务器的迁移指令,所述迁移指令用于指示第一存储区域;所述第一存储区域为所述第一数据节点的第一SMR存储器中的存储区域;
处理单元,用于根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述收发单元,还用于将所述多个数据块发送给所述元数据服务器。
在一些实施例中,在所述收发单元将所述多个数据块发送给所述元数据服务器之后,所述处理单元还用于:
将所述第一存储区域中的所述多个数据块删除;
将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
在一些实施例中,在所述收发单元接收来自所述元数据服务器的迁移指令之前,所述处理单元还用于:
根据所述第一存储区域存储的所述多个数据块的地址确定所述第一存储区域中存在的非连续存储的数据块的数量;所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同;
在确定所述非连续存储的数据块的数量大于设定阈值时,指示所述收发单元向所述元数据服务器发送迁移请求,所述迁移请求用于指示所述第一存储区域中存储有非连续存储的数据块。
第七方面,本申请实施例提供了一种分布式存储系统的数据迁移装置,所述装置应用于第二数据节点,所述装置包括:
收发单元,用于接收来自所述分布式存储系统的元数据服务器的写数据指令,所述写数据指令中包括多个数据块;
处理单元,用于根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
第八方面,提供了一种电子设备,所述电子设备包括处理器和存储器。存储器用于存储计算机执行指令,处理器执行存储器中的计算机执行指令以利用控制器中的硬件资源执行第一方面至第三方面任一种可能实现方式中方法的操作步骤。
第九方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
另外,第四方面至第九方面的有益效果可以参见如第一方面至第三方面所述的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种分布式存储系统的架构示意图;
图2为本申请实施例提供的一种分布式存储系统的数据迁移方法流程图;
图3为本申请实施例提供的一种第一映射表的示意图;
图4为本申请实施例提供的一种第二映射表的示意图;
图5为本申请实施例提供的一种第三映射表的更新过程示意图;
图6为本申请实施例提供的一种更新后的第一映射表的示意图;
图7为本申请实施例提供的一种不同数据节点之间的数据迁移方法流程图;
图8为本申请实施例提供的一种第一数据节点中不同SMR存储器之间的数据迁移方法流程图;
图9为本申请实施例提供的一种用于实现分布式存储系统的数据迁移方法的装置结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面,为了方便理解本申请实施例,首先对本申请涉及的技术用语进行介绍:
(1)SMR存储器:也可以称为SMR硬盘,是近些年出现的大容量、高性价比的硬盘,通过较少的扇区间隔的方式提升存储密度。可以支持连续读写数据、删除数据和随机读数据,但是不支持随机写入数据和删除数据。在写入数据时,要求以存储区域(zone)为单位进行写入。例如,每个存储区域的长度为256MB。
(2)分布式存储系统:采用可扩展的系统结构,利用多台存储服务器作为数据节点来分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。作为一种举例,分布式存储系统包括元数据服务器和至少一个数据节点。
(3)元数据服务器:负责管理分布式存储系统中的数据节点,维护用户文件的分布关系表,即维护用户文件的存储情况,后续将该用于维护用户文件的分布关系表称为第一映射表。为了保证用户的数据的安全性,元数据服务器会将用户文件切分成多个数据块进行存储,例如,可以将每一个数据块作为一个文件保存到数据节点的SMR存储器的存储区域中。
(4)第一映射表:用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系。
(5)数据节点:负责管理大容量的SMR存储器,并将多个数据块存储到SMR存储器中的指定位置。
(6)第N映射表:用于表征所述第N-1数据节点的SMR存储器,第N-1数据节点的SMR存储器的存储区域,以及第N-1数据节点存储的数据块之间的对应关系。其中,N为大于1的整数。
(7)数据块:被切分后的用户文件。在存储用户文件时,元数据服务器可以首先将用户文件切分为大小相同的数据块,然后可以将数据块存储到不同的数据节点中。在读取用户文件时,可以从各个数据节点读取数据块后还原为用户文件。
目前,在分布式存储系统在进行扩容之后,分布式存储系统中的各个数据节点之间的负载可能会不均衡,为了保证各个数据节点负载均衡,以及为了保证数据节点的SMR存储器之间的负载均衡,需要对SMR存储器中的数据进行迁移。并且,由于SMR存储器的物理特征,在进行数据迁移时只能以存储区域为单位进行迁移。因此,目前只能通过人工手动进行SMR存储器插拔的方式进行数据迁移。手动迁移SMR存储器的方式不仅操作繁琐,而且适用的场景较少。本申请实施例提供了一种分布式存储系统的数据迁移方法及装置,根据分布式存储系统的元数据服务器中存储的第一映射表确定待迁移的数据节点的待迁移SMR存储器中待迁移存储区域,并将来自待迁移数据节点的待迁移的存储区域中存储的数据块写入目标数据节点中,实现数据节点之间的数据迁移,提升了数据迁移的效率,无需人工插拔SMR硬件来实现数据迁移。
参见图1,为本申请实施例提供的一种分布式存储系统的架构图。图1示出的分布式存储系统中包括元数据服务器110、第一数据节点120、第二数据节点130。第一数据节点120部署有第一SMR存储器121、第二数据节点部署有第二SMR存储器131。在部署时,第一SMR存储器121可以插在第一数据节点120的接口上,例如插在第一数据节点120的串行接口(Serial Advanced Technology Attachment,SATA)上,也可以是安装于第一数据节点中,本申请对此不作具体限定。同理,第二SMR存储器131也可以是插在第二数据节点130的接口上或者安装于第二数据节点130中的。在图1中,示例性地展示了第一SMR存储器121插在第一数据节点120的接口上、第二SMR存储器131插在第二数据节点130的接口上的场景。需要说明的是,图1仅作为一种示例,本申请对于分布式存储系统中包括的数据节点的数量不作具体限定,在图1中,仅以分布式存储系统中包括第一数据节点和第二数据节点为例进行介绍。同样,本申请对于数据节点中包括的SMR存储器的数量不作具体限定,在图1中,仅以每个数据节点包含一个SMR存储器为例进行介绍。
元数据服务器110,用于将存入分布式存储系统的用户文件进行切分,切分为至少一个数据块。比如切分为两个数据块,分别将两个数据块存入第一数据节点120的第一SMR存储器121和第二数据节点130的第二SMR存储器131中。元数据服务器110还用于维护第一映射表。
第一数据节点120,用于管理第一SMR存储器121,即将数据块写入第一SMR存储器121中,以及从第一SMR存储器121中读取数据块。第一数据节点120还用于维护第二映射表。
同理,第二数据节点130,用于管理第二SMR存储器131。还用于维护第三映射表。
可选地,在图1示出的分布式存储系统中,第一数据节点120的第一SMR存储器121的剩余容量小于第二数据节点130的第二SMR存储器131的剩余容量。所以为了保证分布式存储系统中各个数据节点之间的负载均衡,本申请实施例提出的元数据服务器110还用于接收第一数据节点120读取的第一SMR存储器121中的数据块,并将该数据块写入第二数据节点130中,以实现分布式存储系统的数据节点之间的负载均衡。
为了便于理解本申请实施例提出的方案,参见图2,为本申请实施例提供的分布式存储系统的数据迁移方法的流程图。在图2示出的流程图中,以分布式存储系统的元数据服务器、第一数据节点以及第二数据节点进行交互的方式介绍了本申请实施例提出的数据迁移方法。具体包括:
201,元数据服务器确定需要从第一数据节点中选择部分数据迁移到第二数据节点时,根据第一映射表将第一数据节点的第一SMR存储器的第一存区域中存储的多个数据块作为待迁移的数据。
作为一种举例,第一映射表可以参见图3所示的表。需要说明的是,图3仅作为一种示例,本申请对于第一映射表的格式不作具体限定。可选地,在分布式存储系统初始化时,或者在分布式存储系统中新增了数据节点或者SMR存储器时,元数据服务器会向分布式存储系统中的各个数据节点下发数据节点、SMR存储器和存储区域的标识信息,例如,标识信息可以采用如下编码方式:
(a)数据节点的标识信息可以为:mdsID+数据节点ID;其中,mds为元数据服务器(Meta Data Service)的英文名称缩写。
(b)SMR存储器的标识信息可以为:mdsID+数据节点ID+SMR存储器ID。
(c)存储区域的标识信息可以为:mdsID+数据节点ID+SMR存储器ID+存储区域ID。
需要说明的是,本申请涉及的ID号码可以是由随机的字符串构成的,并且能够确保唯一性。上述的标识信息仅作为一种举例,本申请对于标识信息的格式不作具体限定。可选地,在第一映射表中存储的信息可以为各个数据节点、SMR存储器或者存储区域的标识信息,例如,以图3所示的第一映射表中的第一数据节点为例。可以看到,在图3中示出的第一数据节点的标识为1363A。其中,136为上述的mdsID,3A为上述的数据节点ID。
202,元数据服务器向第一数据节点发送迁移指令。
其中,迁移指令中指示了待迁移的数据块位于第一存储区域。
203,第一数据节点接收迁移指令,根据迁移指令以及第二映射表读取第一存储区域存储的多个数据块。
第二映射表用于表征第一数据节点的SMR存储器,第一数据节点的SMR存储器的存储区域,以及第一数据节点存储的数据块之间的对应关系。
一些实施例中,第二映射表中可以包括第一数据节点的SMR存储器的标识信息、第一数据节点的SMR存储器的存储区域的标识信息、第一数据节点存储的数据块以及第一数据节点存储的数据块的地址之间的对应关系。例如,第二映射表参见图4所示的表,当然,图4仅作为一种示例,本申请对于第二映射表的格式不作具体限定。其中,第一数据节点存储的数据块的地址可以包括数据块的起始地址和数据块的长度。或者数据块的地址也可以包括该数据块的起始地址和结束地址。本申请对此不作具体限定,在图4中,以数据块的地址包括该数据块的起始地址和长度为例。
另一些实施例中,第二映射表中可以包括第一数据节点的SMR存储器的存储区域的标识信息、第一数据节点存储的数据块以及第一数据节点存储的数据块的地址之间的对应关系。
可选地,第一数据节点在读取第一存储区域存储的多个数据块之前,还可以将多个数据块标记为只读状态,以保证数据在迁移过程中的一致性。
204,第一数据节点将从第一存储区域读取的多个数据块发送到元数据节点。
可选地,第一数据节点在将多个数据块发送到元数据节点之后,还可以将第一存储区域中的多个数据块删除。第一数据节点还可以将第二映射表中所述第一存储区域对应的所述多个数据块删除。
205,元数据服务器接收来自第一数据节点的多个数据块,向第二数据节点发送写数据指令。
其中,写数据指令中包括所述多个数据块。
206,第二数据节点接收写数据指令,将写数据指令中包括的所述多个数据块写入第二存储区域,并更新第三映射表。
其中,第三映射表用于表征第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
可选地,第二数据节点在将所述多个数据块写入第二存储区域之后,可以在第三映射表中添加所述多个数据块与第二存储区域的对应关系。作为一种举例,第三映射表的更新过程可以参见图5,其中图5中的(a)为更新前的第三映射表,图5中的(b)为更新后的第三映射表。可选地,如果第二数据节点在将所述多个数据块写入第二存储区域之后,如果检测到所述多个数据块为只读状态,还可以将多个数据块的状态修改为正常。
在一些实施例中,上述步骤201中,确定需要从第一数据节点中选择部分数据迁移到第二数据节点可以分为两种场景:第一种是元数据服务器根据第一数据节点和第二数据节点的剩余容量的情况,自动进行数据块的迁移;第二种是第一数据节点通过判断自身存储的数据的存储情况,向元数据服务器发送迁移请求,触发进行数据迁移。下面,分别结合这两种场景进行介绍。
场景一:元数据服务器根据第一数据节点和第二数据节点的剩余容量自动触发进行数据迁移。
元数据服务器可以根据第一数据节点为分布式存储系统中剩余存储空间最小的数据节点,并且根据第二数据节点为分布式存储系统中剩余存储空间最大的数据节点,确定需要从第一数据节点选择部分数据迁移到第二数据节点。作为一种可选地方式,元数据服务器可以根据第一映射表来确定第一数据节点和第二数据节点的剩余容量。已知元数据服务器在存储用户文件时,会将用户文件切分为大小相同的数据块,然后再存入不同的数据节点中。所以元数据服务器可以根据第一映射表中记载的第一数据节点和第二数据节点中存储的数据块的数量,确定第一数据节点和第二数据节点已用的容量,然后再进一步根据已用的容量确定第一数据节点和第二数据节点的剩余容量。例如,第一映射表中指示了第一数据节点中存储了10个数据块,每个数据块的大小为12MB,则可以确定第一数据节点已用的容量为120MB,并根据第一数据节点的总容量为1024MB确定第一数据节点剩余容量为904MB。
进一步地,元数据服务器在确定分布式存储系统中各个数据节点的剩余容量后,确定第一数据节点为剩余存储空间最小的数据节点,第二数据节点为剩余存储空间最大的数据节点,从而确定需要从第一数据节点选择部分数据迁移到第二数据节点。或者,元数据服务器在确定第一数据节点为剩余存储空间最小的数据节点,第二数据节点为剩余存储空间最大的数据节点之后,还可以进一步确定第一数据节点的剩余容量与第二数据节点的剩余容量的差值大于设定阈值,从而确定需要从第一数据节点选择部分数据迁移到第二数据节点。
再进一步地,元数据服务器在确定需要从第一数据节点选择部分数据迁移到第二数据节点之后,可以确定可迁移时间段。在一些实施例中,元数据服务器可以首先根据第一数据节点在一段时间内处理的数据量小于设定的阈值确定第一数据节点处于业务稳定的状态,例如,元数据服务器确定第一数据节点在过去的一个月或者一周内,处理的数据量小于第一数据节点的总数据量的10%,则认为第一数据节点处于业务稳定状态。在此基础上,元数据服务器可以进一步根据第一数据节点在历史设定时长内处理的数据量小于第一设定阈值确定第一数据节点可以用于迁移数据的第一时间段,即第一数据节点在第一时间段内业务压力最小。例如,元数据服务器确定第一数据节点在过去的一周内每天的12:00-14:00处理的数据量小于设定阈值确定12:00-14:00为可以用于迁移的第一时间段。或者,元数据服务器可以根据第一数据节点在一天的某一个小时内处理的数据量比上一个小时内处理的数据量小20%,确定该某一个小时为业务压力较小的时间段,然后选择一天内多个业务压力较小的时间段中业务压力最小的时间段作为可以用于迁移数据的第一时间段。同理,元数据服务器也可以采用上述方法确定第二数据节点可以用于迁移数据的第二时间段。元数据服务器可以将第一时间段与第二时间段的重叠部分作为可迁移时间段,例如,第一时间段为12:00-14:00,第二时间段为13:00-16:00,则可迁移时间段为13:00-14:00。
在一些实施例中,元数据服务器可以在可迁移时间段内进行数据迁移,具体的迁移过程可以参见图2中步骤202-步骤206,在此不再赘述。可选地,元数据服务器在进行数据迁移之后,可以根据数据迁移结果更新第一映射表。例如,第一数据节点的第一SMR存储器的第一存储区域的多个数据块被写入第二数据节点的第二SMR存储器的第二存储区域之后,元数据服务器可以将第一映射表中所述多个数据块所属的用户文件与第一存储区域的对应关系更新为多个数据块所属的用户文件与第二存储区域的对应关系。例如,更新前的第一映射表可以参见上述图3所示的表,更新后的第一映射表可以参见图6所示的表。
场景二:第一数据节点根据自身存储的数据在存储区域中的分布情况,向元数据服务器发送迁移请求,触发进行数据迁移。
可选地,第一数据节点可以实时监控其包括的各个SMR存储器的存储区域中存储的数据块的情况,根据数据块存储的地址确定是否存在非连续存储的数据块。所述非连续存储的数据块存储的结束地址和与所述非连续存储的数据块距离最近的数据块的起始地址不相同,或者,也可以说非连续存储的数据块的起始地址加上该数据块的长度和与该数据块距离最近的数据块的起始地址不相同。后续将所述非连续存储的数据块称为碎片数据。第一数据节点确定存在的碎片数据的数量大于设定阈值,则可以向元数据服务器发送迁移请求。作为一种举例,第一数据节点确定第一存储区域中存在的碎片数据的数量大于设定阈值,向元数据服务器发送迁移请求,迁移请求中用于指示第一存储区域。元数据服务器接收到迁移请求后,将第一存储区域中存储的多个数据块作为待迁移的数据,启动进行数据迁移,具体地数据迁移过程可以参见图2中步骤202-步骤206,在此不再赘述。
可选地,在场景二中,元数据服务器也可以确定可迁移时间段,以及在完成迁移之后更新第一映射表,具体方法可以参见场景一中的介绍,在此不再赘述。
基于上述方案,将存储的碎片数据进行迁移,有利于对存储区域的碎片空间的消除,能够实现数据在存储区域中连续存储,避免了存储空间的浪费。可选地,本申请实施例提供的碎片数据迁移方法还可以应用于一个数据节点中的不同的存储器之间的迁移。下面以第一数据节点为例进行介绍。
第一数据节点可以在根据数据块的存储地址确定第一SMR存储器的第一存储区域中存在碎片数据的数量大于设定阈值,并确定第一数据节点的第三SMR存储器的第三存储区域为一个空的存储区域,或者为一个剩余容量较多的存储区域。第一数据节点可以从第一存储区域中读取碎片数据,写入到第二存储区域中,完成碎片数据的迁移。可选地,第一数据节点在进行碎片数据迁移之前可以首先确定可迁移时间段,并在可迁移时间段内进行碎片数据迁移。
在一些实施例中,第一数据节点在进行碎片数据迁移之后,还可以根据迁移结果更新第二映射表,并将迁移事件上报到元数据服务器,使得元数据服务器可以以此更新第一映射表。
下面为了进一步理解本申请提出的方案,将结合具体实施例对本申请提出的数据迁移方法进行介绍。
参见图7为本申请提供的一种数据节点之间的数据迁移方法流程图,具体包括:
701,元数据服务器确定分布式存储系统中添加了新的数据节点或者新的SMR存储器。
702,元数据服务器确定是否需要进行数据迁移。
具体地,元数据服务器可以根据第一映射表确定分布式存储系统中各个数据节点的剩余容量状态,确定是否需要进行数据迁移。
如果不需要,则执行步骤703。
如果需要,则执行步骤704。后续将需要进行数据迁移的数据节点称为第一数据节点,将待迁移数据需要迁移至的数据节点称为第二数据节点。
703,元数据服务器为新数据节点或者新的SMR存储器下发标识信息。
704,元数据服务器确定可迁移时间段,以及将待迁移的数据标记为已读状态。
具体地,确定可迁移时间段的方法可以参见上述场景一中的描述,在此不再赘述。
705,元数据服务器向第一数据节点发送迁移指令。
迁移指令用于指示待迁移的数据所处的存储区域,后续将待迁移数据所处的存储区域称为第一存储区域。
706,第一数据节点根据迁移指令,读取第一存储区域存储的多个数据块,并将所述多个数据块发送到元数据服务器。
707,元数据服务器接收所述多个数据块,向第二数据节点发送写数据指令。
其中,写数据指令中包括所述多个数据块。
708,第二数据节点接收写数据指令,将所述多个数据块写入第二存储区域中,并更新第三映射表。
其中,第二存储区域为第二数据节点中的存储区域。
更新第三映射表为:在第三映射表中添加所述多个数据块与第二存储区域的对应关系。
709,元数据服务器更新第一映射表。
具体地,元数据服务器在数据迁移完成后,可以将第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
如下参见图8,为本申请提供的另一个具体实施例。展示了第一数据节点存储的碎片数据在第一数据节点的不同SMR存储器之间的迁移过程。具体包括:
801,第一数据节点监控存储的数据在存储区域中的分布情况,确定第一SMR硬盘的第一存储区域中存在的碎片数据的数量大于设定阈值。
具体的确定碎片数据的数量的过程可以参见上述实施例中的描述,在此不再赘述。
802,第一数据节点确定可迁移时间段。
可以参见场景一中的相关描述,确定第一数据节点处理数据的业务较少的时间段作为可迁移时间段。
803,第一数据节点在可迁移时间段内进行碎片数据的迁移。
具体地,第一数据节点确定第一数据节点的第三SMR存储器的第三存储区域为一个空的存储区域或者为一个剩余容量多的存储区域,则第一数据节点在可迁移时间段内读取第一存储区域存储的碎片数据,将碎片数据写入到第三存储区域中。
804,第一数据节点将第一存储区域中的碎片文件删除。
805,第一数据节点更新第二映射表。
具体地,第一数据节点将碎片数据对应的第一存储区域更新为第三存储区域。
806,第一数据节点将碎片数据迁移事件上报到元数据服务器。
元数据服务器可以根据第一数据节点上报的迁移事件更新第一映射表,将碎片数据所属的用户文件与第一存储区域的对应关系更新为碎片数据所属的用户文件与第三存储区域的对应关系。
基于与上述方法的相同构思,参见图9,本申请实施例,提供了一种分布式存储系统的数据迁移装置900。装置900能够执行上述方法中的各个步骤,为了避免重复,此处不再详述。装置900包括:处理单元901和收发单元902。
在一种可能的场景中:
处理单元901,用于确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系;
收发单元902,用于向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述收发单元902,还用于接收所述第一数据节点读取的所述第一存储区域存储的多个数据块;
所述处理单元901,还用于将所述多个数据块写入所述第二数据节点。
在一些实施例中,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
在一些实施例中,所述处理单元901,在确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,具体用于:
在通过所述收发单元902接收到来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
在一些实施例中,所述第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,所述元数据服务器将所述多个数据块写入所述第二数据节点之后,所述处理单元901还用于:
将所述第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
在一些实施例中,所述处理单元901还用于:
确定第一时间段与第二时间段的重叠部分为可迁移时间段;所述第一时间段是根据所述第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间段确定的,所述第二时间段是根据所述第二数据节点在所述历史设定时长内处理的数据量小于第二设定阈值的时间段确定的;
所述收发单元902在向所述第一数据节点发送迁移指令时,具体用于:
在所述可迁移时间段内向所述第一数据节点触发所述迁移指令。
在另一种可能的场景中:
收发单元902,用于接收来自所述分布式存储系统的元数据服务器的迁移指令,所述迁移指令用于指示第一存储区域;所述第一存储区域为所述第一数据节点的第一SMR存储器中的存储区域;
处理单元901,用于根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述收发单元902,还用于将所述多个数据块发送给所述元数据服务器。
在一些实施例中,在所述收发单元902将所述多个数据块发送给所述元数据服务器之后,所述处理单元901还用于:
将所述第一存储区域中的所述多个数据块删除;
将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
在一些实施例中,在所述收发单元902接收来自所述元数据服务器的迁移指令之前,所述处理单元901还用于:
根据所述第一存储区域存储的所述多个数据块的地址确定所述第一存储区域中存在的非连续存储的数据块的数量;所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同;
在确定所述非连续存储的数据块的数量大于设定阈值时,指示所述收发单元902向所述元数据服务器发送迁移请求,所述迁移请求用于指示所述第一存储区域中存储有非连续存储的数据块。
在另一种可能的场景中:
收发单元902,用于接收来自所述分布式存储系统的元数据服务器的写数据指令,所述写数据指令中包括多个数据块;
处理单元901,用于根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
图10示出了本申请实施例提供的一种用以实现数据迁移的电子设备结构示意图。本申请实施例中的电子设备可以包括处理器1001、存储器1002和通信接口1003,该通信接口1003例如是网口,电子设备可以通过该通信接口1003传输数据。
在本申请实施例中,存储器1002存储有可被至少一个处理器1001执行的指令,至少一个处理器1001通过执行存储器1002存储的指令。
其中,处理器1001是电子设备的控制中心,可以利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1002内的指令以及调用存储在存储器1002内的数据。可选的,处理器1001可包括一个或多个处理单元,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。在一些实施例中,处理器1001和存储器1002可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1001可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的测试控制平台所执行的步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1002可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1002还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器1001进行设计编程,例如,可以将前述实施例中介绍的测试方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的神经网络模型训练方法的步骤,如何对处理器1001进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (21)

1.一种分布式存储系统的数据迁移方法,其特征在于,包括:
元数据服务器基于根据第一映射表得到的各数据节点的剩余存储空间,或接收到第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的数据迁移请求,确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,在可迁移时间段根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
所述元数据服务器向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述元数据服务器接收所述第一数据节点读取的所述第一存储区域存储的多个数据块;
所述元数据服务器将所述多个数据块写入所述第二数据节点。
2.如权利要求1所述的方法,其特征在于,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
3.如权利要求1所述的方法,其特征在于,所述元数据服务器确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点,包括:
所述元数据服务器接收来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
4.如权利要求1-3任一项所述的方法,其特征在于,第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,所述元数据服务器将所述多个数据块写入所述第二数据节点之后,所述方法还包括:
所述元数据服务器将第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
5.一种分布式存储系统的数据迁移方法,其特征在于,包括:
所述分布式存储系统的第一数据节点在可迁移时间段接收来自所述分布式存储系统的元数据服务器的迁移指令,所述迁移指令用于指示第一存储区域;所述第一存储区域为所述第一数据节点的第一SMR存储器中的存储区域,所述迁移指令是元数据服务器基于根据第一映射表得到的各数据节点的剩余存储空间生成的,或是元数据服务器基于接收到的第一数据节点发送的数据迁移请求生成的,所述数据迁移请求是第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的,所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
所述第一数据节点根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述第一数据节点将所述多个数据块发送给所述元数据服务器。
6.如权利要求5所述的方法,其特征在于,所述第一数据节点将所述多个数据块发送给所述元数据服务器之后,所述方法还包括:
所述第一数据节点将所述第一存储区域中的所述多个数据块删除;
所述第一数据节点将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
7.一种分布式存储系统的数据迁移方法,其特征在于,包括:
所述分布式存储系统的第二数据节点在可迁移时间段接收来自所述分布式存储系统的元数据服务器的写数据指令,所述写数据指令中包括多个数据块,所述写数据指令是元数据服务器基于根据第一映射表得到的各数据节点的剩余存储空间生成的,或是元数据服务器基于接收到的第一数据节点发送的数据迁移请求生成的,所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述数据迁移请求是第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的,所述非连续存储的数据块在第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
所述第二数据节点根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
8.一种分布式存储系统,其特征在于,包括:
元数据服务器,用于基于根据第一映射表得到的各数据节点的剩余存储空间,或接收到第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的数据迁移请求,确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,在可迁移时间段根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
所述元数据服务器,还用于向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述第一数据节点,用于接收所述迁移指令,并根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述第一数据节点,还用于将所述多个数据块发送给所述元数据服务器;
所述元数据服务器,还用于接收所述多个数据块,并向所述第二数据节点发送写数据指令,所述写数据指令中包括所述多个数据块;
所述第二数据节点,用于接收所述写数据指令,根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
9.如权利要求8所述的系统,其特征在于,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
10.如权利要求8所述的系统,其特征在于,所述元数据服务器,在确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,具体用于:
接收来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
11.如权利要求8-10任一项所述的系统,其特征在于,第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,元数据服务器将所述多个数据块写入所述第二数据节点之后,所述元数据服务器,还用于:
将第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
12.如权利要求8所述的系统,其特征在于,所述第一数据节点将所述多个数据块发送给所述元数据服务器之后,还用于:
将所述第一存储区域中的所述多个数据块删除;
将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
13.一种分布式存储系统的数据迁移装置,其特征在于,所述装置应用于元数据服务器,所述装置包括:
处理单元,用于基于根据第一映射表得到的各数据节点的剩余存储空间,或接收到第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的数据迁移请求,确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,在可迁移时间段根据第一映射表将所述第一数据节点的第一SMR存储器的第一存储区域中存储的多个数据块作为待迁移的数据;所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
收发单元,用于向所述第一数据节点发送迁移指令,所述迁移指令用于指示所述第一存储区域;
所述收发单元,还用于接收所述第一数据节点读取的所述第一存储区域存储的多个数据块;
所述处理单元,还用于将所述多个数据块写入所述第二数据节点。
14.如权利要求13所述的装置,其特征在于,所述第一数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最小的数据节点,所述第二数据节点为所述分布式存储系统包含的数据节点中剩余存储空间最大的数据节点。
15.如权利要求13所述的装置,其特征在于,所述处理单元,在确定需要从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点时,具体用于:
在通过所述收发单元接收到来自所述第一数据节点的迁移请求且确定所述第二数据节点为所述分布式存储系统中剩余存储空间最大的数据节点时,确定从分布式存储系统的第一数据节点中选择部分数据迁移到所述分布式存储系统中的第二数据节点。
16.如权利要求13-15任一项所述的装置,其特征在于,第一存储区域的多个数据块被写入所述第二数据节点的第二SMR存储器的第二存储区域,处理单元将所述多个数据块写入所述第二数据节点之后,所述处理单元还用于:
将第一映射表中所述多个数据块所属的用户文件与所述第一存储区域的对应关系更新为所述多个数据块所属的用户文件与所述第二存储区域的对应关系。
17.一种分布式存储系统的数据迁移装置,其特征在于,所述装置应用于第一数据节点,所述装置包括:
收发单元,用于在可迁移时间段接收来自所述分布式存储系统的元数据服务器的迁移指令,所述迁移指令用于指示第一存储区域;所述第一存储区域为所述第一数据节点的第一SMR存储器中的存储区域,所述迁移指令是元数据服务器基于根据第一映射表得到的各数据节点的剩余存储空间生成的,或是元数据服务器基于接收到的第一数据节点发送的数据迁移请求生成的,所述数据迁移请求是第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的,所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述非连续存储的数据块在所述第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
处理单元,用于根据所述迁移指令,以及根据第二映射表读取所述第一存储区域存储的多个数据块;所述第二映射表用于表征所述第一数据节点的SMR存储器,所述第一数据节点的SMR存储器的存储区域,以及所述第一数据节点存储的数据块之间的对应关系;
所述收发单元,还用于将所述多个数据块发送给所述元数据服务器。
18.如权利要求17所述的装置,其特征在于,在所述收发单元将所述多个数据块发送给所述元数据服务器之后,所述处理单元还用于:
将所述第一存储区域中的所述多个数据块删除;
将所述第二映射表中所述第一存储区域对应的所述多个数据块删除。
19.一种分布式存储系统的数据迁移装置,其特征在于,所述装置应用于第二数据节点,所述装置包括:
收发单元,用于在可迁移时间段接收来自所述分布式存储系统的元数据服务器的写数据指令,所述写数据指令中包括多个数据块,所述写数据指令是元数据服务器基于根据第一映射表得到的各数据节点的剩余存储空间生成的,或是元数据服务器基于接收到的第一数据节点发送的数据迁移请求生成的,所述第一映射表用于表征用户文件,用户文件所存储在的存储区域所属的SMR存储器,以及SMR存储器所属的数据节点之间的对应关系,所述数据迁移请求是第一数据节点确定非连续存储的数据块的数量大于预设数量时发送的,所述非连续存储的数据块在第一存储区域中存储的结束位置和与存储在所述非连续存储的数据块之后且与所述非连续存储的数据块距离最近的数据块的起始位置不相同,或者所述非连续存储的数据块在所述第一存储区域中存储的起始位置和与存储在所述非连续存储的数据块之前且与所述非连续存储的数据块距离最近的数据块的结束位置不相同,所述可迁移时间段表明第一时间段和第二时间段的重叠部分,所述第一时间段表征第一数据节点在历史设定时长内处理的数据量小于第一设定阈值的时间,所述第二时间段表征第二数据节点在历史设定时长内处理的数据量小于第二设定阈值的时间;
处理单元,用于根据所述写数据指令将所述多个数据块写入第二SMR存储器的第二存储区域,并在第三映射表中添加所述多个数据块、所述第二存储区域与所述第二SMR存储器之间的对应关系;所述第三映射表用于表征所述第二数据节点的SMR存储器,所述第二数据节点的SMR存储器的存储区域,以及所述第二数据节点存储的数据块之间的对应关系。
20.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,
所述存储器,用于存储计算机程序或指令;
所述处理器,用于执行存储器中的计算机程序或指令,使得权利要求1-7中任一项所述的方法被执行。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使所述计算机执行如权利要求1-7任一项所述的方法。
CN202110843471.9A 2021-07-26 2021-07-26 一种分布式存储系统的数据迁移方法及装置 Active CN113467722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110843471.9A CN113467722B (zh) 2021-07-26 2021-07-26 一种分布式存储系统的数据迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110843471.9A CN113467722B (zh) 2021-07-26 2021-07-26 一种分布式存储系统的数据迁移方法及装置

Publications (2)

Publication Number Publication Date
CN113467722A CN113467722A (zh) 2021-10-01
CN113467722B true CN113467722B (zh) 2024-04-30

Family

ID=77882394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110843471.9A Active CN113467722B (zh) 2021-07-26 2021-07-26 一种分布式存储系统的数据迁移方法及装置

Country Status (1)

Country Link
CN (1) CN113467722B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281267B (zh) * 2021-12-30 2024-04-26 西北工业大学 分布式存储系统间的数据迁移方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263590B1 (en) * 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
CN105279166A (zh) * 2014-06-20 2016-01-27 中国电信股份有限公司 文件管理方法和系统
CN105468473A (zh) * 2014-07-16 2016-04-06 北京奇虎科技有限公司 数据迁移方法及数据迁移装置
CN107391033A (zh) * 2017-06-30 2017-11-24 北京奇虎科技有限公司 数据迁移方法及装置、计算设备、计算机存储介质
CN109324758A (zh) * 2018-08-24 2019-02-12 华为技术有限公司 数据迁移方法、装置及存储设备
CN110213326A (zh) * 2019-04-15 2019-09-06 浙江大华技术股份有限公司 元数据节点集群的扩容方法、系统、设备和存储介质
CN111880751A (zh) * 2020-09-28 2020-11-03 浙江大华技术股份有限公司 一种硬盘迁移方法、分布式存储集群系统和存储介质
CN112578997A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种数据迁移方法、系统及相关设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4814119B2 (ja) * 2007-02-16 2011-11-16 株式会社日立製作所 計算機システム、ストレージ管理サーバ、及びデータ移行方法
US8380949B2 (en) * 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
JP5716099B2 (ja) * 2011-07-22 2015-05-13 株式会社日立製作所 情報処理システム及び情報処理システムの制御方法
CN108829350B (zh) * 2018-05-31 2020-02-21 阿里巴巴集团控股有限公司 基于区块链的数据迁移方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263590B1 (en) * 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
CN105279166A (zh) * 2014-06-20 2016-01-27 中国电信股份有限公司 文件管理方法和系统
CN105468473A (zh) * 2014-07-16 2016-04-06 北京奇虎科技有限公司 数据迁移方法及数据迁移装置
CN107391033A (zh) * 2017-06-30 2017-11-24 北京奇虎科技有限公司 数据迁移方法及装置、计算设备、计算机存储介质
CN109324758A (zh) * 2018-08-24 2019-02-12 华为技术有限公司 数据迁移方法、装置及存储设备
CN110213326A (zh) * 2019-04-15 2019-09-06 浙江大华技术股份有限公司 元数据节点集群的扩容方法、系统、设备和存储介质
CN112578997A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种数据迁移方法、系统及相关设备
CN111880751A (zh) * 2020-09-28 2020-11-03 浙江大华技术股份有限公司 一种硬盘迁移方法、分布式存储集群系统和存储介质

Also Published As

Publication number Publication date
CN113467722A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
US20200012598A1 (en) Garbage Collection Method for Storage Medium, Storage Medium, and Program Product
CN108733306B (zh) 一种文件合并方法及装置
CN106951375B (zh) 在存储系统中删除快照卷的方法及装置
US20210004166A1 (en) Data writing method, client server, and system
CN113296696A (zh) 一种数据的访问方法、计算设备及存储介质
CN111209090B (zh) 一种云平台中虚拟机的创建方法、组件及服务器
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
US20170316027A1 (en) Online file system check
CN111309267B (zh) 存储空间的分配方法、装置、存储设备及存储介质
CN113190503B (zh) 文件系统扩容方法、装置、电子设备及存储介质
CN115951839A (zh) 分区命名空间固态硬盘的数据写入方法、装置及电子设备
CN112835528A (zh) 脏页刷新方法和装置、电子设备和存储介质
CN113467722B (zh) 一种分布式存储系统的数据迁移方法及装置
CN113495889A (zh) 一种分布式对象存储方法、装置、电子设备及存储介质
CN110990356B (zh) 一种用于逻辑镜像的实时自动扩容方法和系统
CN113806300A (zh) 数据存储方法、系统、装置、设备及存储介质
CN106254516B (zh) 负载均衡方法及装置
CN113010111A (zh) Ssd访问加速方法、装置、计算机设备及存储介质
CN112631994A (zh) 数据迁移方法及系统
CN112463058A (zh) 一种碎片数据整理方法、装置及存储节点
CN116700606A (zh) 数据存储方法、装置、设备及存储介质
CN111124294A (zh) 一种扇区映射信息的管理方法及装置、存储介质和设备
CN113504878A (zh) 文件写入方法及装置、存储介质及电子装置
CN108959517B (zh) 文件管理方法、装置及电子设备
CN115686342A (zh) 存储系统中的数据存储方法以及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant