专利名称::文件系统和检索、写入、修改或删除文件的方法与装置的制作方法
技术领域:
:本发明涉及文件系统
技术领域:
,具体涉及一种文件系统和该文件系统中检索、写入、修改或删除文件的方法与装置。
背景技术:
:现在流行的文件系统种类有很多,如EXT2、EXT3、EXT4、JFS(JournalFileSystem)>GFS(DistributedFileSystem)、ReiserFS(ReiserFileSystem)>GoogleFS(GoogleFileSystem)>ZFS(ZettabyteFileSystem)等等。如图1,上述种类的文件系统采用的是超级块(Superblock)-索引节点(inode)-数据块(datablock)三层结构。文件系统首先被分成一个个的物理块(block),这些物理块被划分成超级块和索引节点区及数据区。超级块位于文件卷的第一个block,其存储的数据是文件卷的控制信息,其中包括文件系统的目录结构树的根目录。数据区的datablock用来存放文件的内容。索引节点区保存有目录结构树和对应于各个文件的inode。inode中保存有文件的属性和存储地址,该存储地址指向保存该文件内容的dateblock。在进行文件检索时,采用的方法是利用Superblock下的目录结构树,以全路径文件名为关键字,通过目录索引项(Direntry,Dentry)逐级进行检索。在实际应用中,用户常常需要采用多种检索方式,例如在采用文件名进行检索以外,可能还需要以文件大小或者修改时间等方式进行检索。但是,现有的文件系统仅支持以文件名进行检索,不支持其它的检索方式。
发明内容本发明实施例提供一种文件系统和该文件系统中检索、写入、修改或删除文件的方法与装置。一种文件系统,包括超级块区、索引节点区以及数据块区;所述超级块区包括至少两个超级块作为文件的不同属性的检索入口;所述索引节点区包括与每个超级块对应的属性索引项列表,以及与数据块区存储的每个文件对应的索引节点,每个所述属性索引项列表保存一种文件属性与索引节点编号的对应关系,所述索引节点保存有文件的属性和存储地址,所述存储地址指向数据块区存放该文件的数据块。一种文件系统中检索文件的装置,所述文件系统为上述的文件系统,所述装置包括接收单元,用于接收文件检索请求,所述文件检索请求包含请求检索文件的属性;匹配单元,用于根据所述文件检索请求包含的请求检索文件的属性确定相应的超级块,将所述请求检索文件的属性与所述超级块对应的属性索引项列表进行匹配,获得对应的索引节点编号;获取单元,用于从所述索引节点编号表示的索引节点中获取所述请求检索文件的各种属性和存储地址,从所述存储地址表示的数据块中获取所述请求检索文件的内容。一种文件系统中写入文件的装置,所述文件系统为上述的文件系统,所述装置包括接收单元,用于接收文件写入请求;第一建立单元,用于通过所述目录超级块在对应的目录索引项列表中建立请求写入文件的目录索引项,所述目录索引项包括所述请求写入文件的目录与索引节点编号的对应关系;写入单元,用于将请求写入文件的属性写入所述索引节点编号表示的索引节点中,将请求写入文件的内容写入所述索引节点指向的数据块中;第二建立单元,用于通过对应于目录以外其它属性的属性超级块在相应的属性索引项列表中建立请求写入文件的各个属性索引项。一种文件系统中修改及删除文件的装置,所述文件系统为上述的文件系统,所述装置包括接收单元,用于接收文件修改请求或文件删除请求;第一修改单元,用于根据所述文件修改请求或文件删除请求修改或删除该文件对应的索引节点;第二修改单元,用于通过对应于该文件的各个属性的超级块在各个属性索引项列表中修改或删除所述文件的各个属性索引项。一种文件系统中检索文件的方法,所述文件系统为上述的文件系统,所述方法包括接收文件检索请求,所述文件检索请求包含请求检索文件的一种属性;根据所述文件检索请求包含的请求检索文件的属性确定相应的超级块,将所述请求检索文件的属性与所述超级块对应的属性索引项列表进行匹配,获得对应的索引节点编号;从所述索引节点编号表示的索引节点中获取所述请求检索文件的各种属性和存储地址,从所述存储地址表示的数据块中获取所述请求检索文件的内容。一种文件系统写入文件的方法,所述文件系统为上述的文件系统,所述方法包括接收文件写入请求;通过所述目录超级块在对应的目录索引项列表中建立请求写入文件的目录索引项,所述目录索引项包括所述请求写入文件的目录与索引节点编号的对应关系;将请求写入文件的属性写入所述索引节点编号表示的索引节点中,将请求写入文件的内容写入所述索引节点指向的数据块中;通过对应于目录以外其它属性的属性超级块在相应的属性索引项列表中建立请求写入文件的各个属性索引项。一种文件系统修改或删除文件的方法,所述文件系统为上述的文件系统,所述方法包括接收文件修改请求或文件删除请求;根据所述文件修改请求或文件删除请求修改或删除该文件对应的索引节点;通过对应于该文件的各个属性的超级块在各个属性索引项列表中修改或删除所述文件的各个索引项。本发明实施例提供的文件系统,包括至少两个超级块作为文件的不同属性的检索入口,每个超级块对应一种属性索引项列表,每个属性索引项列表保存一种文件属性与索引节点编号的对应关系,从而,该文件系统通过对应于文件的不同属性的超级块和属性索引项列表提供了不同的检索方式,解决了现有技术中文件系统只能提供以文件名作为属性进行检索的单一的检索方式存在的问题。图1是现有技术的文件系统的结构示意图;图2是本发明实施例的文件系统的结构示意图;图3是本发明实施例的文件系统在文件卷中的布局示意图;图4是本发明实施例的文件系统中检索文件的装置的结构示意图;图5是本发明实施例的文件系统的文件检索过程的示意图;图6是本发明实施例的文件系统中写入文件的装置的结构示意图;图7是本发明实施例的文件系统中修改及删除的装置的结构示意图;图8是本发明实施例的文件系统中检索文件的方法的流程图;图9是本发明实施例的文件系统中写入文件的方法的流程图;图10是本发明实施例的文件系统中修改或删除文件的方法的流程图。具体实施例方式本发明实施例提供一种文件系统,包括超级块区和索引节点区以及数据块区;超级块区包括至少两个超级块作为文件的不同属性的检索入口;索引节点区包括与每个超级块对应的属性索引项列表,以及与数据块区存储的每个文件对应的索引节点,每个属性索引项列表保存一种文件属性与索引节点编号的对应关系,索引节点保存有文件的属性和存储地址,该存储地址指向数据块区存放该文件的数据块。本发明实施例还提供该文件系统中检索、写入、修改或删除文件的方法与装置。以下分别进行详细说明。本发明实施例提供一种文件系统。文件系统是一种在存储介质例如磁盘上管理文件信息的系统,用于对文件存储空间进行组织和分配,负责文件存储。请参考图2,本实施例的文件系统包括超级块区101和索引节点区102以及数据块区103。其中,超级块区101包括至少两个超级块作为文件的不同属性的检索入口;索引节点区102包括与每个超级块对应的属性索引项列表,以及与数据块区存储的每个文件对应的索引节点,每个属性索引项列表保存一种文件属性与索引节点编号的对应关系,索引节点保存有文件的属性和存储地址,该存储地址是数据块区存放该文件的数据块的地址。与现有技术的仅包括一个目录超级块,只能根据目录进行检索的文件系统的不同之处在于,本发明文件系统的超级块区包括一个由至少两个超级块组成的超级块组(SuperBlockGroup)。其中的每个超级块对应文件的一种属性,具体是与索引节点区保存的一种属性索引项列表链接,以提供对应该种文件属性的检索方式,以便于用户通过文件的该种属性进行文件检索。从而,该文件系统通过对应于文件的不同属性的超级块和属性索引项列表提供了不同的检索方式,解决了现有技术中文件系统只能提供以文件名作为属性进行检索的单一的检索方式存在的问题本发明实施例中,文件的属性可以包括文件名、文件大小、修改时间、用户名等任何能够对文件进行区分的属性。每个文件的所有属性均保存在该文件对应的索引节点中。本发明文件系统中,超级块区可以包括作为目录检索入口的目录超级块(DirSuperblock)。超级块区还可以包括作为关键字检索入口的关键字超级块(KeywordSuperblock),作为大小检索入口的大小超级块(SizeSuperblock),作为修改时间检索入口的时间超级块(TimeSuperblock),以及作为用户检索入口的用户超级块^serSuperblock)中的至少一个超级块,可以包括其中的一个超级块,也可以包括其中的多个超级块,还可以包括所列举的全部超级块。需要说明的是,本发明的文件系统还可以包括其它文中未列举的超级块,这些超级块对应于其它任何能够对文件进行区分的属性。每一个超级块是一种检索入口,对应于一种属性索引项列表。属性索引项列表至少包括对应于目录超级块的目录索引项(DirEntry)列表,还可以包括对应于关键字超级块的关键字索引项(KeywordEntry)列表,对应于大小超级块的大小索引项(SizeEntry)列表,对应于时间超级块的时间索引项(TimeEntry)列表,以及对应于用户超级块的用户索引项(UserEntry)列表中的一个或多个属性索引项列表。下面对各个超级块对应的各种索引方式做进一步说明目录超级块是目录索引方式的检索入口,支持以文件名进行文件检索。与目录超级块对应的目录索引项列表。目录索引项列表可以采用列表方式构建,也可以采用目录结构树方式构建。目录索引项列表中包含多个目录索引项(DirEntry),每个目录索引项对应一个文件。每个目录索引项中保存有对应文件的文件名以及对应索引节点的编号。当用户通过文件名进行检索时,将收到的请求检索文件的文件名与目录索引项列表进行匹配,找到对应的目录索引项,获取对应的索引节点的编号,进而可以从该编号表示的索引节点中,获取文件的属性和存储地址,再通过该存储地址在相应的数据块中获取文件的内容。时间超级块是时间索引方式的检索入口,对应于时间索引项列表。时间索引项列表中包含多个时间索引项(TimeEntry),每个时间索引项对应一个文件。时间索引项至少包括所对应文件的修改时间和保存该文件的属性与存储地址的索引节点的编号。当用户通过修改时间进行检索时,将收到的请求检索文件的修改时间与时间索引项列表进行匹配,找到对应的时间索引项,即可获得请求检索文件对应的索引节点的编号,进而可以从该编号所表示的索引节点中获取文件的属性和存储地址,再从该存储地址的数据块中获取文件的内容。关键字超级块是关键字索引方式的检索入口,对应于关键字索引项列表。关键字索引项列表中包含多个关键字索引项(KeywordEntry),每个关键字索引项对应一个文件。关键字索引项至少包括所对应文件的关键字和保存该文件的属性与存储地址的索引节点的编号。当用户通过关键字进行检索时,将收到的请求检索文件的关键字与关键字索引项列表进行匹配,找到对应的关键字索引项,即可获得请求检索文件对应的索引节点的编号,进而可以从该编号所表示的索引节点中获取文件的属性和存储地址,再从该存储地址的数据块中获取文件的内容。大小超级块是大小索引方式的检索入口,对应于大小索引项列表。大小索引项列表中包含多个大小索引项(SizeEntry),每个大小索引项对应一个文件。大小索引项至少包括所对应文件的大小和保存该文件的属性与存储地址的索引节点的编号。当用户通过大小进行检索时,将收到的请求检索文件的大小与关键字索引项列表进行匹配,找到对应的大小索引项,即可获得请求检索文件对应的索引节点的编号,进而可以从该编号所表示的索引节点中获取文件的属性和存储地址,再从该存储地址的数据块中获取文件的内容。用户超级块是用户索引方式的检索入口,对应于用户索引项列表。用户索引项列表中包含多个用户索引项(SizeEntry),每个用户索引项对应一个文件。用户索引项至少包括所对应文件的用户和保存该文件的属性与存储地址的索引节点的编号。当用户通过用户进行检索时,将收到的请求检索文件的用户与关键字索引项列表进行匹配,找到对应的用户索引项,即可获得请求检索文件对应的索引节点的编号,进而可以从该编号所表示的索引节点中获取文件的属性和存储地址,再从该存储地址的数据块中获取文件的内容。需要说明的是,文件系统中的每个文件可以对应有多个属性索引项,但是仅对应有一个索引节点,即,对应于同一文件的所有的属性索引项对应相同的索引节点,该索引节点中保存该文件的所有属性信息和该文件的存储地址。请参考图3所示的文件系统的超级块区及索引节点区在文件卷中的布局,超级块组包含的所有超级块位于文件卷的开头部分的物理块中,其后是索引节点区。索引节点区包括了组描述信息(groupdescriptor)、数据块位图(blockbitmap)、索引节点位图(inodebitmap)和索引节点表(inodetable),inodetable保存有对应于每个超级块的属性索引项列表。每个属性索引项列表包含多个与每个文件对应的属性索引项。如表1所示,目录索引项列表中的每个目录索引项(Direntry,Dentry)包括以下部分索引节点编号(dnode)、记录长度(Recorderlength)、文件名长度(Namelength)、文件类型(Filetype)、文件名(name)等。表权利要求1.一种文件系统,其特征在于,包括超级块区、索引节点区以及数据块区;所述超级块区包括至少两个超级块作为文件的不同属性的检索入口;所述索引节点区包括与每个超级块对应的属性索引项列表,以及与数据块区存储的每个文件对应的索引节点,每个所述属性索引项列表保存一种文件属性与索引节点编号的对应关系,所述索引节点保存有文件的属性和存储地址,所述存储地址指向数据块区存放该文件的数据块。2.根据权利要求1所述的文件系统,其特征在于所述超级块区包括作为目录检索入口的目录超级块。3.根据权利要求2所述的文件系统,其特征在于所述超级块区还包括作为关键字检索入口的关键字超级块,作为大小检索入口的大小超级块,作为修改时间检索入口的时间超级块,以及作为用户检索入口的用户超级块中的一个或者多个超级块。4.根据权利要求3所述的文件系统,其特征在于所述属性索引项列表包括对应于目录超级块的目录索引项列表,还包括对应于关键字超级块的关键字索引项列表,对应于大小超级块的大小索引项列表,对应于时间超级块的时间索引项列表,以及对应于用户超级块的用户索引项列表中的一个或多个属性索引项列表。5.一种文件系统中检索文件的装置,其特征在于,所述文件系统为权利要求1至4中任一所述的文件系统,所述装置包括接收单元,用于接收文件检索请求,所述文件检索请求包含请求检索文件的属性;匹配单元,用于根据所述文件检索请求包含的请求检索文件的属性确定相应的超级块,将所述请求检索文件的属性与所述超级块对应的属性索引项列表进行匹配,获得对应的索引节点编号;获取单元,用于从所述索引节点编号表示的索引节点中获取所述请求检索文件的各种属性和存储地址,从所述存储地址表示的数据块中获取所述请求检索文件的内容。6.一种文件系统中写入文件的装置,其特征在于,所述文件系统为权利要求1至4中任一所述的文件系统,所述装置包括接收单元,用于接收文件写入请求;第一建立单元,用于通过所述目录超级块在对应的目录索引项列表中建立请求写入文件的目录索引项,所述目录索引项包括所述请求写入文件的目录与索引节点编号的对应关系;写入单元,用于将请求写入文件的属性写入所述索引节点编号表示的索引节点中,将请求写入文件的内容写入所述索引节点指向的数据块中;第二建立单元,用于通过对应于目录以外其它属性的属性超级块在相应的属性索引项列表中建立请求写入文件的各个属性索引项。7.一种文件系统中修改及删除文件的装置,其特征在于,所述文件系统为权利要求1至4中任一所述的文件系统,所述装置包括接收单元,用于接收文件修改请求或文件删除请求;第一修改单元,用于根据所述文件修改请求或文件删除请求修改或删除该文件对应的索引节点;第二修改单元,用于通过对应于该文件的各个属性的超级块在各个属性索引项列表中修改或删除所述文件的各个属性索引项。8.一种文件系统中检索文件的方法,其特征在于,所述文件系统为权利要求1至4中任一所述的文件系统,所述方法包括接收文件检索请求,所述文件检索请求包含请求检索文件的一种属性;根据所述文件检索请求包含的请求检索文件的属性确定相应的超级块,将所述请求检索文件的属性与所述超级块对应的属性索引项列表进行匹配,获得对应的索引节点编号;从所述索引节点编号表示的索引节点中获取所述请求检索文件的各种属性和存储地址,从所述存储地址表示的数据块中获取所述请求检索文件的内容。9.一种文件系统中写入文件的方法,其特征在于,所述文件系统为权利要求2至4中任一所述的文件系统,所述方法包括接收文件写入请求;通过所述目录超级块在对应的目录索引项列表中建立请求写入文件的目录索引项,所述目录索引项包括所述请求写入文件的目录与索引节点编号的对应关系;将请求写入文件的属性写入所述索引节点编号表示的索引节点中,将请求写入文件的内容写入所述索引节点指向的数据块中;通过对应于目录以外其它属性的属性超级块在相应的属性索引项列表中建立请求写入文件的各个属性索引项。10.一种文件系统中修改或删除文件的方法,其特征在于,所述文件系统为权利要求1至4中任一所述的文件系统,所述方法包括接收文件修改请求或文件删除请求;根据所述文件修改请求或文件删除请求修改或删除该文件对应的索引节点;通过对应于该文件的各个属性的超级块在各个属性索引项列表中修改或删除所述文件的各个索引项。全文摘要本发明实施例公开了一种文件系统,包括超级块区和索引节点区以及数据块区;超级块区包括至少两个超级块作为文件的不同属性的检索入口;索引节点区包括与每个超级块对应的属性索引项列表,以及与数据块区存储的每个文件对应的索引节点,每个属性索引项列表保存一种文件属性与索引节点编号的对应关系,索引节点保存有文件的属性和存储地址,存储地址指向数据块区存放该文件的数据块。本发明还提供该文件系统中检索、写入、修改或删除文件的方法与装置。本发明提供的文件系统,通过对应文件的不同属性的超级块和属性索引项列表提供了不同的检索方式,解决了现有技术中文件系统只能提供以文件名作为属性进行检索的单一的检索方式存在的问题。文档编号G06F17/30GK102184211SQ20111011258公开日2011年9月14日申请日期2011年5月3日优先权日2011年5月3日发明者程菊生申请人:成都市华为赛门铁克科技有限公司