CN106033454B - 虚拟文件***的格式化方法、处理方法和装置 - Google Patents
虚拟文件***的格式化方法、处理方法和装置 Download PDFInfo
- Publication number
- CN106033454B CN106033454B CN201510116899.8A CN201510116899A CN106033454B CN 106033454 B CN106033454 B CN 106033454B CN 201510116899 A CN201510116899 A CN 201510116899A CN 106033454 B CN106033454 B CN 106033454B
- Authority
- CN
- China
- Prior art keywords
- field
- file
- recording
- data
- area
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供了一种虚拟文件***的格式化方法和处理方法、虚拟文件***的格式化装置和处理装置,所述格式化方法包括:在第一连续存储空间中设置用于存储元数据的元数据区;以及在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区;其中,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联。
Description
技术领域
本发明涉及虚拟文件***的领域,更具体地,本发明涉及一种虚拟文件***的格式化方法、处理方法和装置。
背景技术
当前,所谓的云计算的技术越来越流行。在云计算的环境中,通常,虚拟机仍然采用诸如ext3、ext4、NTFS等的传统文件***格式。然而,传统文件***的设计是以磁盘为基础、并且磁盘为固定不可变设计模式而进行的,无法利用虚拟磁盘的特性。
具体地,在创建虚拟机时,需要首先指定磁盘的种类,诸如SSD盘或SATA盘等,然后,将其格式化为ext3、ext4等的***。上述方法的问题在于,首先,所述方法需要用户手动指定磁盘的种类。其次,由于传统文件***格式中元数据与数据是混合存储的,因此,随着数据规模的变化,需要相应进行频繁的更改。此外,当磁盘进行扩容时,需要暂停当前正在进行的业务。
发明内容
有鉴于上述情况,本发明提供了一种虚拟文件***的格式化方法、处理方法和装置,其能够将元数据的扩展和数据的扩展分离开。而且,所述虚拟文件***的格式化方法、处理方法和装置在***中同时容纳多个不同类型的磁盘,并且能够根据文件目录结构而定义存储的性能。
根据本发明一实施例,提供了一种虚拟文件***的格式化方法,包括:在第一连续存储空间中设置用于存储元数据的元数据区;以及在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区;其中,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联。
所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录所述数据区的使用情况的第六字段。
所述格式化方法还包括:在所述元数据区的第二字段中设置用于指示数据区的性能属性的指示符。
所述数据区的数量为多个,所述格式化方法所述格式化方法还包括:接收用于存储一文件的文件存储指令;以及基于所述指示符,确定用于存储所述文件的数据区。
所述元数据区还包括用于记录盘信息的第五字段和用于记录所述数据区的使用情况的第六字段,所述格式化方法还包括:基于所述第六字段,在所确定的用于存储所述文件的数据区中,分配第一数据块;在所述第一数据块中写入所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;基于所述位置信息,分配第二数据块;在所述第二数据块中写入所述文件的文件内容;以及修改所述第五字段和所述第六字段。
所述第二字段包括用于指向文件的块指针,所述格式化方法还包括:接收用于读取文件的文件读取指令;基于所述文件读取指令,读取所述第二字段,以获得所述文件的块指针;基于所述块指针,读取所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;以及基于所述位置信息,读取所述文件。
通过所述文件索引的偏移量来表示所述文件索引之间的关联。
根据本发明另一实施例,提供了一种用于虚拟文件***的处理方法,包括:接收用于对元数据区扩容的第一处理命令,其中,所述虚拟文件***包括位于第一连续存储空间的用于存储元数据的所述元数据区、以及位于与所述第一连续存储空间相分离的至少一个第二连续存储空间中的用于存储文件的数据区,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录所述文件的文件索引,所述第一字段用于记录所述文件索引之间的关联;响应于第一处理命令,在所述元数据区新增一个第二字段;以及基于所述新增的第二字段,更新所述第一字段。
所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录数据区的使用情况的第六字段;所述处理方法还包括:基于所述新增的第二字段,更新所述第四字段。
所述数据区包括用于记录所述数据区的综合信息的第七字段,所述处理方法还包括:接收用于对数据区扩容的第二处理命令;响应于第二处理命令,更新所述第七字段;以及修改所述第六字段的长度。
所述处理方法还包括:接收用于新增数据区的第三处理命令;响应于所述第三处理命令,在与第一连续存储空间和第二连续存储空间相分离的第三连续空间中新增一个用于存储文件的数据区;在所述元数据区新增一个第六字段;以及更新所述第五字段。
根据本发明另一实施例,提供了一种虚拟文件***的格式化装置,包括:第一设置单元,在第一连续存储空间中设置用于存储元数据的元数据区;以及第二设置单元,在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区;其中,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联。
所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录所述数据区的使用情况的第六字段。
所述格式化装置还包括:第三设置单元,在所述元数据区的第二字段中设置用于指示数据区的性能属性的指示符。
所述格式化装置还包括:接收单元,接收用于存储一文件的文件存储指令;以及确定单元,在所述数据区的数量为多个的情况下,基于所述指示符,确定用于存储所述文件的数据区。
所述元数据区还包括用于记录盘信息的第五字段和用于记录所述数据区的使用情况的第六字段,所述格式化装置还包括:第一分配单元,基于所述第六字段,在所确定的用于存储所述文件的数据区中,分配第一数据块;第一写入单元,在所述第一数据块中写入所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;第二分配单元,基于所述位置信息,分配第二数据块;第二写入单元,在所述第二数据块中写入所述文件的文件内容;以及修改单元,修改所述第五字段和所述第六字段。
所述第二字段包括用于指向文件的块指针,所述格式化装置还包括:第二接收单元,接收用于读取文件的文件读取指令;第一读取单元,基于所述文件读取指令,读取所述第二字段,以获得所述文件的块指针;第二读取单元,基于所述块指针,读取所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;以及第三读取单元,基于所述位置信息,读取所述文件。
根据本发明另一实施例,提供了一种用于虚拟文件***的处理装置,包括:第一接收单元,接收用于对元数据区扩容的第一处理命令,其中,所述虚拟文件***包括位于第一连续存储空间的用于存储元数据的所述元数据区、以及位于与所述第一连续存储空间相分离的至少一个第二连续存储空间中的用于存储文件的数据区,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录所述文件的文件索引,所述第一字段用于记录所述文件索引之间的关联;第一增加单元,响应于第一处理命令,在所述元数据区新增一个第二字段;以及第一更新单元,基于所述新增的第二字段,更新所述第一字段。
所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录数据区的使用情况的第六字段;所述处理装置还包括:第二更新单元,基于所述新增的第二字段,更新所述第四字段。
所述数据区包括用于记录所述数据区的综合信息的第七字段,所述处理装置还包括:第二接收单元,接收用于对数据区扩容的第二处理命令;第三更新单元,响应于第二处理命令,更新所述第七字段;以及第一修改单元,修改所述第六字段的长度。
所述处理装置还包括:第三接收单元,接收用于新增数据区的第三处理命令;第二增加单元,响应于所述第三处理命令,在与第一连续存储空间和第二连续存储空间相分离的第三连续空间中新增一个用于存储文件的数据区;第三增加单元,在所述元数据区新增一个第六字段;以及第四更新单元,更新所述第五字段。
根据本发明另一实施例,提供了一种虚拟文件***,包括:元数据区,用于存储元数据,并且其设置在第一连续存储空间中;以及至少一个数据区,用于存储文件,其设置在与所述第一连续存储空间相分离的至少一个第二连续存储空间中;其中,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联。
在本发明实施例的虚拟文件***的格式化方法、处理方法和装置中,通过将元数据区和数据区彼此分离地存储在两个连续存储空间中,能够将元数据的扩展和数据的扩展分离开。而且,本发明实施例的虚拟文件***的格式化方法、处理方法和装置能够在***中同时容纳多个不同类型的磁盘。此外,本发明实施例的虚拟文件***的格式化方法、处理方法和装置通过在元数据区的字段中设置用于指示数据区的性能属性的指示符,能够根据文件目录结构而定义存储的性能,换言之,能够在存储文件时根据用于存储的数据盘的性能而选择合适的盘,从而极大提高了虚拟文件***的可扩展性、兼容性和灵活性。
附图说明
图1是图示根据本发明实施例的虚拟文件***的格式化方法的流程图;
图2是图示应用本发明实施例的格式化方法的元数据区的结构的示意图;
图3是示出本发明实施例的虚拟文件***的处理方法的流程图;
图4是图示本发明实施例的虚拟文件***的格式化装置的主要配置的框图;以及
图5是图示本发明实施例的虚拟文件***的处理装置的主要配置的框图。
具体实施方式
以下将参考附图详细描述本发明实施例。
首先,将参照图1描述根据本发明实施例的虚拟文件***的格式化方法。
如图1所示,本发明实施例的虚拟文件***的格式化方法包括两个步骤。在第一步骤S101中,所述格式化方法在第一连续存储空间中设置用于存储元数据的元数据区。如本领域技术人员所知的,所述元数据(metadaata)是用来描述虚拟文件***中的文件和文件夹的基本信息。与元数据常常与数据混杂存储的方式不同,在本发明实施例的格式化方法中,通过一块专门的、连续的存储空间(即,所述第一连续存储空间)来存储述元数据。
另一方面,在第二步骤S102中,所述格式化方法在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区。
具体地,所述元数据区包括第一字段和至少一个第二字段。所述第二字段用于记录文件索引。也就是说,所述第二字段为文件索引字段,也称为索引节点(indexNode)字段。所述第二字段可以记录每个文件的信息,例如包含诸如大小,时间,文件类型等的基本信息,并具有指向文件内容的指针。所述元数据区可以包含一个或多个第二字段,用于分别记录不同文件的索引。所述第二字段的数量与磁盘的数量并无一一对应关系,并且可以根据需要(如所述元数据区不够时)添加独立的第二字段。
所述第一字段用于记录所述文件索引之间的关联。具体地,在一实施例中,所述关联通过所述文件索引的偏移量来表示。也就是说,所述第一字段中记录所述文件索引的偏移量。在本发明中,将所述第一字段定义为目录项路径信息(DirPath)。
更具体地,所述第一字段可以记录索引节点的分布信息。以当前存在两个第二字段的情况为示例。假如当前有两个indexNode,并且第一indexNode的编号为0-10000、第二indexNode的编号为10000-250000,则DirPath中包含两条记录:第一条:index编号:0-10000,偏移信息(pos):1024;第二条:index编号:10000-250000,偏移信息pos:3324。当需要查找大于10000编号的文件时,则需要从第二条记录偏移量3324起始的记录中查找。
需要指出的是,虽然上面的示例中以偏移量为例进行了描述,但是,本领域技术人员能够理解,本发明不限于此,而是可以记录所述文件索引的其他任何适当的信息,只要其可以用于表示所述文件索引之间的关联。
由此,在本发明实施例的格式化方法中,通过两块彼此分离的连续逻辑存储空间来存储所述第二字段和所述第一字段,即,文件索引、以及文件索引之间的关联和偏移量,由此,能够将元数据的扩展和数据的扩展分离开。
此外,在另一实施例中,除了如上所述的第一字段和第二字段外,所述元数据区还可以包括一些其他字段。图2中示出了通过本发明实施例的格式化方法而格式化后的元数据区结构的示意图。
如图2所示,所述元数据区包含一个第一字段204和多个第二字段206-1至206-n。此外,所述元数据区例如还可以包括用于记录日志的第三字段201、用于记录所述虚拟文件***的综合信息的第四字段202、用于记录盘信息的第五字段203、以及用于记录所述数据区的使用情况的第六字段205-1至205-n。
具体地,所述第三字段可以为日志(Journal)字段,其记录文件***的操作,用于保证数据安全。
所述第四字段可以为超级块(SB,Super Block)字段,用于记录整个文件***的综合信息,如空间大小、使用情况等。
所述第五字段可以为磁盘信息(DiskInfo)字段,用于描述所涉及磁盘的信息,例如可以包含磁盘大小、磁盘类型、如下所述的BitMap(位图)的位置等。具体地,当对磁盘进行扩容或添加等的操作时,会相应修改所述第五字段。例如,当磁盘扩容时,会添加一条新的BitMap位置,同时修改磁盘的大小。当添加新的磁盘时,也会添加一条新的记录。
所述第六字段可以为如上所述的位图(BitMap)字段,用于记录所述数据区的使用情况。具体地,所述第六字段用于通过比特来标记数据元素对应的值。更具体地,在所述第六字段中,通过使用BitMap来描述对应的块处于使用状态还是空闲状态。
此外,在另一实施例中,在所述数据区的数量为多个的情况下,在所述元数据区的第二字段(即,IndexNode)中还可设置用于指示数据区的性能属性的指示符。由此,在数据存储时可以通过考虑所述指示符而选择适当的数据盘。具体地,所述格式化方法可以接收用于存储一文件的文件存储指令。此后,所述格式化方法基于所述指示符,确定用于存储所述文件的数据区。
更具体地,在一示例中,在某一文件的整个路径中,可以以离当前文件最近的目录的性能属性为准。由此,当性能属性设置为高时,从所有的数据磁盘中选择高性能的磁盘作为数据存储的首选。当未设置性能属性时,选择普通的磁盘。
在另一示例中,在某一文件的整个路径中,可以以根目录的性能属性为准,并且设置诸如高、中、低的三个性能属性。由此,在确定用于存储所述文件的数据区时,首选性能属性为高的磁盘,次选性能属性为中的磁盘。当上述两类磁盘均不可用时,选择性能属性为低的磁盘。
需要指出的是,以上所述的文件的性能属性的确定准则、以及性能属性的数量和值均为示例。本领域技术人员能够采用与上述不同的其他各种性能属性的确定准则、以及不同数量和值的性能属性,其都在本发明的范围内。
更具体地,在进行文件的写操作时,所述格式化方法可以基于所述BitMap字段,在基于如上所述的方式而确定的用于存储所述文件的数据区中,分配第一数据块。所述格式化方法可以基于所述BitMap字段,根据各种原则分配第一数据块,其为本领域技术人员所知,在此不再详述。此后,所述格式化方法可以在所述第一数据块中写入所述文件的块描述信息。所述块描述信息包括所述文件的位置信息。由于在本发明实施例的格式化方法中可以具有多个数据区,因此,所述位置信息不仅包括数据块编号,还包括数据区编号。此后,所述格式化方法基于所述位置信息,分配用于文件内容的第二数据块,并在所述第二数据块中写入所述文件的文件内容。在写入所述文件内容之后,由于所述数据区的容量和使用情况有变,所述格式化方法相应地修改所述DiskInfo字段和所述BitMap字段。
另一方面,在进行文件的读操作时,由于所述IndexNode字段包括用于指向文件的块指针,因此,所述格式化方法在接收用于读取文件的文件读取指令之后,可以基于所述文件读取指令,读取所述第二字段,从而获得所述文件的块指针。此后,所述格式化方法基于所述块指针,读取所述文件的块描述信息。如上所述,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号。在获得了所述文件的位置信息之后,所述格式化方法可以基于所述位置信息,读取所述文件。
以上,参照图1和图2描述了本发明实施例的用于虚拟文件***的格式化方法。在本发明实施例的格式化方法中,通过将元数据区和数据区彼此分离地存储在两个连续存储空间中,能够将元数据的扩展和数据的扩展分离开。而且,本发明实施例的虚拟文件***的格式化方法、处理方法和装置能够在***中同时容纳多个不同类型的磁盘。
此外,本发明实施例的虚拟文件***的格式化方法、处理方法和装置通过在元数据区的字段中设置用于指示数据区的性能属性的指示符,能够根据文件目录结构而定义存储的性能,换言之,能够在存储文件时根据用于存储的数据盘的性能而选择合适的盘,从而极大提高了虚拟文件***的可扩展性、兼容性和灵活性。
接下来,将参照图3描述本发明实施例的用于虚拟文件***的处理方法。
图3是示出本发明实施例的虚拟文件***的处理方法的流程图。在图3所示的处理方法的虚拟文件***中,所述虚拟文件***包括位于第一连续存储空间的用于存储元数据的所述元数据区、以及位于与所述第一连续存储空间相分离的至少一个第二连续存储空间中的用于存储文件的数据区,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录所述文件的文件索引,所述第一字段用于记录所述文件索引之间的关联。
所述虚拟文件***的元数据区和数据区、以及各个字段的具体含义和设置已经在参照图1和图2所述的格式化方法中详述,在此不再重复。
如图3所示,首先,在步骤S301,所述处理方法接收用于对元数据区扩容的第一处理命令。
接下来,在步骤S302,所述处理方法响应于第一处理命令,在所述元数据区新增一个第二字段,也即如上所述的文件索引或索引节点字段。具体地,新增的索引节点字段例如可以设置在原有的索引节点字段之后。而且,所述新增的索引节点字段与原有的索引节点字段共同位于如上所述的第一连续存储空间中。
然后,在步骤S303,所述处理方法基于所述新增的第二字段,更新所述第一字段。具体地,由于本发明实施例中的所述第一字段记录索引节点的分布信息,因此,在新增索引节点的情况下,所述处理方法例如可通过增加新索引节点的分布信息而更新所述第一字段。例如,在如上所述的当前存在两个第二字段的情况中,如果新增第三索引节点,则所述处理方法将通过在DirPath中新增一条记录(第三条:index编号250000-500000,偏移信息:8192)而更新所述第一字段。
此外,在另一实施例中,如上参照图1和图2所述,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录数据区的使用情况的第六字段。在此情况下,当对元数据区扩容时,所述处理方法还基于所述新增的第二字段,更新所述第四字段。也就是说,所述处理方法基于所述新增的第二字段,更新所述虚拟文件***的综合信息。例如,所述处理方法基于所述新增的第二字段的大小,更新第四字段中表示所述虚拟文件***的空间大小的信息。又例如,所述处理方法还基于所述新增的第二字段的大小和使用情况,更新所述第四字段中表示所述虚拟文件***的使用情况的信息。
进一步地,在另一实施例中,所述处理方法不仅可以对元数据区进行扩容处理,还可以对数据区进行扩容处理。所述数据区包括用于记录所述数据区的综合信息的第七字段。即,所述第七字段为所述数据区的SuperBlock字段,其例如定义所述数据区的容量等的综合信息。在此情况下,所述处理方法首先接收用于对数据区扩容的第二处理命令。然后,所述处理方法响应于第二处理命令,更新所述第七字段。具体地,所述处理方法响应于所述第二处理命令,确定要对所述数据区扩容的容量。然后,所述处理方法基于所确定的容量,例如更新所述第七字段中表示容量的信息等。接下来,所述处理方法基于所确定的容量,修改用于记录数据区的使用情况的所述第六字段(即,BitMap字段)的长度。由此,本发明实施例的处理方法实现了对于数据区的扩容。
进一步,在本发明实施例的处理方法中,不仅可以对现有数据区进行扩容,还可以新增数据区。具体地,在此情况下,所述处理方法可以接收用于新增数据区的第三处理命令。然后,所述处理方法响应于所述第三处理命令,在与第一连续存储空间和第二连续存储空间相分离的第三连续空间中新增一个用于存储文件的数据区。也就是说,在本发明实施例的虚拟文件***中,每个数据区都位于单独的、连续的存储空间中,且数据区与元数据区彼此设置得彻底分离,而不会彼此交替设置。
然后,本发明实施例的处理方法根据新增的数据区的容量和使用情况,在所述元数据区新增一个第六字段,也即如上所述的BitMap字段,用于记录新增的数据区的使用情况。所新增的第六字段例如可以位于原有的第六字段之后。此外,所述处理方法还根据新增的数据区的信息,更新所述元数据区中的第五字段,即,磁盘信息(DiskInfo)字段。由此,本发明实施例的处理方法实现了对于数据区的添加。
以上,参照图1至图3描述了本发明实施例的虚拟文件***的格式化方法和处理方法。
在本发明实施例的虚拟文件***的格式化方法和处理方法中,通过将元数据区和数据区彼此分离地存储在两个连续存储空间中,能够将元数据的扩展和数据的扩展分离开。而且,本发明实施例的虚拟文件***的格式化方法和处理方法能够在***中同时容纳多个不同类型的磁盘。此外,本发明实施例的虚拟文件***的格式化方法和处理方法通过在元数据区的字段中设置用于指示数据区的性能属性的指示符,能够根据文件目录结构而定义存储的性能,换言之,能够在存储文件时根据用于存储的数据盘的性能而选择合适的盘,从而极大提高了虚拟文件***的可扩展性、兼容性和灵活性。
下面,将参照图4描述本发明实施例的虚拟文件***的格式化装置。
图4是图示本发明实施例的虚拟文件***的格式化装置的主要配置的框图。如图4所示,本发明实施例的格式化装置400包括:第一设置单元401和第二设置单元402。
所述第一设置单元401在第一连续存储空间中设置用于存储元数据的元数据区。
所述第二设置单元402在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区;
所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联。
在一实施例中,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录所述数据区的使用情况的第六字段。
在另一实施例中,所述格式化装置还包括:第三设置单元,在所述元数据区的第二字段中设置用于指示数据区的性能属性的指示符。
在另一实施例中,所述格式化装置还包括:接收单元,接收用于存储一文件的文件存储指令;以及确定单元,在所述数据区的数量为多个的情况下,基于所述指示符,确定用于存储所述文件的数据区。
在另一实施例中,所述元数据区还包括用于记录盘信息的第五字段和用于记录所述数据区的使用情况的第六字段,所述格式化装置还包括:第一分配单元,基于所述第六字段,在所确定的用于存储所述文件的数据区中,分配第一数据块;第一写入单元,在所述第一数据块中写入所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;第二分配单元,基于所述位置信息,分配第二数据块;第二写入单元,在所述第二数据块中写入所述文件的文件内容;以及修改单元,修改所述第五字段和所述第六字段。
在另一实施例中,所述第二字段包括用于指向文件的块指针,所述格式化装置还包括:第二接收单元,接收用于读取文件的文件读取指令;第一读取单元,基于所述文件读取指令,读取所述第二字段,以获得所述文件的块指针;第二读取单元,基于所述块指针,读取所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;以及第三读取单元,基于所述位置信息,读取所述文件。
所述格式化装置的各单元的具体配置和操作已经在参照图1和图2所述的格式化方法中详细描述,在此不再重复。
下面,将参照图5描述本发明实施例的虚拟文件***的处理装置。
图5是图示本发明实施例的虚拟文件***的处理装置的主要配置的框图。如图5所示,本发明实施例的处理装置500包括:第一接收单元501、第一增加单元502和第一更新单元503。
所述第一接收单元501接收用于对元数据区扩容的第一处理命令,其中,所述虚拟文件***包括位于第一连续存储空间的用于存储元数据的所述元数据区、以及位于与所述第一连续存储空间相分离的至少一个第二连续存储空间中的用于存储文件的数据区,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录所述文件的文件索引,所述第一字段用于记录所述文件索引之间的关联。
所述第一增加单元502响应于第一处理命令,在所述元数据区新增一个第二字段。
所述第一更新单元503基于所述新增的第二字段,更新所述第一字段。
在一实施例中,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录数据区的使用情况的第六字段;所述处理装置还包括:第二更新单元,基于所述新增的第二字段,更新所述第四字段。
在另一实施例中,所述数据区包括用于记录所述数据区的综合信息的第七字段,所述处理装置还包括:第二接收单元,接收用于对数据区扩容的第二处理命令;第三更新单元,响应于第二处理命令,更新所述第七字段;以及第一修改单元,修改所述第六字段的长度。
在另一实施例中,所述处理装置还包括:第三接收单元,接收用于新增数据区的第三处理命令;第二增加单元,响应于所述第三处理命令,在与第一连续存储空间和第二连续存储空间相分离的第三连续空间中新增一个用于存储文件的数据区;第三增加单元,在所述元数据区新增一个第六字段;以及第四更新单元,更新所述第五字段。
所述处理装置的各单元的具体配置和操作已经在参照图3所述的处理方法中详细描述,在此不再重复。
在本发明实施例的虚拟文件***的格式化装置和处理装置中,通过将元数据区和数据区彼此分离地存储在两个连续存储空间中,能够将元数据的扩展和数据的扩展分离开。而且,本发明实施例的虚拟文件***的格式化装置和处理装置能够在***中同时容纳多个不同类型的磁盘。此外,本发明实施例的虚拟文件***的格式化装置和处理装置通过在元数据区的字段中设置用于指示数据区的性能属性的指示符,能够根据文件目录结构而定义存储的性能,换言之,能够在存储文件时根据用于存储的数据盘的性能而选择合适的盘,从而极大提高了虚拟文件***的可扩展性、兼容性和灵活性。
以上,参照图1到图5描述了根据本发明实施例的格式化方法、处理方法、格式化装置和处理装置。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,需要说明的是,在本说明书中,类似“第一…单元”、“第二...单元”的表述仅为了在描述时方便区分,而并不意味着其必须实现为物理分离的两个或多个单元。事实上,根据需要,所述单元可以整体实现为一个单元,也可以实现为多个单元。
最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
在本发明实施例中,单元/模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成单元/模块并且实现该单元/模块的规定目的。
在单元/模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的单元/模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (19)
1.一种虚拟文件***的格式化方法,包括:
在第一连续存储空间中设置用于存储元数据的元数据区;以及
在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区;
其中,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联,其中,通过所述文件索引的偏移量来表示所述文件索引之间的关联,通过两块彼此分离的连续逻辑存储空间来存储所述第二字段和所述第一字段。
2.如权利要求1所述的格式化方法,其中,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录所述数据区的使用情况的第六字段。
3.如权利要求1所述的格式化方法,还包括:
在所述元数据区的第二字段中设置用于指示数据区的性能属性的指示符。
4.如权利要求3所述的格式化方法,其中,所述数据区的数量为多个,所述格式化方法还包括:
接收用于存储一文件的文件存储指令;以及
基于所述指示符,确定用于存储所述文件的数据区。
5.如权利要求4所述的格式化方法,其中,所述元数据区还包括用于记录盘信息的第五字段和用于记录所述数据区的使用情况的第六字段,所述格式化方法还包括:
基于所述第六字段,在所确定的用于存储所述文件的数据区中,分配第一数据块;
在所述第一数据块中写入所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;
基于所述位置信息,分配第二数据块;
在所述第二数据块中写入所述文件的文件内容;以及
修改所述第五字段和所述第六字段。
6.如权利要求1所述的格式化方法,其中,所述第二字段包括用于指向文件的块指针,所述格式化方法还包括:
接收用于读取文件的文件读取指令;
基于所述文件读取指令,读取所述第二字段,以获得所述文件的块指针;
基于所述块指针,读取所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;以及
基于所述位置信息,读取所述文件。
7.一种用于虚拟文件***的处理方法,包括:
接收用于对元数据区扩容的第一处理命令,其中,所述虚拟文件***包括位于第一连续存储空间的用于存储元数据的所述元数据区、以及位于与所述第一连续存储空间相分离的至少一个第二连续存储空间中的用于存储文件的数据区,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录所述文件的文件索引,所述第一字段用于记录所述文件索引之间的关联,其中,通过所述文件索引的偏移量来表示所述文件索引之间的关联,通过两块彼此分离的连续逻辑存储空间来存储所述第二字段和所述第一字段;
响应于第一处理命令,在所述元数据区新增一个第二字段;以及
基于所述新增的第二字段,更新所述第一字段。
8.如权利要求7所述的处理方法,其中,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录数据区的使用情况的第六字段;
所述处理方法还包括:
基于所述新增的第二字段,更新所述第四字段。
9.如权利要求8所述的处理方法,其中,所述数据区包括用于记录所述数据区的综合信息的第七字段,所述处理方法还包括:
接收用于对数据区扩容的第二处理命令;
响应于第二处理命令,更新所述第七字段;以及
修改所述第六字段的长度。
10.如权利要求8所述的处理方法,还包括:
接收用于新增数据区的第三处理命令;
响应于所述第三处理命令,在与第一连续存储空间和第二连续存储空间相分离的第三连续空间中新增一个用于存储文件的数据区;
在所述元数据区新增一个第六字段;以及
更新所述第五字段。
11.一种虚拟文件***的格式化装置,包括:
第一设置单元,在第一连续存储空间中设置用于存储元数据的元数据区;以及
第二设置单元,在与所述第一连续存储空间相分离的至少一个第二连续存储空间中设置至少一个用于存储文件的数据区;
其中,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录文件索引,所述第一字段用于记录所述文件索引之间的关联,其中,通过所述文件索引的偏移量来表示所述文件索引之间的关联,通过两块彼此分离的连续逻辑存储空间来存储所述第二字段和所述第一字段。
12.如权利要求11所述的格式化装置,其中,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录所述数据区的使用情况的第六字段。
13.如权利要求11所述的格式化装置,还包括:
第三设置单元,在所述元数据区的第二字段中设置用于指示数据区的性能属性的指示符;
第一接收单元,接收用于存储一文件的文件存储指令;以及
确定单元,在所述数据区的数量为多个的情况下,基于所述指示符,确定用于存储所述文件的数据区。
14.如权利要求13所述的格式化装置,其中,所述元数据区还包括用于记录盘信息的第五字段和用于记录所述数据区的使用情况的第六字段,所述格式化装置还包括:
第一分配单元,基于所述第六字段,在所确定的用于存储所述文件的数据区中,分配第一数据块;
第一写入单元,在所述第一数据块中写入所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;
第二分配单元,基于所述位置信息,分配第二数据块;
第二写入单元,在所述第二数据块中写入所述文件的文件内容;以及
修改单元,修改所述第五字段和所述第六字段。
15.如权利要求11所述的格式化装置,其中,所述第二字段包括用于指向文件的块指针,所述格式化装置还包括:
第二接收单元,接收用于读取文件的文件读取指令;
第一读取单元,基于所述文件读取指令,读取所述第二字段,以获得所述文件的块指针;
第二读取单元,基于所述块指针,读取所述文件的块描述信息,所述块描述信息包括所述文件的位置信息,所述位置信息至少包括数据区编号和数据块编号;以及
第三读取单元,基于所述位置信息,读取所述文件。
16.一种用于虚拟文件***的处理装置,包括:
第一接收单元,接收用于对元数据区扩容的第一处理命令,其中,所述虚拟文件***包括位于第一连续存储空间的用于存储元数据的所述元数据区、以及位于与所述第一连续存储空间相分离的至少一个第二连续存储空间中的用于存储文件的数据区,所述元数据区包括第一字段和至少一个第二字段,所述第二字段用于记录所述文件的文件索引,所述第一字段用于记录所述文件索引之间的关联,其中,通过所述文件索引的偏移量来表示所述文件索引之间的关联,通过两块彼此分离的连续逻辑存储空间来存储所述第二字段和所述第一字段;
第一增加单元,响应于第一处理命令,在所述元数据区新增一个第二字段;以及
第一更新单元,基于所述新增的第二字段,更新所述第一字段。
17.如权利要求16所述的处理装置,其中,所述元数据区还包括用于记录日志的第三字段、用于记录所述虚拟文件***的综合信息的第四字段、用于记录盘信息的第五字段、以及用于记录数据区的使用情况的第六字段;
所述处理装置还包括:
第二更新单元,基于所述新增的第二字段,更新所述第四字段。
18.如权利要求17所述的处理装置,其中,所述数据区包括用于记录所述数据区的综合信息的第七字段,所述处理装置还包括:
第二接收单元,接收用于对数据区扩容的第二处理命令;
第三更新单元,响应于第二处理命令,更新所述第七字段;以及
第一修改单元,修改所述第六字段的长度。
19.如权利要求17所述的处理装置,还包括:
第三接收单元,接收用于新增数据区的第三处理命令;
第二增加单元,响应于所述第三处理命令,在与第一连续存储空间和第二连续存储空间相分离的第三连续空间中新增一个用于存储文件的数据区;
第三增加单元,在所述元数据区新增一个第六字段;以及
第四更新单元,更新所述第五字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510116899.8A CN106033454B (zh) | 2015-03-17 | 2015-03-17 | 虚拟文件***的格式化方法、处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510116899.8A CN106033454B (zh) | 2015-03-17 | 2015-03-17 | 虚拟文件***的格式化方法、处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106033454A CN106033454A (zh) | 2016-10-19 |
CN106033454B true CN106033454B (zh) | 2020-01-31 |
Family
ID=57150964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510116899.8A Active CN106033454B (zh) | 2015-03-17 | 2015-03-17 | 虚拟文件***的格式化方法、处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106033454B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388524B (zh) * | 2018-10-09 | 2021-10-01 | 郑州云海信息技术有限公司 | 虚拟磁盘格式的寻址方法和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101382948A (zh) * | 2008-10-14 | 2009-03-11 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置和*** |
CN103617167A (zh) * | 2013-10-22 | 2014-03-05 | 芜湖大学科技园发展有限公司 | 一种通用的元数据/关系映射框架 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032720A1 (en) * | 2013-07-23 | 2015-01-29 | Yahoo! Inc. | Optimizing database queries |
-
2015
- 2015-03-17 CN CN201510116899.8A patent/CN106033454B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101382948A (zh) * | 2008-10-14 | 2009-03-11 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置和*** |
CN103617167A (zh) * | 2013-10-22 | 2014-03-05 | 芜湖大学科技园发展有限公司 | 一种通用的元数据/关系映射框架 |
Also Published As
Publication number | Publication date |
---|---|
CN106033454A (zh) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064639B (zh) | 数据存储方法及装置 | |
US20200012646A1 (en) | Pluggable storage system for distributed file systems | |
US10430398B2 (en) | Data storage system having mutable objects incorporating time | |
EP2069979B1 (en) | Dynamic fragment mapping | |
US7933938B2 (en) | File storage system, file storing method and file searching method therein | |
US8682874B2 (en) | Information processing system | |
CN102843403A (zh) | 基于分布式文件***的文件处理方法、***及客户端 | |
CN107766374B (zh) | 一种海量小文件存储读取的优化方法和*** | |
JP2005267600A5 (zh) | ||
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN107729558A (zh) | 文件***碎片整理的方法、***、装置及计算机存储介质 | |
WO2017090071A1 (en) | Method and computer system for managing blocks | |
CN102253985B (zh) | 一种文件***数据的管理方法及*** | |
CN106709014B (zh) | 一种文件***转换方法及装置 | |
US10698865B2 (en) | Management of B-tree leaf nodes with variable size values | |
JP5517224B2 (ja) | ストレージ装置 | |
US10311026B2 (en) | Compressed data layout for optimizing data transactions | |
CN106033454B (zh) | 虚拟文件***的格式化方法、处理方法和装置 | |
JP6634886B2 (ja) | データ記憶装置、データ記憶装置制御プログラム、及びデータ記憶装置制御方法 | |
CN115562595B (zh) | 一种卷创建方法及装置、卷读写方法及装置、电子设备 | |
CN104951569B (zh) | 文件***以及采用该文件***的文件管理方法 | |
CN114297196B (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
US8195696B2 (en) | File format converting method | |
CN112988696B (zh) | 文件整理方法、装置及相关设备 | |
CN106980616A (zh) | 一种海量小文件合并存储方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |