用于组成文件系统的设备和方法与流程

文档序号:30710317发布日期:2022-07-10 08:21阅读:73来源:国知局
用于组成文件系统的设备和方法与流程

1.本发明涉及数据处理和虚拟化领域。更具体地,本发明涉及(例如)动态地组成文件系统。因此,本发明提供了一种用于组成文件系统的设备和方法,以及一种用于生成清单的设备和方法。


背景技术:

2.传统虚拟机和其它计算资源依赖于提供执行环境的传统映像文件。这些传统映像文件(例如)作为img(在计算领域,是指具有.img文件扩展名的二进制文件,用于存储软盘、硬盘驱动器和光盘的原始磁盘映像或矢量图像)或iso(iso映像是光盘的磁盘映像)文件提供。换言之,执行环境是通过传统文件系统提供的。执行环境通常由离散组件组成,其中,每个组件提供一组特征和功能(例如软件包或配置)。传统方案依赖于将执行环境作为单个整体映像或作为一组有序的文件系统层提供,或者在干净映像上执行部署脚本。其它传统方案是对文件系统的覆盖,例如chef或puppet。即,为虚拟机提供的传统执行环境仅仅精确地适应该虚拟机的目的和需求,而不能适应其它需求(其中需要不同的组件、特征或配置)。
3.也就是说,缺乏一种能够使文件系统容易适应一个或多个用户的不同需求的方案。


技术实现要素:

4.鉴于上述问题和缺点,本发明的各实施例旨在改进提供文件系统的传统方式。一个目的在于提供能够使文件系统容易适应一个或多个用户的不同需求的设备和方法。
5.为实现本发明的目的,可以使用一种用于组成文件系统的设备、一种用于生成与文件系统相关的清单的设备以及相应方法,如独立权利要求中所述。在从属权利要求中进一步描述了有利的实施方式。
6.特别地,本发明的各实施例提供了一种设备,该设备不是在定义文件系统时而是在使用文件系统时组成文件系统。根据用例,文件系统中包含的组件可以具有不同的粒度。当需要文件系统时,可以将组件动态组成文件系统。组件是组成映像,而不是安装到映像中。在文件系统的组成过程中不需要执行任何组件代码。
7.本发明的第一方面提供了一种用于组成文件系统的设备,其中,所述设备用于:获取与所述文件系统相关的清单,所述清单包括组件引用列表,其中,每个组件引用指示一个组件,并且其中,每个组件包括一个或多个文件和相应文件结构;对于所述清单中的每个组件引用,根据所述相应文件结构提供所述组件的所述一个或多个文件,从而组成所述文件系统。
8.这是有利的,因为一组给定的组件可用于创建许多不同的文件系统或映像。清单可以是数据文件。清单的大小远小于其组件的总大小。组成过程更快(因为不需要执行代码)并且可重现。清单提供对用户的映像的自检。为用户提供了更高级别的映像定义(意图与结果),这减少了错误并需要更少的专业知识。
9.特别地,组件可以是由文件系统提供的软件。特别地,组件可以是文件系统提供的数据包或应用程序。
10.特别地,组件引用可以是指示文件系统要提供哪个组件的指示器。特别地,组件引用可以包括组件的定位器,即文件系统要提供的组件的位置信息。
11.在所述第一方面的一种实现方式中,每个组件包括存档文件,所述设备还用于提取所述存档文件以获取所述一个或多个文件和所述相应文件结构。这是有利的,因为可以将所述一个或多个文件和所述相应文件结构存档在一个文件中,该文件可用于创建许多不同的文件系统或映像。
12.在所述第一方面的另一种实现方式中,所述设备还用于根据所述组件进一步包括的以下信息中的至少一个信息,提供所述一个或多个文件,以组成所述文件系统:所述组件的至少一个文件的定位器;所述组件的至少一个文件的远程标识符;所述组件的至少一个文件的所有权信息;动态生成的数据;有关所需用户或所需组或所需安全增强(security-enhanced,se)linux策略的信息。这是有利的,因为所述组件包括各种文件,可以满足组成文件系统的不同需求。
13.在所述第一方面的另一种实现方式中,所述设备还用于提取所述存档文件以获取以下信息中的至少一个信息:所述组件的至少一个文件的所述定位器;所述组件的至少一个文件的所述远程标识符;所述组件的至少一个文件的所述所有权信息;动态生成的数据;和/或有关所需用户或所需组或所需安全增强(security-enhanced,se)linux策略的所述信息。这是有利的,因为可以将所述一个或多个文件和所述相应文件结构存档在文件中,该文件可用于根据一个或多个用户的不同需求创建许多不同的文件系统或映像。
14.在所述第一方面的另一种实现方式中,所述设备还用于通过虚拟文件系统(virtual file system,vfs)提供对所述文件系统的访问或生成所述文件系统的映像。
15.本发明的第二方面提供了一种用于组成文件系统的方法,其中,所述方法包括以下步骤:获取与所述文件系统相关的清单,所述清单包括组件引用列表,其中,每个组件引用指示一个组件,并且其中,每个组件包括一个或多个文件和相应文件结构;对于所述清单中的每个组件引用,根据所述相应文件结构提供所述组件的所述一个或多个文件,从而组成所述文件系统。
16.在所述第二方面的一种实现方式中,每个组件包括存档文件,所述方法还包括提取所述存档文件以获取所述一个或多个文件和所述相应文件结构。这是有利的,因为可以将所述一个或多个文件和所述相应文件结构存档在一个文件中,该文件可用于创建许多不同的文件系统或映像。
17.在所述第二方面的另一种实现方式中,所述方法还包括:根据所述组件进一步包括的以下信息中的至少一个信息,提供所述一个或多个文件,以组成所述文件系统:所述组件的至少一个文件的定位器;所述组件的至少一个文件的远程标识符;所述组件的至少一个文件的所有权信息;动态生成的数据;有关所需用户或所需组或所需安全增强(security-enhanced,se)linux策略的信息。这是有利的,因为所述组件包括各种文件,可以满足组成文件系统的不同需求。
18.在所述第二方面的另一种实现方式中,所述方法还包括提取所述存档文件以获取以下信息中的至少一个信息:所述组件的至少一个文件的所述定位器;所述组件的至少一
个文件的所述远程标识符;所述组件的至少一个文件的所述所有权信息;动态生成的数据;和/或有关所需用户或所需组或所需安全增强(security-enhanced,se)linux策略的所述信息。这是有利的,因为可以将所述一个或多个文件和所述相应文件结构存档在文件中,该文件可用于根据一个或多个用户的不同需求创建许多不同的文件系统或映像。
19.在所述第二方面的另一种实现方式中,所述方法还包括通过虚拟文件系统(virtual file system,vfs)提供对所述文件系统的访问或生成所述文件系统的映像。
20.本发明的第三方面提供了一种用于生成与文件系统相关的清单的设备,所述设备用于:接收对文件系统的请求,所述请求指示一个或多个组件,其中,每个组件包括一个或多个文件和相应文件结构;确定所述请求指示的所述一个或多个组件的约束;根据所述约束确定包括所述请求指示的所述一个或多个组件的组件列表;通过包括组件引用列表来生成所述清单,其中,每个组件引用指示所述组件列表中的一个组件。这是有利的,因为生成的清单可用于创建许多不同的文件系统或映像。生成的清单可以是数据文件。清单的大小远小于其组件的总大小,从而使组成过程更快(因为不需要执行代码)并且可重现。清单提供对用户的映像的自检。为用户提供了更高级别的映像定义(意图与结果),这减少了错误并需要更少的专业知识。
21.在所述第三方面的一种实现方式中,所述组件列表包括所述请求指示的所述一个或多个组件,以及所述设备根据所述约束选择的其它组件。
22.在所述第三方面的另一种实现方式中,所述约束包括以下各项中的至少一项:组件所需的一个或多个文件;组件的文件之间和/或组件之间的一个或多个依赖关系;一个或多个所需的系统实体;其它所需信息。
23.本发明的第四方面提供了一种用于生成与文件系统相关的清单的方法,所述方法包括:接收对文件系统的请求,所述请求指示一个或多个组件,其中,每个组件包括一个或多个文件和相应文件结构;确定所述请求指示的所述一个或多个组件的约束;根据所述约束确定包括所述请求指示的所述一个或多个组件的组件列表;通过包括组件引用列表来生成所述清单,其中,每个组件引用指示所述组件列表中的一个组件。
24.在所述第四方面的一种实现方式中,所述组件列表包括所述请求指示的所述一个或多个组件,以及所述设备根据所述约束选择的其它组件。
25.在所述第四方面的另一种实现方式中,所述约束包括以下各项中的至少一项:组件所需的一个或多个文件;组件的文件之间和/或组件之间的一个或多个依赖关系;一个或多个所需的系统实体;其它所需信息。
26.所述第四方面及其实现方式包括与所述第三方面及其相应的实现方式相同的优点。
27.本发明的第五方面提供了一种用于提供文件系统的系统,所述系统包括根据所述第一方面及其相应实现方式所述的设备和根据所述第三方面及其相应实现方式所述的设备,其中,所述系统用于根据对所述文件系统的所述请求,组成并提供所述文件系统。
28.所述第五方面包括与所述第一方面及其相应实现方式和所述第三方面及其相应实现方式相同的优点。
29.本发明的第六方面提供了一种包括计算机程序代码的计算机程序产品,当所述计算机程序代码由处理器执行时,使得所述第二方面及其相应实现方式中任一项或所述第四
方面及其相应实现方式中任一项所述的方法被执行。
30.所述第六方面包括与所述第二方面及其相应实现方式和所述第四方面及其相应实现方式相同的优点。
31.本发明的第七方面提供了一种非瞬时性计算机可读记录介质,所述非瞬时性计算机可读记录介质存储计算机程序产品,当所述计算机程序产品由处理器执行时,使得所述第二方面及其相应实现方式中任一项或所述第四方面及其相应实现方式中任一项所述的方法被执行。所述非瞬时性计算机可读记录介质包括以下组中的一种或多种:只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除prom(erasable prom,eprom)、闪存、电eprom(electrically eprom,eeprom)以及硬盘驱动器。
32.所述第七方面包括与所述第二方面及其相应实现方式和所述第四方面及其相应实现方式相同的优点。
33.本发明的第八方面提出了一种用于组成文件系统的装置,所述装置包括处理器和存储器。所述存储器存储使所述处理器执行第二方面及其相应实现方式中任一项所述的方法的指令。
34.所述第八方面包括与所述第二方面及其相应实现方式相同的优点。
35.本发明的第九方面提出了一种用于生成与文件系统相关的清单的装置,所述装置包括处理器和存储器。所述存储器存储使所述处理器执行所述第四方面及其相应实现方式中任一项所述的方法的指令。
36.所述第九方面包括与所述第四方面及其相应实现方式相同的优点。
37.需要说明的是,本技术中描述的所有设备、元件、单元和模块可以通过软件或硬件元件或其任何类型的组合实现。本技术中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。
附图说明
38.结合所附附图,下面具体实施例的描述阐述上述本发明的各方面及实现方式。
39.图1示出了本发明实施例提供的设备的示意图;
40.图2示出了本发明提供的操作场景的示意图;
41.图3示出了本发明提供的操作场景的另一示意图;
42.图4示出了本发明提供的操作场景的另一示意图;
43.图5示出了本发明实施例提供的方法的示意图;
44.图6示出了本发明实施例提供的设备的示意图;
45.图7示出了本发明实施例提供的方法的示意图。
具体实施方式
46.结合附图描述了用于组成文件系统的方法、装置和程序产品的说明性实施例。尽管该描述提供了可能实现方式的详细示例,但需要说明的是,这些细节旨在是示例性的,并
且不会限制本技术的范围。
47.此外,一个实施例/示例可以指其它多个实施例/示例。例如,一个实施例/示例中提及的任何描述,包括但不限于术语、元件、过程、解释和/或技术优势均适用于其它多个实施例/示例。
48.图1示出了本发明实施例提供的设备100的示意图。设备100用于组成文件系统101。为此,设备100用于获取与文件系统101相关的清单102,清单102包括组件引用103的列表,其中,每个组件引用103指示一个组件104,并且其中,每个组件104包括一个或多个文件105和相应文件结构106。设备100还用于,对于清单中的每个组件引用103,根据相应文件结构106提供该组件104的一个或多个文件105,从而组成文件系统101。
49.也就是说,组件104是文件系统的基本构建块,相应地,也是映像(如果文件系统作为映像提供)的基本构建块。每个组件104在内部捆绑:文件、元数据(文件路径、所有权等)、动态生成的数据、依赖关系、所需的系统实体(用户、组、安全增强linux、selinux策略)、任何其它所需信息。组成的文件系统101(或映像)由组件104的清单102定义。
50.清单102对文件系统101或映像的内容提供声明性定义(结果应该是什么样子)。当用户想要构建文件系统101或新映像时,会指定清单102,其中,列出文件系统101或映像应该由哪些组件104组成。
51.设备100中或包含在设备100中的映像编辑器负责将清单102转换为文件系统101或映像。映像编辑器确保本地存在所有需要的组件104,并从组件中组成文件系统101。由于编辑器使用清单102创建具有相同文件的相同布局,因此保证结果可重现并且与声明的映像(在文件级别上)相同。组件104可以手动创建(通过捆绑所有属性和文件)或自动创建(例如,通过运行软件包安装并收集文件系统增量)。下面是自动创建组件的示例,web服务器组件可以通过使用web服务器包来提供(例如,从ubuntu(一种从桌面运行的开源软件操作系统)到云再到所有物联网)。ubuntu软件包以“.deb”文件形式提供,可以通过“dpkg”实用程序安装。自动过程将按如下执行:(1)创建一个干净的ubuntu环境。(2)使用“dpkg”安装web服务器包。(3)从当前文件系统与干净环境中存在的文件系统之间的差异中提取更改的文件和元数据。
52.图2示出了本发明实施例提供的设备100的操作场景,其根据从清单存储器(即,存储与文件系统101相关的清单102的存储器)获取的清单102以及根据从组件存储器(即,存储组件104的存储器)获取的组件104创建文件系统101。
53.图3示出了设备100的另一个操作场景。在图3中,设备100中的或包含在设备100中的简单编辑器可以依赖于列出所需组件104的清单102。每个组件都由tar文件备份(例如,tar文件用于存储存档文件的模式、所有权等属性)。当编辑器收到组成文件系统101或映像的请求时,执行以下步骤:创建新文件系统101或磁盘映像;对清单102中指定的组件104进行迭代,对于每个组件104:将组件的tar备份文件解压缩到磁盘映像根目录中;返回生成的文件系统101或磁盘映像。
54.图4示出了文件系统101被提供为虚拟文件系统的操作场景的示意图。虚拟文件系统利用来自映像清单102的信息。虚拟文件系统根据清单102中列出的组件104投影文件系统101。虚拟文件系统从组件目录中检索组件104(例如,组件目录可以存储在组件存储器中)。
55.图5示出了本发明实施例提供的方法500的示意图。方法500用于组成文件系统101。方法500包括以下步骤:获取501与文件系统101相关的清单102,清单102包括组件引用103的列表,其中,每个组件引用103指示一个组件104,并且其中,每个组件104包括一个或多个文件105和相应文件结构。方法500还包括以下步骤:对于清单中的每个组件引用103,根据相应文件结构106提供502该组件104的一个或多个文件105,从而组成文件系统101。
56.图6示出了本发明实施例提供的设备600的示意图。设备600用于生成与文件系统相关的清单601。设备600提供的清单601是设备100使用的清单102。上述文件系统是图1所示的文件系统101。
57.设备600用于接收对文件系统的请求602,请求602指示一个或多个组件603,其中,每个组件603包括一个或多个文件和相应文件结构。设备600还用于确定请求602指示的一个或多个组件603的约束604。设备600还用于根据约束604确定组件列表605,所述组件列表605包括请求602指示的一个或多个组件603。设备600还用于通过包括组件引用606的列表来生成清单601,其中,每个组件引用606指示组件列表605中的一个组件。
58.图7示出了本发明实施例提供的方法700的示意图。方法700用于生成与文件系统相关的清单601。方法700包括以下步骤:接收701对文件系统的请求602,请求602指示一个或多个组件603,其中,每个组件603包括一个或多个文件和相应文件结构。方法700还包括以下步骤:确定702请求602指示的一个或多个组件603的约束604。方法700还包括以下步骤:根据约束604确定703组件列表605,所述组件列表605包括由请求602指示的一个或多个组件603。方法700还包括以下步骤:通过包括组件引用606的列表来生成704清单601,其中,每个组件引用606指示组件列表605中的一个组件。
59.已经结合作为示例的各种实施例以及实现方式描述了本发明。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变型。在权利要求书以及说明书中,词语“包括”不排除其它元件或步骤,且“一个”不排除多个。单个元件或其它单元可满足权利要求书中所列举的若干实体或项目的功能。在互不相同的从属权利要求中列举一些措施并不表示这些措施的组合不能用于有益的实现方式。
60.本发明的其它系统、方法、特征和优点在检查以下附图和详细描述后对本领域技术人员来说将会或变得显而易见。旨在所有这些附加系统、方法、特征和优点都包括在本说明书中,在本发明的范围内,并受到所附权利要求书的保护。
61.已出于说明的目的提供本发明的各种实施例的描述,并不旨在穷举或局限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域技术人员而言是显而易见的。选择本文所使用的术语是为了更好地解释实施例的原理、实际应用或优于市场中发现的技术的技术改进,或者是为了使本领域其它技术人员能够理解本文公开的实施例。
62.可以预测,在从本技术案专利的有效期期间,将开发出许多相关密钥且术语“密钥”的范围旨在先验地包括所有此类新技术。
63.本文所使用的术语“约”是指
±
10%。
64.术语“包括”、“具有”以及其变化形式表示“包括但不限于”。该术语包括了术语“由
……
组成”以及“主要由
……
组成”。
65.短语“主要由
……
组成”表示组成物或方法可以包括附加的成分和/或步骤,但前提是附加的成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
66.除非上下文另有明确说明,否则本文所使用的单数形式“一个(a/an)”和“所述(the)”包括复数含义。例如,术语“一种复合物”或“至少一种复合物”可以包括多种复合物,包括其混合物。
67.本文所使用的词语“示例性的”表示“作为一个示例、实例或说明”。任何被描述为“示例性的”实施例不一定解释为比其它实施例更优选或更有利,和/或排除其它实施例的特征的结合。
68.本文所使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。本发明的任何特定实施例都可以包括多个“可选的”特征,除非这些特征有冲突。
69.在本技术中,本发明的各种实施例可以通过范围格式呈现。应理解,范围格式的描述仅仅是为了方便和简洁起见,不应被解释为对本发明范围的固定限制。因此,对于范围的描述应被认为已经具体公开所有可能的子范围以及该范围内的单个数值。例如,对于例如从1到6的范围的描述应被视为已具体公开了从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及该范围内的单个数字例如1、2、3、4、5和6。不论范围有多广,这都适用。
70.当本文指示一个数字范围时,表示包括所指示的范围内的任何所列举的数字(分数或整数)。短语“第一指示数字和第二指示数字之间的范围”以及“从第一指示数字到第二指示数字的范围”在本文中可互换使用,表示包括第一指示数字和第二指示数字以及二者之间的所有分数和整数。
71.应了解,为清楚起见,在不同实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反,为简洁起见,在单个实施例的上下文中描述的本发明的各个特征也可以单独提供、以任何合适的子组合提供,或适合于本发明的任何其它描述的实施例。在各种实施例的上下文中描述的某些特征不应当被认为是这些实施例的基本特征,除非在没有这些元件的情况下实施例是不可操作的。
72.本说明书中所提及的所有公开案、专利和专利申请都在本文中以全文引用的方式并入本说明书中,程度如同每一单独的公开案、专利或专利申请被专门并且单独地指示以引用的方式并入本文中一般。此外,本技术中对任何参考文件的引用或鉴别不应理解为承认该参考文件是作为本发明的现有技术可获得的。对于章节标题而言,它们不应当被解释为必然的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1