CN109086333A - 用于数据块的处理方法和系统 - Google Patents
用于数据块的处理方法和系统 Download PDFInfo
- Publication number
- CN109086333A CN109086333A CN201810726283.6A CN201810726283A CN109086333A CN 109086333 A CN109086333 A CN 109086333A CN 201810726283 A CN201810726283 A CN 201810726283A CN 109086333 A CN109086333 A CN 109086333A
- Authority
- CN
- China
- Prior art keywords
- snapshot document
- data block
- snapshot
- data
- data file
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
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
技术领域
本公开涉及一种用于数据块的处理方法和系统。
背景技术
数据块是一种数据存在形式,也是设备之间(如主存储器、输入设备、输出设备、外存储器等)进行数据传输的单位。目前,数据文件中的数据通常以数据块的形式存储在存储设备中,且数据文件的快照文件通常也会与该数据文件共用某个或某些数据块。
在删除或者修改数据文件中的数据块时,为了保证被删除的或者修改前的数据块能够被正确释放,现有的解决方案是一般采用引用计数的方式来确定被删除的或者修改前的数据块是否还被数据文件的快照文件引用着。若不再被数据文件的快照文件引用着,则释放,否则不释放。
但是,在实现本公开构思的过程中,发明人发现现有技术中至少存在如下缺陷:现有技术通常需要为引用计数预留存储空间,并且数据块被引用的次数每变化一次都需要去存储设备修改一次引用计数,如此对频繁地操作存储设备,会影响其使用寿命。
发明内容
本公开的一个方面提供了一种用于数据块的处理方法,包括:在数据文件中包含的第一数据块已被修改或删除的情况下,确定与上述数据文件关联的快照文件;查找上述快照文件中是否包含有上述第一数据块;以及在上述快照文件中没有包含上述第一数据块的情况下,使用于存储上述数据文件以及与上述数据文件关联的上述快照文件的数据块的存储设备释放上述第一数据块。
可选地,查找上述快照文件中是否包含有上述第一数据块包括:从确定出的与上述数据文件关联的所有快照文件中找出最新创建的快照文件;以及查找上述最新创建的快照文件中是否包含有上述第一数据块;或者查找上述快照文件中是否包含有上述第一数据块包括:遍历与上述数据文件关联的上述所有快照文件;以及对于遍历到的每个快照文件,查找其中是否包含有上述第一数据块。
可选地,查找上述快照文件中是否包含有上述第一数据块包括:确定上述第一数据块对应的第一存储地址;获取上述快照文件的快照文件信息,其中,上述快照文件信息包括上述快照文件中包含的所有数据块的存储地址;以及查找上述快照文件信息中包含的上述所有数据块的存储地址中是否包含有上述第一存储地址。
可选地,确定与上述数据文件关联的快照文件包括:获取上述数据文件中包含的索引字段,其中,上述索引字段和对应的快照文件信息列表具有关联关系;基于上述索引字段,索引出与其具有关联关系的快照文件信息列表;以及将索引出的快照文件信息列表中包含的快照文件信息所描述的快照文件确定为与上述数据文件关联的快照文件。
可选地,上述用于数据块的处理方法还包括:在上述快照文件中包含有上述第一数据块的情况下,使上述存储设备继续保留上述第一数据块。
本公开的另一个方面提供了用于数据块的处理系统,包括:确定模块,用于在数据文件中包含的第一数据块已被修改或删除的情况下,确定与上述数据文件关联的快照文件;查找模块,用于查找上述快照文件中是否包含有上述第一数据块;以及释放模块,用于在上述快照文件中没有包含上述第一数据块的情况下,使用于存储上述数据文件以及与上述数据文件关联的上述快照文件的数据块的存储设备释放上述第一数据块。
可选地,上述查找模块包括:第一查找单元,用于从确定出的与上述数据文件关联的所有快照文件中找出最新创建的快照文件;以及第二查找单元,用于查找上述最新创建的快照文件中是否包含有上述第一数据块;或者上述查找模块包括:遍历单元,用于遍历与上述数据文件关联的上述所有快照文件;以及第三查找单元,用于对于遍历到的每个快照文件,查找其中是否包含有上述第一数据块。
可选地,上述查找模块包括:第一确定单元,用于确定上述第一数据块对应的第一存储地址;第一获取单元,用于获取上述快照文件的快照文件信息,其中,上述快照文件信息包括上述快照文件中包含的所有数据块的存储地址;以及第四查找单元,用于查找上述快照文件信息中包含的上述所有数据块的存储地址中是否包含有上述第一存储地址。
可选地,上述确定模块包括:第二获取单元,用于获取上述数据文件中包含的索引字段,其中,上述索引字段和对应的快照文件信息列表具有关联关系;索引单元,用于基于上述索引字段,索引出与其具有关联关系的快照文件信息列表;以及第二确定单元,用于将索引出的快照文件信息列表中包含的快照文件信息所描述的快照文件确定为与上述数据文件关联的快照文件。
可选地,上述用于数据块的处理系统还包括:保留模块,用于在上述快照文件中包含有上述第一数据块的情况下,使上述存储设备继续保留上述第一数据块。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的用于数据块的处理方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的用于数据块的处理方法。
本公开的另一个方面提供了一种计算机系统,包括:一个或多个处理器;计算机可读存储介质,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的用于数据块的处理方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的用于数据块的处理方法和系统的应用场景;
图2示意性示出了根据本公开实施例的用于数据块的处理方法的流程图;
图3A示意性示出了根据本公开实施例的查找快照文件中是否包含有第一数据块的流程图;
图3B示意性示出了根据本公开另一实施例的查找快照文件中是否包含有第一数据块的流程图;
图3C示意性示出了根据本公开另一实施例的查找快照文件中是否包含有第一数据块的流程图;
图3D示意性示出了根据本公开实施例的确定与数据文件关联的快照文件的流程图;
图3E示意性示出了根据本公开实施例的数据文件的索引节点的示意图;
图3F示意性示出了根据本公开实施例的扩展索引信息的示意图;
图3G示意性示出了根据本公开实施例的间接索引信息的示意图;
图3H示意性示出了根据本公开实施例的快照文件信息列表的示意图;
图3I示意性示出了根据本公开实施例的创建快照息的流程图;
图3J示意性示出了根据本公开实施例的删除快照文件的流程图;
图3K示意性示出了根据本公开实施例的修改快照文件的流程图;
图4示意性示出了根据本公开实施例的用于数据块的处理系统的框图;
图5A示意性示出了根据本公开实施例的查找模块的框图;
图5B示意性示出了根据本公开另一实施例的查找模块的框图;
图5C示意性示出了根据本公开另一实施例的查找模块的框图;
图5D示意性示出了根据本公开实施例的确定模块的框图;
图5E示意性示出了根据本公开另一实施例的用于数据块的处理系统的框图;以及
图6示意性示出了根据本公开实施例的适于实现用于数据块的处理方法的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种用于数据块的处理方法,包括:在数据文件中包含的第一数据块已被修改或删除的情况下,确定与数据文件关联的快照文件;查找快照文件中是否包含有第一数据块;以及在快照文件中没有包含第一数据块的情况下,使用于存储数据文件以及与数据文件关联的快照文件的数据块的存储设备释放第一数据块。
图1示意性示出了根据本公开实施例的用于数据块的处理方法和系统的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
在本公开的实施例中,与数据文件关联的快照文件通常会与该数据文件共用某个或某些数据块。这种情况下,在删除或者修改数据文件中的数据块时,需要判断被删除的或者修改前的数据块是否还被快照文件使用着,以便可以保证被删除的或者修改前的数据块能够被正确释放。
例如,如图1所示,数据文件A中的数据“XXX1”以数据块“A1”的形式存储,数据“XXX2”以数据块“A2”的形式存储,数据“XXX3”以数据块“A3”的形式存储。在某一时刻,对数据文件A进行修改,比如将数据“XXX1”修改为数据“YYY1”,并将数据“YYY1”以数据块“A1’”的形式存储。此种情况下,在释放数据块“A1”之前,可以先判断数据块“A1”是否还被与数据文件A关联的快照文件使用着,以便可以保证能够正确释放该数据块“A1”。
目前,现有的解决方案是一般采用引用计数的方式来确定被删除的或者修改前的数据块是否还被数据文件的快照文件引用着。若不再被数据文件的快照文件引用着,则释放,否则不释放。但是,现有技术通常需要为引用计数预留存储空间,并且数据块被引用的次数每变化一次都需要去存储设备修改一次引用计数,如此对频繁地操作存储设备,会影响其使用寿命。
此时,可以通过本公开提供的数据块的处理方案,在与数据文件关联的快照文件中没有包含第一数据块的情况下,则释放第一数据块,进而可以保证第一数据块可以被正确释放,且本公开提供的方案不需要采用引用计数的方式,进而可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
图2示意性示出了根据本公开实施例的用于数据块的处理方法的流程图。
如图2所示,该用于数据块的处理方法可以包括操作S201~操作S203,其中:
在操作S201,在数据文件中包含的第一数据块已被修改或删除的情况下,确定与数据文件关联的快照文件。
在操作S202,查找快照文件中是否包含有第一数据块。
在操作S203,在快照文件中没有包含第一数据块的情况下,使用于存储数据文件以及与数据文件关联的快照文件的数据块的存储设备释放第一数据块。
随着存储需求的提高,用户可以以在线方式进行数据保护,快照文件就是在线存储设备防范数据丢失的有效方法之一。目前,数据文件中的数据通常以数据块的形式存储在存储设备中,且数据文件的快照文件通常也会与该数据文件共用某个或某些数据块。基于此,在删除或者修改数据文件中的数据块时,通常需要判断该被删除的或者修改前的数据块是否还被其他文件例如数据文件的快照文件使用着,以便可以保证被删除的或者修改前的数据块能够被正确释放。
在本公开的实施例中,存储设备可以包括但不限于服务器、笔记本电脑、台式电脑等。
根据本公开的实施例,存储设备中可以存储有数据文件和与该数据文件关联的快照文件,其中,与数据文件关联的快照文件可以包括至少一个快照文件,每个快照文件可以用于表示该数据文件在不同时刻所存储的数据,且两两相邻的时刻所对应的快照文件可以是不同的。
根据本公开的实施例,数据文件中的数据可以以数据块的形式存储在存储设备中,快照文件中的数据也可以以数据块的形式存储在存储设备中。数据文件中可以包含有至少一个数据块,快照文件中也可以包含有至少一个数据块。数据文件可以有与其关联的快照文件,与数据文件关联的快照文件可以与该数据文件共用某个或某些数据块。所谓共用,可以是数据文件中存储的数据块的存储地址与快照文件中存储的该数据块的存储地址相同,其中,存储地址可以包括但不限于数据块的物理地址。
例如,数据文件A中包含有数据块1、数据块2和数据块3,该数据文件的在第一时刻的快照文件B中包含有数据块1、数据块2’和数据块3’,该数据文件在第二时刻的快照文件C中包含有数据块1、数据块2和数据块3’,其中,第一时刻小于第二时刻。则数据文件A与快照文件B共用数据块1,数据文件A与快照文件C共用数据块1和数据块2。
根据本公开的实施例,数据块的存储地址可以存储在文件的索引节点中,其中,每个文件均可以对应一个索引节点,比如可以将文件的文件名与该文件的索引节点相关联,且索引节点可以存储在对应的文件中。
根据本公开的实施例,数据文件的索引节点可以存储在该数据文件中,数据文件的索引节点中可以包含有数据文件的至少一个数据块的存储地址;快照文件的索引节点也可以存储在该快照文件中,快照文件的索引节点中也可以包含有快照文件的至少一个数据块的存储地址。在数据文件与快照文件共用某个或某些数据块时,该数据文件的索引节点中包含的该共用数据块的存储地址与快照文件中包含的该共用数据块的存储地址相同。
在本公开的实施例中,数据文件包含的至少一个数据块中可以包括有第一数据块,该第一数据块可以包括一个或多个数据块。
根据本公开的实施例,第一数据块被修改后,系统会为数据文件重新分配一个数据块,所谓重新分配,可以是为修改后的数据重新分配一个存储地址。例如,数据文件A的数据“AA”以数据块1的形式存储,某一时刻,用户将数据“AA”修改为数据“BB”,数据“BB”以数据块2的形式存储,则系统会该数据块2重新分配一个存储地址。
根据本公开的实施例,在数据文件中包含的第一数据块已被修改或删除的情况下,系统需要判断是否可以释放该第一数据块。在释放第一数据块之前,可以先判断是否还有其他文件例如与该数据文件关联的快照文件使用着该第一数据块,若没有,则可以释放该第一数据块,若有,则可以保留该第一数据块。
具体地,可以确定与该数据文件关联的快照文件,并查找该快照文件中是否包含有第一数据块,例如查找快照文件的索引节点中是否包含有该第一数据块的第一存储地址。若快照文件中没有包含第一数据块,则可以使用于存储数据文件以及与该数据文件关联的快照文件的数据块的存储设备释放该第一数据块。若快照文件中包含有该第一数据块,则可以使该存储设备保留该第一数据块。
需要说明的是,本公开实施例所谓的释放,可以是释放第一数据块的第一存储地址,例如,从索引节点中删除第一数据块的第一存储地址。
与公开的实施例不同,目前,现有技术是采用引用计数的方式来确保数据块可以被正确回收。但是,采用引用计数的方式通常需要在文件系统格式化初期便为引用计数预留出其所需要的空间,并且数据块被引用的次数每变化一次(例如分配数据块或者删除数据块)都需要去存储设备修改一次引用计数,如此对频繁地操作存储设备特别是频繁的对存储设备执行写操作,会严重影响存储设备的使用寿命。特别是当存储设备包括固态硬盘(Solid State Drives,简称为SSD)时,由于SSD的存储空间相对其他存储设备而言较小,因此引用计数的空间占用问题便更加明显,且频繁操作SSD会严重缩短SSD的寿命。
通过本公开的实施例,在与数据文件关联的快照文件中没有包含第一数据块的情况下,可以释放该第一数据块,进而可以保证第一数据块能够被正确释放,另外,由于不需要采用引用计数的方式,进而可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
下面参考图3A~图3K,结合具体实施例对图2所示的方法做进一步说明。
作为一种可选的实施例,查找快照文件中是否包含有第一数据块可以包括:从确定出的与数据文件关联的所有快照文件中找出最新创建的快照文件;以及查找最新创建的快照文件中是否包含有第一数据块;或者查找快照文件中是否包含有第一数据块包括:遍历与数据文件关联的所有快照文件;以及对于遍历到的每个快照文件,查找其中是否包含有第一数据块。
图3A示意性示出了根据本公开实施例的查找快照文件中是否包含有第一数据块的流程图。
如图3A所示,查找快照文件中是否包含有第一数据块可以包括操作S301和操作S302,其中:
在操作S301,从确定出的与数据文件关联的所有快照文件中找出最新创建的快照文件。
在操作S302,查找最新创建的快照文件中是否包含有第一数据块。
在本公开的实施例中,基于快照文件可以用于表示数据文件在不同时刻的状态这一特性可知,最新创建的快照文件可以是与数据文件最相似的快照文件。若该最新创建的快照文件中没有包含第一数据块,则可以认为与该数据文件关联的其他快照文件中也没有包含该第一数据块。
根据本公开的实施例,可以确定与该数据文件关联的所有快照文件,并从该所有的快照文件中确定出最新创建的快照文件。进一步,查找该最新创建的快照文件中是否包含有第一数据块,若没有,则可以释放该第一数据块,若有,则可以保留该第一数据块。
具体地,在创建快照文件时,可以为快照文件建立快照标识号,该快照标识号可以用于唯一标识对应的快照文件。快照标志号还可以与数据文件具有关联关系,则确定与数据文件关联的所有快照文件可以是确定与数据文件关联的所有快照标识号,并基于该快照标志号确定出对应的快照文件。快照标志号可以是以递增的顺序建立的,则确定最新创建的快照文件可以是确定所有快照标志号中数值最大的快照标识号,并基于该数值最大的快照标识号确定出最新创建的快照文件。
通过本公开的实施例,基于最新创建的快照文件确定是否需要释放第一数据块,可以减少确定流程,节省系统开销。
图3B示意性示出了根据本公开另一实施例的查找快照文件中是否包含有第一数据块的流程图。
如图3B所示,查找快照文件中是否包含有第一数据块可以包括操作S401和操作S402,其中:
在操作S401,遍历与数据文件关联的所有快照文件。
在操作S402,对于遍历到的每个快照文件,查找其中是否包含有第一数据块。
在本公开的实施例中,判断第一数据块是否被使用着,还可以遍历与数据文件关联的所有快照文件是否包含有第一数据块。
具体地,可以确定与数据文件关联的所有的快照文件,确定方案可以如上述实施例所述,在此不再赘述。进一步,可以遍历该所有快照文件的每个快照文件,并查找各快照文件中是否包含有第一数据块。若可以在该所有快照文件中的任意一个或多个快照文件中查找到第一数据块,则可以表明该第一数据块仍被使用着,故而可以保留该第一数据块;若在该所有快照文件中均没有找到该第一数据块,则可以释放该第一数据块。
通过本公开的实施例,可以通过遍历与数据文件关联的所有快照文件中是否包含第一数据块,以便可以准确确定是否需要释放该第一数据块。此外,通过多种方式查找快照文件中是否包含第一数据块,还可以提高查找的灵活性。
图3C示意性示出了根据本公开另一实施例的查找快照文件中是否包含有第一数据块的流程图。
如图3C所示,查找快照文件中是否包含有第一数据块可以包括操作S501~操作S503,其中:
在操作S501,确定第一数据块对应的第一存储地址。
在操作S502,获取快照文件的快照文件信息,其中,快照文件信息包括快照文件中包含的所有数据块的存储地址。
在操作S503,查找快照文件信息中包含的所有数据块的存储地址中是否包含有第一存储地址。
在本公开的实施例中,第一存储地址可以存储在数据文件的索引节点中,确定第一存储地址可以是从数据文件的索引节点中确定。快照文件信息可以包含快照文件的索引节点,该索引节点中可以包括快照文件包含的数据块的存储地址。
根据本公开的实施例,在与数据文件关联的快照文件包含至少一个快照文件时,可以确定最新创建的快照文件,并获取该最新创建的快照文件的快照文件信息。进一步,可以从该快照文件信息的索引节点中确定出该最新创建的快照文件包含的所有数据块的存储地址。查找确定出存储地址中是否包含有第一存储地址,若没有,则可以释放该第一数据块,若有,则可以保留该第一数据块。
根据本公开的实施例,还可以遍历与数据文件关联的所有快照文件,并获取所有快照文件中各快照文件的快照文件信息,得到所有的快照文件信息。进一步,可以遍历该所有的快照文件信息,例如,可以遍历所有快照文件信息的索引节点,从该索引节点中确定出各快照文件包含的数据块的存储地址。查找该存储地址中是否存在第一存储地址,若存在,则可以保留该第一数据块;若不存在,则可以释放该第一数据块。
通过本公开的实施例,通过查找快照文件信息中包含的所有数据块的存储地址中是否存在第一存储地址,可以准确确定是否可以释放第一数据块,由于不需要采用引用计数的方式,进而可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
图3D示意性示出了根据本公开实施例的确定与数据文件关联的快照文件的流程图。
如图3D所示,确定与数据文件关联的快照文件可以包括操作S601~操作S603,其中:
在操作S601,获取数据文件中包含的索引字段,其中,索引字段和对应的快照文件信息列表具有关联关系。
在操作S602,基于索引字段,索引出与其具有关联关系的快照文件信息列表。
在操作S603,将索引出的快照文件信息列表中包含的快照文件信息所描述的快照文件确定为与数据文件关联的快照文件。
在本公开的实施例中,数据文件的索引字段可以存储在数据文件的索引节点中,用于索引与数据文件关联的快照文件的快照文件信息列表。基于索引字段,可以索引出对应的快照文件信息列表。该快照文件信息列表中可以存储有的快照文件的快照文件信息,该快照文件信息可以包括快照标识号,快照标识号可以用于唯一标识与其对应的快照文件。进而,可以根据确定出的快照标识号确定快照文件,并将确定出的快照文件作为与数据文件关联的快照文件。
例如,数据文件1具有快照文件1和快照文件2,快照文件1的快照文件信息1包括快照标识号1,快照文件2的快照文件信息2包括快照标识号2。其中,快照标识号1唯一标识快照文件1,快照标识号唯一标识快照文件2。快照文件信息列表1中包含有快照文件信息1和快照文件信息2,且该快照文件信息列表1可以与数据文件1的索引字段1具有关联关系。在确定与数据文件1关联的快照文件时,可以基于索引字段1的上述特性,索引出对应的快照文件信息列表1,进而可以基于快照文件信息列表1确定出与数据文件1关联的快照文件1和快照文件2。
通过本公开的实施例,通过在数据文件中设置索引字段,并利用索引字段与快照文件信息列表的关联关系确定出数据文件的快照文件后,进而可以执行后续操作确定是否需要释放第一数据块,不仅可以保证能够正确释放第一数据块,还可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
作为一种可选的实施例,用于数据块的处理方法还可以包括:在快照文件中包含有第一数据块的情况下,使存储设备继续保留第一数据块。
在本公开的实施例中,确定快照文件中包含有第一数据块可以是在最新创建的快照文件中包含有第一数据块的情况下,确定与数据文件关联的快照文件中包含有第一数据块;还可以是在遍历的所有快照文件中的任意一个或多个快照文件中查找到第一数据块的情况下,确定与数据文件关联的快照文件中包含有第一数据块。
具体地,可以是在从最新创建的快照文件的快照文件信息包含的所有数据块的存储地址中查找到第一存储地址的情况下,确定与数据文件关联的快照文件中包含有第一数据块;还可以是在遍历的所有快照文件信息中包含的所有数据块的存储地址中查找到第一存储地址的情况下,确定与数据文件关联的快照文件中包含有第一数据块。
通过本公开的实施例,在快照文件中包含有第一数据块时,可以使存储设备保留该第一数据块,进而可以避免因错误释放第一数据块导致快照文件不能正常使用的缺陷。
图3E示意性示出了根据本公开实施例的数据文件的索引节点的示意图。
如图3E所示,本公开的实施例在数据文件的索引节点中新增了索引字段Snap_nid,该索引字段Snap_nid可以指向存储有扩展索引信息的数据块,该数据块的大小例如可以是4K。
图3F示意性示出了根据本公开实施例的扩展索引信息的示意图。
如图3F所示,该扩展索引信息可以包括直接索引信息Direct_snap_node[],间接索引信息Indirect_snap_node[]和双重间接索引信息Dindirect_snap_node[]。其中,每个间接索引信息Indirect_snap_node[]可以指向一组直接索引信息Direct_snap_node[],每个双重间接索引信息Dindirect_snap_node[]可以指向一组间接索引信息Indirect_snap_node[]。其中,一组直接索引信息Direct_snap_node[]可以是指一个数据块,其大小可以为4K,相应地,一组间接索引信息Indirect_snap_node[]也可以是一个数据块,其大小也可以为4K。
需要说明的是,扩展索引信息可以用于管理快照文件信息列表。通过引入扩展索引信息,可以为后续快照文件预留更多的存储空间。
图3G示意性示出了根据本公开实施例的间接索引信息的示意图。
如图3G所示,间接索引信息Indirect_snap_node[]中可以包括一组Snap_node_nid,每个Snap_node_nid可以指向一个直接索引信息Direct_snap_node[]。
图3H示意性示出了根据本公开实施例的快照文件信息列表的示意图。
如图3H所示,快照文件信息列表可以包括一组快照文件信息Snap_info,每个快照文件信息Snap_info可以包括一个快照标识号snapid和该快照标识号snapid对应的快照文件的索引节点sanp_ino,其中,一组可以表示一个数据块,该数据块的大小可以为4K。每个直接索引信息Direct_snap_node[]可以指向一个快照文件信息列表,即每个直接索引信息Direct_snap_node[]可以指向一组快照文件信息Snap_info。
根据本公开的实施例,可以通过调整直接索引信息Direct_snap_node[]、间接索引信息Indirect_snap_node[]和双重间接索引信息Dindirect_snap_node[]的个数实现支持不同个数的快照文件的目的。
例如,快照标识号snapid对应8bit,快照文件的索引节点sanp_ino对应4bit,则快照文件信息Snap_info对应12bit,一个大小为4K直接索引信息Direct_snap_node[]可以容纳(又称为指向)4*1024/12=341个快照文件信息Snap_info。由于每个间接索引信息Indirect_snap_node[]可以指向一组直接索引信息Direct_snap_node[],因此一个大小为4K的间接索引信息Indirect_snap_node[]可以指向4*1024/4=1024个直接索引信息Direct_snap_node[],则该间接索引信息Indirect_snap_node[]可以容纳1024*341=349184个快照文件信息Snap_info。由于每个双重间接索引信息Dindirect_snap_node[]可以指向一组间接索引信息Indirect_snap_node[],因此一个大小为4K的双重间接索引信息Dindirect_snap_node[]可以指向4*1024/4=1024个间接索引信息Indirect_snap_node[],则该双重间接索引信息Dindirect_snap_node[]可以容纳1024*1024*341=357564416个快照文件信息Snap_info。
根据本公开的实施例,在确定快照文件信息Snap_info时,可以先确定数据文件的索引节点中的索引字段Snap_nid,并基于该索引字段Snap_nid找到直接索引信息Direct_snap_node[],进一步,可以基于直接索引信息Direct_snap_node[]与快照文件信息列表的关联关系,索引出该快照文件信息列表,进而可以基于快照文件信息列表确定快照文件信息Snap_info,并根据快照文件信息Snap_info中包含的快照标志号snapid确定与数据文件关联的快照文件。由于快照文件信息Snap_info中还可以包含快照文件的索引节点sanp_ino,因此可以基于该索引节点sanp_ino查找与数据文件关联的快照文件中是否包含有第一数据块。进而可以通过层层判断,确定是否可以释放第一数据块。
通过本公开的实施例可以看出,通过采用快照文件信息列表的方式来取代现有技术的引用计数方案,在数据文件产生快照文件时记录快照文件信息,极大的的节约了存储设备的存储空间,例如SSD的存储空间。
图3I示意性示出了根据本公开实施例的创建快照息的流程图。
如图3I所示,其中:
在操作S701,检测是否存在索引快照文件信息列表的索引字段。
在操作S702,若存在,则获取索引字段。
在操作S703,若不存在,则建立索引字段。
在操作S704,检测当前快照文件是否已存在
在操作S705,若不存在,则将快照文件信息增加到快照文件信息列表中。
在操作S705,将数据文件的布局信息拷贝到快照文件中。
在本公开的实施例中,在为数据文件创建快照文件的情况下,可以检测数据文件的索引节点中是否存在用于索引快照文件信息列表的索引字段,若存在,则获取该索引字段,若不存在,则建立并获取索引字段。根据获取的索引字段索引出与其具有关联关系的快照文件信息列表。检测该快照文件信息列表中是否存储有与该快照文件的快照文件信息相同的信息,例如快照标志号。若不存在,则可以将该快照文件信息添加到快照文件信息列表中。进一步,可以获取数据文件的布局信息,其中,该布局信息可以包括数据文件中与该快照文件能够共用数据块的存储地址,并将该布局信息拷贝到快照文件中,例如拷贝到快照文件的索引节点中。
需要说明的是,该共用数据块的存储地址可以是数据文件修改写数据块或者删除数据块之前的所包括的所有数据块的存储地址。
根据本公开的实施例,创建快照文件时可以对快照文件信息列表、快照文件的索引节点的等元数据进行写操作,该些元数据可以是分布在数量较少的数据块中,相比于现有技术的引用计数分布在大量的数据块中,在修改引用计数时需要从该大量数据块中逐一寻找对应的引用计数并进行修改,可以减少不必要的操作,例如写操作,节省系统开支。
图3J示意性示出了根据本公开实施例的删除快照文件的流程图。
如图3J所示,其中:
在操作S801,删除父目录中待删除快照文件的快照文件记录。
在操作S802,查看与待删除快照文件对应的索引字段。
在操作S803,检测是否有待删除快照文件。
在操作S804,若有,则找到与待删除快照文件相邻的快照文件。
在操作S805,检测相邻的快照文件是否引用了待释放的数据块。
在操作S806,若没有,则释放待删除快照文件包含的数据块的存储地址。
在本公开的实施例中,结合上述实施例,在删除快照文件时需要对快照文件信息列表和布局信息执行相应操作,并根据实际操作对相应的数据块进行释放(又称为回收)。
根据本公开的实施例,可以从待删除快照文件的父目录中删除该快照文件的快照文件记录。查找与该待删除快照文件对应的索引字段,并基于该索引字段索引出于其具有关联关系的快照文件信息列表。检测该快照文件信息列表中是否存储有该待删除快照文件的快照文件信息,例如快照标识号、快照文件的索引节点等。若有,则可以基于该快照文件信息确定与该待删除快照文件相邻的快照文件,例如可以基于快照标识号找到与其相邻的快照标识号,进而确定相邻的快照文件。进一步,可以检测该相邻的快照文件中是否包含待删除快照文件的待释放数据块,例如,可以从相邻的快照文件的索引节点找到其包含的所有数据块的存储地址,并从该存储地址中查找是由包含有待释放数据块的存储地址。若没有,则可以释放待释放数据块的存储地址。若有,则保留该待释放数据块的存储地址。
图3K示意性示出了根据本公开实施例的修改快照文件的流程图;
如图3K所示,其中:
在操作S901,查找待修改快照文件对应的快照文件信息列表。
在操作S902,检测是否存在该待修改快照文件。
在操作S903,通过快照文件信息列表找到最新快照文件。
在操作S904,检查最新快照文件是否引用了待修改数据块。
在操作S905,分配新的数据块,修改布局信息,并下盘。
在操作S906,无效掉老的数据块。
在本公开的实施例中,结合上述实施例,在修改写快照文件时需要对快照文件信息列表和布局信息执行相应操作,并根据实际操作对相应的数据块进行释放或者分配新的数据块。
根据本公开的实施例,在修改快照文件时,可以查找待修改快照文件对应的快照文件信息列表,检测该快照文件信息列表中是否存在该待修改快照文件的快照文件信息。若存在,则可以通过快照文件信息列表找到最新快照文件,并检查该最新快照文件是否引用了待修改快照文件的待修改数据块。若是,则可以为该待修改数据块重新分配新的数据块,以用于存放修改后的数据,并可以将该新的数据块的存储地址写入该待修改快照文件的索引节点中。进一步,可以执行修改数据的操作(又称为下盘)。若不存在该待修改快照文件或者最新快照文件未引用待修改数据块,则可以无效掉老的数据块。
通过本公开的实施例,在修改写快照文件的情况下,可以通过快照文件信息列表查询到待修改数据块是否还被使用着,进而可以减少对存储设备(例如SSD)的写操作,还可以对延长存储设备的使用寿命有直接作用,同时将通过引用计数方式对存储设备进行对写操作转换为通过读取快照文件信息列表的读操作,还可以提高系统的性能。
图4示意性示出了根据本公开实施例的用于数据块的处理系统的框图。
如图4所示,该用于数据块的处理系统400可以包括确定模块410、查找模块420和释放模块430。其中:
确定模块410用于在数据文件中包含的第一数据块已被修改或删除的情况下,确定与数据文件关联的快照文件。
查找模块420用于查找快照文件中是否包含有第一数据块。
释放模块430用于在快照文件中没有包含第一数据块的情况下,使用于存储数据文件以及与数据文件关联的快照文件的数据块的存储设备释放第一数据块。
通过本公开的实施例,在与数据文件关联的快照文件中没有包含第一数据块的情况下,可以释放该第一数据块,进而可以保证第一数据块能够被正确释放,另外,由于不需要采用引用计数的方式,进而可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
作为一种可选的实施例,查找模块可以包括:第一查找单元,用于从确定出的与所述数据文件关联的所有快照文件中找出最新创建的快照文件;以及第二查找单元,用于查找所述最新创建的快照文件中是否包含有所述第一数据块;或者查找模块可以包括:遍历单元,用于遍历与所述数据文件关联的所述所有快照文件;以及第三查找单元,用于对于遍历到的每个快照文件,查找其中是否包含有所述第一数据块。
图5A示意性示出了根据本公开实施例的查找模块的框图。
如图5A所示,查找模块420可以包括第一查找单元421和第二查找单元422。其中:
第一查找单元421用于从确定出的与数据文件关联的所有快照文件中找出最新创建的快照文件。
第二查找单元422用于查找最新创建的快照文件中是否包含有第一数据块。
通过本公开的实施例,基于最新创建的快照文件确定是否需要释放第一数据块,可以减少确定流程,节省系统开销。
图5B示意性示出了根据本公开另一实施例的查找模块的框图。
如图5B所示,查找模块420可以包括遍历单元423和第三查找单元424。其中:
遍历单元423用于遍历与数据文件关联的所有快照文件。
第三查找单元424用于对于遍历到的每个快照文件,查找其中是否包含有第一数据块。
通过本公开的实施例,可以通过遍历与数据文件关联的所有快照文件中是否包含第一数据块,以便可以准确确定是否需要释放该第一数据块。此外,通过多种方式查找快照文件中是否包含第一数据块,还可以提高查找的灵活性。
图5C示意性示出了根据本公开另一实施例的查找模块的框图。
如图5C所示,查找模块420可以包括第一确定单元425、第一获取单元426和第四查找单元427。其中:
第一确定单元425用于确定第一数据块对应的第一存储地址;
第一获取单元426用于获取快照文件的快照文件信息,其中,快照文件信息包括快照文件中包含的所有数据块的存储地址。
第四查找单元427用于查找快照文件信息中包含的所有数据块的存储地址中是否包含有第一存储地址。
通过本公开的实施例,通过查找快照文件信息中包含的所有数据块的存储地址中是否存在第一存储地址,可以准确确定是否可以释放第一数据块,由于不需要采用引用计数的方式,进而可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
图5D示意性示出了根据本公开实施例的确定模块的框图。
如图5D所示,确定模块410可以包括第二获取单元411、索引单元412和第二确定单元413。其中:
第二获取单元411用于获取数据文件中包含的索引字段,其中,索引字段和对应的快照文件信息列表具有关联关系。
索引单元412用于基于索引字段,索引出与其具有关联关系的快照文件信息列表。
第二确定单元413用于将索引出的快照文件信息列表中包含的快照文件信息所描述的快照文件确定为与数据文件关联的快照文件。
通过本公开的实施例,通过在数据文件中设置索引字段,并利用索引字段与快照文件信息列表的关联关系确定出数据文件的快照文件后,进而可以执行后续操作确定是否需要释放第一数据块,不仅可以保证能够正确释放第一数据块,还可以避免现有技术通过采用引用计数导致占用存储设备的存储空间,且频繁地操作存储设备容易影响其使用寿命的缺陷。
图5E示意性示出了根据本公开另一实施例的用于数据块的处理系统的框图。
如图5E所示,该用于数据块的处理系统400还可以包括保留模块510,其中:
保留模块510用于在快照文件中包含有第一数据块的情况下,使存储设备继续保留所述第一数据块。
通过本公开的实施例,在快照文件中包含有第一数据块时,可以使存储设备保留该第一数据块,进而可以避免因错误释放第一数据块导致快照文件不能正常使用的缺陷。
根据本公开的实施例的模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,确定模块410、查找模块420和释放模块430、保留模块510、第二获取单元411、索引单元412、第二确定单元413、第一查找单元421、第二查找单元422、遍历单元423、第三查找单元424、第一确定单元425、第一获取单元426以及第四查找单元427中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,确定模块410、查找模块420和释放模块430、保留模块510、第二获取单元411、索引单元412、第二确定单元413、第一查找单元421、第二查找单元422、遍历单元423、第三查找单元424、第一确定单元425、第一获取单元426以及第四查找单元427中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,确定模块410、查找模块420和释放模块430、保留模块510、第二获取单元411、索引单元412、第二确定单元413、第一查找单元421、第二查找单元422、遍历单元423、第三查找单元424、第一确定单元425、第一获取单元426以及第四查找单元427中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现用于数据块的处理方法的计算机系统的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括处理器610和可读存储介质620。该计算机系统600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括模块621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,确定模块410、查找模块420和释放模块430、保留模块510、第二获取单元411、索引单元412、第二确定单元413、第一查找单元421、第二查找单元422、遍历单元423、第三查找单元424、第一确定单元425、第一获取单元426以及第四查找单元427中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现:在数据文件中包含的第一数据块已被修改或删除的情况下,确定与数据文件关联的快照文件;查找快照文件中是否包含有第一数据块;以及在快照文件中没有包含第一数据块的情况下,使用于存储数据文件以及与数据文件关联的快照文件的数据块的存储设备释放第一数据块。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种用于数据块的处理方法,包括:
在数据文件中包含的第一数据块已被修改或删除的情况下,确定与所述数据文件关联的快照文件;
查找所述快照文件中是否包含有所述第一数据块;以及
在所述快照文件中没有包含所述第一数据块的情况下,使用于存储所述数据文件以及与所述数据文件关联的所述快照文件的数据块的存储设备释放所述第一数据块。
2.根据权利要求1所述的方法,其中:
查找所述快照文件中是否包含有所述第一数据块包括:
从确定出的与所述数据文件关联的所有快照文件中找出最新创建的快照文件;以及
查找所述最新创建的快照文件中是否包含有所述第一数据块;
或者
查找所述快照文件中是否包含有所述第一数据块包括:
遍历与所述数据文件关联的所述所有快照文件;以及
对于遍历到的每个快照文件,查找其中是否包含有所述第一数据块。
3.根据权利要求1所述的方法,其中,查找所述快照文件中是否包含有所述第一数据块包括:
确定所述第一数据块对应的第一存储地址;
获取所述快照文件的快照文件信息,其中,所述快照文件信息包括所述快照文件中包含的所有数据块的存储地址;以及
查找所述快照文件信息中包含的所述所有数据块的存储地址中是否包含有所述第一存储地址。
4.根据权利要求1所述的方法,其中,确定与所述数据文件关联的快照文件包括:
获取所述数据文件中包含的索引字段,其中,所述索引字段和对应的快照文件信息列表具有关联关系;
基于所述索引字段,索引出与其具有关联关系的快照文件信息列表;以及
将索引出的快照文件信息列表中包含的快照文件信息所描述的快照文件确定为与所述数据文件关联的快照文件。
5.根据权利要求1所述的方法,其中,所述方法还包括:
在所述快照文件中包含有所述第一数据块的情况下,使所述存储设备继续保留所述第一数据块。
6.一种用于数据块的处理系统,包括:
确定模块,用于在数据文件中包含的第一数据块已被修改或删除的情况下,确定与所述数据文件关联的快照文件;
查找模块,用于查找所述快照文件中是否包含有所述第一数据块;以及
释放模块,用于在所述快照文件中没有包含所述第一数据块的情况下,使用于存储所述数据文件以及与所述数据文件关联的所述快照文件的数据块的存储设备释放所述第一数据块。
7.根据权利要求6所述的系统,其中:
所述查找模块包括:
第一查找单元,用于从确定出的与所述数据文件关联的所有快照文件中找出最新创建的快照文件;以及
第二查找单元,用于查找所述最新创建的快照文件中是否包含有所述第一数据块;
或者
所述查找模块包括:
遍历单元,用于遍历与所述数据文件关联的所述所有快照文件;以及
第三查找单元,用于对于遍历到的每个快照文件,查找其中是否包含有所述第一数据块。
8.根据权利要求6所述的系统,其中,所述查找模块包括:
第一确定单元,用于确定所述第一数据块对应的第一存储地址;
第一获取单元,用于获取所述快照文件的快照文件信息,其中,所述快照文件信息包括所述快照文件中包含的所有数据块的存储地址;以及
第四查找单元,用于查找所述快照文件信息中包含的所述所有数据块的存储地址中是否包含有所述第一存储地址。
9.根据权利要求6所述的系统,其中,所述确定模块包括:
第二获取单元,用于获取所述数据文件中包含的索引字段,其中,所述索引字段和对应的快照文件信息列表具有关联关系;
索引单元,用于基于所述索引字段,索引出与其具有关联关系的快照文件信息列表;以及
第二确定单元,用于将索引出的快照文件信息列表中包含的快照文件信息所描述的快照文件确定为与所述数据文件关联的快照文件。
10.根据权利要求6所述的系统,其中,所述系统还包括:
保留模块,用于在所述快照文件中包含有所述第一数据块的情况下,使所述存储设备继续保留所述第一数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810726283.6A CN109086333B (zh) | 2018-07-04 | 2018-07-04 | 用于数据块的处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810726283.6A CN109086333B (zh) | 2018-07-04 | 2018-07-04 | 用于数据块的处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086333A true CN109086333A (zh) | 2018-12-25 |
CN109086333B CN109086333B (zh) | 2022-03-25 |
Family
ID=64836908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810726283.6A Active CN109086333B (zh) | 2018-07-04 | 2018-07-04 | 用于数据块的处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086333B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871355A (zh) * | 2019-01-23 | 2019-06-11 | 杭州宏杉科技股份有限公司 | 一种快照元数据存储方法、装置及设备、介质 |
CN115552391A (zh) * | 2020-05-12 | 2022-12-30 | 谷歌有限责任公司 | Select *查询的零拷贝优化 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406575B2 (en) * | 2004-02-04 | 2008-07-29 | Falconstor, Inc. | Method and system for storing data |
CN101661415A (zh) * | 2009-09-21 | 2010-03-03 | 中兴通讯股份有限公司 | 一种保存快照数据的方法及存储快照系统 |
CN102722536A (zh) * | 2012-05-22 | 2012-10-10 | 中兴通讯股份有限公司 | 基于分布式文件系统的快照实现方法及装置 |
CN103412824A (zh) * | 2013-07-19 | 2013-11-27 | 华为技术有限公司 | 写时拷贝快照方法及装置 |
CN107229540A (zh) * | 2017-06-06 | 2017-10-03 | 贵州易鲸捷信息技术有限公司 | 一种基于时间点的数据库恢复方法及系统 |
-
2018
- 2018-07-04 CN CN201810726283.6A patent/CN109086333B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406575B2 (en) * | 2004-02-04 | 2008-07-29 | Falconstor, Inc. | Method and system for storing data |
CN101661415A (zh) * | 2009-09-21 | 2010-03-03 | 中兴通讯股份有限公司 | 一种保存快照数据的方法及存储快照系统 |
CN102722536A (zh) * | 2012-05-22 | 2012-10-10 | 中兴通讯股份有限公司 | 基于分布式文件系统的快照实现方法及装置 |
CN103412824A (zh) * | 2013-07-19 | 2013-11-27 | 华为技术有限公司 | 写时拷贝快照方法及装置 |
CN107229540A (zh) * | 2017-06-06 | 2017-10-03 | 贵州易鲸捷信息技术有限公司 | 一种基于时间点的数据库恢复方法及系统 |
Non-Patent Citations (1)
Title |
---|
倪琴琴等: "ZFS文件系统Snapshot技术的分析", 《技术应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871355A (zh) * | 2019-01-23 | 2019-06-11 | 杭州宏杉科技股份有限公司 | 一种快照元数据存储方法、装置及设备、介质 |
CN115552391A (zh) * | 2020-05-12 | 2022-12-30 | 谷歌有限责任公司 | Select *查询的零拷贝优化 |
CN115552391B (zh) * | 2020-05-12 | 2023-08-25 | 谷歌有限责任公司 | Select*查询的零拷贝优化 |
Also Published As
Publication number | Publication date |
---|---|
CN109086333B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575983B2 (en) | Calculating deduplication digests for a synthetic backup by a deduplication storage system | |
US10430281B2 (en) | Space efficient cascading point in time copying | |
CN110096227B (zh) | 数据存储方法、数据处理方法、装置、电子设备及计算机可读介质 | |
US9195666B2 (en) | Location independent files | |
US8972466B1 (en) | Efficient reverse name lookup in a file system | |
US20110113077A1 (en) | Extending Cluster Allocations In An Extensible File System | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
JP2015514241A (ja) | ストレージ装置 | |
CN108228678B (zh) | 一种多副本数据恢复方法及装置 | |
CH716436B1 (it) | Sistema e metodo di controllo di porzioni di archivio alla ricerca di malware. | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
JP2014041452A (ja) | 重複除去装置、重複除去方法及び重複除去プログラム | |
US20160011789A1 (en) | Storage control apparatus and control method of storage control apparatus | |
US20190384825A1 (en) | Method and device for data protection and computer readable storage medium | |
CN109086333A (zh) | 用于数据块的处理方法和系统 | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
US20180349034A1 (en) | Method, system and computer program product for managing storage system | |
US10585618B2 (en) | Providing access to virtual sequential access volume | |
US20180052629A1 (en) | Storing data in storage area | |
US11520818B2 (en) | Method, apparatus and computer program product for managing metadata of storage object | |
US10642789B2 (en) | Extended attribute storage | |
US20120317387A1 (en) | Fast copy using file system block mappings | |
CN108573049A (zh) | 数据处理方法和分布式存储装置 | |
CN103473157B (zh) | 硬盘故障处理方法及处理装置 | |
US9286349B2 (en) | Dynamic search system |
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 |