CN111176580B - 分区数据无损移动的方法、装置及可读存储介质 - Google Patents

分区数据无损移动的方法、装置及可读存储介质 Download PDF

Info

Publication number
CN111176580B
CN111176580B CN201911397297.9A CN201911397297A CN111176580B CN 111176580 B CN111176580 B CN 111176580B CN 201911397297 A CN201911397297 A CN 201911397297A CN 111176580 B CN111176580 B CN 111176580B
Authority
CN
China
Prior art keywords
data
partition
block information
data block
management
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
CN201911397297.9A
Other languages
English (en)
Other versions
CN111176580A (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.)
Chengdu Yiwo Tech Development Co ltd
Original Assignee
Chengdu Yiwo Tech Development 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 Chengdu Yiwo Tech Development Co ltd filed Critical Chengdu Yiwo Tech Development Co ltd
Priority to CN201911397297.9A priority Critical patent/CN111176580B/zh
Publication of CN111176580A publication Critical patent/CN111176580A/zh
Application granted granted Critical
Publication of CN111176580B publication Critical patent/CN111176580B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/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
    • 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

分区数据无损移动的方法、装置及可读存储介质
技术领域
本发明涉及分区管理技术领域,具体涉及一种分区数据无损移动的方法、装置及可读存储介质。
背景技术
在分区管理领域中,分区无损操作主要通过数据移动后更新分区信息完成,而其中的数据移动主要通过对源分区文件系统分析后,以源分区文件为基本单位通过磁盘IO逐一拷贝到目的分区位置上来完成主要过程的,相对各种存储而言,由于读入速度远大于写入速度,导致相关操作效率较低:1)源分区文件严重碎片化。2)目的分区和源分区相互重叠,该情况和1)叠加,导致写入操作也存在大量碎片化过程。3)有些文件系统的meta数据(管理数据)不能以文件形式存在,只能存放在相对分区起始的固定位置,这也增加了目的分区写操作的碎片化程度。
导致效率降低的主要原因是:由于上述原因导致IO次数随碎片情况级数上升,尤其是写入次数增加的更加恶劣,严重影响了操作效率。
发明内容
有鉴于此,本申请提供一种分区数据无损移动的方法、装置及可读存储介质,能够解决或者至少部分解决上述存在的问题。
为解决以上技术问题,本发明提供的技术方案是一种分区数据无损移动的方法,包括:
S11:对源分区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区起始位置的相对位置排序的所有文件数据的数据块信息;
S12:对目的分区的数据进行分析,获得T1集合和T2集合,其中T1集合包括按照与目的分区起始位置的相对位置排序的所有管理数据的数据块信息,T2集合包括除管理数据外的所有数据的数据块信息;
S13:根据源分区和目的分区的位置确定一个连续的合并分区,将S1集合、S2集合、T1集合和T2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
S14:对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和T数据集,其中X数据集由S2集合中与T1集合中重复的数据块信息组成,Y数据集由S2集合中与T2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,T数据集由S1集合中与T1集合或者T2集合中重复的数据块信息组成;
S15:在目的分区生成A块管理单元和B块管理单元,其中A块管理单元包括T2集合中的所有数据块信息,B块管理单元包括T2集合中除去T数据集后剩下的所有数据块信息;
S16:生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
S17:通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区的管理信息。
优选的,所述S11的方法包括:
创建第一数据容器和第二数据容器;
将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;
将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
优选的,所述S12的方法包括:
创建第三数据容器;
将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;
将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得T1集合,其他数据的数据块信息构成T2集合。
优选的,所述S13的方法包括:
将源分区和目的分区中最靠前的位置作为合并分区起始位置,将源分区和目的分区中最靠后的位置作为合并分区结束位置,合并分区起始位置和合并分区结束位置之间的区域为合并分区;
将S1集合、S2集合、T1集合和T2集合中的数据块信息更新为以相对于合并分区起始位置的相对位置进行排序的数据块信息。
优选的,所述S14的方法包括:
遍历S2集合中的各个数据块信息,判断其是否在T1集合中,若是,则加入X数据集;
遍历S2集合中剩下的各个数据块信息,判断其是否在T2集合中,若是,则加入Y数据集;
将S2集合中剩下的所有数据块信息加入Z数据集。
优选的,所述S17的方法包括:
通过a移动集合将X数据集移动到第一目的分区位置;
构建目的分区的管理信息;
通过c移动集合将Z数据集移动到第三目的分区位置;
更新目的分区的管理信息。
本发明还提供一种分区数据无损移动的装置,包括:
源分区分析模块,用于对源分区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区起始位置的相对位置排序的所有文件数据的数据块信息;
目的分区分析模块,用于对目的分区的数据进行分析,获得T1集合和T2集合,其中T1集合包括按照与目的分区起始位置的相对位置排序的所有管理数据的数据块信息,T2集合包括除管理数据外的所有数据的数据块信息;
合并分区更新模块,用于根据源分区和目的分区的位置确定一个连续的合并分区,将S1集合、S2集合、T1集合和T2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
集合容斥操作模块,用于对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和T数据集,其中X数据集由S2集合中与T1集合中重复的数据块信息组成,Y数据集由S2集合中与T2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,T数据集由S1集合中与T1集合或者T2集合中重复的数据块信息组成;
目的分区管理模块,用于在目的分区生成A块管理单元和B块管理单元,其中A块管理单元包括T2集合中的所有数据块信息,B块管理单元包括T2集合中除去T数据集后剩下的所有数据块信息;
移动集合生成模块,用于生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
数据移动更新模块,用于通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区的管理信息。
优选的,所述源分区分析模块包括:
第一容器创建单元,用于创建第一数据容器和第二数据容器;
第一数据分类单元,用于将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;
第一数据排序单元,用于将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
优选的,所述目的分区分析模块包括:
第二容器创建单元,用于创建第三数据容器;
第二数据分类单元,用于将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;
第二数据排序单元,用于将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得T1集合,其他数据的数据块信息构成T2集合。
优选的,所述合并分区更新模块包括:
合并分区计算单元,用于将源分区和目的分区中最靠前的位置作为合并分区起始位置,将源分区和目的分区中最靠后的位置作为合并分区结束位置,合并分区起始位置和合并分区结束位置之间的区域为合并分区;
第三数据排序单元,用于将S1集合、S2集合、T1集合和T2集合中的数据块信息更新为以相对于合并分区起始位置的相对位置进行排序的数据块信息。
优选的,所述集合容斥操作模块包括:
X数据集生成单元,用于遍历S2集合中的各个数据块信息,判断其是否在T1集合中,若是,则加入X数据集;
Y数据集生成单元,用于遍历S2集合中剩下的各个数据块信息,判断其是否在T2集合中,若是,则加入Y数据集;
Z数据集生成单元,用于将S2集合中剩下的所有数据块信息加入Z数据集。
优选的,所述数据移动更新模块包括:
X数据集移动单元,用于通过a移动集合将X数据集移动到第一目的分区位置;
管理信息构建单元,用于构建目的分区的管理信息;
Z数据集移动单元,用于通过c移动集合将Z数据集移动到第三目的分区位置;
管理信息更新单元,用于更新目的分区的管理信息。
本发明还提供一种分区数据无损移动的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述分区数据无损移动的方法的步骤。
本发明还提供一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述分区数据无损移动的方法的步骤。
本申请与现有技术相比,其有益效果详细说明如下:本申请通过对源分区数据和目的分区数据进行分析,将源分区和目的分区合并为连续的合并分区后更新数据块信息,创建目的分区管理模块和移动数据集完成对数据移动状况的预分析后,再将源分区数据拷贝到目的分区,并更新目的分区来完成无损移动数据的操作,构建了一种全新的数据移动方法,达到了提高数据移动效率的目的。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分区数据无损移动的方法流程示意图;
图2为本发明实施例提供的一种对源分区的数据进行分析的方法流程示意图;
图3为本发明实施例提供的一种对目的分区的数据进行分析的方法流程示意图;
图4为本发明实施例提供的一种对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作的方法流程示意图;
图5为本发明实施例提供的一种分区数据无损移动的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
相对各种存储而言,由于读入速度远大于写入速度,所以本发明提出一种新的数据移动方法,通过以目的分区写入位置为关键考虑维度切入,通过控制写入次数的方式(具体实施情况可以大幅降低写入频率),构建一个全新的数据移动方法,以达成提高效率的目的。
如图1所示,本发明实施例提供一种分区数据无损移动的方法,包括:
S11:对源分区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区起始位置的相对位置排序的所有文件数据的数据块信息;
S12:对目的分区的数据进行分析,获得T1集合和T2集合,其中T1集合包括按照与目的分区起始位置的相对位置排序的所有管理数据的数据块信息,T2集合包括除管理数据外的所有数据的数据块信息;
S13:根据源分区和目的分区的位置确定一个连续的合并分区,将S1集合、S2集合、T1集合和T2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
S14:对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和T数据集,其中X数据集由S2集合中与T1集合中重复的数据块信息组成,Y数据集由S2集合中与T2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,T数据集由S1集合中与T1集合或者T2集合中重复的数据块信息组成;
S15:在目的分区生成A块管理单元和B块管理单元,其中A块管理单元包括T2集合中的所有数据块信息,B块管理单元包括T2集合中除去T数据集后剩下的所有数据块信息;
S16:生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
S17:通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区的管理信息。
如图2所示,需要说明的是,S11的方法包括:
S111:创建第一数据容器和第二数据容器;
S112:将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;
S113:将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
具体的,将源分区的数据分析后分成meta和data两个类型,分别装入两个数据容器中,数据容器以相对源分区起始位置为Key进行归纳,分别记录为S1集合(meta)和S2集合(data)。
其中,Meta(管理数据):文件系统在所在分区上格式化产生的数据,和文件数据无关,主要是用于管理指定卷的数据信息,对于Ext4文件系统卷,Meta数据包括超块描述信息,块组描述信息,块位图信息,灵活块组描述等信息,这些信息在卷容量确定后就已确定了,不同文件系统的Meta信息各有不同,但都是用于管理卷的空间,另外,随着文件数据的扩大,Meta信息也会相应扩大。
Data(文件数据):就是指纯粹的文件内容数据。
文件内容位置信息:另外要说明的是Data所在位置之间的联系也会作为Data数据记录在Data区(有些文件系统会记录在Meta区),这部分信息随着文件容量的变化也会随着变动,这里把这部分信息描述为文件内容位置信息。
如图3所示,需要说明的是,S12的方法包括:
S121:创建第三数据容器;
S122:将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;
S123:将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得T1集合,其他数据的数据块信息构成T2集合。
具体的,将目的分区进行虚拟格式化,并记录可能的meta信息,也放入数据容器中,以相对目标分区起始位置为Key进行归纳,记录为T1集合。目标分区不在meta数据的范围记录为T2集合。显然如果目的分区所需文件系统不需要固定meta数据,则T1为空,T2只有一个数据块信息,就是全部空间。
需要说明的是,S13的方法包括:
将源分区和目的分区中最靠前的位置作为合并分区起始位置,将源分区和目的分区中最靠后的位置作为合并分区结束位置,合并分区起始位置和合并分区结束位置之间的区域为合并分区;
将S1集合、S2集合、T1集合和T2集合中的数据块信息更新为以相对于合并分区起始位置的相对位置进行排序的数据块信息。
具体的,将源分区和目的分区合并为一个连续的大分区,命名为合并分区,将S1,S2以及T1,T2中的数据记录的Key重新更新到以相对合并分区起始位置的新记录。
如图4所示,需要说明的是,S14的方法包括:
S141:遍历S2集合中的各个数据块信息,判断其是否在T1集合中,若是,则加入X数据集;
S142:遍历S2集合中剩下的各个数据块信息,判断其是否在T2集合中,若是,则加入Y数据集;
S143:将S2集合中剩下的所有数据块信息加入Z数据集。
然后将S1,S2以及T1,T2集合进行若干容斥操作后形成如下新的数据集:a.S2中容纳的全部T1的数据,构成X数据集。b.S2中容纳的全部T2的数据,构成Y数据集。c.S2中排斥全部T1和T2(T1|T2)的数据,构成Z数据集。d.S1中容纳的全部T1和T2(T1|T2)的数据,记录为T数据集。以上数据集均以相对合并分区起始位置为Key进行归纳。
需要说明的是,S15中,在目的分区上构建空闲数据块管理单元,用于对申请的数据块进行响应和对剩余空闲数据块进行管理,所划分的数据块管理单元如下:a.容纳T2数据集合中的所有数据块信息,构成A块管理。b.容纳T2数据集合,但排斥T数据集的全部数据块信息,构成B块管理。
需要说明的是,S16中,该阶段主要目的是将源分区数据移动到目的分区的路径进行记录,构建移动集,内容是对应的源分区位置和要移动到的目的分区位置(以相对合并分区起始位置记录),移动集的Key是目的分区起始位置,构建的集合如下:a.标定X数据集,移动目的位置通过B块管理申请,构建a移动集合,用于标记移动。b.标定Y数据集,移动目的位置通过A块管理申请,构建b移动集合,只标记不移动。c.标定Z数据集,移动目的位置通过A块管理申请,构建c移动集合,标记移动。T集合只是辅助记录,不用于移动。
构建完三个移动集合后,根据不同的文件系统,还需要产生对应的meta信息以及一些文件管理的扩展信息了,相应产生的信息分别对应到T1数据集以及通过A块管理申请空闲块进行扩充,加入Z数据集。合并移动标记:X,Z标记后均按照顺序使用A,B块,这样标记后是较多的连续状态,按照顺序合并。Y集合只标记,用于文件meta信息更新。
需要说明的是,S17的方法包括:
通过a移动集合将X数据集移动到第一目的分区位置;
构建目的分区的管理信息;
通过c移动集合将Z数据集移动到第三目的分区位置;
更新目的分区的管理信息。
具体的,如果能够完成阶段S16,说明目的空间能够容纳源分区的全部数据,那么到这个阶段,通过阶段S16产生的移动集合进行数据移动,步骤如下:a.通过a移动集合将X数据集移动到目的空间指定位置。b.目的分区中T1数据范围已释放,构建目的分区meta数据。c.通过b,c移动集合将Y,Z数据集移动到目的空间指定位置。将X,Z合并后的移动集合按照顺序进行数据移动操作,完成数据移动,目的分区数据构建全部完成。完成数据移动后,更新分区信息,以便系统加载新卷。
下面以Ext4文件系统卷的数据移动为例,描述一下整个过程:对于Ext4文件系统卷而言,接到数据移动指令后,先读取源分区1K偏移内容,该部分是超块,超块是Ext4文件系统卷各类信息的一个集合,通过该内容可以获取分区大小,块大小,iNode长度,块组描述长度等信息,分析该部分信息后可以获取后续的块组描述信息以及iNode Table(节点表),Bitmap Table iNode Bitmap信息,以及紧接着的Data区域信息,相应的信息会以数据块的形式分别加入S1和S2。
虚拟格式化是指将目的分区已获得的超块根据目的分区的大小重新计算更新,并且按照新计算的超块信息获得后续的块组描述,以及iNode Table,Bitmap Table,iNodeBitmap信息,将这部分信息以数据块的信息加入到T1,其它的Data区域则加入T2集合。
实例显示的源分区和目的位置似乎完全不冲突,而实际上源分区和目的位置之间关系是可以互相倾轧的,所以有下列容斥操作,从而产生实际操作的数据集合,分别列举容斥操作集合的产生过程:
X数据集:S2中容纳的T1的全部数据:对于X数据集的产生过程:1.遍历S2中的所有数据块信息,逐一取出进入2,2.将取出的数据块和T2集合比较,看是否在T2中。3.如果在T2中,则加入X数据集,否则,继续遍历。
Y数据集:S2中容纳的T2的全部数据;Z数据集:S2中全部排斥了T1和T2剩下的数据;T数据集:S1中容纳的T1和T2的全部数据。获取Y数据集、Z数据集和T数据集的方法与获取X数据集的方法是类似的,只是比较的内容不同。
针对各个数据集构建移动集时,需要的目的空间分配单元只能是T2,但T2也不是都能分配的,下面是分配单元管理:A块管理:容纳T2数据集合中的所有数据块信息。B块管理:容纳T2数据集合,但排斥T数据集的全部数据块信息。
构建移动集,移动集就是指记录源分区的一段数据拷贝到目的分区位置的信息。有些内容已经在目的空间了,也需要记录移动集,因为相对位置可能不同,而且也为后续文件位置记录信息的更新提供依据。
下面是移动集合构建原则:对于X数据集,使用B块管理分配目的空间建立移动集,构成a移动集合。这部分移动集合会先移动,从而腾出目的空间的Meta区域,为后续目的Meta区域建立打下基础。对于Y数据集,通知A块管理标记分配空间,这部分数据已在目的分区,所以只是记录移动集,不做数据移动,为后续文件位置信息更新建立移动关系,构成b移动集合。对于Z数据集,使用A块管理分配目的空间建立移动集合,构成c移动集合。对于T数据集,这部分数据用于帮助更新目的分区的Meta信息,不用于数据移动。
在移动集合建立完成后,开始执行数据移动过程,中间包含目的分区Meta信息建立过程,现在移动集合都是基于目的空间连续的块状空间,所以有条件执行连续的写操作,大致的移动集合如下所示:
S:1000~1300S:1700~2000S:1300~1600S:5000~6000S:700~1000
表1移动集合位置列表
其中,S:指源分区Sector,所以上述移动集合可以通过进行1次写操作和5次读操作完成,当然,实际操作还可以更多的读操作合成,这样可以尽量减小写操作频率,从而提升数据移动效率。
此外,对于Y数据集,由于该部分并不移动,所以如果这个集合容量越大,则数据移动效率越高,比如一个100M的源分区,如果只是向后移动1M,则Y数据集理论可以达到99M,这部分数据都不实质移动,可以大大提升效率。
如图5所示,本发明实施例还提供一种分区数据无损移动的装置,包括:
源分区分析模块21,用于对源分区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区起始位置的相对位置排序的所有文件数据的数据块信息;
目的分区分析模块22,用于对目的分区的数据进行分析,获得T1集合和T2集合,其中T1集合包括按照与目的分区起始位置的相对位置排序的所有管理数据的数据块信息,T2集合包括除管理数据外的所有数据的数据块信息;
合并分区更新模块23,用于根据源分区和目的分区的位置确定一个连续的合并分区,将S1集合、S2集合、T1集合和T2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
集合容斥操作模块24,用于对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和T数据集,其中X数据集由S2集合中与T1集合中重复的数据块信息组成,Y数据集由S2集合中与T2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,T数据集由S1集合中与T1集合或者T2集合中重复的数据块信息组成;
目的分区管理模块25,用于在目的分区生成A块管理单元和B块管理单元,其中A块管理单元包括T2集合中的所有数据块信息,B块管理单元包括T2集合中除去T数据集后剩下的所有数据块信息;
移动集合生成模块26,用于生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
数据移动更新模块27,用于通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区的管理信息。
需要说明的是,源分区分析模块21包括:
第一容器创建单元,用于创建第一数据容器和第二数据容器;
第一数据分类单元,用于将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;
第一数据排序单元,用于将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
需要说明的是,目的分区分析模块22包括:
第二容器创建单元,用于创建第三数据容器;
第二数据分类单元,用于将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;
第二数据排序单元,用于将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得T1集合,其他数据的数据块信息构成T2集合。
需要说明的是,合并分区更新模块23包括:
合并分区计算单元,用于将源分区和目的分区中最靠前的位置作为合并分区起始位置,将源分区和目的分区中最靠后的位置作为合并分区结束位置,合并分区起始位置和合并分区结束位置之间的区域为合并分区;
第三数据排序单元,用于将S1集合、S2集合、T1集合和T2集合中的数据块信息更新为以相对于合并分区起始位置的相对位置进行排序的数据块信息。
需要说明的是,集合容斥操作模块24包括:
X数据集生成单元,用于遍历S2集合中的各个数据块信息,判断其是否在T1集合中,若是,则加入X数据集;
Y数据集生成单元,用于遍历S2集合中剩下的各个数据块信息,判断其是否在T2集合中,若是,则加入Y数据集;
Z数据集生成单元,用于将S2集合中剩下的所有数据块信息加入Z数据集。
需要说明的是,数据移动更新模块27包括:
X数据集移动单元,用于通过a移动集合将X数据集移动到第一目的分区位置;
管理信息构建单元,用于构建目的分区的管理信息;
Z数据集移动单元,用于通过c移动集合将Z数据集移动到第三目的分区位置;
管理信息更新单元,用于更新目的分区的管理信息。
本发明实施例还提供一种分区数据无损移动的装置,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现如上述分区数据无损移动的方法的步骤。
本发明实施例还提供一种可读存储介质,可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述分区数据无损移动的方法的步骤。
图5所对应实施例中特征的说明可以参见图1-4所对应实施例的相关说明,这里不再一一赘述。
以上对本发明实施例所提供的一种分区数据无损移动的方法、装置和可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

Claims (10)

1.一种分区数据无损移动的方法,其特征在于,包括:
S11:对源分区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区起始位置的相对位置排序的所有文件数据的数据块信息;
S12:对目的分区的数据进行分析,获得T1集合和T2集合,其中T1集合包括按照与目的分区起始位置的相对位置排序的所有管理数据的数据块信息,T2集合包括除管理数据外的所有数据的数据块信息;
S13:根据源分区和目的分区的位置确定一个连续的合并分区,将S1集合、S2集合、T1集合和T2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
S14:对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和T数据集,其中X数据集由S2集合中与T1集合中重复的数据块信息组成,Y数据集由S2集合中与T2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,T数据集由S1集合中与T1集合或者T2集合中重复的数据块信息组成;
S15:在目的分区生成A块管理单元和B块管理单元,其中A块管理单元包括T2集合中的所有数据块信息,B块管理单元包括T2集合中除去T数据集后剩下的所有数据块信息;
S16:生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
S17:通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区的管理信息。
2.根据权利要求1所述的分区数据无损移动的方法,其特征在于,所述S11的方法包括:
创建第一数据容器和第二数据容器;
将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;
将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
3.根据权利要求1所述的分区数据无损移动的方法,其特征在于,所述S12的方法包括:
创建第三数据容器;
将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;
将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得T1集合,其他数据的数据块信息构成T2集合。
4.根据权利要求1所述的分区数据无损移动的方法,其特征在于,所述S14的方法包括:
遍历S2集合中的各个数据块信息,判断其是否在T1集合中,若是,则加入X数据集;
遍历S2集合中剩下的各个数据块信息,判断其是否在T2集合中,若是,则加入Y数据集;
将S2集合中剩下的所有数据块信息加入Z数据集。
5.一种分区数据无损移动的装置,其特征在于,包括:
源分区分析模块,用于对源分区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区起始位置的相对位置排序的所有文件数据的数据块信息;
目的分区分析模块,用于对目的分区的数据进行分析,获得T1集合和T2集合,其中T1集合包括按照与目的分区起始位置的相对位置排序的所有管理数据的数据块信息,T2集合包括除管理数据外的所有数据的数据块信息;
合并分区更新模块,用于根据源分区和目的分区的位置确定一个连续的合并分区,将S1集合、S2集合、T1集合和T2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
集合容斥操作模块,用于对更新后的S1集合、S2集合、T1集合和T2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和T数据集,其中X数据集由S2集合中与T1集合中重复的数据块信息组成,Y数据集由S2集合中与T2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,T数据集由S1集合中与T1集合或者T2集合中重复的数据块信息组成;
目的分区管理模块,用于在目的分区生成A块管理单元和B块管理单元,其中A块管理单元包括T2集合中的所有数据块信息,B块管理单元包括T2集合中除去T数据集后剩下的所有数据块信息;
移动集合生成模块,用于生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
数据移动更新模块,用于通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区的管理信息。
6.根据权利要求5所述的分区数据无损移动的装置,其特征在于,所述源分区分析模块包括:
第一容器创建单元,用于创建第一数据容器和第二数据容器;
第一数据分类单元,用于将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;
第一数据排序单元,用于将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
7.根据权利要求5所述的分区数据无损移动的装置,其特征在于,所述目的分区分析模块包括:
第二容器创建单元,用于创建第三数据容器;
第二数据分类单元,用于将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;
第二数据排序单元,用于将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得T1集合,其他数据的数据块信息构成T2集合。
8.根据权利要求5所述的分区数据无损移动的装置,其特征在于,所述集合容斥操作模块包括:
X数据集生成单元,用于遍历S2集合中的各个数据块信息,判断其是否在T1集合中,若是,则加入X数据集;
Y数据集生成单元,用于遍历S2集合中剩下的各个数据块信息,判断其是否在T2集合中,若是,则加入Y数据集;
Z数据集生成单元,用于将S2集合中剩下的所有数据块信息加入Z数据集。
9.一种分区数据无损移动的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至4中任一项所述分区数据无损移动的方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述分区数据无损移动的方法的步骤。
CN201911397297.9A 2019-12-30 2019-12-30 分区数据无损移动的方法、装置及可读存储介质 Active CN111176580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911397297.9A CN111176580B (zh) 2019-12-30 2019-12-30 分区数据无损移动的方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911397297.9A CN111176580B (zh) 2019-12-30 2019-12-30 分区数据无损移动的方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN111176580A CN111176580A (zh) 2020-05-19
CN111176580B true CN111176580B (zh) 2023-04-07

Family

ID=70650511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911397297.9A Active CN111176580B (zh) 2019-12-30 2019-12-30 分区数据无损移动的方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN111176580B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831231B (zh) * 2020-07-17 2024-01-05 成都易我科技开发有限责任公司 分区合并、分区拆分的方法及装置
CN114662160B (zh) * 2022-05-25 2022-08-23 成都易我科技开发有限责任公司 数字摘要方法、系统及网络传输中的数字摘要方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0886208A2 (en) * 1997-06-17 1998-12-23 Hewlett-Packard Company Data merge unit
WO1999009513A2 (en) * 1997-08-20 1999-02-25 Powerquest Corporation Computer partition manipulation during imaging
US5930831A (en) * 1995-02-23 1999-07-27 Powerquest Corporation Partition manipulation architecture supporting multiple file systems
WO2000055735A1 (en) * 1999-03-15 2000-09-21 Powerquest Corporation Manipulation of computer volume segments
US6654830B1 (en) * 1999-03-25 2003-11-25 Dell Products L.P. Method and system for managing data migration for a storage system
WO2010019596A2 (en) * 2008-08-12 2010-02-18 Netapp, Inc. Scalable deduplication of stored data
US8639669B1 (en) * 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
CN104537050A (zh) * 2014-12-25 2015-04-22 华中科技大学 一种批量快速创建文件系统元数据和数据的方法
EP3101876A1 (en) * 2015-06-02 2016-12-07 Goodrich Corporation Parallel caching architecture and methods for block-based data processing
CN108052287A (zh) * 2017-12-12 2018-05-18 深圳市创维软件有限公司 一种非易失性存储器的分区数据管理方法、机顶盒及介质
CN109753493A (zh) * 2019-01-04 2019-05-14 中国银行股份有限公司 数据库间进行数据迁移的方法、装置以及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558929B2 (en) * 2005-09-29 2009-07-07 International Business Machines Corporation Instant copy of data in a cache memory via an atomic command
US9477587B2 (en) * 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
US9671977B2 (en) * 2014-04-08 2017-06-06 International Business Machines Corporation Handling data block migration to efficiently utilize higher performance tiers in a multi-tier storage environment
US10613791B2 (en) * 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US10764364B2 (en) * 2018-05-24 2020-09-01 Microsoft Technology Licensing, Llc Live migration of partitions

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930831A (en) * 1995-02-23 1999-07-27 Powerquest Corporation Partition manipulation architecture supporting multiple file systems
EP0886208A2 (en) * 1997-06-17 1998-12-23 Hewlett-Packard Company Data merge unit
WO1999009513A2 (en) * 1997-08-20 1999-02-25 Powerquest Corporation Computer partition manipulation during imaging
WO2000055735A1 (en) * 1999-03-15 2000-09-21 Powerquest Corporation Manipulation of computer volume segments
US6654830B1 (en) * 1999-03-25 2003-11-25 Dell Products L.P. Method and system for managing data migration for a storage system
WO2010019596A2 (en) * 2008-08-12 2010-02-18 Netapp, Inc. Scalable deduplication of stored data
US8639669B1 (en) * 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
CN104537050A (zh) * 2014-12-25 2015-04-22 华中科技大学 一种批量快速创建文件系统元数据和数据的方法
EP3101876A1 (en) * 2015-06-02 2016-12-07 Goodrich Corporation Parallel caching architecture and methods for block-based data processing
CN108052287A (zh) * 2017-12-12 2018-05-18 深圳市创维软件有限公司 一种非易失性存储器的分区数据管理方法、机顶盒及介质
CN109753493A (zh) * 2019-01-04 2019-05-14 中国银行股份有限公司 数据库间进行数据迁移的方法、装置以及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
崔东敏 ; .分区表修复技术的研究与应用.科技信息(学术研究).2008,(第12期),第82-85页. *

Also Published As

Publication number Publication date
CN111176580A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
US9213715B2 (en) De-duplication with partitioning advice and automation
KR101136684B1 (ko) 데이터 갱신 시스템, 네비게이션 장치, 서버 장치, 및 데이터 갱신 방법
CN111176580B (zh) 分区数据无损移动的方法、装置及可读存储介质
CN109033186A (zh) 数据一致性检测方法、装置、存储介质及电子设备
CN103581331B (zh) 虚拟机在线迁移方法与系统
CN109271343A (zh) 一种应用于键值存储系统中的数据合并方法和装置
CN107545021A (zh) 一种数据存储方法及装置
CN105426410A (zh) 数据采集系统和用于数据采集系统的分析方法
CN111726249B (zh) 网络设备的配置文件处理方法及装置
CN106970958A (zh) 一种流文件的查询与存储方法和装置
CN110245129B (zh) 一种分布式全局数据去重方法和装置
US11514010B2 (en) Deduplication-adapted CaseDB for edge computing
CN113867627B (zh) 一种存储系统性能优化方法及系统
CN107506466B (zh) 一种小文件存储方法及系统
CN113157600A (zh) 一种叠瓦式硬盘的空间分配方法、文件存储系统及服务器
CN109189759A (zh) Kv存储系统中的数据读取方法、数据查询方法、装置及设备
CN106294189A (zh) 内存碎片整理方法及装置
CN109165120B (zh) 分布式存储系统中管理快照和差异位图生成方法和产品
US20180011897A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
CN113253932A (zh) 一种分布式存储系统的读写控制方法和系统
CN108984343A (zh) 一种基于内容分析的虚拟机备份及存储管理方法
KR102233880B1 (ko) 싱글-레벨 기반의 데이터 저장 장치 및 방법
CN111984598A (zh) 一种高性能元数据日志文件管理方法、系统、介质及终端
CN109690485B (zh) 基于数据结构的垃圾回收方法、计算机及存储介质
CN109299106B (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