CN114328375A - 用于存储管理的方法、设备和计算机程序产品 - Google Patents
用于存储管理的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN114328375A CN114328375A CN202011052989.2A CN202011052989A CN114328375A CN 114328375 A CN114328375 A CN 114328375A CN 202011052989 A CN202011052989 A CN 202011052989A CN 114328375 A CN114328375 A CN 114328375A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- merged
- index
- index information
- 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.)
- Pending
Links
Images
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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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
技术领域
本公开的实施例总体上涉及存储系统,并且更特别地,涉及一种用于存储管理的方法、电子设备和计算机程序产品。
背景技术
文件会被存储在存储系统中。为了读取所存储的文件,很多存储系统的存储方式要求读取文件对应的目录项,读取文件的索引节点,以确定文件在存储系统中的存储位置,并基于存储位置来读取实际的文件内容。目前随着各种应用发展,每天将会产生大量的小文件。在当前的文件访问方式下,小文件的访问会导致过量的输入/输出(I/O)访问,导致访问性能过低。
发明内容
本公开的实施例涉及一种用于存储管理的改进方案。
在本公开的第一方面,提供了一种用于存储管理的方法。该方法包括获取针对第一目标文件的读取请求,读取请求包括第一目标文件的第一目标文件名;基于第一目标文件名,确定针对第一目标文件的第一目标特性值;基于第一目标特性值,从特性值与索引信息的映射中确定针对第一目标文件的第一目标索引信息,第一目标索引信息用于从合并文件索引第一目标文件,合并文件包括用于存储多个文件的多个区段并且被存储在存储系统中,多个文件包括第一目标文件;以及基于第一目标索引信息,从存储系统读取合并文件中所包括的第一目标文件。
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使电子设备执行动作。动作包括:获取针对第一目标文件的读取请求,读取请求包括第一目标文件的第一目标文件名;基于第一目标文件名,确定针对第一目标文件的第一目标特性值;基于第一目标特性值,从特性值与索引信息的映射中确定针对第一目标文件的第一目标索引信息,第一目标索引信息用于从合并文件索引第一目标文件,合并文件包括用于存储多个文件的多个区段并且被存储在存储系统中,多个文件包括第一目标文件;以及基于第一目标索引信息,从存储系统读取合并文件中所包括的第一目标文件。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括计算机可执行指令。计算机可执行指令在被执行时使设备执行第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了常规存储环境的示意图;
图2示出了根据本公开的一些实施例的存储环境的示意图;
图3示出了根据本公开的一些实施例的合并文件的示例;
图4示出了根据本公开的一些实施例的特性值与索引信息的映射的示例;
图5示出了根据本公开的另一些实施例的存储环境的框图;
图6示出了根据本公开的一些实施例的索引文件的示例;
图7示出了根据本公开的一些实施例的文件读取的过程的流程图;
图8示出了根据本公开的一些实施例的文件写入的过程的流程图;
图9示出了根据本公开的一些实施例的文件删除的过程的流程图;
图10示出了根据本公开的一些实施例的存储空间回收的过程的流程图;以及
图11示出了可以被用来实施本公开的实施例的设备的示意性框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本常规存储环境的示意图。在图1的示例环境100中,存储管理系统110被配置为控制和存储管理系统120,包括将数据存储到存储系统120,提供对数据的访问,以及其他数据管理操作。存储管理系统110可以响应于客户端或用户的请求来执行数据访问或其他数据管理操作。存储系统120可以包括一个或多个存储设备,以用于提供数据的存储空间。各种存储设备可以是集中在一个站点或者分布在不同的位置。
存储系统120中存储有多个文件122。存储系统120可以基于目录和索引节点来提供对所存储的文件122的访问。对存储系统120中的某个文件122将需要多个I/O访问。例如,在读取某个文件122时,至少需要将该文件122对应的目录项读取到存储器中,目录项记录文件122的文件名以及对应的索引节点(inode)的标识;然后再将文件122的索引节点读取到存储器中,索引节点指示文件122在存储系统120中的存储地址;然后再从存储系统120读取文件122的实际内容。在文件122的读取过程中,目录项、索引节点等用于文件索引的信息(有时也称为“元数据”)的读取需要被多次读取。
当前各种应用被开发并且变得越来越流行,这样的应用的示例包括人工智能、物联网(IoT)、智能金融、智能安保、传感器网络、各类科学和研发实验等。这些应用会产生大量不同类型和大小的数据要用于存储。这些数据包括大量的小文件,即单个文件的数据量相对较小。在有些应用场景中,要存储的小文件的数目达到数千万、数十亿、甚至数百亿。
例如,在金融类应用中,不仅需要将许多账单扫描成图片文件和提取其中的描述性信息形成文件,而且还要存储电子合同、签名数据、面部识别数据等。这样的文件多数是具有从若干字节到几百个字节的小文件,并且小文件数目非常大并还在逐年增长。此外,这些小文件可能需要长期保存,并大多数在一次写入后会需要多次读取。
当前存储系统的存储和访问机制能够提供较高的弹性和可用性,存储效率较高,并且整体性能较高。然而,这样的机制在访问(例如,读取和写入)小文件时存在一些问题。例如,在上述文件读取过程中,文件的目录项和索引节点等可以被高速缓存在存储器中。这可以节省对存储系统的I/O访问次数(例如,仅需一次读取文件内容)。而且,由于存储器的访问速度更高,访问效率也得到提升。然而,在存储和访问大量小文件时,由于文件数目太多且存储器空间有限,不可能将所有文件的目录项和索引节点高速缓存到存储器中,因而对于每个小文件,均需要执行对存储系统的多次I/O访问来完成文件的读取。这样的长尾效应使得整体访问效率低下。
因此,期望能够提供一种方案来改进存储系统的访问效率,特别是对于大量小文件的访问效率。
根据本公开的示例实施例,提供了这样的改进方案。根据该方案,多个文件被合并成一个大的文件(称为“合并文件”)。合并文件被存储在存储系统中。这样,相对小的多个文件的访问(例如,读取和写入)被映射成大的合并文件的访问,而不需要执行对各个小文件的索引信息的相关操作。对于每个小文件,建立特性值与索引信息的映射。通过从文件名确定特性值并通过特性值来从映射中确定文件对应的索引信息。索引信息用于从大文件中索引该小文件。由此,可以将对大量小文件的访问转换成对大文件的访问。而且,由于存储系统中存储的文件数目减少,这些文件的索引信息可以被加载到存储器,从而极大降低了对存储系统的I/O访问次数,提高了整体访问效率。
下文将参考附图来更详细描述本公开的实施例。
图2示出了根据本公开的一些实施例的示例存储环境200。如图2所示,存储环境200包括存储管理系统210和存储系统220。
存储管理系统210被配置为控制和管理存储系统220,包括将数据存储到存储系统120,提供对数据的访问,以及其他数据管理操作。存储管理系统210可以响应于客户端或用户的请求来执行数据访问或其他数据管理操作。在此,对数据或文件的“访问”至少可以包括读取、写入或删除数据或文件。
存储管理系统210可以被实现在一个或多个计算设备、服务器或计算系统中。存储管理系统210可以基于各种存储技术来控制和存储管理系统220。存储系统220可以包括一个或多个存储设备(例如,磁盘),以用于提供数据的存储空间。各种存储设备可以是集中在一个站点或者分布在不同的位置。存储系统220的一个示例是Unix文件系统(UFS)系统,例如UFS64系统。这仅是一个示例,本公开的实施例也可以应用于基于其他存储技术的存储系统。
应当理解,图2仅示意性地示出了环境200,而不对本公开的实施例进行任何限制。环境200中的各个系统/设备可以以任何其他方式布置。例如,虽然被示出为与存储系统220分离,但存储管理系统210和存储系统220也可以被集成为单个系统。
如以上简单提及的,根据本公开的实施例,多个文件被合并到一个文件中,用于存储在存储系统。合并得到的文件在本文中被称为合并文件,被合并的多个文件有时被称为小文件或子文件。合并文件包括多个区段,每个区段用于存储合并的一个文件。如后文详细讨论的,每个区段至少存储文件的数据,并且在一些实施例中,还存储与文件相关联的其他信息,诸如与文件相关联的元数据。
如图2示意性示出的,存储系统220中存储合并文件230,合并文件230包括多个区段232-1、232-2、232-3、……,等等。为便于讨论,合并文件230中的区段232-1、232-2、232-3等被统称为或单独称为区段232。合并文件230中的每个区段对应于合并的多个文件中的一个。应当理解,虽然图2图示了至少3个文件,但实际合并文件230中可以合并有更多或更少的文件。此外,虽然仅示出一个合并文件,但可以在存储系统220中存储类似的多个合并文件。本公开的实施例在这些方面不受限制。
此外,根据本公开的实施例,对于合并文件230,还维护特性值与索引信息的映射240,用于从合并文件230分别索引多个文件,以实现对个体文件的访问。映射240可以包括多个条目,分别对应于合并文件230中的多个文件。每个条目包括对应文件的特性值和索引信息。
映射240中的索引信息用于从合并文件230索引其中的各个文件。合并文件230中的个体文件的文件名被用于确定映射240中的特性值。特性值用于在用于合并的多个文件中标识特定文件。可以利用各种技术来从文件名中计算特性值。文件名通常可以被表示为字符串。一种用于计算特性值的方法是哈希算法。例如,可以对文件名应用哈希函数,将得到的哈希值确定为特性值。存在各种哈希函数可应用于计算哈希值。在本文中,特性值有时也称为数字摘要,并且在应用哈希函数的情况下也称为哈希值。除哈希值之外,还可以利用其它算法来从文件名计算特定于文件名的特性值,只要所计算的特性值能够用于标识文件名(进而标识文件)即可。
图3和图4分别给出了合并文件230和特性值与索引信息的映射240的示例。如图3所示,合并文件230包括多个区段232-1、232-1、232-3……等,分别用于存储被合并在其中的各个文件。在一些实施例中,合并文件230还包括超级块(super block)310,其中存储与合并文件230相关联的元数据。在一个示例中,超级块310可以位于合并文件230的头部。
图3还示出了区段232所包括的信息的一个具体示例。除存储个体文件的文件数据的字段331之外,如图3所示,区段232还可以用于存储与文件相关联的元数据的其他字段。在一些实施例中,区段232还可以包括数据大小字段330,用于表示字段331的大小;特殊的标志头字段321,用于区段232的标识,例如魔数(magic number);循环冗余校验(CRC)字段322,用于存储校验信息以用于校验文件数据331的完整性;总大小字段323,用于指示区段232的总大小;特性值字段324,用于存储区段232对应的文件的文件名的特性值。
备选地或附加地,区段232还可以包括标志位字段325,用于标记区段232的删除状态,这在下文的一些实施例中将会详细讨论。备选地或附加地,区段232还可以包括文件名长度字段326,用于指示区段232对应的文件的文件名的长度;文件名字段327,用于存储对应文件的文件名。备选地或附加地,区段232还可以包括可选数据长度字段328,用于指示可选数据的长度;可选数据字段329,用于存储针对对应文件的可选数据,这些数据例如包括文件的创建时间、作者、访问权限、全局唯一标识(GUID)等等与文件相关联的信息。备选地或附加地,区段232还可以包括填充字段332,用于在需要的情况下包括填充数据,以将区段232的总大小对齐到存储系统220需要的特定单位(例如,512字节的单位)等等。
注意,由于要合并的每个文件的文件名长度不同、要存储的可选数据不同、并且文件数据的大小也不同,因此在合并文件230中被分配给每个文件的区段232的总大小也可能不同。
应当理解,图3仅示出了合并文件230的区段232的一个具体示例。在其他实施例中,图3中示出的一个或多个字段可以从区段232删除,或者在区段232中可以增加其他字段以用于存储与要合并的文件相关联的信息。例如,在一些情况下,区段232甚至可以仅包括用于存储文件数据的字段331。此外,区段232中的各个字段可以按其他顺序排列。
在图4的示例中,特性值与索引信息的映射240包括多个条目410-1、410-2、410-3、……等。为便于讨论,多个条目410-1、410-2、410-3等被统称为或单独称为条目410。多个条目410分别对应于合并文件230中被合并的多个文件,进而也分别对应于合并文件230中的多个区段232。例如,条目410-1对应于区段232-1,条目410-2对应于区段232-2,条目410-3对应于区段232-3,等等。
每个条目410至少包括针对对应文件的特性值和索引信息。如以上提及的,特性值是基于文件名来确定的,用于从被合并的多个文件中标识对应文件,而索引信息用于从合并文件230索引对应文件。在一些实施例中,索引信息包括用于存储对应个体文件的区段232在合并文件230中的偏移量和总大小。基于偏移量和总大小,可以从合并文件230定位特定区段232。在一些实施例中,每个条目还可以包括标志位字段,用于标记对应区段232的删除状态,这在下文的一些实施例中将会详细讨论。
在一些实施例中,在存储管理过程中,可以在根目录下创建针对合并文件230的特定目录,例如称为大量小文件目录。这个目录专用于存储小文件。每个这样的目录指向一个合并文件230。在初始阶段,目录的创建将触发在存储系统230中创建合并文件230,其初始没有针对文件的区段。随着文件不断被合并到合并文件230中,该合并文件的大小可以不断增加。这在下文的文件写入过程将会更详细讨论。
图4示出了各个条目410-1、410-2、410-3各自包括用于存储特性值、索引信息以及标志位的字段。如图所示,条目410-1包括特性值字段412-1,用于表示对应文件的文件名的特性值;偏移量字段414-1和总大小字段416-1,分别存储对应区段232在合并文件230中的偏移量和总大小,以共同用作索引信息。此外,条目410-1还包括标志位字段418-1,用于标记对应区段232的删除状态。类似地,条目410-2包括特性值字段412-2、偏移量字段414-2、总大小字段416-2和标志位字段418-2;条目410-3包括特性值字段412-3、偏移量字段414-3、总大小字段416-3和标志位字段418-3,等等。
在下文中,为便于讨论,特性值字段412-1、412-2和412-3等有时被统称为或单独称为特性值字段412,偏移量字段414-1、414-2和414-3等有时被统称为或单独称为偏移量字段414,总大小字段416-1、416-2和416-3等有时被统称为或单独称为总大小字段416,标志位字段418-1、418-2和418-3等有时被统称为或单独称为标志位字段418。
合并文件230和映射240一起被用于实现对合并文件230中的各个小文件的访问。映射240可以随着合并文件230的更新而被更新,以保持与合并文件230同步。在文件读取的场景中,如果客户端要读取合并文件230中的某个文件,存储管理系统210可以基于文件的文件名来确定特性值,并且从映射240中查找与所确定的特性值所映射到的索引信息,例如对应区段232的偏移量414和总大小416。基于索引信息,存储管理系统210从存储系统220读取对应区段232,并将其中存储的文件数据返回给客户端。
在一些实施例中,为了进一步提高对合并文件230中的各个文件的访问,映射240可以被存储在访问速度比存储系统220中的磁盘更快的存储设备中。这样,对映射240的访问速度会更快。在一个实施例中,如图2所示,映射240被高速缓存在存储器250中。这样的映射240可以称为内存(in-memory)映射240。在特性值到索引信息的映射中,针对合并文件230中的每个小文件所需要维护的信息量较小。因此,即使小文件的数目增加(无论是在单个合并文件或是多个合并文件中),存储映射所需要的存储空间也是可接受的。例如,针对合并文件230中的每个小文件,映射240的条目410大小可以是十几字节。对于数十亿的小文件,映射的总大小大约是十几GB左右,这在存储器的高速缓存中是可接受的。因此,利用更高访问速度的存储设备(例如,存储器)来存储映射在实际应用中是可行的。
如果将映射240存储到存储器中,在系统断电、重启等情况下中,映射240可能会被擦除。在这种情况下,可以重构映射240以用于存储到存储器250中。在一些实施例中,可以通过从存储系统220读取合并文件230的方式来重新生成映射240。在一些情况下,由于合并文件230的总大小很大,读取合并文件230和生成映射240的开销,包括时间消耗等,将会较大。
在一些实施例中,为了加速映射240的重构,还可以在存储系统220存储索引文件,以在其中存储用于重新生成映射240所需的信息。这些信息可以来自合并文件230,或者基于其中的信息计算,但不需要包括合并文件230中的全部信息,例如至少无需包括其中的文件数据等。索引文件的持久性存储可以确保对合并文件230中各个小文件的索引不会丢失。因此,索引文件可以被认为是映射240的检查点,以帮助随时恢复映射240。由于索引文件相比于合并文件230更小,从存储系统220读取索引文件用于重新生成映射240将会更快、更高效,缩减了映射240的初始化时间。
图5示出了在这样的实施例中的示例存储环境200,其中索引文件530被存储在存储系统220中。索引文件530包括多个条目532-1、532-2、532-3、……等。为便于讨论,多个条目532-1、532-2、532-3等被统称为或单独称为条目532。多个条目532分别对应于合并文件230中被合并的多个文件,进而也分别对应于合并文件230中的多个区段232。例如,条目532-1对应于区段232-1,条目532-2对应于区段232-2,条目532-3对应于区段232-3,等等。
图6示出了索引文件520所包括的信息的一个具体示例。在图6所示,索引文件520包括超级块(super block)610,其中存储与索引文件520相关联的元数据。在一个示例中,超级块610可以位于索引文件520的头部。
图6还具体示出了条目532所包括的信息的一个示例。如图6所示,条目532可以包括特性值字段621,用于存储区段232对应的文件的文件名的特性值。特性值字段621存储的特性值可以与合并文件230中对应区段323的特性值字段324相同。条目532还可以包括标志位字段622,用于标记区段232的删除状态。标志位字段622中的标志可以与合并文件230中对应区段323的标志位字段325相同。条目532还可以包括偏移量字段623和总大小字段624,分别存储对应区段232在合并文件230中的偏移量和总大小,以共同用作索引信息。偏移量和总大小可以基于对应区段232在合并文件230中的位置和总大小来确定。
备选地或附加地,条目532还可以包括大小字段624,用于表示条目532的大小。备选地或附加地,条目532还可以包括文件名字段625,用于存储对应区段232中存储的文件的文件名;文件名长度字段626,用于指示文件名字段625中存储的文件名的长度。文件名字段625和文件名长度字段626存储的信息可以与合并文件230中的文件名字段327和文件名长度字段326相同。
备选地或附加地,条目532还可以包括填充字段627,用于在需要的情况下包括填充数据,以将条目532的总大小对齐到存储系统220需要的特定单位(例如,512字节的单位)等等。
应当理解,图6仅示出了索引文件530的条目532的一个具体示例。在其他实施例中,图6中示出的一个或多个字段可以从条目532删除,或者在条目532中可以增加其他字段以用于存储生成映射240所需的信息。例如,在一些情况下,条目532可以仅包括特性值字段621、偏移量字段623和总大小字段623,而其他字段可以省略。在一些情况下,条目532可以额外包括标志位字段622。在一些实施例中,在条目532中存储文件名本身可以有助于校验特性值字段621中的特性值。此外,条目532中的各个字段可以按其他顺序排列。
如以上提及的,索引文件530可以用于重构映射240。在一些实施例中,映射240的重构可以由存储管理系统210执行。如果存储管理系统210确定映射240从存储器250被移除,存储管理系统210从存储系统210读取索引文件530。索引文件520的访问方式可以与存储系统210提供的对一般文件的访问方式类似。在读取索引文件530后,存储管理系统210可以基于索引文件530中多个条目532所包括的特性值和索引信息,重新生成映射240。存储管理系统210可以将重新生成的映射240高速缓存在存储器250中,以用于后续对合并文件230中的各个文件的访问。
在一些实施例中,本公开的实施例提出的文件访问过程还有利于目录遍历。根据常规方法,需要在一个目录中遍历所有目录。然而,根据本公开的实施例,可以读取索引文件530来提供目录遍历,因为索引文件530存储有合并文件230中的文件的文件名。
在操作中,如果合并文件230中的子文件会被增加或删除,索引文件530也可以相应地被增加和删除,以反映更新后的合并文件230。在一些实施例,索引文件530可能与合并文件230非同步地更新。例如,如果有新的文件被合并到合并文件230中,合并文件230将增加新的区段232。索引文件530中的条目532可能被非同步地增加。又例如,如果合并文件230中的一个文件删除,那么可以将对应区段232中的标志位字段325中的标志位设置为已删除,以指示删除状态。然而,索引文件530中的删除标志位字段622可能被非同步地设置。这样的非同步更新可以确保对各个文件的写入和删除操作被快速完成,因为在文件的写入和删除操作的执行期间不需要执行额外的同步磁盘写入操作。
然而,非同步更新将会使得索引文件530并不总是能够及时反映最新的合并文件230。如果利用与合并文件230不同步的索引文件530来重构映射240,将会获得不正确的映射信息,从而影响到后续的文件访问。
在一些实施例中,在利用索引文件530来重构映射240之前,存储管理系统210可以更新索引文件530,以使索引文件530同步到合并文件230。在一些实施例中,索引文件530中的多个条目532的顺序可以保持与多个文件在合并文件230中的顺序相同。在一些实施例中,在合并文件230的创建和修改过程中,用于存储要合并的文件的新区段232被附接到合并文件230中的已有区段232之后。索引文集530,如果以非同步的方式同步到合并文件230,也可以将与新区段232对应的条目532附接到已有条目532之后。
因此,在更新索引文件530时,存储管理系统210可以通过合并文件230与索引文件530的比较,确定合并文件230是否还包括在索引文件530的当前版本之后被增加的文件。例如,通过合并文件230中的已有区段232与索引文件530中的已有条目532的按顺序比较,存储管理系统210确定对于合并文件230中的一个或多个区段232,索引文件530中不存在对应的条目532。在这种情况下,存储管理系统210确定在具有对应条目532的最后一个区段232之后的区段是新增区段。没有对应条目532的区段232可以被称为“孤儿”区段232。存储管理系统210可以快速标识出这样的“孤儿”区段,因为索引文件530中的最后一个条目532总是对应于合并文件230中的最后一个“非孤儿”区段。
在确定一个或多个“孤儿”区段232之后,存储管理系统210可以存储系统210确定一个或多个“孤儿”区段对应的一个或多个文件的特性值和用于从合并文件230分别索引这一个或多个文件的索引信息。例如,存储管理系统210可以从存储系统220读取“孤儿”区段232,并基于读取的“孤儿”区段232来确定特性值和索引信息。例如,这些区段232的特性值字段324指示了对应文件的特性值,并且通过分析“孤儿”区段232的总大小和相对位置来确定索引信息。存储管理系统210可以在索引文件530中创建新的条目532,以用于存储所确定的特性值和索引信息。存储管理系统210可以利用更新后的索引文件530来生成映射240。
在一些实施例中,合并文件中230中区段232的删除可能会首先使区段232的标志位字段325中的标志位被设置为已删除,但区段232仍保存在合并文件230中。因此,在更新索引文件530时,存储管理系统210可能会从存储系统210读取到合并文件230中被标记为已删除的区段232。在这种情况下,存储管理系统210可以确定读取的区段232中的标志位字段325中的标志位是否被设置为已删除。如果某个区段232中的标志位字段325中的标志位被设置为已删除,这意味着对应文件已被删除,存储管理系统210可以相应更新映射240,不再在映射240中包括与已删除的文件(或区段232)对应的条目410。
以上讨论了根据本公开的一些实施例的文件和索引信息的实施例。下文将参考流程图来描述在本公开的存储环境中执行对合并文件中的小文件的访问以及存储空间的回收的示例过程。
图7示出了根据本公开的一些实施例的用文件读取的过程700的流程图。过程700可以被实现在图2的存储管理系统210处。为便于讨论,从存储管理系统210的角度来描述过程700。
在框710,存储管理系统210获取针对目标文件(有时称为“第一目标文件”)的读取请求,读取请求包括目标文件的目标文件名。例如,读取请求可以指示目标文件的目录的路径,例如filename:/tmp/dir/abcdefgh,其中“abcdefgh”为文件名。在框720,存储管理系统210基于目标文件的目标文件名,确定针对目标文件的目标特性值。例如,基于文件名“abcdefgh”计算目标特性值。
在框730,存储管理系统210确定映射240是否存在所确定的特性值。存储管理系统210可以访问映射240,例如从存储器250访问映射240。如果映射240存在所确定的特性值,在框740,存储管理系统210确定针对所要读取的目标文件的目标索引信息,即映射240中被映射到所确定的特性值的索引信息。目标索引信息例如可以包括用于存储目标文件的区段232在合并文件230中的偏移量和总大小。
在框750,存储管理系统210基于目标索引信息,从存储系统220读取合并文件230中所包括的目标文件。例如,存储管理系统210可以基于目标索引信息,从合并文件230中读取对应的区段232,并提取其中的文件数据。在一些实施例中,存储管理系统210还可以基于区段232中的校验信息,例如CRC,来确定文件数据的完整性。
在一些实施例中,如果在框730确定映射240中不存在目标特性值,存储管理系统210可以将“目标文件不存在”的指示作为对读取请求的指示。在一些实施例中,如果映射240存在所确定的特性值,存储管理系统210还可以检查映射240的条目410中的标志位字段418。如果标志位字段418的标志位被设置为已删除,存储管理系统210可以不执行对区段232的读取操作,而是将“目标文件已删除”的指示作为对读取请求的指示。
图8示出了根据本公开的一些实施例的用于文件写入的过程800的流程图。过程800可以被实现在图2的存储管理系统210处。为便于讨论,从存储管理系统210的角度来描述过程800。
在框810,存储管理系统210获取针对目标文件(在本文中有时称为“第二目标文件”)的写入请求。写入请求可以包括目标文件的文件数据以及文件名。在框820,存储管理系统210基于目标文件的目标文件名,确定针对目标文件的目标特性值。
在框830,存储管理系统210确定映射240是否存在所确定的特性值。存储管理系统210可以访问映射240,例如从存储器250访问映射240。如果映射240不存在所确定的特性值,这意味着这个文件名是新的,那么在框840,存储管理系统210在合并文件230的一个或多个已有区段232之后附接用于存储当前要写入的目标文件的区段232。在存储管理系统210可以在存储系统210中分配存储空间给新的区段232。区段232存储写入的目标文件的文件数据,并且在一些实施例中还包括其他相关联的元数据,如以上参考图3的示例所描述的。
在框850,存储管理系统210更新映射240。具体地,存储管理系统210在映射240中增加新的条目410,以存储针对写入的目标文件的特性值和在合并文件230中的索引信息。在一些实施例中,索引文件530可以被非同步地更新,以在已有条目532之后附接新的条目532用于存储针对写入的目标文件的信息。新的条目532的格式可以参考图4的示例。在一些情况下,也可以执行对索引文件530的同步更新,本公开的实施例在此方面不受限制。
在一些实施例中,如果在框830确定映射240存在所确定的特性值,这意味着要写入的目标文件与合并文件230中的已有文件重名,存储管理系统210可以提供“文件名已存在”的指示,作为对写入请求的响应。
在写入文件时,在一些实施例中,存储管理系统210还可以通过阈值设置来约束将较小的文件写入合并文件230。例如,存储管理系统210可以确定要写入的目标文件的大小是否低于阈值大小。阈值大小可以根据需要设置,例如可以是1MB、2MB等等。如果要写入的目标文件的大小低于阈值大小,存储管理系统210可以执行文件写入的过程800。否则,存储管理系统210可以按常规文件写入方式来存储目标文件。以此方式,本公开的实施例提出的文件访问过程可以与已有的文件访问过程兼容。可以利用本公开的实施例提出的文件访问过程来执行对相对小的文件的访问。
图9示出了根据本公开的一些实施例的用于文件删除的过程900的流程图。过程900可以被实现在图2的存储管理系统210处。为便于讨论,从存储管理系统210的角度来描述过程900。
在框910,存储管理系统210获取针对目标文件(在本文中有时称为“第三目标文件”)的删除请求,读取请求包括目标文件的目标文件名。在框920,存储管理系统210基于目标文件的目标文件名,确定针对目标文件的目标特性值。
在框930,存储管理系统210确定映射240是否存在所确定的特性值。存储管理系统210可以访问映射240,例如从存储器250访问映射240。如果映射240存在所确定的特性值,在框940,存储管理系统210将映射240中针对目标文件的标志位设置为已删除。例如,存储管理系统210基于所确定的特性值,查找到映射240中的对应条目410,并将条目410中的标志位字段418中的标志位设置为已删除。
如果映射240存在所确定的特性值,在框950,存储管理系统210还可以将合并文件230中针对目标文件的标志位设置为已删除。例如,存储管理系统210基于所确定的特性值,查找到合并文件230中的对应区段232,并将区段232中的标志位字段325中的标志位设置为已删除。注意,框940和950的执行顺序可以互换或者可以并列执行。
在一些实施例中,索引文件530可以被非同步地更新,以将对应条目532中的标志位字段622中的标志位设置为已删除。在一些情况下,也可以执行对索引文件530的同步更新,本公开的实施例在此方面不受限制。
在图9的示例实施例中,文件的删除使得合并文件230的区段232中的标志位设置为已删除,但实际上区段232可能还占用存储系统220的存储空间。在一些实施例中,存储管理系统210还可以执行存储空间回收。存储空间回收的过程可以周期性执行或者通过其他事件(例如基于客户端/用户请求)来触发。
图10示出了根据本公开的一些实施例的用于存储空间回收的过程1000的流程图。过程1000可以被实现在图2的存储管理系统210处。为便于讨论,从存储管理系统210的角度来描述过程1000。
在存储空间回收时,存储管理系统210可以在存储系统220中指定另一合并文件,用于将合并文件230中未被删除的文件对应的区段232迁移到另一合并文件。
具体地,在框1010,存储管理系统210确定合并文件230中的一个或多个文件各自对应的多个标志位是否被设置为已删除。存储管理系统210可以通过检查合并文件230中各个区段232的标志位字段325来确定一个或多个文件是否是已删除。如果合并文件230中的至少一个文件各自对应的至少一个标志位未被设置为已删除,在框1020,存储管理系统210将未被删除的至少一个文件复制到存储系统220中的另一合并文件。另一文件可以是新创建的,或者是已有的其他合并文件。
在框1030,存储管理系统210从存储空间220删除合并文件230,以便回收合并文件230的存储空间。存储管理系统210可以在区段232到另一合并文件的复制完成之后阻止针对合并文件230的写入请求,然后从存储系统220删除合并文件230,以实现存储空间的回收。
在框1040,存储管理系统210基于另一合并文件来更新映射240和索引文件530。如果另一合并文件是原先已创建的合并文件,存储系统210可以将映射240用于更新另一合并文件对应的映射。在这个实例中,存储系统210可以修改另一合并文件对应的索引文件,并且可以将索引文件530删除。如果另一合并文件是针对存储空间回收新创建的合并文件,存储系统210可以相应地更新映射240和530,以反映另一合并文件中存在的未被删除的文件。
在一些实施例中,如果在从合并文件230到另一合并文件的复制过程中,执行了针对合并文件230中的一个或多个文件的删除。在这种情况下,为了保证文件状态同步,存储管理系统210还可以在将对应区段232复制到另一合并文件的同时,将该区段232的标志位字段325的标志位设置为已删除。
应当理解,虽然以特定顺序图示和描述过程中的操作,但这些操作中的一些或所有操作可以按其他顺序执行或者并行执行。在一些实施例中,某些操作可以被省略,或者可以增加其他操作。
图11示意性示出能够被用来实施本公开的实施例的设备1100的框图。应当理解,图11所示出的设备1100仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图11所示出的设备1100可以用于实现图7至图10的过程700至1000。图11所示出的设备1100可以被实现为或者被包括在图2的存储管理系统210中。
如图11中所示出的,设备1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储设备(ROM)1102中的计算机程序指令或者从存储单元1108加载到随机访问存储设备(RAM)1103中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程700至1000可由处理单元1101来执行。例如,在一些实施例中,过程700至1000可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序被加载到RAM1103并由CPU 1101执行时,可以执行上文描述的过程700至1000的一个或多个步骤。
本公开的实施例还可以提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,计算机可执行指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置、设备、计算机可读介质和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
Claims (23)
1.一种用于存储管理的方法,包括:
获取针对第一目标文件的读取请求,所述读取请求包括所述第一目标文件的第一目标文件名;
基于所述第一目标文件名,确定针对所述第一目标文件的第一目标特性值;
基于所述第一目标特性值,从特性值与索引信息的映射中确定针对所述第一目标文件的第一目标索引信息,所述第一目标索引信息用于从合并文件索引所述第一目标文件,所述合并文件包括用于存储多个文件的多个区段并且被存储在存储系统中,所述多个文件包括所述第一目标文件;以及
基于所述第一目标索引信息,从所述存储系统读取所述合并文件中所包括的所述第一目标文件。
2.根据权利要求1所述的方法,其中所述映射被高速缓存在存储器中,并且其中确定所述第一目标索引信息包括:
通过从所述存储器访问所述映射来确定所述第一目标索引信息。
3.根据权利要求2所述的方法,还包括:
如果确定所述映射从所述存储器被移除,从所述存储系统读取所述合并文件对应的索引文件,所述索引文件包括与所述多个文件各自对应的多个条目,每个条目至少包括针对对应文件的特性值和用于从所述合并文件索引所述对应文件的索引信息;
基于所述索引文件中所述多个条目所包括的特性值和索引信息,重新生成所述映射;以及
将重新生成的所述映射高速缓存在所述存储器中。
4.根据权利要求3所述的方法,其中所述索引文件与所述合并文件非同步地被更新,并且所述索引文件中的所述多个条目的顺序与所述多个文件在所述合并文件中的顺序相同,并且
其中所述方法还包括:
通过所述合并文件与所述索引文件的比较,确定所述合并文件还包括在所述多个文件之后被增加的至少一个文件,
确定所述至少一个文件各自对应的至少一个特性值和用于从所述合并文件分别索引所述至少一个文件的索引信息,以及
在所述索引文件中创建至少一个新条目用于存储所确定的至少一个特性值和索引信息。
5.根据权利要求1所述的方法,其中所述目标索引信息包括用于存储所述第一目标文件的区段在所述合并文件中的偏移量和总大小。
6.根据权利要求1所述的方法,还包括:
获取针对第二目标文件的写入请求;以及
在所述合并文件的所述多个区段之后附接用于存储所述第二目标文件的区段。
7.根据权利要求6所述的方法,其中附接用于存储所述第二目标文件的区段包括:
确定所述第二目标文件的大小是否低于阈值大小;以及
如果所述第二目标文件的大小低于所述阈值大小,在所述合并文件的所述多个区段之后附接用于存储所述第二目标文件的区段。
8.根据权利要求1所述的方法,其中所述多个区段分别还存储与所述多个文件相关联的元数据。
9.根据权利要求1所述的方法,还包括:
获取针对第三目标文件的删除请求,所述读取请求包括所述第三目标文件的第三目标文件名;
基于所述第三目标文件名,确定针对所述第三目标文件的第三目标特性值;
基于所述第三目标特性值,将所述映射中针对所述第三目标文件的第一标志位设置为已删除,以阻止对所述第三目标特性值和映射到所述第三目标特性值的第三目标索引信息的访问;以及
将在所述合并文件中针对所述第三目标文件的第二标志位设置为已删除,以阻止对所述第三目标文件的访问。
10.根据权利要求1所述的方法,还包括:
确定所述多个文件中至少一个文件各自对应的多个标志位是否被设置为已删除;
如果所述至少一个文件各自对应的至少一个标志位未被设置为已删除,将所述至少一个文件复制到在所述存储系统中存储的另一合并文件;
从所述存储空间删除所述合并文件;以及
基于所述另一合并文件来更新所述映射。
11.根据权利要求10所述的方法,还包括:
基于所述另一合并文件来更新在所述存储系统中存储的与所述合并文件对应的索引文件,更新后的所述索引文件包括与所述至少一个文件各自对应的至少一个条目,每个条目至少包括对应文件的特性值和用于从所述合并文件索引所述对应文件的索引信息。
12.一种电子设备,包括:
至少一个处理器;以及
存储有计算机程序指令的至少一个存储器,所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使所述电子设备执行动作,所述动作包括:
获取针对第一目标文件的读取请求,所述读取请求包括所述第一目标文件的第一目标文件名;
基于所述第一目标文件名,确定针对所述第一目标文件的第一目标特性值;
基于所述第一目标特性值,从特性值与索引信息的映射中确定针对所述第一目标文件的第一目标索引信息,所述第一目标索引信息用于从合并文件索引所述第一目标文件,所述合并文件包括用于存储多个文件的多个区段并且被存储在存储系统中,所述多个文件包括所述第一目标文件;以及
基于所述第一目标索引信息,从所述存储系统读取所述合并文件中所包括的所述第一目标文件。
13.根据权利要求12所述的设备,其中所述映射被高速缓存在存储器中,并且其中确定所述第一目标索引信息包括:
通过从所述存储器访问所述映射来确定所述第一目标索引信息。
14.根据权利要求13所述的设备,其中所述动作还包括:
如果确定所述映射从所述存储器被移除,从所述存储系统读取所述合并文件对应的索引文件,所述索引文件包括与所述多个文件各自对应的多个条目,每个条目至少包括针对对应文件的特性值和用于从所述合并文件索引所述对应文件的索引信息;
基于所述索引文件中所述多个条目所包括的特性值和索引信息,重新生成所述映射;以及
将重新生成的所述映射高速缓存在所述存储器中。
15.根据权利要求14所述的设备,其中所述索引文件与所述合并文件非同步地被更新,并且所述索引文件中的所述多个条目的顺序与所述多个文件在所述合并文件中的顺序相同,并且
其中所述动作还包括:
通过所述合并文件与所述索引文件的比较,确定所述合并文件还包括在所述多个文件之后被增加的至少一个文件,
确定所述至少一个文件各自对应的至少一个特性值和用于从所述合并文件分别索引所述至少一个文件的索引信息,以及
在所述索引文件中创建至少一个新条目用于存储所确定的至少一个特性值和索引信息。
16.根据权利要求12所述的设备,其中所述目标索引信息包括用于存储所述第一目标文件的区段在所述合并文件中的偏移量和总大小。
17.根据权利要求12所述的设备,其中所述动作还包括:
获取针对第二目标文件的写入请求;以及
在所述合并文件的所述多个区段之后附接用于存储所述第二目标文件的区段。
18.根据权利要求17所述的设备,其中附接用于存储所述第二目标文件的区段包括:
确定所述第二目标文件的大小是否低于阈值大小;以及
如果所述第二目标文件的大小低于所述阈值大小,在所述合并文件的所述多个区段之后附接用于存储所述第二目标文件的区段。
19.根据权利要求12所述的设备,其中所述多个区段分别还存储与所述多个文件相关联的元数据。
20.根据权利要求12所述的设备,其中所述动作还包括:
获取针对第三目标文件的删除请求,所述读取请求包括所述第三目标文件的第三目标文件名;
基于所述第三目标文件名,确定针对所述第三目标文件的第三目标特性值;
基于所述第三目标特性值,将所述映射中针对所述第三目标文件的第一标志位设置为已删除,以阻止对所述第三目标特性值和映射到所述第三目标特性值的第三目标索引信息的访问;以及
将在所述合并文件中针对所述第三目标文件的第二标志位设置为已删除,以阻止对所述第三目标文件的访问。
21.根据权利要求12所述的设备,其中所述动作还包括:
确定所述多个文件中至少一个文件各自对应的多个标志位是否被设置为已删除;
如果所述至少一个文件各自对应的至少一个标志位未被设置为已删除,将所述至少一个文件复制到在所述存储系统中存储的另一合并文件;
从所述存储空间删除所述合并文件;以及
基于所述另一合并文件来更新所述映射。
22.根据权利要求10所述的设备,其中所述动作还包括:
基于所述另一合并文件来更新在所述存储系统中存储的与所述合并文件对应的索引文件,更新后的所述索引文件包括与所述至少一个文件各自对应的至少一个条目,每个条目至少包括对应文件的特性值和用于从所述合并文件索引所述对应文件的索引信息。
23.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使设备执行根据权利要求1至11中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011052989.2A CN114328375A (zh) | 2020-09-29 | 2020-09-29 | 用于存储管理的方法、设备和计算机程序产品 |
US17/488,734 US12014070B2 (en) | 2020-09-29 | 2021-09-29 | Method, device, and computer program product for storage management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011052989.2A CN114328375A (zh) | 2020-09-29 | 2020-09-29 | 用于存储管理的方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328375A true CN114328375A (zh) | 2022-04-12 |
Family
ID=80847011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011052989.2A Pending CN114328375A (zh) | 2020-09-29 | 2020-09-29 | 用于存储管理的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12014070B2 (zh) |
CN (1) | CN114328375A (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6279050B1 (en) * | 1998-12-18 | 2001-08-21 | Emc Corporation | Data transfer apparatus having upper, lower, middle state machines, with middle state machine arbitrating among lower state machine side requesters including selective assembly/disassembly requests |
US7167867B1 (en) * | 1999-10-05 | 2007-01-23 | Emc Corporation | Self-describing file system |
US8321439B2 (en) * | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
US7840537B2 (en) * | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US7827201B1 (en) * | 2007-04-27 | 2010-11-02 | Network Appliance, Inc. | Merging containers in a multi-container system |
TWI476610B (zh) * | 2008-04-29 | 2015-03-11 | Maxiscale Inc | 同級間冗餘檔案伺服器系統及方法 |
US8452731B2 (en) * | 2008-09-25 | 2013-05-28 | Quest Software, Inc. | Remote backup and restore |
US8468293B2 (en) * | 2009-07-24 | 2013-06-18 | Apple Inc. | Restore index page |
US8452932B2 (en) * | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
US8578109B2 (en) * | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US9020900B2 (en) * | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US8447782B1 (en) * | 2010-12-16 | 2013-05-21 | Emc Corporation | Data access layer having a mapping module for transformation of data into common information model compliant objects |
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
US8554951B2 (en) * | 2011-03-08 | 2013-10-08 | Rackspace Us, Inc. | Synchronization and ordering of multiple accessess in a distributed system |
US8538926B2 (en) * | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
US8904137B1 (en) * | 2011-05-12 | 2014-12-02 | Symantec Corporation | Deduplication system space recycling through inode manipulation |
US8732403B1 (en) * | 2012-03-14 | 2014-05-20 | Netapp, Inc. | Deduplication of data blocks on storage devices |
US9015212B2 (en) * | 2012-10-16 | 2015-04-21 | Rackspace Us, Inc. | System and method for exposing cloud stored data to a content delivery network |
WO2014068617A1 (en) * | 2012-10-31 | 2014-05-08 | Hitachi, Ltd. | Storage apparatus and method for controlling storage apparatus |
US10114580B1 (en) * | 2014-05-05 | 2018-10-30 | EMC IP Holding Company LLC | Data backup management on distributed storage systems |
-
2020
- 2020-09-29 CN CN202011052989.2A patent/CN114328375A/zh active Pending
-
2021
- 2021-09-29 US US17/488,734 patent/US12014070B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220100415A1 (en) | 2022-03-31 |
US12014070B2 (en) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12099467B2 (en) | Snapshot metadata arrangement for efficient cloud integrated data management | |
US12007944B2 (en) | Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh | |
US7366859B2 (en) | Fast incremental backup method and system | |
US7831789B1 (en) | Method and system for fast incremental backup using comparison of descriptors | |
US10956364B2 (en) | Efficient data synchronization for storage containers | |
US9965483B2 (en) | File system | |
US9928250B2 (en) | System and method for managing deduplication using checkpoints in a file storage system | |
WO2017041654A1 (zh) | 用于分布式存储系统的写入数据、获取数据的方法和设备 | |
Strzelczak et al. | Concurrent Deletion in a Distributed {Content-Addressable} Storage System with Global Deduplication | |
CN111522791B (zh) | 一种分布式文件重复数据删除系统及方法 | |
US11775482B2 (en) | File system metadata deduplication | |
US10380141B1 (en) | Fast incremental backup method and system | |
US20190108104A1 (en) | System and method for managing storage transaction requests | |
CN114328375A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
McKusick et al. | Journaled soft-updates | |
US10318159B1 (en) | Method and system for physical locality repair in a storage system | |
CN118861040A (zh) | 数据库的大对象排重处理方法、存储介质及设备 | |
Tsypliaev et al. | Per et al. |
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 |