CN115113798A - 一种应用于分布式存储的数据迁移方法、系统及设备 - Google Patents

一种应用于分布式存储的数据迁移方法、系统及设备 Download PDF

Info

Publication number
CN115113798A
CN115113798A CN202110285197.8A CN202110285197A CN115113798A CN 115113798 A CN115113798 A CN 115113798A CN 202110285197 A CN202110285197 A CN 202110285197A CN 115113798 A CN115113798 A CN 115113798A
Authority
CN
China
Prior art keywords
partition
sub
key value
query
data
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.)
Granted
Application number
CN202110285197.8A
Other languages
English (en)
Other versions
CN115113798B (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.)
China Mobile Communications Group Co Ltd
China Mobile Group Shandong Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Shandong 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 China Mobile Communications Group Co Ltd, China Mobile Group Shandong Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110285197.8A priority Critical patent/CN115113798B/zh
Publication of CN115113798A publication Critical patent/CN115113798A/zh
Application granted granted Critical
Publication of CN115113798B publication Critical patent/CN115113798B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及信息技术领域,尤其涉及一种应用于分布式存储的数据迁移方法、系统及设备。其中,该方法包括:响应于将第一磁盘中的第一分区迁移至第二磁盘的迁移指令,在第二磁盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值;接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值;如果所述第一查询键值对应第一分区查询值,则在所述第二分区查询所述第一数据;如果所述第二分区未包含所述第一数据,则从所述第一分区迁移所述第一数据至所述第二分区。通过上述方法可以避免长时间进行数据迁移导致的磁盘磨损不均衡。

Description

一种应用于分布式存储的数据迁移方法、系统及设备
【技术领域】
本发明涉及信息技术领域,尤其涉及一种应用于分布式存储的数据迁移方法、系统及设备。
【背景技术】
在分布式存储中,往往采用多副本机制来保障存储数据的可靠性。多副本机制具体为,将一个数据切分成多个副本数据,分别存储在不同的存储地址中,并且保证各个副本数据之间的一致性。当发生硬盘故障时,多副本机制会对发生故障的副本数据进行删除,并根据发生故障的副本数据对应的其它副本数据,对删除的副本数据进行重新构建。当故障恢复后,将新的硬盘重新加入分布式集群,并执行数据重平衡操作。数据重平衡操作指以分区(partition)为单位,按照数据分布算法将部分数据迁移到新加入的硬盘中,以保证所有磁盘的负载均衡。现有技术中,在执行数据重平衡时,为了降低数据重平衡对正常IO处理的影响,往往将数据迁移的速度和磁盘利用率控制在5%以下。由于对数据迁移的速度和磁盘利用率进行了限制,导致数据重平衡的耗时较长,从而使得主机硬盘磨损不均衡。
【发明内容】
为了解决上述问题,本发明实施例提供了一种应用于分布式存储的数据迁移方法,当需要将第一分区从第一磁盘迁移至第二次盘时,检测到对分区查询值为第一分区中的第一数据的查询请求后,触发数据迁移,将第一数据从第一磁盘迁移至第二磁盘,避免长时间进行数据迁移导致的主机硬盘磨损不均衡。
第一方面,本发明实施例提供了一种数据迁移方法,包括:
响应于将第一磁盘中的第一分区迁移至第二磁盘的迁移指令,在第二磁盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值;
接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值;
如果所述第一查询键值对应第一分区查询值,则在所述第二分区查询所述第一数据;
如果所述第二分区未包含所述第一数据,则从所述第一分区迁移所述第一数据至所述第二分区。
本发明实施例中,当需要将第一磁盘中的第一分区迁移至第二磁盘时,不立即进行数据迁移,而是当接受到对第一分区中第一数据的查询请求时,再将第一数据迁移至第二磁盘,避免长时间的持续数据迁移造成的硬盘不均衡。
其中一种可能的实现方式中,所述第一分区包含多个子分区,每个所述子分区包含多个数据分片;确定所述第一查询键值对应第一分区查询值之后,在所述第二分区查询所述第一数据,包括:
根据所述第一查询键值,确定所述第一数据对应的第一子分区键值和第一分片键值;
根据所述第一子分区键值和第一分片键值,在所述第二分区已有的子分区和数据分片中进行查询。
其中一种可能的实现方式中,如果所述第二分区未包含所述第一数据,则从所述第一分区迁移所述第一数据至所述第二分区,包括:
如果根据所述第一子分区键值和第一分片键值在所述第二分区中未查询到所述第一数据,则根据所述第一子分区键值和第一分片键值在所述第一分区进行查询,并将所述第一分区中所述第一子分区键值和第一分片键值对应的数据分区迁移至所述第二分区。
其中一种可能的实现方式中,所述方法还包括:
接收到请求建立第一子分区的第二请求之后,根据所述第二请求生成第二查询键值;
如果所述第二查询键值对应第一分区查询值,则在所述第二分区建立所述第一子分区。
其中一种可能的实现方式中,所述方法还包括:
接收到请求删除第二子分区的第三请求之后,根据所述第三请求生成第三查询键值;
如果所述第三查询键值对应第一分区查询值,则根据所述第三查询键值,确定所述第二子分区对应的第二子分区键值;
根据所述第二子分区键值在所述第二分区已有的子分区中进行查询;
如果在所述第二分区中查询到所述第二子分区键值对应的子分区,则对查询到的子分区进行删除;
如果根据所述第二子分区键值在所述第二分区中未查询到对应的子分区,则根据所述第二子分区键值在所述第一分区进行查询,并将所述第一分区中所述第二子分区键值对应的子分区进行删除。
其中一种可能的实现方式中,所述方法还包括:
接收到请求将第三子分区更改为第四子分区的第四请求之后,根据所述第四请求生成第四查询键值;
如果所述第四查询键值对应第一分区查询值,则在所述第二分区建立所述第四子分区,并对所述第一分区或第二分区中的第三子分区进行删除。
其中一种可能的实现方式中,所述第一磁盘内还设置有第三分区,所述方法还包括:
接收到请求建立第五子分区的第五请求后,根据所述第五请求生成第五查询键值;
如果所述第五查询键值对应第三分区的查询键值,则在所述第三分区建立所述第五子分区,并将第一分区中的至少一个子分区对应的数据分片迁移至所述第二分区。
第二方面,本发明实施例提供一种应用于分布式存储的数据迁移系统,包括:
处理模块,用于响应于将第一磁盘中的第一分区迁移至第二磁盘的迁移指令,在第二磁盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值;
生成模块,用于接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值;
查询模块,在所述第二分区查询所述第一数据;
迁移模块,用于从所述第一分区迁移所述第一数据至所述第二分区
第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面所述的方法。
应当理解的是,本发明实施例的第二~第四方面与本发明实施例的第一方面的技术方案一致各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种分布式存储系统的结构示意图;
图2为本发明实施例提供的一种数据迁移方法的流程图;
图3为本发明实施例提供的另一种数据迁移方法的流程图;
图4为本发明实施例提供的另一种数据迁移方法的流程图;
图5为本发明实施例提供的另一种数据迁移方法的示意图;
图6为本发明实施例提供的一种数据迁移系统的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
【具体实施方式】
为了更好的理解本说明书的技术方案,下面结合附图对本发明实施例进行详细描述。
图1为本发明实施例提供的一种分布式存储系统的结构示意图。如图1所示,数据以Key-Value数据分片的方式存储在硬盘里,即每个数据对应一个KEY值。存储系统中包含多个硬盘,例如图中的Disk1至DiskM。在分布式系统中,包含多个分区,每个分区包含至少一个子分区,每个子分区中包含至少一个数据分片,同时每个分区至少对应一个主硬盘或备硬盘,如图1中的分区P2对应主硬盘Disk3和备硬盘Disk7,即分区P2中的数据以数据分片的形式存储在主硬盘Disk3和备硬盘Disk7中。在存储数据块时,根据数据块的属性,生成对应的KEY值作为该数据块的地址。由此,可以通过KEY值查询到该数据块对应的数据分片所在的分区、主硬盘、备硬盘。当接收到对数据块的访问请求时,可以对请求访问的数据块生成对应的KEY值,之后根据生成的KEY值采用一致性哈希算法对KEY值进行哈希计算,并将计算结果映射到一致性哈希环上,从而得到KEY值对应的数据块所在的分区查询值,由此可以查找到数据块所在的分区,之后再根据KEY值从存储元数据中记录的分区与硬盘之间的对应关系中,查找到KEY值对应的主硬盘查询值、备硬盘查询值从而确定数据块的存储位置。例如,图1中示出的,根据数据块生成的KEY1经过哈希计算并映射到一致性哈希环后,可以得到分区查询值P2,即KEY1对应的数据块存储在分区P2中。之后根据存储元数据中查询到分区P2的存储地址所在的主硬盘为Disk3。最后,确定KEY值对应的数据分片键值,并根据数据分片键值在主硬盘Disk3中查找对应的数据分片,从而达到对数据块Value1的访问操作。而当数据平衡时,需要将分区迁移至其它硬盘,具体的,需要将分区包含的所有数据分片从当前存储的硬盘迁移至其它硬盘。但是分区中包含的数据分片较多,迁移过程较长,容易造成硬盘磨损不均衡。
本发明实施例中,当接收到将第一分区包含的数据从第一硬盘迁移至第二硬盘时,不立即对该分区以及包含的数据进行迁移,而是当接收到对该分区内的第一数据的读写请求时,再将第一数据迁移至第二硬盘,避免长时间的持续数据迁移造成的硬盘磨损不均衡。
图2为本发明实施例提供的一种应用于分布式存储的数据迁移方法的流程图,其中,所述方法可以由数据迁移系统执行,在一些实施例中也可以由分布式存储的处理模块执行。如图2所示,该方法包括:
步骤201,响应于将第一硬盘中的第一分区迁移至第二硬盘的迁移指令,在第二硬盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值。其中,分区查询值可以根据分区标识信息确定,并可以根据分区的标识信息对分区进行查询。可选的,分区查询值可以是根据分区名称或分区地址等信息生成的。例如,第一分区的名称为partition_m,根据第一分区的名称partition_m确定的分区查询值记为第一分区查询值。进一步,可以在第二硬盘中新建名称为partition_m的第二分区,此时第二分区对应的分区查询值为第一分区查询值。为了避免在系统寻址时,寻到两个相同的地址导致报错,因此将第一分区的名称修改为partition_m_p,此时,根据第二分区的名称partition_m_p生成的分区查询值与第一分区查询值不同。
步骤202,接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值。其中,第一请求中可以包含第一数据的属性信息,则可以根据第一数据的属性信息生成对应的第一查询键值,第一查询键值可以用于查询第一数据所在的分区。可选的,在存储第一数据时可以根据第一数据的属性生成查询键值,可选的,该查询键值可以根据其存储位置包括分区键值、子分区键值或者数据分片键值。因此根据对第一数据的查询请求,可以生成对应的第一查询键值KEY1,之后对KEY1进行哈希运算,并将运算的结果通过一致性哈希环,并根据存储的关联关系,确定KEY1对应的分区为partition_m,则说明第一数据所在的分区为partition_m。
步骤203,如果所述第一查询键值对应第一分区查询值,则在所述第二分区查询所述第一数据。本发明实施例中,第一分区查询值对应在第二硬盘建立的第二分区,因此在第二分区查询第一数据。
在一些实施例中,第一分区中可以包含多个子分区,每个子分区中包含多个数据分片,第一数据具体存储在数据分片中。在第二分区查询第一数据的步骤可以为:根据第一查询键值,确定第一数据对应的第一子分区键值和第一分片键值。根据所述第一子分区键值和第一分片键值,在所述第二分区已有的子分区和数据分片中进行查询第一数据。
步骤204,如果所述第二分区未包含所述第一数据,则从所述第一分区迁移所述第一数据至所述第二分区。
在一些实施例中,如果根据所述第一子分区键值和第一分片键值在所述第二分区中未查询到所述第一数据,则说明第一数据所在的数据分片还未迁移到第二分区。此时可以根据所述第一子分区键值和第一分片键值在所述第一分区进行查询,当在第一分区查询到第一数据后,可以将所述第一分区中所述第一子分区键值和第一分片键值对应的数据分区迁移至所述第二分区。可选的,如果在第一分区内也未查询到第一数据时,可以对查询请求反馈一个异常信息。
在一些实施例中,在分区查询值为第一分区查询值的分区中新建一个子分区时,可以直接在迁移后的第二分区中进行新建。所述方法包括:接收到请求建立第一子分区的第二请求之后,根据所述第二请求生成第二查询键值。如果所述第二查询键值对应第一分区查询值,则在所述第二分区建立所述第一子分区。
在一些实施例中,在对分区查询值为第一分区查询值的分区进行删除子分区操作时,如图3所示,该方法处理步骤包括:
步骤301,接收到请求删除第二子分区的第三请求之后,根据所述第三请求生成第三查询键值。
步骤302,如果所述第三查询键值对应第一分区查询值,则根据所述第三查询键值,确定所述第二子分区对应的第二子分区键值。
步骤303,根据所述第二子分区键值在所述第二分区已有的子分区中进行查询。如果在所述第二分区中查询到所述第二子分区键值对应的子分区则执行步骤304,如果根据所述第二子分区键值在所述第二分区中未查询到对应的子分区,则执行步骤305。
步骤304,对查询到的子分区进行删除。
步骤305,根据所述第二子分区键值在所述第一分区进行查询,并将所述第一分区中所述第二子分区键值对应的子分区进行删除。
在一些实施例中,对第一分区查询值对应的分区的子分区进行修改时,可以等价为先新增后删除,具体包括:接收到请求将第三子分区更改为第四子分区的第四请求之后,根据所述第四请求生成第四查询键值。如果所述第四查询键值对应第一分区查询值,则在所述第二分区建立所述第四子分区,并对所述第一分区或第二分区中的第三子分区进行删除。
在一些实施例中,由于第一硬盘内不仅有第一分区,还有其它分区存在,当第一硬盘内的第三分区写入新的数据分区时,可以触发数据迁移,将第一分区中的部分数据分片迁移至第二分区,如图4所示,该方法处理步骤包括:
步骤401,接收到请求建立第五子分区的第五请求后,根据所述第五请求生成第五查询键值。
步骤402,如果所述第五查询键值对应第三分区的查询键值,则在所述第三分区建立所述第五子分区,并将第一分区中的至少一个子分区对应的数据分片迁移至所述第二分区。
在一些实施例中,当第一分区中的所有数据分片均迁移至第二分区时,可以对第一分区进行删除,以解放存储空间以及减少信息处理步骤。
在一个具体示例中,需要迁移的分区为Partition_m,Partition_m原来对应的硬盘为Disk_a,即Partition_m中包含的数据分片存储于硬盘Disk_a中,现在需要将Partition_m迁移至Disk_b,即将Partition_m中包含的数据分片迁移至Disk_b。则数据迁移系统对Partition_m进行数据迁移时,Partition_m包含的数据分片先保留在Disk_a上,为了保证数据可靠性,可以不对Disk_a中的Partition_m以及未迁移的数据分片进行删除,而是将Partition_m重命名为Partition_m_p,并建立与Partition_m的关联关系,具体为:硬盘Disk_b中的Partition_m为子分区,Disk_a中的Partition_m_p为父分区。子分区与父分区之间的关联关系如图5所示。其中,父分区不在哈希环的寻址空间内,因此,对原Partition_m中的数据进行寻址时,数据的存储地址会直接指向Disk_b中的子分区Partition_m,而不是Disk_a中的父分区Partition_m_p。此时,Partition_m中未迁移的分片暂时保留在Disk_a的父分区Partition_m_p中,以触发式的方式迁移至硬盘Disk_b中。触发方法包括:
1、接收到对Partition_m中的数据块的查询请求时,根据查询请求生成相应的KEY值,并利用KEY值在Partition_m中查询该KEY值对应的数据块所在的子分区以及数据分片。如果未查找到,则在Partition_m_p中查找,如果查找到,则返回相应信息并触发迁移,将对应的分片迁移至Disk_b上。
2、当检测到Partition_n中写入新的数据分区时,可以直接写入Disk_a。然后触发数据迁移,将Partition_m_p中的部分数据分片迁移至Disk_b,避免Disk_a空间使用率过高影响后续写入。可选的,可以根据存储负载情况一次迁移多个数据分片,本发明实施例不做具体限制。
在对partition_m中写入新的子分区时,可以直接写入Disk_b。在对partition_m中的子分区进行删除时,可以根据删除请求生成相应的KEY值,根据KEY值在partition_m中寻找对应的子分区,如果查找到则进行删除,如果未查找到则在partition_m_p中查找,并对查找到的子分区进行删除。可选的,如果在partition_m_p也未查找到,则可以对删除请求返回一个失败信息。在对partition_m中的子分区进行修改时,可以等价为先新增后删除,具体步骤如上述所示,此处不再赘述。
当Partition_m_p中的所有数据分片均迁移至Partition_m中时,可以对Partition_m_p进行删除,并解除Partition_m_p与Partition_m之间的父子关联关系。
对应上述方法,本发明实施例提供了一种应用于分布式存储的数据迁移系统,如图6所示,该系统包括:处理模块601、生成模块602、查询模块603和迁移模块604。
处理模块601,用于响应于将第一硬盘中的第一分区迁移至第二硬盘的迁移指令,在第二硬盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值。
生成模块602,用于接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值;
查询模块603,在所述第二分区查询所述第一数据;
迁移模块604,用于从所述第一分区迁移所述第一数据至所述第二分区。
图6所示实施例提供的操作数据迁移系统可用于执行本说明书图1~图5所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图7为本发明电子设备一个实施例的结构示意图,如图7所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本发明图1~图5所示实施例提供的数据迁移方法。
图7示出了适于用来实现本发明实施方式的示例性电子设备的框图。图7显示的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器710、通信接口720和存储器730,连接不同系统组件(包括存储器730、通信接口720和处理单元710)的通信总线740。
通信总线740表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器730可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器730可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器730中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本申请所描述的实施例中的功能和/或方法。
处理器710通过运行存储在存储器730中的程序,从而执行各种功能应用以及数据处理,例如实现本申请图1~图5所示实施例提供的数据迁移方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本申请图1~图5所示实施例提供的数据迁移方法。
上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机硬盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable Programmable ReadOnly Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑硬盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer;以下简称:PC)、个人数字助理(Personal Digital Assistant;以下简称:PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3显示器、MP4显示器等。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种应用于分布式存储的数据迁移方法,其特征在于,包括:
响应于将第一磁盘中的第一分区迁移至第二磁盘的迁移指令,在第二磁盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值;
接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值;
如果所述第一查询键值对应第一分区查询值,则在所述第二分区查询所述第一数据;
如果所述第二分区未包含所述第一数据,则从所述第一分区迁移所述第一数据至所述第二分区。
2.根据权利要求1所述的方法,其特征在于,所述第一分区包含多个子分区,每个所述子分区包含多个数据分片;确定所述第一查询键值对应第一分区查询值之后,在所述第二分区查询所述第一数据,包括:
根据所述第一查询键值,确定所述第一数据对应的第一子分区键值和第一分片键值;
根据所述第一子分区键值和第一分片键值,在所述第二分区已有的子分区和数据分片中进行查询。
3.根据权利要求2所述的方法,其特征在于,如果所述第二分区未包含所述第一数据,则从所述第一分区迁移所述第一数据至所述第二分区,包括:
如果根据所述第一子分区键值和第一分片键值在所述第二分区中未查询到所述第一数据,则根据所述第一子分区键值和第一分片键值在所述第一分区进行查询,并将所述第一分区中所述第一子分区键值和第一分片键值对应的数据分区迁移至所述第二分区。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收到请求建立第一子分区的第二请求之后,根据所述第二请求生成第二查询键值;
如果所述第二查询键值对应第一分区查询值,则在所述第二分区建立所述第一子分区。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收到请求删除第二子分区的第三请求之后,根据所述第三请求生成第三查询键值;
如果所述第三查询键值对应第一分区查询值,则根据所述第三查询键值,确定所述第二子分区对应的第二子分区键值;
根据所述第二子分区键值在所述第二分区已有的子分区中进行查询;
如果在所述第二分区中查询到所述第二子分区键值对应的子分区,则对查询到的子分区进行删除;
如果根据所述第二子分区键值在所述第二分区中未查询到对应的子分区,则根据所述第二子分区键值在所述第一分区进行查询,并将所述第一分区中所述第二子分区键值对应的子分区进行删除。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收到请求将第三子分区更改为第四子分区的第四请求之后,根据所述第四请求生成第四查询键值;
如果所述第四查询键值对应第一分区查询值,则在所述第二分区建立所述第四子分区,并对所述第一分区或第二分区中的第三子分区进行删除。
7.根据权利要求2所述的方法,其特征在于,所述第一磁盘内还设置有第三分区,所述方法还包括:
接收到请求建立第五子分区的第五请求后,根据所述第五请求生成第五查询键值;
如果所述第五查询键值对应第三分区的查询键值,则在所述第三分区建立所述第五子分区,并将第一分区中的至少一个子分区对应的数据分片迁移至所述第二分区。
8.一种应用于分布式存储的数据迁移系统,其特征在于,包括:
处理模块,用于响应于将第一磁盘中的第一分区迁移至第二磁盘的迁移指令,在第二磁盘建立第二分区,并且将所述第二分区的分区查询值确定为所述第一分区对应的第一分区查询值,以及将所述第一分区的分区查询值修改为非第一分区查询值;
生成模块,用于接收到请求查询第一数据的第一请求之后,根据所述第一请求生成第一查询键值;
查询模块,在所述第二分区查询所述第一数据;
迁移模块,用于从所述第一分区迁移所述第一数据至所述第二分区。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
CN202110285197.8A 2021-03-17 2021-03-17 一种应用于分布式存储的数据迁移方法、系统及设备 Active CN115113798B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110285197.8A CN115113798B (zh) 2021-03-17 2021-03-17 一种应用于分布式存储的数据迁移方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110285197.8A CN115113798B (zh) 2021-03-17 2021-03-17 一种应用于分布式存储的数据迁移方法、系统及设备

Publications (2)

Publication Number Publication Date
CN115113798A true CN115113798A (zh) 2022-09-27
CN115113798B CN115113798B (zh) 2024-03-19

Family

ID=83322961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110285197.8A Active CN115113798B (zh) 2021-03-17 2021-03-17 一种应用于分布式存储的数据迁移方法、系统及设备

Country Status (1)

Country Link
CN (1) CN115113798B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164167A (zh) * 2011-12-15 2013-06-19 深圳市腾讯计算机系统有限公司 一种数据迁移方法及装置
CN103354923A (zh) * 2012-02-09 2013-10-16 华为技术有限公司 一种数据重建方法、装置和系统
CN103718533A (zh) * 2013-06-29 2014-04-09 华为技术有限公司 一种分区平衡子任务下发方法、装置与系统
US20150254257A1 (en) * 2014-03-04 2015-09-10 Microsoft Corporation Seamless data migration across databases
CN105718217A (zh) * 2016-01-18 2016-06-29 浪潮(北京)电子信息产业有限公司 一种精简配置存储池数据一致性维护的方法及装置
CN108475229A (zh) * 2016-11-26 2018-08-31 华为技术有限公司 数据迁移的方法、主机、及固态存储设备
US10157214B1 (en) * 2014-11-19 2018-12-18 Amazon Technologies, Inc. Process for data migration between document stores
CN109062506A (zh) * 2018-07-16 2018-12-21 山东大学 Raid-5全闪存磁盘阵列及提高阵列整体寿命的方法
US20190129627A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Method and system for wear-leveling using a multi-gap progress field
CN109783398A (zh) * 2019-01-18 2019-05-21 上海海事大学 一种基于相关感知页面级ftl固态硬盘性能优化方法
CN109995813A (zh) * 2017-12-29 2019-07-09 杭州华为数字技术有限公司 一种分区扩展方法、数据存储方法及装置
CN110162517A (zh) * 2019-05-30 2019-08-23 深圳前海微众银行股份有限公司 数据迁移方法、装置、设备及计算机可读存储介质
CN110287197A (zh) * 2019-06-28 2019-09-27 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置
CN111007988A (zh) * 2019-11-29 2020-04-14 苏州浪潮智能科技有限公司 一种raid内部磨损均衡方法、系统、终端及存储介质
CN111198845A (zh) * 2020-02-13 2020-05-26 河南文正电子数据处理有限公司 一种数据迁移方法、可读存储介质及计算设备
CN112486857A (zh) * 2020-10-29 2021-03-12 中山大学 一种磨损感知和负载均衡的多层非易失缓存方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164167A (zh) * 2011-12-15 2013-06-19 深圳市腾讯计算机系统有限公司 一种数据迁移方法及装置
CN103354923A (zh) * 2012-02-09 2013-10-16 华为技术有限公司 一种数据重建方法、装置和系统
CN103718533A (zh) * 2013-06-29 2014-04-09 华为技术有限公司 一种分区平衡子任务下发方法、装置与系统
US20150254257A1 (en) * 2014-03-04 2015-09-10 Microsoft Corporation Seamless data migration across databases
US10157214B1 (en) * 2014-11-19 2018-12-18 Amazon Technologies, Inc. Process for data migration between document stores
CN105718217A (zh) * 2016-01-18 2016-06-29 浪潮(北京)电子信息产业有限公司 一种精简配置存储池数据一致性维护的方法及装置
CN108475229A (zh) * 2016-11-26 2018-08-31 华为技术有限公司 数据迁移的方法、主机、及固态存储设备
US20190129627A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Method and system for wear-leveling using a multi-gap progress field
CN109995813A (zh) * 2017-12-29 2019-07-09 杭州华为数字技术有限公司 一种分区扩展方法、数据存储方法及装置
CN109062506A (zh) * 2018-07-16 2018-12-21 山东大学 Raid-5全闪存磁盘阵列及提高阵列整体寿命的方法
CN109783398A (zh) * 2019-01-18 2019-05-21 上海海事大学 一种基于相关感知页面级ftl固态硬盘性能优化方法
CN110162517A (zh) * 2019-05-30 2019-08-23 深圳前海微众银行股份有限公司 数据迁移方法、装置、设备及计算机可读存储介质
CN110287197A (zh) * 2019-06-28 2019-09-27 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置
CN111007988A (zh) * 2019-11-29 2020-04-14 苏州浪潮智能科技有限公司 一种raid内部磨损均衡方法、系统、终端及存储介质
CN111198845A (zh) * 2020-02-13 2020-05-26 河南文正电子数据处理有限公司 一种数据迁移方法、可读存储介质及计算设备
CN112486857A (zh) * 2020-10-29 2021-03-12 中山大学 一种磨损感知和负载均衡的多层非易失缓存方法

Also Published As

Publication number Publication date
CN115113798B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
US11068441B2 (en) Caseless file lookup in a distributed file system
US11263087B2 (en) Methods and systems for serverless data deduplication
US9015417B2 (en) Deduplication-aware page cache
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
US11836112B2 (en) Path resolver for client access to distributed file systems
US20180285376A1 (en) Method and apparatus for operating on file
CN111309732B (zh) 数据处理方法、装置、介质和计算设备
CN110865888A (zh) 一种资源加载方法、装置、服务器及存储介质
US10909086B2 (en) File lookup in a distributed file system
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
CN110955665A (zh) 缓存查询方法、装置和电子设备
US20200341638A1 (en) System and method for accelerated data access
CN107408132B (zh) 跨越多个类型的存储器移动分层数据对象的方法和系统
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
US20220269657A1 (en) Cache indexing using data addresses based on data fingerprints
CN115994122B (zh) 快速缓存信息的方法、系统、设备及储存介质
CN117348968A (zh) 一种虚拟磁盘的缓存数据加速方法、装置和设备
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
US20200334108A1 (en) System and method for searchable backup data
CN115113798B (zh) 一种应用于分布式存储的数据迁移方法、系统及设备
US10146791B2 (en) Open file rebalance
US11132401B1 (en) Distributed hash table based logging service
US20220027335A1 (en) Active-active system index management
CN114201269A (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