用于管理文件的方法、装置、电子设备和介质与流程

未命名 08-01 阅读:105 评论:0


1.本公开的实施例涉及计算机领域,并且更具体地,涉及存储系统。本公开的实施例提供了用于管理文件的方法、装置、电子设备、介质和计算机程序产品。


背景技术:

2.存储系统中存储有大量的文件。典型地,在一个目录中可能存储了数万个文件甚至更多。在一些应用场景下,需要对大量文件进行批量处理,这将耗费大量的计算资源。因为需要从文件的元数据中获取这些文件的数据块的存储地址,然后才能够操作这些数据块。这种方法需要较长的时间才能完成,难以满足业务需要。因此,需要一种高效的方案来管理存储系统中的大量文件。


技术实现要素:

3.根据本公开的第一方面,提供了一种用于管理文件的方法。该方法包括为文件设置分组标识。该方法还包括确定文件的数据块的存储地址,存储地址指示数据块所在的盘区和偏移。该方法还包括在盘区的对应于分组标识的存储区域中,基于偏移来设置针对数据块的标记。
4.根据本公开的第二方面,还提供了一种用于管理文件的装置。该装置包括分组单元、地址确定单元和标记单元。分组单元被配置为为文件设置分组标识。地址确定单元被配置为确定文件的数据块的存储地址,存储地址指示数据块所在的盘区和偏移。标记单元被配置为在盘区的对应于分组标识的存储区域中,基于偏移来设置针对数据块的标记。
5.根据本公开的第三方面,提供了一种电子设备。该电子设备包括至少一个处理单元以及至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,该指令当由至少一个处理单元执行时,使电子设备执行根据本公开的第一方面的方法。
6.根据本公开的第四方面,提供了一种计算机可读存储介质,包括机器可执行指令,该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面的方法。
7.根据本公开的第五方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行根据第一方面的方法。
附图说明
8.结合附图并参考以下详细说明,本公开各实施例的上述和其它特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
9.图1示出了根据本公开的一些实施例的示例环境的框图;
10.图2示出了根据本公开的一些实施例的用于管理文件的方法的示意流程图;
11.图3示出了根据本公开的一些实施例的在存储系统中删除文件的方法的示意流程
图;
12.图4示出了根据本公开的一些实施例的用于管理文件的装置的示意框图;以及
13.图5示出了可以用来实施根据本公开的一些实施例的示例设备的示意性框图。
具体实施方式
14.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
15.在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
16.另外,本文所有具体数值都是示例,仅是为了帮助理解,绝无限定范围之意图。
17.如上所述,存储系统中存储有大量的文件。当需要对这些文件批量处理时,处理器需要访问这些文件的元数据,查询到文件的数据块的存储位置,然后才能对文件的数据块进行操作。然而,逐个访问文件的元数据将消耗大量的计算资源,而且由于文件的各个数据块分布在存储系统中,操作这些数据块将引入存储设备上的大量分散的输入/输出(i/o),这也降低了存储系统的性能。
18.一种已知的方案通过采用了异步线程在后台对文件进行批量操作。但是这种方法难以在短时间内完成。例如,当存储系统的存储空间不足,需要删除大量过期文件以腾出空间时,删除操作可能持续数个小时甚至更长。
19.本公开的实施例提供了一种用于管理文件的方案。根据本公开的实施例,通过为文件设置分组标识分为若干个组(也可以称为“域”),并且在盘区中设置针对各个分组的存储区域。存储区域中具有针对盘区中的数据块的标记。换句话说,每个存储区域的设置的标记指示对应偏移处的数据块所属的文件被设置在相应的分组中。由此,可以通过这些标记来实现对文件的分组管理。
20.通过下文描述将会理解,与已知传统方案相比,根据本公开的实施例的方案利用存储系统的盘区中已设置的标记,按照分组标识来批量操作存储系统中的大量文件,而不需要访问文件的元数据,由此节省了计算资源并且提高了管理效率。
21.以下将继续参考附图描述本公开的一些示例实施例。
22.图1示出了根据本公开的一些实施例的示例环境100的框图。如图1所示,示例环境100总体上可以涉及分布式存储系统。在一些实施例中,示例环境100包括经由网络彼此连接的电子设备100以及存储节点120和130。
23.电子设备110可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开的范围在此方面不受限制。在一些实施例中,电子设备110可以经由网络来访问或操作存储节点120和130上存储的文件,例如,创建新的文件、读文件、写文件、删除文件、迁移文件等。在本文中,文件也可以包括存储系统中的目录。
24.存储节点120和130可以包括诸如盘阵列的存储设备的集群。如图1所示,存储节点
120包括多个盘120-1、120-2、120-3等,存储节点130包括多个盘130-1、130-2、130-3等。在诸如分布式存储系统的示例环境100中,存储节点120和130可以地理上彼此远离,并且可以借助分布式存储系统的管理软件或硬件来共同地提供统一的存储地址空间。应理解,环境100中可以包括更多或更少的存储节点,并且存储节点120或130可以包括更多或更少的盘。本公开的范围在此方面不受限制。
25.文件可以划分为数据块,而数据块可以被分散存储在存储节点120和130的各个盘上。为了管理文件,提供了元数据,例如inode(也被称为索引节点)。元数据可以记录文件的字节数、文件的拥有者的标识、文件的读写及执行权限、文件的时间戳、以及文件的数据块的存储地址。在分布式存储系统中,存储地址指示数据块所在的存储节点、盘区、偏移等。例如,存储节点可以通过节点标识(id)来指示,盘区可以通过盘标识来指示,偏移可以通过该数据块在盘区上的相对于盘起始处的块的数目来指示。
26.尽管示例环境100被示出为分布式存储系统,但是本公开的实施例也可以在不同的环境中实施。例如,本公开的实施例可以包括在单个盘或单个存储节点的环境中实施。
27.图2示出了根据本公开的一些实施例的用于管理文件的方法200的示意流程图。方法200可以由例如图1的电子设备110来实施。
28.在框210,电子设备110为文件设置分组标识。分组标识也可以被称为域标识。分组标识可以用数字来表示,例如,0到7中的一个(二进制形式需要3个位)。在一些实施例中,设置分组标识的动作可以是手动触发或自动触发的。例如,用户可能希望在未来删除某个目录下的所有文件,则用户可以将为该目录设置一个分组标识,这一操作可以被称为“分组”。相应地,该目录中的文件(及其快照)也被自动设置相同的分组标识。备选地,如果某一个目录已经超过一段时间没有更新过,则电子设备110可以自动触发为该目录设置一个分组标识,准备将来执行实际的删除操作。应理解,为文件设置分组标识不限于为同一目录设置相同的分组标识,并且分组标识也不一定被用于删除文件,还可以用于其他目的,本公开的范围在此方面不受限制。
29.在一些实施例中,分组标识可以被设置在文件的元数据中。如上所述,文件具有对应的元数据,元数据存储了文件的基本信息,例如,大小、访问权限、数据块的存储地址等。由此,元数据还包括文件的分组标识,以便后续被访问和使用。
30.元数据的数据块和一般数据块一样,也被存储在存储系统中,例如,元数据的存储地址指示该元数据所在的存储节点、盘区、偏移等。在一些实施例中,用于存储一般数据的存储单位可以是盘区上的大小为8k个字节的块,而用于存储元数据的存储单位可以是盘区上的512个字节的区域。这是因为元数据通常较小,512个字节的区域为单位来存储可以节省存储空间。
31.在一些实施例中,还提供从文件到其元数据的存储地址之间对应关系的映射表。映射表可以被实现为b树或其他数据结构的形式。对于分布式存储系统,映射表也可以被称为逻辑索引节点(logical inode,lin)树。当有文件被打开时,使用映射表。映射表包括具有文件的标识符(也可以被称为“逻辑索引节点”或lin)和其元数据的存储地址的条目。在一些实施例中,文件标识符可以是8个字节,即64位来表示。文件一旦被创建,其标识符就被确定且不可更改。在存储系统中,即使文件被删除,其标识符可以不再被任何其他文件所使用。如上所述,元数据的存储地址指示该元数据所在的存储节点、盘区、偏移。
32.在一些实施例,可以将分组标识设置在文件的元数据中。具体地,电子设备110可以基于映射表,确定与文件的标识符对应的元数据地址,然后基于该元数据地址,在元数据中设置分组标识。
33.在一些实施例中,可以根据文件所述在目录来设置分组标识,从而将相同目录下的所有文件都设置为具有相同的分组标识。也就是说,相同目录的下的所有文件(包括已有的文件和未来的文件)被分到一个组来进行管理。
34.假设可以选择1至7中任一个作为分组标识。例如,可以将一个目录设置为具有特定的分组标识,例如“3”,则该目录下的已有的文件都可以被设置为具有分组标识“3”,并且以后在该目录下创建的新文件也被自动设置为具有分组标识“3”。这么做是有利的,因为整个目录下的文件都可以通过相同的分组标识来一起处理,下文将详细说明。
35.此外,在一些实施例中,如果分组标识被用于在以后删除该目录,则可以阻止在该目录之外创建对该目录或目录内的文件的引用,其原因在于,在未来某个时间,目录或目录内的文件将被删除,导致相应的引用失效。
36.继续参考图2,在框220,电子设备110确定文件的数据块的存储地址,存储地址指示数据块所在的盘区和偏移。在一些实施例中,确定文件的数据块的存储地址以及后续在框230的设置标记的动作可以由用户手动触发或自动触发的,该动作可以被统称为“打标记”。
37.仍然以分组标识为“3”的示例进行说明。电子设备110遍历存储系统的在某个目录下的所有文件的元数据,找到被具有分组标识“3”的文件,以及这些文件的数据块的存储地址。文件的数据块可以包括文件的元数据的数据块以及文件的一般数据的数据块。为此,电子设备110可以先访问映射表,获取元数据的数据块的存储地址,然后再访问该地址处的元数据,并且基于元数据中的数据块地址信息,确定文件的一般数据块的存储地址。
38.如上所述,对于分布式存储系统,数据块的存储地址指示该数据块所在的存储节点、盘区和偏移。对于包括单个盘或单个存储节点的存储系统,存储地址可以不指示存储节点。
39.盘区可以是盘的柱面组(cylinder group,cg)。在存储系统中,盘被分为被称为柱面组的一个或多个区域,柱面组由距离盘中心的距离相同的一个或多个连续的柱面组成。例如,柱面组可以具有32m的存储空间,其包括4096个大小为8k字节的块。柱面组中的块相对于柱面组的起始处具有相应的偏移。因此,存储地址所指示的盘区和偏移唯一地指示了文件的数据块所在的位置。
40.为了方便说明,将参考表1进一步说明盘区的布局。
41.表1:示例性盘区布局
42.偏移cg00启动块1超级块2备份超级块3分配状态块4清扫块5-39预留块
40-46分组标记块47-4095数据块
43.表1示出了示例盘区布局。以盘区为上述的柱面组为例来进行说明。在一个柱面组(例如,cg 0中),偏移为0的块是启动块,偏移为1的块是超级块,偏移为2的块是备份超级块,这些块用于存储盘区的基本信息,例如,每个块的大小、盘区中有多少个元数据等。
44.偏移为3的块被称为分配状态块,分配状态块有8k个字节。分配状态块中的各个位可以映射到柱面组自身的块或块的一部分,用于指示对应的块或者块的一部分的状态,例如,已分配状态(例如,值为1)还是空闲状态(值为0)。作为示例,在盘区中,如果一个块的在分配状态块中对应位的值为1,则表示这个块已经被分配使用,即,属于某个文件,而如果对应的位的值为0,则表示这个块是空闲状态,可以将这个块分配给新创建的文件使用。这里,用1来表示已分配的状态,用0表示空闲状态,应理解,相反的配置也可以。
45.注意到,分配状态块包括8k*8=64k个位,而柱面组包括4k个数据块,每个数据块的大小为8k个字节。取决于对应关系的粒度,分配状态块中的一个位可以被用于表示盘区中的512字节(由此,4k*8k/512=64k)存储空间的分配状态。如上所述,512字节大小的粒度适用于存储元数据的情况。应理解,对于更大的粒度(例如,一般数据),包括8k个字节的分配状态块是足够的。基于上述分析可以看出,一个大小为8k的块足够用来表示和管理盘区中的所有块的状态。
46.偏移为4的清扫块可以被用于发现和清扫存储空间中未被使用的存储空间。在一些实施例中,电子设备110首先将清扫块全部设置为0,然后通过访问文件的元数据来确定文件的数据块的存储位置,并且将清扫块中的对应位设置1。也就是说,当遍历完存储系统中所有文件之后,清扫块中的对应位仍然为0的块不属于任何文件,因此可以将对应的分配状态块中的位设置为表示空闲(值0)。简单地,可以将清扫块复制到分配状态块,由此实现了清扫盘区的存储空间。
47.偏移为5-39的块为预留块,可以被用于未来扩展其他功能。
48.偏移40-46的块被称为分组标记块。具体地,盘区中的偏移为40的块可以被用于存储盘区中与第一分组标识(例如,分组标识为“1”)有关的数据块的标记,偏移为41的块可以被用于与存储与第二分组标识(例如,分组标识为“2”)有关的数据块的标记,偏移为42的块可以被用于与存储与第二分组标识(例如,分组标识为“3”)有关的数据块的标记,以此类推。标记可以是二进制的0或1。
49.继续参考图2,在框230,在盘区的对应于该分组标识的存储区域中,基于偏移来设置对应该数据块的标记。如上所述,在框220已经获得了分组标识为“3”文件的数据块的盘区和偏移。因此,可以将存储区域(即,偏移为42的块)中的与数据块的偏移相对应的至少一个位设置为相应的标记,例如,设置为“1”。例如,某一个文件被设置了分组标识“3”,并且其数据块在盘区的偏移为4000至4095。在这种情况下,偏移为42的块的最后96*2个字节(分组标记块中的2个字节对应于第47至4095中的一个数据块)可以全部被设置为“1”。应理解,上述标记方法仅是示例,还可以使用其他的标记方法,例如,经标记的位可以是“0”或其他数值的组合。
50.在一些实施例中,分组标识可以被同步到上文提及的文件标识符和元数据地址的映射表之中。在一些实施例中,针对映射表中的文件的条目,可以在用于文件的预留数据结
构中设置分组标识,如下所示:
51.struct lin_entry_flags{
52.struct btree_flags btree_flags[0];
[0053]
uint8_t needs_repair:1;
[0054]
uint8_t is_minisnap:1;
[0055]
uint8_t to_be_deleted:3;//new assigned bits
[0056]
uint8_t unused:1;
[0057]
uint8_t ignored:2;
[0058]
}
[0059]
其中,变量“to_be_deleted”(将被删除)包括3个位,用于表示为该文件设置的分组标识,其值为0至7(2^3-1)。因此,分组标识被同步记录在文件的元数据和存储系统的映射表之中。
[0060]
在一些实施例中,映射表中记录的分组标识可以被用来控制对文件的访问。具体地,响应于接收到访问文件的请求,可以查询映射表,如果映射表中的关于该文件的条目中记录的分组标识,即变量“to_be_deleted”的值为1至7中的任一个值,则拒绝该访问请求。如果映射表中的文件的变量“to_be_deleted”的值为0,表示该文件不属于将被删除的文件,可以允许访问该文件。应理解,“to_be_deleted”仅为示例性的分组标识的命名。取决于具体应用,分组标识可以被用于各种目的,而不限于删除文件。例如,还可以用于向用户隐藏在映射表中的分组标识被设置为指定值的文件。
[0061]
在一些实施例中,在分组标记块中的各个位被设置之后,如果盘区中新分配了属于该分组标记的新文件的数据块,或者如果原来的文件被删除,那么分组标记块可以被更新。因此,响应于在该盘区中分了配另一文件的数据块,在盘区的与该另一文件的分组标识对应的存储区域中,设置针对数据块的标记。另外,响应于在盘区中释放另一文件的数据块,在盘区的与另一文件的分组标识对应的存储区域中,清除针对被释放的数据块的标记。
[0062]
一旦分组标记块被设置,就可以使用它来对盘区上的大量文件进行高效的管理,而不需要访问文件的元数据。以下参照图3来描述批量删除文件的应用示例。
[0063]
图3示出了根据本公开的一些实施例的在存储系统中删除文件的方法300的示意流程图。方法300可以由例如图1的电子设备110来实施。
[0064]
在框310,电子设备110接收删除具有分组标识的文件的请求。例如,电子设备110接收到由用户手动触发或者自动触发的删除存储系统上的指定目录的所有文件的请求,并且该目录和目录内的所有文件已经被设置了该分组标识。
[0065]
在框320,电子设备110从具有元数据地址的映射表中删除具有该分组标识的文件的条目。例如,对于删除目录的请求,电子设备110可以从例如树结构的映射表中去除该目录与树的链接。
[0066]
在框330,电子设备110确定盘区的对应于该分组标识的存储区域。响应于删除文件的请求,电子设备110可以遍历存储系统的各个盘区,从每个盘区上删除这些文件的数据块。继续分组标识为“3”的示例。电子设备110确定每个盘区的对应于该分组标识的存储区域,即,偏移为42的块。
[0067]
在框340,电子设备110基于存储区域中的标记,释放盘区的与存储区域中被设置
的标记对应的数据块。在一些实施例中,通过更新盘区的分配状态块(表1中的偏移为3的块)来释放这些数据块。例如,偏移为42的块和盘区的分配状态块对齐,使得分配状态块中与被设置的标记对齐的位更新为指示空闲状态。
[0068]
在框350,电子设备110清除存储区域中的标记。例如,电子设备110将偏移为42的块的所有位全部设置为0,指示盘区中不存在属于分组标识为3的文件的数据块。由此完成了批量删除文件的工作。
[0069]
根据参照图3描述的方法,能够更为高效的删除目录下的大量文件。例如,针对一个短期项目创建了目录,而该目录将在项目完成后的某一天被删除。用户可以在该项目的生命周期内对所有文件设置待删除的标记,从而在项目完成后,只需要触发如图3所示的过程就能够更为高效和低成本地删除这个目录。
[0070]
通过以上结合图1至图3的描述可以看到,根据本公开的实施例的本公开的实施例的方案利用存储系统的盘区中已设置的标记,按照分组来批量操作存储系统中的大量文件,而不需要访问文件的元数据,由此节省了计算资源并且提高了管理效率。
[0071]
作为附加的优点,根据本公开的实施例,在对存储系统中的文件进行实际操作之前,上述参照图2描述的过程可以是用户无感知的。用户可以正常地读写被设置了分组标识并且在盘区中被设置了标记的文件或数据块。然而,一旦开始了实际操作,文件的元数据就可能已经被清理或者是不正确的。在这种情况下,根据本公开的实施例的方案可以通过访问在映射表中的分组标识来确定拒绝针对文件的任何操作,而不需要访问元数据。另外,如果标记之后,如果用户不打算实际执行操作,还可以执行与参照图2描述的过程相反的过程来回滚。
[0072]
图4示出了根据本公开的实施例的用于管理文件的装置400的示意框图。装置400包括分组单元410、地址确定单元420以及标记单元430。装置400可以被实现在如图1所示的电子设备110中。
[0073]
分组单元410被配置为为文件设置分组标识。在一些实施例中,分组单元还可以被配置为基于文件所在的目录来确定文件的分组标识,使得目录中的文件具有相同的分组标识。另外,分组单元410还可以被配置为阻止在目录之外创建对目录或目录内的文件的引用。
[0074]
地址确定单元420被配置为确定文件的数据块的存储地址,存储地址指示数据块所在的盘区和偏移。在一些实施例中,地址确定单元还可以被配置为基于文件的元数据来确定文件的至少一个数据块的存储地址。
[0075]
标记单元430被配置为在盘区的对应于分组标识的存储区域中,基于偏移来设置针对数据块的标记。在一些实施例中,标记单元还可以被配置为将存储区域中的对应于该偏移的至少一个位设置为标记。标记可以是二进制的值,例如0或者1。
[0076]
在一些实施例中,分组单元410还可以被配置为基于包括文件的元数据地址的映射表,确定文件的元数据地址;以及基于元数据地址,在文件的元数据中设置分组标识。在一些实施例中,标记单元430还可以被配置为在映射表中设置针对文件的分组标识。
[0077]
在一些实施例中,装置400还可以包括访问控制单元(未示出),访问控制单元可以被配置为接收访问所述文件的请求;以及响应于在映射表中文件已被设置分组标识而拒绝该请求。
[0078]
在一些实施例中,标记单元430还可以被配置为响应于在盘区中分配另一文件的数据块,在盘区的与另一文件的分组标识对应的存储区域中,设置针对数据块的标记;或者响应于在盘区中释放另一文件的数据块,在盘区的与另一文件的分组标识对应的存储区域中,清除针对被释放的数据块的标记。
[0079]
在一些实施例中,装置400还可以删除单元(未示出),删除单元被配置为接收删除具有分组标识的文件的请求;确定盘区的对应于分组标识的存储区域;基于存储区域中的标记,释放盘区的与存储区域中被设置的标记对应的数据块;以及清除存储区域中的标记。
[0080]
在一些实施例中,盘区可以是盘的柱面组。
[0081]
图5示出了可以用来实施根据本公开的一些实施例的示例设备500的示意性框图。如图5所示,设备500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序指令,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0082]
设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其它设备交换信息/数据。
[0083]
上文所描述的各个过程和处理,例如方法200和300,可以由处理单元501执行。例如,在一些实施例中,方法200和300可以被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到ram 503并由cpu 501执行时,可以执行上文描述的方法200和300的一个或多个动作。
[0084]
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
[0085]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0086]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计
算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0087]
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0088]
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0089]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0090]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0091]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0092]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术特征:
1.一种用于管理文件的方法,包括:为文件设置分组标识;确定所述文件的数据块的存储地址,所述存储地址指示所述数据块的盘区和偏移;以及在所述盘区的对应于所述分组标识的存储区域中,基于所述偏移来设置针对所述数据块的标记。2.根据权利要求1所述的方法,其中为所述文件设置分组标识包括:基于所述文件所在的目录,确定所述文件的分组标识,使得所述目录中的文件具有相同的分组标识。3.根据权利要求2所述的方法,还包括:阻止在所述目录之外创建对所述目录或所述目录内的文件的引用。4.根据权利要求1所述的方法,其中确定所述文件的数据块的存储地址包括:基于所述文件的元数据,确定所述文件的至少一个数据块的存储地址。5.根据权利要求1所述的方法,其中基于所述偏移来设置针对所述数据块的标记包括:将所述存储区域中的对应于所述偏移的至少一个位设置为所述标记。6.根据权利要求1所述的方法,其中为所述文件设置分组标识包括:基于包括文件的元数据地址的映射表,确定所述文件的元数据地址;以及基于所述元数据地址,在所述文件的元数据中设置所述分组标识。7.根据权利要求6所述的方法,还包括:在所述映射表中设置针对所述文件的所述分组标识。8.根据权利要求7所述的方法,还包括:接收访问所述文件的请求;以及响应于在所述映射表中所述文件具有所述分组标识,拒绝所述请求。9.根据权利要求1所述的方法,还包括以下至少一项:响应于在所述盘区中分配另一文件的数据块,在所述盘区的与所述另一文件的分组标识对应的存储区域中,设置针对所述数据块的标记;或者响应于在所述盘区中释放另一文件的数据块,在所述盘区的与所述另一文件的分组标识对应的存储区域中,清除针对所述被释放的数据块的标记。10.根据权利要求1所述的方法,还包括:接收删除具有所述分组标识的文件的请求;确定所述盘区的对应于所述分组标识的存储区域;基于所述存储区域中的所述标记,释放所述盘区的与所述存储区域中被设置的标记对应的数据块;以及清除所述存储区域中的所述标记。11.根据权利要求1至10中任一项所述的方法,其中所述盘区是盘的柱面组。12.一种用于管理文件的装置,包括:分组单元,被配置为为文件设置分组标识;地址确定单元,被配置为确定所述文件的数据块的存储地址,所述存储地址指示所述数据块所在的盘区和偏移;以及
标记单元,被配置为在所述盘区的对应于所述分组标识的存储区域中,基于所述偏移来设置针对所述数据块的标记。13.根据权利要求12所述的装置,其中所述分组单元还被配置为基于所述文件所在的目录来确定所述文件的分组标识,使得所述目录中的文件具有相同的分组标识。14.根据权利要求13所述的装置,所述分组单元还被配置为:阻止在所述目录之外创建对所述目录或所述目录内的文件的引用。15.根据权利要求12所述的装置,其中所述地址确定单元还被配置为:基于所述文件的元数据,确定所述文件的至少一个数据块的存储地址。16.根据权利要求12所述的装置,其中所述标记单元还被配置为:将所述存储区域中的对应于所述偏移的至少一个位设置为所述标记。17.根据权利要求12所述的装置,其中所述分组单元还被配置为:基于包括文件的元数据地址的映射表,确定所述文件的元数据地址;以及基于所述元数据地址,在所述文件的元数据中设置所述分组标识。18.根据权利要求17所述的装置,其中标记单元还被配置为:在所述映射表中设置针对所述文件的所述分组标识。19.根据权利要求18所述的装置,还包括访问控制单元,所述访问控制单元被配置为:接收访问所述文件的请求;以及响应于在所述映射表中所述文件具有所述分组标识,拒绝所述请求。20.根据权利要求12所述的装置,其中所述标记单元还被配置为:响应于在所述盘区中分配另一文件的数据块,在所述盘区的与所述另一文件的分组标识对应的存储区域中,设置针对所述数据块的标记;或者响应于在所述盘区中释放另一文件的数据块,在所述盘区的与所述另一文件的分组标识对应的存储区域中,清除针对所述被释放的数据块的标记。21.根据权利要求12所述的装置,还包括删除单元,所述删除单元被配置为:接收删除具有所述分组标识的文件的请求;确定所述盘区的对应于所述分组标识的存储区域;基于所述存储区域中的所述标记,释放所述盘区的与所述存储区域中被设置的标记对应的数据块;以及清除所述存储区域中的所述标记。22.根据权利要求12至21中任一项所述的装置,其中所述盘区是盘的柱面组。23.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使所述电子设备执行根据权利要求1至11中任一项所述的方法。24.一种计算机可读存储介质,包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1至11中的任一项所述的方法。25.一种计算机程序产品,包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1至11中的任一项所述的方法。

技术总结
根据本公开的各实施例涉及用于管理文件的方法、装置、电子设备和介质。用于管理文件的方法包括为文件设置分组标识。该方法还包括确定文件的数据块的存储地址,存储地址指示数据块所在的盘区和偏移。该方法还包括在盘区的对应于分组标识的存储区域中,基于偏移来设置针对数据块的标记。以此方式,可以更高效地管理分布式文件系统中的大量文件。分布式文件系统中的大量文件。分布式文件系统中的大量文件。


技术研发人员:吴凌 吕兴军 孙飞
受保护的技术使用者:戴尔产品有限公司
技术研发日:2022.01.19
技术公布日:2023/7/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐