CN110109891A - 用于数据迁移的方法、设备和计算机程序产品 - Google Patents

用于数据迁移的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110109891A
CN110109891A CN201810050812.5A CN201810050812A CN110109891A CN 110109891 A CN110109891 A CN 110109891A CN 201810050812 A CN201810050812 A CN 201810050812A CN 110109891 A CN110109891 A CN 110109891A
Authority
CN
China
Prior art keywords
file
index
key message
index value
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
CN201810050812.5A
Other languages
English (en)
Other versions
CN110109891B (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810050812.5A priority Critical patent/CN110109891B/zh
Priority to US16/250,493 priority patent/US11281623B2/en
Publication of CN110109891A publication Critical patent/CN110109891A/zh
Application granted granted Critical
Publication of CN110109891B publication Critical patent/CN110109891B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Abstract

本公开提出了一种用于迁移数据的方案。该方案中,首先由迁移工具接收来自源服务器的索引,该索引具有与存储在源服务器处的多个文件分别对应的索引值。迁移工具然后获取关键信息文件所对应的索引值在索引中的位置,关键信息文件包含针对多个文件的整体信息。迁移工具随后根据已获取的位置对索引进行排序。最后,迁移工具根据已排序的索引对多个文件进行处理,使得已排序的索引结构使得关键信息文件被最后处理。本公开的方案可以自动调整文件迁移的顺序,从而使得关键信息被最后处理。因此,即使关键信息在备份数据中的存储位置不在所期望的存储位置,也可以使得该关键信息被正确处理,以保证数据迁移的顺利进行。

Description

用于数据迁移的方法、设备和计算机程序产品
技术领域
本公开的实施例涉及存储系统,并且更具体地涉及用于数据迁移的方法和设备。
背景技术
目前,客户端的数据通常在服务器端进行备份。存储技术的不断进步使得存储系统的性能更佳、容量更大。有时,需要将数据从原有的存储系统或存储服务器迁移到更为先进的存储系统或存储服务器中。在对服务器处的数据进行迁移时,通常要把不同类型的服务器中所存储的数据的格式以及层次结构考虑在内,以使得数据迁移能够顺利进行。
发明内容
本公开的实施例提供用于数据迁移的方法、装置以及计算机程序产品。
在本公开的第一方面,提供了一种用于数据迁移的方法,所述方法包括:接收来自源服务器的索引,所述索引具有与存储在所述源服务器处的多个文件分别对应的索引值;获取关键信息文件所对应的索引值在所述索引中的位置,所述关键信息文件包含针对所述多个文件的整体信息;根据已获取的所述位置对所述索引进行排序;以及根据已排序的索引对所述多个文件进行处理,使得已排序的所述索引结构使得所述关键信息文件被最后处理。
在本公开的第二方面,提供了一种电子设备,所述电子设备包括处理器以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述处理器执行时使得所述电子设备执行动作,所述动作包括:接收来自源服务器的索引,所述索引具有与存储在所述源服务器处的多个文件分别对应的索引值;获取关键信息文件所对应的索引值在所述索引中的位置,所述关键信息文件包含针对所述多个文件的整体信息;根据已获取的所述位置对所述索引进行排序;以及根据已排序的索引对所述多个文件进行处理,使得已排序的所述索引结构使得所述关键信息文件被最后处理。
在本公开的第三方面,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使所述机器执行本公开的第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的存储系统的框图;
图2示出了根据本公开的实施例的数据存储结构的示意图;
图3示出了根据本公开的实施例的另一数据存储结构的示意图;
图4示出了根据本公开的实施例的用于数据迁移的方法的流程图;
图5示出了根据本公开的实施例的哈希树搜索过程的示意图;以及
图6示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
目前,客户端的数据通常在服务器端进行备份。在客户端存储的数据的量非常大。存储技术的不断进步使得存储系统的性能更佳、容量更大。有时,需要将数据从原有的存储系统或存储服务器迁移到更为先进的存储系统或存储服务器中。在对服务器处的数据进行迁移时,通常要把不同类型的服务器中所存储的数据的格式以及层次结构考虑在内,以使得数据迁移能够顺利进行。
在数据存储服务器处,通常存储有关键信息。该关键信息也被成为系统信息,其对存储服务器处的文件的总体信息,诸如文件的大小、创建时间、存储路径。在关键信息的真实存储位置与预先期望的存储位置不同时,现有技术中的迁移逻辑可能发生崩溃。本公开的方法可以自动调整文件迁移的顺序,从而使得关键信息被最后处理。因此,即使关键信息在备份数据中的存储位置不在所期望的存储位置,也可以使得该关键信息被正确处理,以保证迁移的顺利进行。
为了至少部分地解决上述问题以及其他潜在问题,本公开的示例实施例提供了一种用于迁移数据的方案。本公开的方案可以利用通用方式来处理不同存储类型的备份数据,而不需要针对不同存储类型的备份数据进行专门的更改,从而使得迁移逻辑更加清晰。应当理解,本公开的方案并非仅可用于迁移备份数据,而是可以适用于迁移任何类型的数据。
本公开的方案可以使得迁移工具更为可靠。在本公开的方案中,迁移工具接收来自源服务器的索引,该索引具有与存储在源服务器处的多个文件分别对应的索引值。然后,迁移工具获取关键信息文件所对应的索引值在索引中的位置,关键信息文件包含针对多个文件的整体信息。随后,迁移工具根据已获取的位置对索引进行排序。迁移工具根据已排序的索引对多个文件进行处理,使得已排序的索引结构使得关键信息文件被最后处理。
图1示出了根据本公开的实施例的存储系统100的框图。应当理解,仅出于示例性的目的描述存储系统100的结构和功能而不是暗示对于本公开的范围的任何限制。也即,存储系统100中的某些部件可被省略或替换,而另一些未示出的部件可被添加到存储系统100中。本公开的实施例可以被体现在不同的结构和/或功能中。本文中的存储系统100可以包括独立磁盘冗余阵列(RAID)。
如图1所示,存储系统100包括源服务器110和目标服务器120。在源服务器110和目标服务器120之间存在数据接口130。数据接口130可以是有线连接或无线连接。源服务器110和目标服务器120之间的数据接口130为双向数据接口。
备份数据存储在源服务器110上。可能希望将备份数据从源服务器110移动到目标服务器120上。因此需要引入迁移工具140,以完成从源服务器110到目标服务器120的备份数据移动。图1显示了典型的迁移情况,即通过数据接口130将数据从源服务器110迁移到目标服务器120。
在某些实施例中,迁移工具140例如可以是软件实现的应用或称应用程序,其可以部署在源服务器110上、部署在目标服务120上、或者部署在源服务器110和目标服务器120两者上。作为非限制性的示例,迁移工具140被部署在目标服务器120上。备选地或者附加地,迁移工具140也可以由硬件、固件或者其组合实现。
在源服务器110和目标服务器120的基础架构不同的情况下,备份数据在每个服务器上以不同的格式被存储。例如,目标服务器120可能是新型的数据存储服务器,诸如利用了集成数据域的服务器。迁移工具140遍历源服务器110上的备份数据,并且将备份数据转换为目标服务器120的期望格式,然后将数据备份到目标服务器120。
在源服务器110中所存储的文件的层次结构可以是树形的。针对层次结构化文件,可以形成关键信息文件。该关键信息文件也可以成为系统信息文件,其包含了备份数据的整体信息,诸如文件的大小、创建时间、存储路径。在本文中,也将系统信息文件称为系统信息,并且将关键信息文件成为关键信息。
在传统的已知方案中,迁移工具在处理源备份数据时,将备份文件从底层目录移动到顶层目录。在源备份中找到关键信息文件后,会得到备份大小、路径等备份信息。然后,迁移工具根据目标服务器中的新的数据结构来改变备份数据的一些对应值,诸如索引值。迁移工具会将改变后的这些值写入目标服务器。
在关键信息消息被写入目标服务器后,迁移工具将关闭连接并完成备份信息。关闭连接和完成备份信息的原因是关键信息包含了备份数据的整体信息,诸如文件的大小、创建时间、存储路径。因此,在关键信息被写入到目标服务器之后,备份数据不应再被更改,否则这些备份数据的关键信息将可能与备份数据真实情况不一致。换言之,在已经形成了真实的关键信息文件之后,如果再从源服务器向目标服务器迁移数据,则关键信息文件将不能反映在关键信息文件形成之后被迁移的数据的情况。
图2示出了一种备份数据的存储结构200。图2所示出的是一种传统的存储结构的类型。如图2所示,需要被迁移的文件的层次结构被示出,其中每个框所代表的文件所对应的哈希值。在图2中,关键信息216存在于备份数据的层218,所以从底层到顶层处理备份数据的机制对于该场景来说是可行的。在层204,存储了根哈希202。根哈希202是对备份文件的一个整体哈希表示。在层218,存储了目录212、文件214、以及关键信息216。在层226,存储了文件222和文件224。在图2中,为简便起见,将文件或目录对应的哈希值直接称为文件或目录,例如目录212指的是该目录所对应的哈希值。
图2的示例中,该索引的结构是哈希树。换言之,该存储结构200中的每个节点代表一个哈希值,该哈希值对应于源服务器110中的一个特定文件。该哈希值是通过对该特定文件进行哈希处理而得到的。例如,在某些实施例中,可以对该特定文件的名称、创建时间、大小、存储路径等信息作为哈希函数的输入而得到哈希值。该哈希值作为该特定文件的索引,能够提供到该特定文件的入口。在本文中,也将索引的结构简称为索引,并且将哈希与哈希值互换使用。
在对图2所示的存储结构的文件进行处理时,迁移工具从顶层到底层进行搜索,然后从底层到顶层处理备份数据。换言之,搜索哈希结构的方向和处理备份文件的方向是相反的。当层218的所有文件和目录212、214都已经被进行处理后,将开始处理关键信息216。然后确定备份数据的相关信息。在这种情况下,在关键信息216被写入后就不再写入备份数据。
在备份数据存储结构的类型不同的情况下,关键信息文件的存储位置可能相应地不同。图3描绘了与图2不同类型的存储结构,其中的关键信息文件存储位置不同。
在图3中,层304包括根哈希302。根哈希302是对备份文件的一个整体哈希表示。层318包括复合哈希312、复合哈希314、以及复合哈希316。复合哈希是原子哈希的组合。换言之,复合哈希312是层328的目录321和文件322以及层335的文件331的组合的哈希值。原子哈希是直接数据中根据哈希函数得出的,而复合哈希是从原子哈希组合得出的。因此,在需要获得复合哈希所对应的数据相关的信息,诸如该数据的存储位置时,需要解析该复合哈希312。同理,复合哈希314是由层328的目录323、文件324以及层335的文件332组合而得出的,而复合哈希316是从层328的目录325、文件326、关键信息327以及层335的文件333、文件324组合得到的。原子哈希是对数据的直接索引,而复合哈希312、复合哈希314、复合哈希316中的每一个指向一个单独的数据集合。由于复合哈希需要被解析,所以关键信息不存储在层318中。如图3所示,关键信息327存储于层328中。
在图3中,在对备份数据进行迁移时,复合哈希312、复合哈希314、复合哈希316可能作为三个子任务被并行地处理。当迁移工具找到关键信息327并处理这些数据时,它将关闭连接并完成备份信息。但是,在完成备份信息时,复合哈希312和复合哈希314中的数据的子任务可能仍在运行,这会导致迁移出现问题。例如,由于与目标服务器120的连接关闭而导致正在运行的迁移子任务失败。即使此时连接130未关闭,也不允许将数据写入目标服务器130,因为备份信息已完成,在完成后写入更多数据将导致目标服务器130上的备份信息数据和实际的数据不对应。
更为重要的是,关键信息在不同类型的备份数据中可能处于不同存储位置,因此不可能提前知道关键信息的位置并且相应地改变数据迁移的顺序。而且迁移工具不能等待所有其他进程被完成,否则会阻塞主进程,从而导致迁移永远不能被完成。
本公开的方案能够解决在不同类型的备份系统中关键信息被存储的位置不同的问题。该方案首先快速搜索哈希树,以获取关键信息327在哈希树中的位置。该搜索过程只读取源服务器110中的数据,而不将任何数据写入目标服务器120。当找到关键信息327的位置时,迁移工具会记录该位置信息,包括该关键信息更上层的哈希。然后,迁移工具将对哈希结构进行重新排序。所得到的顺序将使得包含关键信息327的哈希被最后处理,从而确保在处理完关键信息327之后,不会发生其他的数据移动。以下对数据迁移方法进行详细描述。
图4示出了根据本公开的实施例的用于数据迁移的方法400的流程图。应当理解的是,方法400还可以包括未示出的附加步骤和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在402,迁移工具接收来自源服务器110的索引。该索引具有与存储在源服务器110处的多个文件分别对应的索引值。作为一种非限制的实施例,索引是树,并且其中针对多个文件中的每个文件的索引值是针对每个文件而获得的哈希值。源服务器110处的备份数据的结构可以是存储结构200或存储结构300。以下将以存储结构300作为索引为例来描述本公开的方案。由于文件的索引比文件本身包含更少的数据量,因而对文件的索引而不是对文件本身进行处理可以有效减少处理的时间。
在某些实施例中,多个文件的类型包括目录文件和数据文件。如在图300中所示出的,目录文件包括目录文件321、323、325,数据文件包括文件322、324、326、331、332、333、334。另外,该多个文件还包括关键信息327。应当理解,多个文件还可以包括其他的文件类型。通过层次化的存储数据,可以使得文件的存储结构更为清晰,从而能够使得数据取回变得容易。
在404,迁移工具获取关键信息文件327所对应的索引值在索引中的位置,关键信息文件327包含针对多个文件的整体信息。获取关键信息文件327的索引位置是为了防止在多任务并行处理时未将关键信息文件327最后处理的情况所造成的迁移错误。
作为一种非限制性的实施例,关键信息文件327的内容包括以下中的至少一项:多个文件中的每个文件的大小、多个文件中的每个文件的存储路径以及多个文件中的每个文件的创建时间。通过存储多个文件的以上信息,可以使得关键信息文件327能够反映出多个文件的多种特性,从而能够提供多个文件的总体信息。
在某些实施例中,获取关键信息文件327所对应的索引值在索引中的位置可以通过解析索引值得到文件的名称或属性而被执行。在文件的名称或属性与关键信息文件327的名称或属性分别相同时,能够确定该文件是关键信息文件327。例如,当判断出某个文件的名称为“.system_info”时,该文件是关键信息文件327。又例如,当判断出某个文件的属性为内部创建时,该文件是关键信息文件327。在另外的实施例中,可以综合文件名称和属性二者来确定某个文件是否是关键信息文件327。在这样的实施例中,不需要分析文件中的具体内容,而只需判断文件的名称或索引值,从而加快了确认关键信息文件327的过程。
在某些实施例中,哈希结构是一个树结构。在这样的实施例中,迁移工具将搜索树来查找关键信息。在大多数情况下,关键信息所对应的哈希值存在于树的顶层左边叶子中。因此,迁移工具通过即宽度优先遍历,即从上到下从左到右地搜索树,能够更快地搜索到关键信息。下面的图5显示了搜索哈希树的顺序,该搜索利用宽度优先遍历。换言之,图5的搜索顺序是从数字1-10的顺序完成从层502到层512再到层522的搜索。该搜索过程能够减少找到关键信息文件327的时间。
在某些实施例中,利用宽度优先遍历,可以快速搜索关键信息位置。由于关键信息文件327表示备份数据的整体信息,所以关键信息文件通常存在于哈希树的顶层。因此,本公开所使用的宽度优先遍历搜索将有助于更快地找到关键信息。由于搜索是通过对哈希树从上到下进行遍历的,因而有可能在树的顶部找到关键信息相关的信息,例如密钥信息、入口信息等,从而节省了从底部开始搜索树的时间。
再次回到图4,在406,迁移工具140根据已获取的位置对索引进行排序。以图3所示的哈希树结构的排序为例进行说明。对于层318,将复合哈希312和314排在复合哈希316之前。对于层328,将关键信息327排在目录325和文件326之后进行处理。应当理解,本公开中的排序针对的是哈希树中各个哈希值所对应的文件被处理的顺序。排序之后,关键信息文件327会被最后处理,从而避免了数据迁移过程中发生错误的几率。
在408,迁移工具140根据已排序的索引对多个文件进行处理,使得已排序的索引结构使得关键信息文件327被最后处理。本公开的方案可以使得迁移工具140更为可靠。在关键信息的存储位置与期望的存储位置不同时,现有技术中的迁移逻辑可能容易崩溃。本公开的方法可以自动调整文件迁移的顺序,从而使得关键信息文件327被最后处理。因此,即使关键信息文件327在备份数据中的存储位置不在所期望的存储位置,也可以使得该关键信息文件327被正确处理,从而能够保证迁移的顺利进行。
在某些实施例中,根据已排序的索引对多个文件进行处理包括将该多个文件转换成目标服务器120所要求的格式。应当理解,在源服务器110和目标服务器120所要求的数据格式一致的情况下,将不需要对数据格式进行转换。对数据格式进行处理的示例包括压缩格式的变化、排列顺序的变化、层次结构的变化等。格式变换后的文件能够适应目标服务器120的存储结构,从而能够提高存储效率并且降低数据迁移过程中发生错误的概率。
在某些实施例中,对多个文件进行处理包括针对已处理的每个文件生成新的索引值,然后根据已生成的新的索引值形成新的索引以便存储在目标服务器120中。在非限制性实施例中,新的索引仍为哈希树的形式。形成新的索引可以缩短目标服务器120中的数据的取回时间。在这样的实施例中,新的索引能够被用来进一步优化目标服务器120中的存储结构并且提高存储效率。
图6示出了一个可以用来实施本公开的实施例的设备600的示意性框图。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元601执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200或300的一个或多个步骤。备选地,在其他实施例中,CPU601也可以以其他任何适当的方式被配置以实现上述过程/方法。
通过本公开的方案,可以使得迁移工具更为可靠。在关键信息位置与期望位置不同时,现有技术中的迁移逻辑可能容易崩溃。本公开的方法可以自动调整文件迁移的顺序从而使得关键信息被最后处理。因此,即使关键信息在备份数据中的位置不在所期望的位置,也可以使得该关键信息被正确处理,以保证迁移的顺利进行。
此外,本公开的方案可以快速搜索关键信息位置。由于关键信息表示备份数据的整体信息,所以关键信息通常存在于哈希树的顶层。因此,本公开所使用的宽度优先遍历搜索将有助于更快地找到关键信息。由于搜索是通过对哈希树从上到下进行遍历的,因而有可能在树的顶部找到关键信息相关的信息,诸如秘钥信息,从而节省了从底部开始搜索树的时间。
另外,本公开的方案能够使得迁移逻辑更为清晰。本公开的方案可以利用通用方式来处理不同类型的备份数据,而不需要针对不同的备份进行特定的更改,从而使得迁移逻辑更加清晰。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、闪存介质SSD、PCM SSD、3D交叉存储器(3DXPoint)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实施例。

Claims (19)

1.一种用于数据迁移的方法,所述方法包括:
接收来自源服务器的索引,所述索引具有与存储在所述源服务器处的多个文件分别对应的索引值;
获取关键信息文件所对应的索引值在所述索引中的位置,所述关键信息文件包含针对所述多个文件的整体信息;
根据已获取的所述位置对所述索引进行排序;以及
根据已排序的索引对所述多个文件进行处理,使得已排序的所述索引结构使得所述关键信息文件被最后处理。
2.根据权利要求1所述的方法,其中对所述多个文件进行处理包括:
将所述多个文件转换成目标服务器所要求的格式。
3.根据权利要求1所述的方法,其中所述索引是树,并且其中针对所述多个文件中的每个文件的索引值是针对所述每个文件而获得的哈希值。
4.根据权利要求3所述的方法,其中获取所述关键信息文件所对应的所述索引值在所述索引中的所述位置包括:
通过宽度优先遍历的方式来遍历所述索引。
5.根据权利要求3所述的方法,其中所述索引中的索引值的类型包括原子索引值和复合索引值,所述原子索引值是针对所述多个文件中的每个文件被形成的,并且其中所述复合索引值是针对一个或多个原子索引值而被形成的。
6.根据权利要求1所述的方法,还包括:
针对已处理的每个文件生成新的索引值;
根据已生成的所述新的索引值形成新的索引以便存储。
7.根据权利要求1所述的方法,其中获取所述关键信息文件所对应的所述索引值在所述索引中的所述位置包括:
通过解析索引值得到文件的名称或属性;
确定所述文件的名称或属性是否与所述关键信息文件的名称或属性分别相同;
响应于所述文件的名称或属性与所述关键信息文件的名称或属性分别相同,确定所述文件是所述关键信息文件。
8.根据权利要求1所述的方法,其中所述多个文件的类型包括目录文件和数据文件。
9.根据权利要求1所述的方法,其中所述关键信息文件的内容包括以下中的至少一项:
所述多个文件中的所述每个文件的大小;
所述多个文件中的所述每个文件的存储路径;
所述多个文件中的所述每个文件的创建时间。
10.一种电子设备,包括处理器以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述处理器执行时使得所述电子设备执行动作,所述动作包括:
接收来自源服务器的索引,所述索引具有与存储在所述源服务器处的多个文件分别对应的索引值;
获取关键信息文件所对应的索引值在所述索引中的位置,所述关键信息文件包含针对所述多个文件的整体信息;
根据已获取的所述位置对所述索引进行排序;以及
根据已排序的索引对所述多个文件进行处理,使得已排序的所述索引结构使得所述关键信息文件被最后处理。
11.根据权利要求10所述的电子设备,其中对所述多个文件进行处理包括:
将所述多个文件转换成目标服务器所要求的格式。
12.根据权利要求10所述的电子设备,其中所述索引是树,并且其中针对所述多个文件中的每个文件的索引值是针对所述每个文件而获得的哈希值。
13.根据权利要求12所述的电子设备,其中获取所述关键信息文件所对应的所述索引值在所述索引中的所述位置包括:
通过宽度优先遍历的方式来遍历所述索引。
14.根据权利要求12所述的电子设备,其中所述索引中的索引值的类型包括原子索引值和复合索引值,所述原子索引值是针对所述多个文件中的每个文件被形成的,并且其中所述复合索引值是针对一个或多个原子索引值而被形成的。
15.根据权利要求10所述的电子设备,所述动作还包括:
针对已处理的每个文件生成新的索引值;
根据已生成的所述新的索引值形成新的索引以便存储。
16.根据权利要求10所述的电子设备,其中获取所述关键信息文件所对应的所述索引值在所述索引中的所述位置包括:
通过解析索引值得到文件的名称或属性;
确定所述文件的名称或属性是否与所述关键信息文件的名称或属性分别相同;
响应于所述文件的名称或属性与所述关键信息文件的名称或属性分别相同,确定所述文件是所述关键信息文件。
17.根据权利要求10所述的电子设备,其中所述多个文件的类型包括目录文件和数据文件。
18.根据权利要求10所述的电子设备,其中所述关键信息文件的内容包括以下中的至少一项:
所述多个文件中的所述每个文件的大小;
所述多个文件中的所述每个文件的存储路径;
所述多个文件中的所述每个文件的创建时间。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使所述机器执行权利要求1-9中任一项所述的方法。
CN201810050812.5A 2018-01-18 2018-01-18 用于数据迁移的方法、设备和存储介质 Active CN110109891B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810050812.5A CN110109891B (zh) 2018-01-18 2018-01-18 用于数据迁移的方法、设备和存储介质
US16/250,493 US11281623B2 (en) 2018-01-18 2019-01-17 Method, device and computer program product for data migration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810050812.5A CN110109891B (zh) 2018-01-18 2018-01-18 用于数据迁移的方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN110109891A true CN110109891A (zh) 2019-08-09
CN110109891B CN110109891B (zh) 2023-04-21

Family

ID=67214039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810050812.5A Active CN110109891B (zh) 2018-01-18 2018-01-18 用于数据迁移的方法、设备和存储介质

Country Status (2)

Country Link
US (1) US11281623B2 (zh)
CN (1) CN110109891B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990357A (zh) * 2019-12-18 2020-04-10 深圳市商汤科技有限公司 数据处理方法及装置、系统、电子设备和存储介质
CN113448919A (zh) * 2020-03-25 2021-09-28 伊姆西Ip控股有限责任公司 用于建立和验证索引文件的方法、设备和计算机程序产品
CN113568567A (zh) * 2020-04-29 2021-10-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568867A (zh) * 2021-07-23 2021-10-29 上海淇玥信息技术有限公司 一种文件加密迁移方法、装置和电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101366011A (zh) * 2005-10-12 2009-02-11 存储器械有限公司 数据备份设备和备份数据的方法
US20110035359A1 (en) * 2009-08-07 2011-02-10 International Business Machines Corporation Database Backup and Restore with Integrated Index Reorganization
CN102999537A (zh) * 2011-09-19 2013-03-27 阿里巴巴集团控股有限公司 一种数据迁移系统和方法
CN103136340A (zh) * 2013-02-04 2013-06-05 北京大学 一种在集群中快速迁移海量空间数据的方法
US8463798B1 (en) * 2007-03-31 2013-06-11 Emc Corporation Prioritized restore
US8495022B1 (en) * 2010-05-13 2013-07-23 Symantec Corporation Systems and methods for synthetic backups
CN103577528A (zh) * 2012-08-07 2014-02-12 国际商业机器公司 用于数据传送优化的方法和系统
US8712966B1 (en) * 2007-08-09 2014-04-29 Emc Corporation Backup and recovery of distributed storage areas
CN104021123A (zh) * 2013-02-28 2014-09-03 国际商业机器公司 用于数据迁移的方法和系统
CN105930228A (zh) * 2016-04-06 2016-09-07 广州唯品会信息科技有限公司 数据备份方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782400B2 (en) * 2001-06-21 2004-08-24 International Business Machines Corporation Method and system for transferring data between server systems
JP4931660B2 (ja) * 2007-03-23 2012-05-16 株式会社日立製作所 データ移行処理装置
US8924352B1 (en) * 2007-03-31 2014-12-30 Emc Corporation Automated priority backup and archive
US8296301B2 (en) * 2008-01-30 2012-10-23 Commvault Systems, Inc. Systems and methods for probabilistic data classification
JP5439337B2 (ja) * 2010-10-27 2014-03-12 株式会社日立ソリューションズ 情報処理システム、情報処理システムの制御方法、検索制御装置
US9715434B1 (en) * 2011-09-30 2017-07-25 EMC IP Holding Company LLC System and method for estimating storage space needed to store data migrated from a source storage to a target storage

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101366011A (zh) * 2005-10-12 2009-02-11 存储器械有限公司 数据备份设备和备份数据的方法
US8463798B1 (en) * 2007-03-31 2013-06-11 Emc Corporation Prioritized restore
US8712966B1 (en) * 2007-08-09 2014-04-29 Emc Corporation Backup and recovery of distributed storage areas
US20110035359A1 (en) * 2009-08-07 2011-02-10 International Business Machines Corporation Database Backup and Restore with Integrated Index Reorganization
US8495022B1 (en) * 2010-05-13 2013-07-23 Symantec Corporation Systems and methods for synthetic backups
CN102999537A (zh) * 2011-09-19 2013-03-27 阿里巴巴集团控股有限公司 一种数据迁移系统和方法
CN103577528A (zh) * 2012-08-07 2014-02-12 国际商业机器公司 用于数据传送优化的方法和系统
CN103136340A (zh) * 2013-02-04 2013-06-05 北京大学 一种在集群中快速迁移海量空间数据的方法
CN104021123A (zh) * 2013-02-28 2014-09-03 国际商业机器公司 用于数据迁移的方法和系统
CN105930228A (zh) * 2016-04-06 2016-09-07 广州唯品会信息科技有限公司 数据备份方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BIN DONG 等: "Self-Acting Load Balancing with Parallel Sub File Migration for Parallel File System", 《2010 THIRD INTERNATIONAL JOINT CONFERENCE ON COMPUTATIONAL SCIENCE AND OPTIMIZATION》 *
崔晓晴: "数据备份与恢复技术的探讨及应用", 《装备维修技术》 *
黄海清 等: "异构存储系统中基于能量模型的文件迁移策略", 《北京航空航天大学学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990357A (zh) * 2019-12-18 2020-04-10 深圳市商汤科技有限公司 数据处理方法及装置、系统、电子设备和存储介质
CN113448919A (zh) * 2020-03-25 2021-09-28 伊姆西Ip控股有限责任公司 用于建立和验证索引文件的方法、设备和计算机程序产品
CN113448919B (zh) * 2020-03-25 2024-04-12 伊姆西Ip控股有限责任公司 用于建立和验证索引文件的方法、设备和计算机程序产品
CN113568567A (zh) * 2020-04-29 2021-10-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113568567B (zh) * 2020-04-29 2023-10-24 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器

Also Published As

Publication number Publication date
US11281623B2 (en) 2022-03-22
US20190220441A1 (en) 2019-07-18
CN110109891B (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
US9460147B1 (en) Partition-based index management in hadoop-like data stores
CN105335137B (zh) 用于处理源文件的方法和装置
CN106547678B (zh) 用于白盒测试的方法和装置
CN108647883B (zh) 一种业务审批方法、装置、设备及介质
CN110109891A (zh) 用于数据迁移的方法、设备和计算机程序产品
JP5775599B2 (ja) コードクローン検出を用いたインテリジェントコード差分処理
CN103092742B (zh) 程序日志记录优化方法和系统
CN110109915A (zh) 用于管理哈希表的方法、设备和计算机程序产品
CN110515896B (zh) 模型资源管理方法、模型文件制作方法、装置和系统
US20230177363A1 (en) Generation of query templates for knowledge-graph based question answering system
US10956499B2 (en) Efficient property graph storage for streaming/multi-versioning graphs
CN102780574A (zh) 面向业务的局数据的配置方法、装置以及核查方法、装置
US20200082026A1 (en) Graph data processing
WO2023160327A1 (en) Container image management
US10394788B2 (en) Schema-free in-graph indexing
US20170083837A1 (en) Hierarchical business rule model
US11175993B2 (en) Managing data storage system
CN110807028A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN113568605B (zh) 约定式路由配置方法、装置、和系统
CN112925559B (zh) 资源打包方法、装置、介质及电子设备
US20220019907A1 (en) Dynamic In-Memory Construction of a Knowledge Graph
US11675772B2 (en) Updating attributes in data
US20190361684A1 (en) Systems and methods for providing an application transformation tool
US10248813B2 (en) Organizing key-value information sets into hierarchical representations for efficient signature computation given change information
US20230153300A1 (en) Building cross table index in relational database

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