用于文件系统的方法和装置制造方法

文档序号:6514709阅读:118来源:国知局
用于文件系统的方法和装置制造方法
【专利摘要】本发明涉及一种用于文件系统的方法和装置,所述文件系统包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述方法包括:响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区;以及在所选择的逻辑存储区中存储所述文件。通过本发明的各种实施方式,可以在一个文件系统中使用直接和有效的方式来支持可变长度区块大小,并且并未增加元数据和定位开销。
【专利说明】用于文件系统的方法和装置

【技术领域】
[0001]本发明的实施方式涉及文件系统领域,具体而言涉及用于文件系统的方法和装置。

【背景技术】
[0002]随着计算机技术的不断发展,对文件系统的各种需求也日新月异。通常,文件系统通过维护逻辑存储区块来管理对文件的存储,逻辑存储区块与物理存储区块相对应,后者用于实际的文件存储。在实践中,可变的文件块大小在文件系统的设计和实现中非常有用。它可以减少元数据的占用、改进I/O性能,并且减少碎片。
[0003]然而,虽然许多现代的文件系统能够支持不同的块大小,但通常在创建文件系统时仅使用一个块大小,并且块大小在文件系统的生命周期期间不能改变。因此,在现有技术中缺乏对文件系统灵活、高效的管理方式,不能充分利用文件系统的灵活性。


【发明内容】

[0004]为此,本发明提出了一种用于文件系统的技术。
[0005]根据本发明的一个方面,提供一种用于文件系统的方法,所述文件系统包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述方法包括:响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区;以及在所选择的逻辑存储区中存储所述文件。
[0006]根据本发明的可选实施方式,基于所述文件的属性,例如类型和/或文件大小而从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的存储区。根据本发明的进一步可选实施方式,所述文件的类型包括以下中的一个或多个:视频文件、音频文件、数据库文件以及文本文件。
[0007]根据本发明的可选实施方式,在所选择的逻辑存储区中存储所述文件进一步包括:在所述所选择的逻辑存储区中选择用于存储所述文件的位置;从物理存储池中分配对应大小的物理存储块;以及将所述文件的内容写入所述物理存储块中。根据本发明的进一步可选实施方式,所述文件系统进一步包括用于记录所述逻辑存储区和所述物理存储块之间的对应关系的映射表,所述在所选择的逻辑存储区中存储所述文件进一步包括:基于所述逻辑存储区和所述物理存储块之间的对应关系,更新块映射表。
[0008]根据本发明的另一方面,提供了一种用于文件系统的装置,所述文件系统包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述装置包括:选择单元,被配置为响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区;以及存储单元,被配置为在所选择的逻辑存储区中存储所述文件。
[0009]根据本发明的可选实施方式,所述选择单元被配置为基于所述文件的类型和/或文件大小而从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的存储区。根据本发明的进一步可选实施方式,所述文件的类型包括以下中的一个或多个:视频文件、音频文件以及文本文件。
[0010]根据本发明的可选实施方式,所述存储单元进一步包括:位置选择单元,被配置为在所述所选择的逻辑存储区中选择用于存储所述文件的位置;分配单元,被配置为从物理存储池中分配对应大小的物理存储块;以及写入单元,被配置为将所述文件的内容写入所述物理存储块中。根据本发明的进一步可选实施方式,所述文件系统进一步包括用于记录所述逻辑存储区和所述物理存储块之间的对应关系的映射表,所述存储单元进一步包括:更新单元,被配置为基于所述逻辑存储区和所述物理存储块之间的对应关系,更新块映射表。
[0011]根据本发明的又一方面,提供了一种文件系统,包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述文件系统包括前述任一项用于文件系统的装置。
[0012]根据本发明各种实施方式,可以在一个文件系统中使用直接和有效的方式来支持可变长度区块大小,并且并未增加元数据和定位开销。可配置的策略引擎还使得能够更容易和直接地控制块大小。由此提供了更好的数据集成性和高可用性。

【专利附图】

【附图说明】
[0013]图1示出了其中包含有根据本发明一个示例性实施方式用于文件系统的装置的文件系统100的框图;
[0014]图2示出了根据本发明一个示例性实施方式的文件系统地址空间的具体示例;
[0015]图3示出了根据本发明一个示例性实施方式的在文件系统中创建文件的具体示例;
[0016]图4示出了根据本发明一个示例性实施方式用于文件系统的方法400的流程图;
[0017]图5示出了适于用来实践本发明实施方式的计算机系统500的示意性框图。
[0018]应当注意,附图中的流程图和框图,图示了按照本发明各种实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

【具体实施方式】
[0019]下面将参考附图中示出的若干示例性实施方式来描述本发明的原理和精神。应当理解,描述这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
[0020]首先参考图1,其示出了其中包含有根据本发明一个示例性实施方式用于文件系统的装置的文件系统100的框图。
[0021]如图所示,在文件系统100中至少包含第一逻辑存储区101和第二逻辑存储区102。该第一逻辑存储区101的逻辑区块大小和第二逻辑存储区102的逻辑区块大小不同。要注意的是,文件系统100除第一逻辑存储区101和第二逻辑存储区102之外还可以包括具有其它大小(即不同于第一和第二逻辑存储区块大小)的逻辑存储区。本发明在此方面不受限制。此外,虽然逻辑存储区101和102的逻辑区块大小不同,但物理存储区块的大小却是固定的。在根据本发明的文件系统100中,文件系统地址空间是虚拟空间,也即在文件系统首次创建时,并不实际向文件系统提供物理存储(除非用于超级块的最小必需的空间)。因此,虚拟地址空间被划分成相当一些子空间,每个子空间对应于不同的逻辑区块大小。为了清楚地说明文件系统100,参考图2。图2示出了根据本发明一个示例性实施方式的文件系统地址空间的具体示例。如图2所示,文件系统地址空间除了超级块之外,还包括被划分成具有不同逻辑区块大小的多个子空间,例如8K子空间、16K子空间.....128K子空间等。其中,8K子空间中包含有多个块大小为8K的逻辑区块;16K子空间中包含有多个块大小为16Κ的逻辑区块;...;128Κ子空间中包含有多个块大小为128Κ的逻辑区块,等等。本领域技术人员应当理解,8Κ子空间、16Κ子空间.....128Κ子空间等仅仅是示例,根据本发明的文件系统100完全可以划分为其它大小的各个子空间,本发明的范围在此不受限制。为了使每个子空间能够覆盖所有的物理存储,可以优选地使用64位的FSBN号。同样,64位也是示例性的,本领域技术人员应当理解,完全可以使用更多或更少位数的FSBN号。另一方面,物理存储被划分成固定大小(例如,128ΜΒ)的分片(slice)。术语“分片”是向文件系统提供的物理存储的单位。分片代表特定设备上连续可寻址范围的物理存储。
[0022]返回图1,根据本发明的文件系统100还包括用于该文件系统的装置103。装置103包括选择单元104和存储单元105,其中,选择单元104被配置为响应于文件创建请求,从至少第一逻辑存储区和101第二逻辑存储区102中选择用于存储所述文件的逻辑存储区。在可选的实施方式中,选择单元104被配置为基于所述文件的类型和/或文件大小而从所述至少第一逻辑存储区101和第二逻辑存储区102中选择用于存储该文件的存储区。在此,文件类型包括以下中的一个或多个:视频文件、音频文件以及文本文件。在本发明的一个可选实现中,可以采用策略引擎(Policy Engine)来保留用户配置,在确定新创建的文件的逻辑块大小时,可以查询该用户配置。本领域技术人员应当理解,策略引擎仅仅是实现的一个示例,并不作为对本发明精神和范围的限制。在选择了用于存储文件的逻辑存储区之后,由存储单元105在所选择的逻辑存储区中存储所述文件。
[0023]具体而言,在本发明的优选实施方式中,存储单元105可以包括位置选择单元106、分配单元107和写入单元108。其中,选择单元106被配置为在所述所选择的逻辑存储区中选择用于存储所述文件的位置;分配单元107被配置为从物理存储池中分配对应大小的物理存储块;写入单元108被配置为将所述文件的内容写入所述物理存储块中。注意,单兀106-108不是必需的,而是可选的。
[0024]为了清楚地说明前述装置和单元,结合图3作进一步说明。图3示出了根据本发明一个示例性实施方式的在文件系统中创建文件的具体示例。本领域技术人员应当理解,下文参照图3描述的存储文件的具体实现仅是示例性的,不能作为对本发明精神和实质的限制。如图3所示,在创建文件3时(图3中的①),通过策略引擎来确定用于(或适于)存储该文件的逻辑块大小。在图3的示例中,确定适于存储文件3的逻辑块大小例如为128KB。所确定的逻辑块大小在一个可选实现中可以被记录在i节点(元数据节点)中。此后,文件系统接收到发来的用于I/O操作的数据(图3中的②)。文件系统尝试从对应于这一块大小的子空间(逻辑块大小为128KB的子空间)分配逻辑块(图3中的③)。注意,文件系统的大小与存储池的大小可以相同也可以不同。在本发明的描述中,为了方便起见,不对存储池的大小作特定限制,只要保证所需文件系统的大小能够满足即可。仍需强调的是,文件系统大小在创建时确立,而所占用的实际物理存储在使用时(例如I/O发生时)分配。在具体实现中,在文件系统的超级块中,会记录每个子空间中,每个分片(例如,128MB分片)的使用情况,其中包括已经使用和剩余的单元。当一个子空间中,已经请求的所有分片都没有剩余(或剩余较少,不足以支持I/O操作)的情况下,按照如下步骤从物理存储池中请求文件系统提供新的分片((图3中的④):
[0025]a.在文件系统子空间中选择位置;
[0026]b.从物理存储池中分配空闲分片。
[0027]可选地,在根据图3所示的实现中还可以包括步骤:
[0028]c.在超级块的“分片映射表(SliceMapTable)”中填充物理存储分片信息,从而维护物理存储区块和逻辑存储区块之间的映射关系。
[0029]这样,在根据“分片映射表”计算出物理存储上的数据偏移(实际物理存储位置)之后,即可进行实际的I/o操作。
[0030]备选地或附加地,存储单元105还可以包括更新单元109,其被配置为基于所述逻辑存储区和所述物理存储块之间的对应关系,更新块映射表110。
[0031]同样,图3中示出的文件I和文件2经过类似的上述过程分别被确定为存储在8KB逻辑块子空间和16KB的逻辑块子空间,不再赘述。
[0032]需要注意的是,这里所用的术语“单元”既可以是硬件模块,也可以是软件单元模块。相应地,装置103可以通过各种方式实现。例如,在某些实施方式中,装置103可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置100可以部分或者全部基于硬件来实现,例如被实现为集成电路(1C)、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA)等。本发明的范围在此方面不受限制。
[0033]根据本发明的上述各种实施方式,可以在一个文件系统中使用直接和有效的方式来支持可变长度区块大小,并且并未增加元数据和定位开销。物理存储采用随用随分配的方式可以使得存储空间碎片最小化。可配置的策略引擎还使得能够更容易和直接地控制块大小。由此提供了更好的数据集成性和高可用性。
[0034]现在参考图4,其示出了根据本发明一个示例性实施方式用于文件系统的方法400的流程图。其中,所述文件系统包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同。应理解的是,方法400中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。方法400还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。本领域技术人员应当理解,为了简洁起见,下文对方法400的说明中,与前文类似的术语表达相似的含义。
[0035]方法400开始之后,在步骤S401处,响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区。
[0036]接下来,方法400前进到步骤S402,在所选择的逻辑存储区中存储所述文件。
[0037]根据本发明的一个实施方式,基于所述文件的类型和/或文件大小而从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的存储区。根据本发明的进一步实施方式,所述文件的类型包括以下中的一个或多个:视频文件、音频文件以及文本文件。
[0038]在本发明的优选实施方式中,步骤S402进一步包括:在所述所选择的逻辑存储区中选择用于存储所述文件的位置;从物理存储池中分配对应大小的物理存储块;以及将所述文件的内容写入所述物理存储块中。
[0039]根据本发明的一个实施方式,所述文件系统进一步包括用于记录所述逻辑存储区和所述物理存储块之间的对应关系的映射表,步骤S402进一步包括基于所述逻辑存储区和所述物理存储块之间的对应关系,更新块映射表。
[0040]图5示出了适于用来实践本发明实施方式的计算机系统500的示意性框图。如图5所示,计算机系统500可以包括:CPU(中央处理单元)501、RAM (随机存取存储器)502、ROM(只读存储器)503、系统总线504、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串行外部设备512、并行外部设备513和显示器514。在这些设备中,与系统总线503耦合的有CPU501、RAM502、R0M503、硬盘控制器505、键盘控制器506、串行控制器507、并行控制器508和显示控制器509。硬盘510与硬盘控制器505耦合,键盘511与键盘控制器506耦合,串行外部设备512与串行接口控制器507耦合,并行外部设备513与并行接口控制器508耦合,以及显示器514与显示控制器509耦合。
[0041]应当理解,图5所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
[0042]特别地,除硬件实施方式之外,本发明的实施方式可以通过计算机程序产品的形式实现。例如,参考图4描述的方法400可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图5所示的RAM502、R0M503、硬盘510和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统500上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU501)执行的程序指令。所述程序指令至少可以包括:用于响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区的指令;以及用于在所选择的逻辑存储区中存储所述文件的指令。
[0043]上文已经结合若干【具体实施方式】阐释了本发明的精神和原理。根据本发明的实施方式,可以根据文件本身的特性,为其选择适当大小的逻辑存储块,并采用随用随分配物理存储区的方式,从而能够减少碎片的产生,并且并未增加元数据和定位开销,从而灵活、高效地实现对文件系统的管理。
[0044]应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0045]应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
[0046]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤规约为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0047]虽然已经参考若干【具体实施方式】描述了本发明,但是应该理解,本发明并不限于所公开的【具体实施方式】。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
【权利要求】
1.一种用于文件系统的方法,所述文件系统包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述方法包括: 响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区;以及 在所选择的逻辑存储区中存储所述文件。
2.根据权利要求1所述的方法,其中,基于所述文件的类型和/或文件大小而从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的存储区。
3.根据权利要求2所述的方法,其中,所述文件的类型包括以下中的一个或多个:视频文件、音频文件以及文本文件。
4.根据权利要求1所述的方法,其中,在所选择的逻辑存储区中存储所述文件进一步包括: 在所述所选择的逻辑存储区中选择用于存储所述文件的位置; 从物理存储池中分配对应大小的物理存储块;以及 将所述文件的内容写入所述物理存储块中。
5.根据权利要求4所述的方法,其中,所述文件系统进一步包括用于记录所述逻辑存储区和所述物理存储块之间的对应关系的映射表,所述在所选择的逻辑存储区中存储所述文件进一步包括: 基于所述逻辑存储区和所述物理存储块之间的对应关系,更新块映射表。
6.一种用于文件系统的装置,所述文件系统包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述装置包括: 选择单元,被配置为响应于文件创建请求,从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的逻辑存储区;以及 存储单元,被配置为在所选择的逻辑存储区中存储所述文件。
7.根据权利要求6所述的装置,其中,所述选择单元被配置为基于所述文件的类型和/或文件大小而从所述至少第一逻辑存储区和第二逻辑存储区中选择用于存储所述文件的存储区。
8.根据权利要求7所述的装置,其中,所述文件的类型包括以下中的一个或多个:视频文件、音频文件以及文本文件。
9.根据权利要求6所述的装置,其中,所述存储单元进一步包括: 位置选择单元,被配置为在所述所选择的逻辑存储区中选择用于存储所述文件的位置; 分配单元,被配置为从物理存储池中分配对应大小的物理存储块;以及 写入单元,被配置为将所述文件的内容写入所述物理存储块中。
10.根据权利要求9所述的装置,其中,所述文件系统进一步包括用于记录所述逻辑存储区和所述物理存储块之间的对应关系的映射表,所述存储单元进一步包括: 更新单元,被配置为基于所述逻辑存储区和所述物理存储块之间的对应关系,更新块映射表。
11.一种文件系统,包括至少第一逻辑存储区和第二逻辑存储区,所述第一逻辑存储区的逻辑区块与所述第二逻辑存储区的逻辑区块大小不同,所述文件系统包括根据权利要求6-10中任一项所述的装置。
【文档编号】G06F17/30GK104516929SQ201310466056
【公开日】2015年4月15日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】翟佳, 周应超, 王文刚, 郭军, 张森 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1