CN111831231A - 分区合并、分区拆分的方法及装置 - Google Patents

分区合并、分区拆分的方法及装置 Download PDF

Info

Publication number
CN111831231A
CN111831231A CN202010693299.9A CN202010693299A CN111831231A CN 111831231 A CN111831231 A CN 111831231A CN 202010693299 A CN202010693299 A CN 202010693299A CN 111831231 A CN111831231 A CN 111831231A
Authority
CN
China
Prior art keywords
partition
data
partitions
file
destination
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
CN202010693299.9A
Other languages
English (en)
Other versions
CN111831231B (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 CN202010693299.9A priority Critical patent/CN111831231B/zh
Publication of CN111831231A publication Critical patent/CN111831231A/zh
Application granted granted Critical
Publication of CN111831231B publication Critical patent/CN111831231B/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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

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

本发明涉及分区管理技术领域,实施例具体公开一种快速通用的分区合并的方法、装置,及分区拆分的方法、装置。本申请提供的分区合并方法,包括对待合并分区的信息进行标记,保存分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,将分区T1扇区0的内容更新为文件系统Fs_Adv,新增T0分区并进行虚拟格式化,建立虚拟设备清除原有设备,对外展现T0分区实现分区合并,该方法对各个分区的相对位置和文件系统没有严格要求,通过T0分区对合并分区进行管理,实现了通用快速的分区合并。

Description

分区合并、分区拆分的方法及装置
技术领域
本发明涉及分区管理技术领域,具体涉及一种快速通用的分区合并的方法、装置,及分区拆分的方法、装置。
背景技术
在分区管理领域中,分区合并是一个比较常见的用户需求,将若干小的分区合并起来可以更有效的使用存储空间,同时也可以将剩余空间充分利用起来。
目前分区管理软件对于该需求基本上是通过文件拷贝+分区放大来完成的,对于某些卷兼容的情况下,可以通过Meta数据重建而达成直接合并的方法(但这种卷兼容的情况并不通用),因此,分区合并效率并不高,合并以后,后面的卷文件基本处理方式是以目录形式和前置卷合并在一起。
分区分拆是将一个分区分拆成若干分区,其中的文件是按照用户指定的目录分拆出去,这是一个分区操作+文件操作的合成,并非简单的分区操作,相对分区合并而言,该需求较少,但也存在这种文件管理的需求。
目前的分区管理对于分区合并和分拆是分开的不同功能实现,实现效率普遍较低。而且由于功能分开实现,使得交互需要分开进行,存在交互不统一的风险。
发明内容
有鉴于此,本申请提供一种分区合并、分区拆分的方法及装置,能够解决或者至少部分解决上述存在的问题。
为解决以上技术问题,本发明提供的技术方案是一种分区合并的方法,包括:
S11:将要合并的各分区依次记为分区T1,T2…Tn,集合记为T;将分区T1,T2…Tn的长度依次记为l1,l2…ln,集合记为l;将分区T1,T2…Tn的相邻分区之间的距离记为L1,L2…Ln,集合记为L,其中L1=L1-预设数量;复制分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,并记为reservedbr,其中n为大于1的正整数;
S12:将分区T1扇区0的内容更新为文件系统Fs_Adv,以使文件系统Fs_Adv能Mount到合并分区上,将reservedbr的扇区号记录在分区T1扇区0中,将集合T,l,L的所有信息也记录在分区T1扇区0中;新增一个虚拟分区T0,位置为分区T1所在位置,长度为L1+预设数量+L2…+Ln的和,记为L0;
S13:按照分区T1,T2…Tn的原有文件系统格式将分区T1,T2…Tn的长度从l1,l2…ln分别扩展到L1,L2…Ln进行Meta信息重建;
S14:创建虚拟设备V1,V2…Vn对应之前的分区T1,T2…Tn,将虚拟设备V1,V2…Vn的长度对应设为L1,L2…Ln,将V1的dbr重定向到Reversedbr,将各虚拟设备Mount上各自原有文件系统;更新MBR或GPT,将分区T1,T2…Tn的分区项删除,同时创建虚拟分区T0分区项,将范围设定为L0;
S15:MBR或GPT更新后开始Mount流程,加载虚拟分区T0,虚拟分区T0会Mount上文件系统Fs_Adv,文件系统Fs_Adv在Mount时,建立符号链接S1,S2…Sn,用于对应分区T1,T2…Tn的重定向访问,完成后系统对外只展现虚拟分区T0,且虚拟分区T0根目录可以看到目录S1,S2…Sn对应V1,V2…Vn的访问,实现了分区合并。
优选的,分区合并的方法还包括S10:新建文件系统Fs_Adv,所述文件系统Fs_Adv包括未超界文件IO和超界文件IO;当接收到指定文件未超过原始分区界限的存储请求后,所述未超界文件IO将该指定文件的读写请求重定向到对应的指定设备;当接收到指定文件超过原始分区界限的存储请求后,所述超界文件IO协调各个分区完成该指定文件的读写请求。
优选的,所述S13中按照分区Tn的原有文件系统格式将分区Tn的长度从ln扩展到Ln进行Meta信息重建的方法包括:
S131:对源分区Tn的0至ln扇区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有文件数据的数据块信息;
S132:对目的分区Tn的0-Ln扇区的数据进行分析,获得U1集合和U2集合,其中U1集合包括按照与目的分区Tn的0-Ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,U2集合包括除管理数据外的所有数据的数据块信息;
S133:根据源分区Tn的0-ln扇区和目的分区Tn的0-Ln扇区的位置确定一个连续的合并分区,将S1集合、S2集合、U1集合和U2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
S134:对更新后的S1集合、S2集合、U1集合和U2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和W数据集,其中X数据集由S2集合中与U1集合中重复的数据块信息组成,Y数据集由S2集合中与U2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,W数据集由S1集合中与U1集合或者U2集合中重复的数据块信息组成;
S135:在目的分区Tn的0-Ln扇区生成A块管理单元和B块管理单元,其中A块管理单元包括U2集合中的所有数据块信息,B块管理单元包括U2集合中除去W数据集后剩下的所有数据块信息;
S136:生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
S137:通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区Tn的0-Ln扇区的管理信息。
本发明还提供一种分区分拆的方法,包括:
S21:获取将要拆分的虚拟分区T0及对应的原始分区T1,T2…Tn,复制分区T2前预设数量个扇区的reversedbr数据存储到分区T1前预设数量个扇区的dbr,同时更新T1的长度为L1,其中n为大于1的正整数;
S22:在MBR或GPT中删除分区T0,新增分区T1,T2…Tn,分区T1,T2…Tn的长度设为L1,L2…Ln,所有设置信息均从分区T2的reversedbr中获得;
S23:MBR或GPT更新后开始Mount流程,加载分区T1,T2…Tn,分区T1,T2…Tn会Mount上各自原有文件系统,完成后实现了分区拆分。
本发明还提供一种分区合并的装置,包括:
合并分区标记模块,用于将要合并的各分区依次记为分区T1,T2…Tn,集合记为T;将分区T1,T2…Tn的长度依次记为l1,l2…ln,集合记为l;将分区T1,T2…Tn的相邻分区之间的距离记为L1,L2…Ln,集合记为L,其中L1=L1-预设数量;复制分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,并记为reservedbr,其中n为大于1的正整数;
T0虚拟格式化模块,用于将分区T1扇区0的内容更新为文件系统Fs_Adv,以使文件系统Fs_Adv能Mount到合并分区上,将reservedbr的扇区号记录在分区T1扇区0中,将集合T,l,L的所有信息也记录在分区T1扇区0中;新增一个虚拟分区T0,位置为分区T1所在位置,长度为L1+预设数量+L2…+Ln的和,记为L0;
子存储格式化模块,用于按照分区T1,T2…Tn的原有文件系统格式将分区T1,T2…Tn的长度从l1,l2…ln分别扩展到L1,L2…Ln进行Meta信息重建;
虚拟设备建立模块,用于创建虚拟设备V1,V2…Vn对应之前的分区T1,T2…Tn,将虚拟设备V1,V2…Vn的长度对应设为L1,L2…Ln,将V1的dbr重定向到Reversedbr,将各虚拟设备Mount上各自原有文件系统;更新MBR或GPT,将分区T1,T2…Tn的分区项删除,同时创建虚拟分区T0分区项,将范围设定为L0;
Mount合并执行模块,用于MBR或GPT更新后开始Mount流程,加载虚拟分区T0,虚拟分区T0会Mount上文件系统Fs_Adv,文件系统Fs_Adv在Mount时,建立符号链接S1,S2…Sn,用于对应分区T1,T2…Tn的重定向访问,完成后系统对外只展现虚拟分区T0,且虚拟分区T0根目录可以看到目录S1,S2…Sn对应V1,V2…Vn的访问,实现了分区合并。
优选的,分区合并的装置还包括:
文件系统建立模块,用于新建文件系统Fs_Adv,所述文件系统Fs_Adv包括未超界文件IO和超界文件IO;当接收到指定文件未超过原始分区界限的存储请求后,所述未超界文件IO将该指定文件的读写请求重定向到对应的指定设备;当接收到指定文件超过原始分区界限的存储请求后,所述超界文件IO协调各个分区完成该指定文件的读写请求。
优选的,所述子存储格式化模块包括:
源分区分析单元,用于对源分区Tn的0至ln扇区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有文件数据的数据块信息;
目的分区分析单元,用于对目的分区Tn的0-Ln扇区的数据进行分析,获得U1集合和U2集合,其中U1集合包括按照与目的分区Tn的0-Ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,U2集合包括除管理数据外的所有数据的数据块信息;
合并分区更新单元,用于根据源分区Tn的0-ln扇区和目的分区Tn的0-Ln扇区的位置确定一个连续的合并分区,将S1集合、S2集合、U1集合和U2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
集合容斥操作单元,用于对更新后的S1集合、S2集合、U1集合和U2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和W数据集,其中X数据集由S2集合中与U1集合中重复的数据块信息组成,Y数据集由S2集合中与U2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,W数据集由S1集合中与U1集合或者U2集合中重复的数据块信息组成;
目的分区管理单元,用于在目的分区Tn的0-Ln扇区生成A块管理单元和B块管理单元,其中A块管理单元包括U2集合中的所有数据块信息,B块管理单元包括U2集合中除去W数据集后剩下的所有数据块信息;
移动集合生成单元,用于生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
数据移动更新单元,用于通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区Tn的0-Ln扇区的管理信息。
本发明还提供一种分区分拆的装置,包括:
分区拆分标记模块,用于获取将要拆分的虚拟分区T0及对应的原始分区T1,T2…Tn,复制分区T2前预设数量个扇区的reversedbr数据存储到分区T1前预设数量个扇区的dbr,同时更新T1的长度为L1,其中n为大于1的正整数;
原始分区恢复模块,用于在MBR或GPT中删除分区T0,新增分区T1,T2…Tn,分区T1,T2…Tn的长度设为L1,L2…Ln,所有设置信息均从分区T2的reversedbr中获得;
Mount拆分执行单元,用于MBR或GPT更新后开始Mount流程,加载分区T1,T2…Tn,分区T1,T2…Tn会Mount上各自原有文件系统,完成后实现了分区拆分。
本发明还提供一种分区合并的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述分区合并的方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述分区合并的方法的步骤。
本发明还提供一种分区拆分的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述分区拆分的方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述分区拆分的方法的步骤。
本申请与现有技术相比,其有益效果详细说明如下:本申请提供的分区合并方法,包括对待合并分区的信息进行标记,保存分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,将分区T1扇区0的内容更新为文件系统Fs_Adv,新增T0分区并进行虚拟格式化,建立虚拟设备清除原有设备,对外展现T0分区实现分区合并,该方法对各个分区的相对位置和文件系统没有严格要求,通过T0分区对合并分区进行管理,实现了通用快速的分区合并。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分区合并的方法流程示意图;
图2为本发明实施例提供的另一种分区合并的方法流程示意图;
图3为本发明实施例提供的一种将分区Tn的长度从ln扩展到Ln进行Meta信息重建的方法流程示意图;
图4为本发明实施例提供的一种分区拆分的方法流程示意图;
图5为本发明实施例提供的一种分区合并的装置结构示意图;
图6为本发明实施例提供的一种分区拆分的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
如图1所示,本发明实施例提供一种分区合并的方法,包括:
S11:将要合并的各分区依次记为分区T1,T2…Tn,集合记为T;将分区T1,T2…Tn的长度依次记为l1,l2…ln,集合记为l;将分区T1,T2…Tn的相邻分区之间的距离记为L1,L2…Ln,集合记为L,其中L1=L1-预设数量;复制分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,并记为reservedbr,其中n为大于1的正整数。
具体的,将需要合并的各个分区分别记为T1,T2…Tn,该集合记为T,n为大于1的正整数。将T1,T2…Tn的原始长度记为l1,l2…ln,集合记为l。各个分区之间的距离记为L1,L2…Ln(显然,L记录的是每一个已有卷之间的长度,而非l),集合记为L(其中L1需要减去101,这里的101为举例说明,实际需要根据dbr占据的扇区位置确定减去的扇区数量)。同时,保存T1分区的sector0~sector100内容到T2分区的前101个扇区,这部分扇区记为reservedbr。
S12:将分区T1扇区0的内容更新为文件系统Fs_Adv,以使文件系统Fs_Adv能Mount到合并分区上,将reservedbr的扇区号记录在分区T1扇区0中,将集合T,l,L的所有信息也记录在分区T1扇区0中;新增一个虚拟分区T0,位置为分区T1所在位置,长度为L1+预设数量+L2…+Ln的和,记为L0。
具体的,将T1的sector0内容更新为一个新的文件系统标记,记为Fs_Adv,以便Fs_Adv文件系统能Mount到合并分区上,将reservedbr扇区号记录在sector0中,然后将集合T,L,l所有信息也记录在sector0中,用于Fs_Adv加载使用。新增一个虚拟分区T0,位置为T1所在位置,长度为L1(加上101)+L2+~Ln的和,记为L0。Mount是系统下的一个命令,它可以将分区挂接到系统的一个文件夹下,从而将分区和该目录联系起来,因此只要访问这个文件夹,就相当于访问该分区了。
S13:按照分区T1,T2…Tn的原有文件系统格式将分区T1,T2…Tn的长度从l1,l2…ln分别扩展到L1,L2…Ln进行Meta信息重建。
具体的,将T1,T2…Tn分区按照原有文件系统格式但长度从ln扩展到Ln(即T1将长度由l1改变为L1,T2,T3等等以此类推)进行Meta信息重建,将需要移动的数据进行移动以便Tn分区按照原有文件系统可以Mount成Ln长度。
需要说明的是,如图3所示,S13中按照分区Tn的原有文件系统格式将分区Tn的长度从ln扩展到Ln进行Meta信息重建的方法包括:
S131:对源分区Tn的0至ln扇区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有文件数据的数据块信息。
具体的,S131的方法包括:(1)创建第一数据容器和第二数据容器;(2)将源分区的数据分类为管理数据或者文件数据,将管理数据的数据块信息装入第一数据容器,将文件数据的数据块信息装入第二数据容器;(3)将第一数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S1集合,将第二数据容器中的数据块信息以相对于源分区起始位置的相对位置进行排序获得S2集合。
具体的,将源分区的数据分析后分成meta和data两个类型,分别装入两个数据容器中,数据容器以相对源分区起始位置为Key进行归纳,分别记为S1集合(meta)和S2集合(data)。其中,Meta(管理数据):文件系统在所在分区上格式化产生的数据,和文件数据无关,主要是用于管理指定卷的数据信息,对于Ext4文件系统卷,Meta数据包括超块描述信息,块组描述信息,块位图信息,灵活块组描述等信息,这些信息在卷容量确定后就已确定了,不同文件系统的Meta信息各有不同,但都是用于管理卷的空间,另外,随着文件数据的扩大,Meta信息也会相应扩大。Data(文件数据):就是指纯粹的文件内容数据。文件内容位置信息:另外要说明的是Data所在位置之间的联系也会作为Data数据记录在Data区(有些文件系统会记录在Meta区),这部分信息随着文件容量的变化也会随着变动,这里把这部分信息描述为文件内容位置信息。
S132:对目的分区Tn的0-Ln扇区的数据进行分析,获得U1集合和U2集合,其中U1集合包括按照与目的分区Tn的0-Ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,U2集合包括除管理数据外的所有数据的数据块信息。
具体的,S132的方法包括:(1)创建第三数据容器;(2)将目的分区的数据分类为管理数据或者其他数据,将管理数据的数据块信息装入第三数据容器;(3)将第三数据容器中的数据块信息以相对于目的分区起始位置的相对位置进行排序获得U1集合,其他数据的数据块信息构成U2集合。
具体的,将目的分区进行虚拟格式化,并记录可能的meta信息,也放入数据容器中,以相对目标分区起始位置为Key进行归纳,记为U1集合。目标分区不在meta数据的范围记为U2集合。显然如果目的分区所需文件系统不需要固定meta数据,则U1为空,U2只有一个数据块信息,就是全部空间。
S133:根据源分区Tn的0-ln扇区和目的分区Tn的0-Ln扇区的位置确定一个连续的合并分区,将S1集合、S2集合、U1集合和U2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息。
具体的,S133的方法包括:将源分区和目的分区中最靠前的位置作为合并分区起始位置,将源分区和目的分区中最靠后的位置作为合并分区结束位置,合并分区起始位置和合并分区结束位置之间的区域为合并分区;将S1集合、S2集合、U1集合和U2集合中的数据块信息更新为以相对于合并分区起始位置的相对位置进行排序的数据块信息。
具体的,将源分区和目的分区合并为一个连续的大分区,命名为合并分区,将S1,S2以及U1,U2中的数据记录的Key重新更新到以相对合并分区起始位置的新记录。
S134:对更新后的S1集合、S2集合、U1集合和U2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和W数据集,其中X数据集由S2集合中与U1集合中重复的数据块信息组成,Y数据集由S2集合中与U2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,W数据集由S1集合中与U1集合或者U2集合中重复的数据块信息组成。
具体的,S134的方法包括:(1)遍历S2集合中的各个数据块信息,判断其是否在U1集合中,若是,则加入X数据集;(2)遍历S2集合中剩下的各个数据块信息,判断其是否在U2集合中,若是,则加入Y数据集;(3)将S2集合中剩下的所有数据块信息加入Z数据集。然后将S1,S2以及U1,U2集合进行若干容斥操作后形成如下新的数据集:a.S2中容纳的全部U1的数据,构成X数据集。b.S2中容纳的全部U2的数据,构成Y数据集。c.S2中排斥全部U1和U2(U1|U2)的数据,构成Z数据集。d.S1中容纳的全部U1和U2(U1|U2)的数据,记为W数据集。以上数据集均以相对合并分区起始位置为Key进行归纳。
S135:在目的分区Tn的0-Ln扇区生成A块管理单元和B块管理单元,其中A块管理单元包括U2集合中的所有数据块信息,B块管理单元包括U2集合中除去W数据集后剩下的所有数据块信息。
具体的,S135中,在目的分区上构建空闲数据块管理单元,用于对申请的数据块进行响应和对剩余空闲数据块进行管理,所划分的数据块管理单元如下:a.容纳U2数据集合中的所有数据块信息,构成A块管理。b.容纳U2数据集合,但排斥W数据集的全部数据块信息,构成B块管理。
S136:生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置。
具体的,S136中,该阶段主要目的是将源分区数据移动到目的分区的路径进行记录,构建移动集,内容是对应的源分区位置和要移动到的目的分区位置(以相对合并分区起始位置记录),移动集的Key是目的分区起始位置,构建的集合如下:a.标定X数据集,移动目的位置通过B块管理申请,构建a移动集合,用于标记移动。b.标定Y数据集,移动目的位置通过A块管理申请,构建b移动集合,只标记不移动。c.标定Z数据集,移动目的位置通过A块管理申请,构建c移动集合,标记移动。W集合只是辅助记录,不用于移动。构建完三个移动集合后,根据不同的文件系统,还需要产生对应的meta信息以及一些文件管理的扩展信息了,相应产生的信息分别对应到U1数据集以及通过A块管理申请空闲块进行扩充,加入Z数据集。合并移动标记:X,Z标记后均按照顺序使用A,B块,这样标记后是较多的连续状态,按照顺序合并。Y集合只标记,用于文件meta信息更新。
S137:通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区Tn的0-Ln扇区的管理信息。
具体的,S137的方法包括:通过a移动集合将X数据集移动到第一目的分区位置;构建目的分区的管理信息;通过c移动集合将Z数据集移动到第三目的分区位置;更新目的分区的管理信息。
具体的,如果能够完成阶段S136,说明目的空间能够容纳源分区的全部数据,那么到这个阶段,通过阶段S136产生的移动集合进行数据移动,步骤如下:a.通过a移动集合将X数据集移动到目的空间指定位置。b.目的分区中U1数据范围已释放,构建目的分区meta数据。c.通过b,c移动集合将Y,Z数据集移动到目的空间指定位置。将X,Z合并后的移动集合按照顺序进行数据移动操作,完成数据移动,目的分区数据构建全部完成。完成数据移动后,更新分区信息,以便系统加载新卷。
S14:创建虚拟设备V1,V2…Vn对应之前的分区T1,T2…Tn,将虚拟设备V1,V2…Vn的长度对应设为L1,L2…Ln,将V1的dbr重定向到Reversedbr,将各虚拟设备Mount上各自原有文件系统;更新MBR或GPT,将分区T1,T2…Tn的分区项删除,同时创建虚拟分区T0分区项,将范围设定为L0.
具体的,创建虚拟设备V1,V2…Vn,对应之前的原始分区T1,T2…Tn,但长度变化为Ln,同时对于V1,需要将dbr重定向到Reversedbr。将虚拟设备Mount上各自原有文件系统,然后更新MBR(或GPT)将T1~Tn的分区项删除,同时新建T0分区项,将范围定为L0。
S15:MBR或GPT更新后开始Mount流程,加载虚拟分区T0,虚拟分区T0会Mount上文件系统Fs_Adv,文件系统Fs_Adv在Mount时,建立符号链接S1,S2…Sn,用于对应分区T1,T2…Tn的重定向访问,完成后系统对外只展现虚拟分区T0,且虚拟分区T0根目录可以看到目录S1,S2…Sn对应V1,V2…Vn的访问,实现了分区合并。
具体的,系统发现MBR更新后会开始Mount流程,加载T0卷,同时由于T0的dbr进行了更改,所以该卷会Mount上Fs_Adv文件系统,Fs_Adv在Mount时,会建立符号链接S1,S2…Sn,用于对T1,T2…Tn的重定向访问,简言之,刚Mount好的T0卷上根目录可以看到S1,S2…Sn这些目录(名称可以自定义),对应上文提到的V1,V2…Vn的访问,但对外展现的只有T0设备,从而达成了分区快速合并的要求。
下面简单描述一下Fs_Adv一个具体的文件I/O的工作流程:
1、Fs_Adv获得一个文件访问请求,对\S2\abc.dat的读写请求。
2、分析请求,确定需要重定向到设备V2。
3、向V2设备发出重定向文件I/O,路径是\abc.dat。
4、设备V2完成具体的文件I/O请求。
5、T0获得该请求的访问结果,并回复给调用者。
需要说明的是,如图2所示,本发明实施例还提供一种分区合并的方法,在图1对应实施例的基础上还包括S10:新建文件系统Fs_Adv,文件系统Fs_Adv包括未超界文件IO和超界文件IO;当接收到指定文件未超过原始分区界限的存储请求后,未超界文件IO将该指定文件的读写请求重定向到对应的指定设备;当接收到指定文件超过原始分区界限的存储请求后,超界文件IO协调各个分区完成该指定文件的读写请求。
具体的,新建一个文件系统Fs_Adv,用于合并卷的访问,对于该文件系统的具体文件IO,有两个分类:未超界文件IO和超界文件IO。
其中,未超界文件IO对应:指定文件写请求未超过原始分区界限,这种情况无论读或写命令均重定向到指定设备进行。
超界文件IO对应:指定文件的写请求超过原始分区界限,这种情况,需要Fs_Adv进行协调,才能完成文件IO。具体的,a)Fs_Adv文件系统Mount后会将sector1~sector100这100个扇区(100是举例说明,具体实施时可以根据应用定义)用于存储超限文件的索引以及data-run。b)当未超限文件写请求返回STATUS_END_OF_FILE需要新增超限文件处理时,方法如下:i.申请空间建立索引,如果100个扇区内容都已全部使用完,则返回写失败。ii.针对写请求范围在各个实际分区申请空间,并将各个实际分区申请的空间标记为坏簇,让原分区文件系统不能使用。iii.建立data-run,并保存在申请区域中。iv.接管各个实际分区文件系统的Directory_Control访问,将特定目录的查询结果塞入超限文件的信息。v.对新产生的文件IO,都需要单独处理,详见c。c)针对超限文件访问都需要单独处理,方法如下:i.对于create操作:通过记录的索引和data-run产生File_Object,并将相关信息记录到Fs_Context中,用于后面的处理。ii.对于read操作、write操作:通过Fs_Context获取指定文件的data-run,从而进行准确位置的IO,并返回,如果需要扩展data-run,需要将原分区记录上坏簇,以便杜绝原分区文件系统访问,如果减小,则反向操作。iii.对于QueryfileInformation操作:同上。iv.对于删除操作,则将申请的索引信息回收,并将记录的坏簇清除。
如图4所示,本发明实施例还提供一种分区分拆的方法,包括:
S21:获取将要拆分的虚拟分区T0及对应的原始分区T1,T2…Tn,复制分区T2前预设数量个扇区的reversedbr数据存储到分区T1前预设数量个扇区的dbr,同时更新T1的长度为L1,其中n为大于1的正整数;
S22:在MBR或GPT中删除分区T0,新增分区T1,T2…Tn,分区T1,T2…Tn的长度设为L1,L2…Ln,所有设置信息均从分区T2的reversedbr中获得;
S23:MBR或GPT更新后开始Mount流程,加载分区T1,T2…Tn,分区T1,T2…Tn会Mount上各自原有文件系统,完成后实现了分区拆分。
具体的,当用户在进行了一段时间对T0的操作以后,希望按照之前合并的逻辑原样分拆,那么执行的过程基本和前述的操作是一个相反的操作,具体过程是:1、将T1的reversedbr数据还原到T1的dbr,同时更新T1的长度为L1。2、在MBR(或GPT)中删除T0分区,新增T1,T2…Tn分区,长度定为L1,L2…Ln,这些信息在reversedbr中都能找到。3、写入改写后的MBR,引导系统完成T1,T2…Tn卷的加载过程,从而完成整个分区分拆过程。到此,整个的分区分拆流程描述完成。
本发明提出的新的分区处理方法,将分区合并和分拆合在一起考虑,提出一种快速的实现方式,从而将分区合并和分拆的逻辑合并统一起来,并能够高效地实现用户目的,而且该操作具有通用性,达成快速,高效,通用的统一。同时,由于合并和分拆的逻辑保持统一,这样也解决了之前描述的各自独立实现时,分拆逻辑存在和合并规则不统一的问题,使得一个逻辑能够贯彻始终,避免不必要的交互。
如图5所示,本发明实施例还提供一种分区合并的装置,包括:
合并分区标记模块31,用于将要合并的各分区依次记为分区T1,T2…Tn,集合记为T;将分区T1,T2…Tn的长度依次记为l1,l2…ln,集合记为l;将分区T1,T2…Tn的相邻分区之间的距离记为L1,L2…Ln,集合记为L,其中L1=L1-预设数量;复制分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,并记为reservedbr,其中n为大于1的正整数;
T0虚拟格式化模块32,用于将分区T1扇区0的内容更新为文件系统Fs_Adv,以使文件系统Fs_Adv能Mount到合并分区上,将reservedbr的扇区号记录在分区T1扇区0中,将集合T,l,L的所有信息也记录在分区T1扇区0中;新增一个虚拟分区T0,位置为分区T1所在位置,长度为L1+预设数量+L2…+Ln的和,记为L0;
子存储格式化模块33,用于按照分区T1,T2…Tn的原有文件系统格式将分区T1,T2…Tn的长度从l1,l2…ln分别扩展到L1,L2…Ln进行Meta信息重建;
虚拟设备建立模块34,用于创建虚拟设备V1,V2…Vn对应之前的分区T1,T2…Tn,将虚拟设备V1,V2…Vn的长度对应设为L1,L2…Ln,将V1的dbr重定向到Reversedbr,将各虚拟设备Mount上各自原有文件系统;更新MBR或GPT,将分区T1,T2…Tn的分区项删除,同时创建虚拟分区T0分区项,将范围设定为L0;
Mount合并执行模块35,用于MBR或GPT更新后开始Mount流程,加载虚拟分区T0,虚拟分区T0会Mount上文件系统Fs_Adv,文件系统Fs_Adv在Mount时,建立符号链接S1,S2…Sn,用于对应分区T1,T2…Tn的重定向访问,完成后系统对外只展现虚拟分区T0,且虚拟分区T0根目录可以看到目录S1,S2…Sn对应V1,V2…Vn的访问,实现了分区合并。
需要说明的是,分区合并的装置还包括:
文件系统建立模块30,用于新建文件系统Fs_Adv,文件系统Fs_Adv包括未超界文件IO和超界文件IO;当接收到指定文件未超过原始分区界限的存储请求后,未超界文件IO将该指定文件的读写请求重定向到对应的指定设备;当接收到指定文件超过原始分区界限的存储请求后,超界文件IO协调各个分区完成该指定文件的读写请求。
需要说明的是,子存储格式化模块33包括:
源分区分析单元,用于对源分区Tn的0至ln扇区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有文件数据的数据块信息;
目的分区分析单元,用于对目的分区Tn的0-Ln扇区的数据进行分析,获得U1集合和U2集合,其中U1集合包括按照与目的分区Tn的0-Ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,U2集合包括除管理数据外的所有数据的数据块信息;
合并分区更新单元,用于根据源分区Tn的0-ln扇区和目的分区Tn的0-Ln扇区的位置确定一个连续的合并分区,将S1集合、S2集合、U1集合和U2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
集合容斥操作单元,用于对更新后的S1集合、S2集合、U1集合和U2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和W数据集,其中X数据集由S2集合中与U1集合中重复的数据块信息组成,Y数据集由S2集合中与U2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,W数据集由S1集合中与U1集合或者U2集合中重复的数据块信息组成;
目的分区管理单元,用于在目的分区Tn的0-Ln扇区生成A块管理单元和B块管理单元,其中A块管理单元包括U2集合中的所有数据块信息,B块管理单元包括U2集合中除去W数据集后剩下的所有数据块信息;
移动集合生成单元,用于生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
数据移动更新单元,用于通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区Tn的0-Ln扇区的管理信息。
如图6所示,本发明实施例还提供一种分区分拆的装置,包括:
分区拆分标记模块41,用于获取将要拆分的虚拟分区T0及对应的原始分区T1,T2…Tn,复制分区T2前预设数量个扇区的reversedbr数据存储到分区T1前预设数量个扇区的dbr,同时更新T1的长度为L1,其中n为大于1的正整数;
原始分区恢复模块42,用于在MBR或GPT中删除分区T0,新增分区T1,T2…Tn,分区T1,T2…Tn的长度设为L1,L2…Ln,所有设置信息均从分区T2的reversedbr中获得;
Mount拆分执行单元43,用于MBR或GPT更新后开始Mount流程,加载分区T1,T2…Tn,分区T1,T2…Tn会Mount上各自原有文件系统,完成后实现了分区拆分。
本发明实施例还提供一种分区合并的装置,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现上述分区合并的方法的步骤。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述分区合并的方法的步骤。
本发明实施例还提供一种分区拆分的装置,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现上述分区拆分的方法的步骤。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述分区拆分的方法的步骤。
图5所对应实施例中特征的说明可以参见图1至图3所对应实施例的相关说明,图6所对应实施例中特征说明可以参见图4所对应实施例的相关说明,这里不再一一赘述。
以上对本发明实施例所提供的一种分区合并的方法、装置,分区拆分的方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

Claims (10)

1.一种分区合并的方法,其特征在于,包括:
S11:将要合并的各分区依次记为分区T1,T2…Tn,集合记为T;将分区T1,T2…Tn的长度依次记为l1,l2…ln,集合记为l;将分区T1,T2…Tn的相邻分区之间的距离记为L1,L2…Ln,集合记为L,其中L1=L1-预设数量;复制分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,并记为reservedbr,其中n为大于1的正整数;
S12:将分区T1扇区0的内容更新为文件系统Fs_Adv,以使文件系统Fs_Adv能Mount到合并分区上,将reservedbr的扇区号记录在分区T1扇区0中,将集合T,l,L的所有信息也记录在分区T1扇区0中;新增一个虚拟分区T0,位置为分区T1所在位置,长度为L1+预设数量+L2…+Ln的和,记为L0;
S13:按照分区T1,T2…Tn的原有文件系统格式将分区T1,T2…Tn的长度从l1,l2…ln分别扩展到L1,L2…Ln进行Meta信息重建;
S14:创建虚拟设备V1,V2…Vn对应之前的分区T1,T2…Tn,将虚拟设备V1,V2…Vn的长度对应设为L1,L2…Ln,将V1的dbr重定向到Reversedbr,将各虚拟设备Mount上各自原有文件系统;更新MBR或GPT,将分区T1,T2…Tn的分区项删除,同时创建虚拟分区T0分区项,将范围设定为L0;
S15:MBR或GPT更新后开始Mount流程,加载虚拟分区T0,虚拟分区T0会Mount上文件系统Fs_Adv,文件系统Fs_Adv在Mount时,建立符号链接S1,S2…Sn,用于对应分区T1,T2…Tn的重定向访问,完成后系统对外只展现虚拟分区T0,且虚拟分区T0根目录可以看到目录S1,S2…Sn对应V1,V2…Vn的访问,实现了分区合并。
2.根据权利要求1所述的分区合并的方法,其特征在于,还包括S10:新建文件系统Fs_Adv,所述文件系统Fs_Adv包括未超界文件IO和超界文件IO;当接收到指定文件未超过原始分区界限的存储请求后,所述未超界文件IO将该指定文件的读写请求重定向到对应的指定设备;当接收到指定文件超过原始分区界限的存储请求后,所述超界文件IO协调各个分区完成该指定文件的读写请求。
3.根据权利要求1所述的分区合并的方法,其特征在于,所述S13中按照分区Tn的原有文件系统格式将分区Tn的长度从ln扩展到Ln进行Meta信息重建的方法包括:
S131:对源分区Tn的0至ln扇区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有文件数据的数据块信息;
S132:对目的分区Tn的0-Ln扇区的数据进行分析,获得U1集合和U2集合,其中U1集合包括按照与目的分区Tn的0-Ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,U2集合包括除管理数据外的所有数据的数据块信息;
S133:根据源分区Tn的0-ln扇区和目的分区Tn的0-Ln扇区的位置确定一个连续的合并分区,将S1集合、S2集合、U1集合和U2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
S134:对更新后的S1集合、S2集合、U1集合和U2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和W数据集,其中X数据集由S2集合中与U1集合中重复的数据块信息组成,Y数据集由S2集合中与U2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,W数据集由S1集合中与U1集合或者U2集合中重复的数据块信息组成;
S135:在目的分区Tn的0-Ln扇区生成A块管理单元和B块管理单元,其中A块管理单元包括U2集合中的所有数据块信息,B块管理单元包括U2集合中除去W数据集后剩下的所有数据块信息;
S136:生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
S137:通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区Tn的0-Ln扇区的管理信息。
4.一种分区分拆的方法,其特征在于,包括:
S21:获取将要拆分的虚拟分区T0及对应的原始分区T1,T2…Tn,复制分区T2前预设数量个扇区的reversedbr数据存储到分区T1前预设数量个扇区的dbr,同时更新T1的长度为L1,其中n为大于1的正整数;
S22:在MBR或GPT中删除分区T0,新增分区T1,T2…Tn,分区T1,T2…Tn的长度设为L1,L2…Ln,所有设置信息均从分区T2的reversedbr中获得;
S23:MBR或GPT更新后开始Mount流程,加载分区T1,T2…Tn,分区T1,T2…Tn会Mount上各自原有文件系统,完成后实现了分区拆分。
5.一种分区合并的装置,其特征在于,包括:
合并分区标记模块,用于将要合并的各分区依次记为分区T1,T2…Tn,集合记为T;将分区T1,T2…Tn的长度依次记为l1,l2…ln,集合记为l;将分区T1,T2…Tn的相邻分区之间的距离记为L1,L2…Ln,集合记为L,其中L1=L1-预设数量;复制分区T1前预设数量个扇区的内容存储到分区T2前预设数量个扇区,并记为reservedbr,其中n为大于1的正整数;
T0虚拟格式化模块,用于将分区T1扇区0的内容更新为文件系统Fs_Adv,以使文件系统Fs_Adv能Mount到合并分区上,将reservedbr的扇区号记录在分区T1扇区0中,将集合T,l,L的所有信息也记录在分区T1扇区0中;新增一个虚拟分区T0,位置为分区T1所在位置,长度为L1+预设数量+L2…+Ln的和,记为L0;
子存储格式化模块,用于按照分区T1,T2…Tn的原有文件系统格式将分区T1,T2…Tn的长度从l1,l2…ln分别扩展到L1,L2…Ln进行Meta信息重建;
虚拟设备建立模块,用于创建虚拟设备V1,V2…Vn对应之前的分区T1,T2…Tn,将虚拟设备V1,V2…Vn的长度对应设为L1,L2…Ln,将V1的dbr重定向到Reversedbr,将各虚拟设备Mount上各自原有文件系统;更新MBR或GPT,将分区T1,T2…Tn的分区项删除,同时创建虚拟分区T0分区项,将范围设定为L0;
Mount合并执行模块,用于MBR或GPT更新后开始Mount流程,加载虚拟分区T0,虚拟分区T0会Mount上文件系统Fs_Adv,文件系统Fs_Adv在Mount时,建立符号链接S1,S2…Sn,用于对应分区T1,T2…Tn的重定向访问,完成后系统对外只展现虚拟分区T0,且虚拟分区T0根目录可以看到目录S1,S2…Sn对应V1,V2…Vn的访问,实现了分区合并。
6.根据权利要求5所述的分区合并的装置,其特征在于,还包括:
文件系统建立模块,用于新建文件系统Fs_Adv,所述文件系统Fs_Adv包括未超界文件IO和超界文件IO;当接收到指定文件未超过原始分区界限的存储请求后,所述未超界文件IO将该指定文件的读写请求重定向到对应的指定设备;当接收到指定文件超过原始分区界限的存储请求后,所述超界文件IO协调各个分区完成该指定文件的读写请求。
7.根据权利要5所述的分区合并的装置,其特征在于,所述子存储格式化模块包括:
源分区分析单元,用于对源分区Tn的0至ln扇区的数据进行分析,获得S1集合和S2集合,其中S1集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,S2集合包括按照与源分区Tn的0-ln扇区起始位置的相对位置排序的所有文件数据的数据块信息;
目的分区分析单元,用于对目的分区Tn的0-Ln扇区的数据进行分析,获得U1集合和U2集合,其中U1集合包括按照与目的分区Tn的0-Ln扇区起始位置的相对位置排序的所有管理数据的数据块信息,U2集合包括除管理数据外的所有数据的数据块信息;
合并分区更新单元,用于根据源分区Tn的0-ln扇区和目的分区Tn的0-Ln扇区的位置确定一个连续的合并分区,将S1集合、S2集合、U1集合和U2集合中的数据块信息均更新为按照与合并分区起始位置的相对位置排序的数据块信息;
集合容斥操作单元,用于对更新后的S1集合、S2集合、U1集合和U2集合进行容斥操作,获得X数据集、Y数据集、Z数据集和W数据集,其中X数据集由S2集合中与U1集合中重复的数据块信息组成,Y数据集由S2集合中与U2集合中重复的数据块信息组成,Z数据集由S2集合中除去X数据集和Y数据集后剩下的数据块信息组成,W数据集由S1集合中与U1集合或者U2集合中重复的数据块信息组成;
目的分区管理单元,用于在目的分区Tn的0-Ln扇区生成A块管理单元和B块管理单元,其中A块管理单元包括U2集合中的所有数据块信息,B块管理单元包括U2集合中除去W数据集后剩下的所有数据块信息;
移动集合生成单元,用于生成a移动集合、b移动集合和c移动集合,其中a移动集合包括X数据集位置和通过B块管理单元分配的第一目的分区位置,b移动集合包括Y数据集和通过A块管理单元分配的第二目的分区位置,c移动集合包括Z数据集和通过A块管理单元分配的第三目的分区位置;
数据移动更新单元,用于通过a移动集合将X数据集移动到第一目的分区位置,通过c移动集合将Z数据集移动到第三目的分区位置,更新目的分区Tn的0-Ln扇区的管理信息。
8.一种分区分拆的装置,其特征在于,包括:
分区拆分标记模块,用于获取将要拆分的虚拟分区T0及对应的原始分区T1,T2…Tn,复制分区T2前预设数量个扇区的reversedbr数据存储到分区T1前预设数量个扇区的dbr,同时更新T1的长度为L1,其中n为大于1的正整数;
原始分区恢复模块,用于在MBR或GPT中删除分区T0,新增分区T1,T2…Tn,分区T1,T2…Tn的长度设为L1,L2…Ln,所有设置信息均从分区T2的reversedbr中获得;
Mount拆分执行单元,用于MBR或GPT更新后开始Mount流程,加载分区T1,T2…Tn,分区T1,T2…Tn会Mount上各自原有文件系统,完成后实现了分区拆分。
9.一种分区合并的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至3中任一项所述分区合并的方法的步骤。
10.一种分区拆分的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求4所述分区拆分的方法的步骤。
CN202010693299.9A 2020-07-17 2020-07-17 分区合并、分区拆分的方法及装置 Active CN111831231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010693299.9A CN111831231B (zh) 2020-07-17 2020-07-17 分区合并、分区拆分的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010693299.9A CN111831231B (zh) 2020-07-17 2020-07-17 分区合并、分区拆分的方法及装置

Publications (2)

Publication Number Publication Date
CN111831231A true CN111831231A (zh) 2020-10-27
CN111831231B CN111831231B (zh) 2024-01-05

Family

ID=72924306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010693299.9A Active CN111831231B (zh) 2020-07-17 2020-07-17 分区合并、分区拆分的方法及装置

Country Status (1)

Country Link
CN (1) CN111831231B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494681A (zh) * 2000-10-27 2004-05-05 �ֹ��� 分区创建方法及删除方法
CN107111450A (zh) * 2014-10-24 2017-08-29 微软技术许可有限责任公司 使用分区表进行的磁盘分区拼接和重新均衡
CN111176580A (zh) * 2019-12-30 2020-05-19 成都易我科技开发有限责任公司 分区数据无损移动的方法、装置及可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494681A (zh) * 2000-10-27 2004-05-05 �ֹ��� 分区创建方法及删除方法
CN107111450A (zh) * 2014-10-24 2017-08-29 微软技术许可有限责任公司 使用分区表进行的磁盘分区拼接和重新均衡
CN111176580A (zh) * 2019-12-30 2020-05-19 成都易我科技开发有限责任公司 分区数据无损移动的方法、装置及可读存储介质

Also Published As

Publication number Publication date
CN111831231B (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
JP6553822B2 (ja) 分散システムにおける範囲の分割および移動
US10628378B2 (en) Replication of snapshots and clones
JP5792594B2 (ja) 仮想パーティションを用いたデータベース再分配
CN102629247B (zh) 一种数据处理方法、装置和系统
US7681010B2 (en) Apparatus and method for a managing file system
US11461140B2 (en) Systems and methods for controller-worker architecture for searching a storage system
CN109739828B (zh) 一种数据处理方法、设备及计算机可读存储介质
US11782878B2 (en) Systems and methods for searching deduplicated data
US20230394010A1 (en) File system metadata deduplication
US10423580B2 (en) Storage and compression of an aggregation file
KR20210058118A (ko) CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치
CN115840731A (zh) 文件处理方法、计算设备及计算机存储介质
JPWO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置
US20180011897A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
CN111382142B (zh) 数据库的操作方法、服务器和计算机存储介质
CN111831231A (zh) 分区合并、分区拆分的方法及装置
US10942912B1 (en) Chain logging using key-value data storage
CN107491363A (zh) 一种基于Linux内核的存储卷的快照方法及装置
CN111984598A (zh) 一种高性能元数据日志文件管理方法、系统、介质及终端
JP2010191903A (ja) 分散ファイルシステムのストライピング種別選択方法及びその分散ファイルシステム
CN116450591B (zh) 一种数据处理方法、装置、计算机设备及存储介质
JP2001056775A (ja) 計算機システム及びプログラム記録媒体
CN113568868A (zh) 文件系统管理方法、系统、电子设备及介质
CN116450751A (zh) 事务处理方法及装置
US10360145B2 (en) Handling large writes to distributed logs

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