CN103282899B - 文件系统中数据的存储方法、访问方法及装置 - Google Patents
文件系统中数据的存储方法、访问方法及装置 Download PDFInfo
- Publication number
- CN103282899B CN103282899B CN201180003263.2A CN201180003263A CN103282899B CN 103282899 B CN103282899 B CN 103282899B CN 201180003263 A CN201180003263 A CN 201180003263A CN 103282899 B CN103282899 B CN 103282899B
- Authority
- CN
- China
- Prior art keywords
- file
- directory
- node
- file system
- directory node
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Abstract
本发明提供一种文件系统中数据的存储方法、访问方法及装置。其中,文件系统对应的磁盘空间被划分为第一存储部分和第二存储部分,第一存储部分用于存储元数据文件,元数据文件存储有访问磁盘空间所需的所有路径信息;第二存储部分用于存储文件数据;在系统启动时,将元数据文件从磁盘空间读取到内存中,然后,文件系统基于内存中的元数据文件进行对磁盘空间进行存储和访问操作。由于元数据文件中存储有所有路径信息,故可以一次从元数据文件中找到目标节点或文件的存储位置,减少了在内存与磁盘空间之间的交互次数,大大提高访问效率。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种文件系统中数据的存储方法、访问方法及装置。
背景技术
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。而命名空间(Namespace)是文件系统中文件目录的组织方式,或者称之为文件系统中文件的逻辑组织方式,是文件系统的重要组成部分。命名空间从用户的角度出发,为用户提供了一种逻辑结构清晰、使用方便、可视化、可理解的逻辑文件形式。用户按照命名空间提供的组织形式对文件执行各种操作,而不用关心文件在存储设备上是如何放置的,从而解决或降低了人类与计算机之间在数据存储上的语义间隔。
目前,树状结构的文件目录组织方式与现实世界的组织结构最为相似,被人们所广泛接受。因此,绝大多数的文件系统在逻辑上均以树(Tree)方式来组织文件目录,包括各种磁盘文件系统,例如第x代扩展文件系统(xextendedfilesystem,EXTx)、日志文件系统(journalfilesystem,JFS)、Reiserfs(Reiserfilesystem)、ZFS(ZettabyteFileSystem)、B+树文件系统(B+treefilesystem,Btrfs)、NTFS(NewTechnologyFileSystem)、文档分配表(FileAllocationTable,FAT32)等;网络文件系统,例如网络文件系统(NetworkFileSystem,NFS)、AFS(AndrewFileSystem)、通用互联网文件系统(CommonInternetFileSystems,CIFS)等;集群文件系统,例如并行网络文件系统(parallelnetworkfilesystem,pNFS)、并行虚拟文件系统(parallelvirturalfilesystem,PVFS)、通用并行文件系统(GeneralParallelFileSystem,GPFS)等;分布式文件系统,例如谷歌文件系统(googlefilesystem,GoogleFS)、分布文件系统(HadoopDistributedFileSystem;hadoop,HDFS)、MFS(MooseFileSystem)、KFS(Kosmosdistributedfilesystem)、淘宝文件系统(taobaofilesystem,TaobaoFS)等。
尽管文件系统在逻辑上采用树状结构来组织文件目录,但在具体实现上是多层多级地在磁盘和内存中实现的,具体实现与文件系统的物理组织方式有关。文件系统的物理组织方式表示了文件系统中的文件在文件存储设备(物理上的)上的位置、连接和编目形式。目前,大部分文件系统具有类似的物理组织方式,该物理组织方式的中心概念是超级块(superblock)、索引节点(inode)、数据块(datablock)、目录项(dentry)等。其中,超级块用于存储文件系统的总体信息,比如文件系统的大小(该大小具体视文件系统而定);目录项用来记录当前目录下普通文件的名字和索引节点号,或记录当前目录的子目录的名字和索引节点号;索引节点用来记录文件系统中某一普通文件或目录的元数据信息,该元数据信息包括普通文件所在的数据块或该目录的下一级目录项所在的数据块;数据块用来放置普通文件真正的内容或存放某一目录的所有目录项。
图1为文件系统ext3的磁盘分布方式的示意图。如图1所示,文件系统ext3的物理存储空间(或称为分区)被分成了多个块组(blockgroup),每个块组由超级块、组描述符、数据块位图、索引节点位图、索引节点表、数据块等部分组成。其中,通过数据块位图可以快速查找到哪些数据块有内容哪些数据块是空块,数据块位图是文件系统磁盘分布中必不可少的一个部分。通过索引节点位图同样可以快速查找哪些索引节点是空闲的哪些索引节点有内容。索引节点表记录了索引节点号以及该索引节点号对应的文件或目录的元数据信息,包括文件或目录的属性和文件或目录所在的数据块等。数据块中记录的是真实的普通文件内容,或者是目录项即当前目录的下一级子目录的名称以及对应的索引节点。文件系统ext3通过索引节点表和数据块中记载的目录项,可以进行文件目录的查找和访问。
从整体上来讲,现有的文件系统的命名空间组织方式采用树状结构,而文件系统的物理空间组织方式是分级分布实现的。文件系统进行文件目录的查找和访问,即由命名空间到文件存储设备上的资源映射需要分两层:从路径(path)到索引节点(inode)以及从索引节点(inode)到数据块(block)。以访问家(home)/图片(picture)/花.jpg(flower.jpg)文件为例,现有文件系统需要从根目录出发,其中,文件系统中记录了根目录的索引节点。然后,文件系统需要访问磁盘空间,根据磁盘空间的物理组织方式得到根节点的索引节点指向的数据块,并从该数据块中得到根目录的下一级内容即目录项。接着,文件系统将home与得到的目录项进行查找匹配,找到home目录对应的索引节点。然后,文件系统再次去访问磁盘空间,根据磁盘空间的物理组织方式得到home的索引节点指向的数据块,并从该数据块中得到home目录的下一级内容,即目录项。接着,文件系统将picture与得到的目录项进行查找匹配,找到picture目录对应的索引节点。然后,文件系统再次去访问磁盘空间,根据磁盘空间的物理组织方式得到picture的索引节点指向的数据块,并从该数据块中得到picture目录的下一级内容,即目录项。接着,文件系统将flower.jpg与得到的目录项进行查找匹配,找到flower.jpg文件的索引节点。然后,文件系统再次访问磁盘空间,根据磁盘空间的物理组织方式得到flower.jpg文件的索引节点指向的数据块,然后去该数据块中获取flower.jpg文件。
由上述可见,现有文件系统通过命名空间访问文件或目录等数据时,操作复杂,需要在内存与磁盘空间之间进行多次交互才能完成,其访问或读取效率较低。
发明内容
本发明实施例提供一种文件系统中数据的存储方法、访问方法及装置,用以减少文件系统访问文件或目录等数据时在内存与磁盘空间之间的交互次数,提高访问效率。
本发明实施例一方面提供一种文件系统中数据的存储方法,文件系统对应的磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息;所述第二存储部分用于存储文件数据;所述文件系统在文件系统中数据的存储装置启动时,将所述元数据文件从所述磁盘空间读取到内存中,所述存储方法包括:
如果所述文件系统在第一目录节点下建立下一级目录节点,所述文件系统将所述下一级目录节点的目录元数据信息存储到内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向所述下一级目录节点的第一路径信息;所述下一级目录节点的目录元数据信息包括:所述下一级目录节点的属性信息;
如果所述文件系统在所述第一目录节点下存储文件,所述文件系统获取所述磁盘空间中空闲的数据块,将所述文件存储到所获取的数据块中,将所述文件的文件元数据信息存储到所述内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向所述文件的第二路径信息;所述文件的文件元数据信息包括:所述文件的属性信息和存储所述文件的数据块的标号;
所述文件系统按照预设周期,将所述内存中的元数据文件写入所述磁盘空间中。
本发明实施例一方面提供一种文件系统中数据的存储装置,包括:文件系统和与所述文件系统对应的磁盘空间;
所述磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息,所述第二存储部分用于存储文件数据;
所述文件系统包括:
第一初始读取模块,用于在所述文件系统中数据的存储装置启动时,将所述元数据文件从所述磁盘空间中读取到内存中;
第一存储模块,用于在所述文件系统在第一目录节点下建立下一级目录节点时,将所述下一级目录节点的目录元数据信息存储到内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向所述下一级目录节点的第一路径信息;所述下一级目录节点的目录元数据信息包括:所述下一级目录节点的属性信息;
第二存储模块,用于在所述文件系统在所述第一目录节点下存储文件时,获取所述磁盘空间中空闲的数据块,将所述文件存储到所获取的数据块中,将所述文件的文件元数据信息存储到所述内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的元数据信息中添加指向所述文件的第二路径信息;所述文件的文件元数据信息包括:所述文件的属性信息和存储所述文件的数据块的标号;
同步模块,用于按照预设周期,将所述内存中的元数据文件写入所述磁盘空间中。
本发明实施例另一方面提供一种文件系统中数据的访问方法,文件系统对应的磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息;所述第二存储部分用于存储文件数据;所述文件系统在文件系统中数据的访问装置启动时,将所述元数据文件从所述磁盘空间读取到内存中,所述访问方法包括:
如果所述文件系统要访问的数据为目标目录节点,所述文件系统从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,直到查找到所述目标目录节点或者查找失败;如果查找到所述目标目录节点,所述文件系统在所述目标目录节点的目录元数据信息中获取所述目标目录节点的属性信息;
如果所述文件系统要访问的数据为目标文件,所述文件系统从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,获取所述目标文件所在的最后一级目录节点,然后根据所述最后一级目录节点的目录元数据信息中指向其下文件的第二路径信息在所述最后一级目录节点下的文件的文件元数据信息中进行查找匹配,直到查找到所述目标文件或查找失败;如果查找到所述目标文件,所述文件系统从所述目标文件的文件元数据信息中获取所述磁盘空间中存储所述目标文件的数据块的标号,然后从所获取的数据块的标号所标识的所述磁盘空间的数据块中读取所述目标文件。
本发明实施例另一方面提供一种文件系统中数据的访问装置,包括:文件系统和与所述文件系统对应的磁盘空间;
所述磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息;所述第二存储部分用于存储文件数据;
所述文件系统包括:
第二初始读取模块,用于在所述文件系统中数据的访问装置启动时,将所述元数据文件从所述磁盘空间中读取到内存中;
第一访问模块,用于在所述文件系统对目标目录节点进行访问时,从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,直到查找到所述目标目录节点或查找失败,如果查找到所述目标目录节点,在所述目标目录节点的目录元数据信息中获取所述目标目录节点的属性信息;
第二访问模块,用于在所述文件系统对目标文件进行访问时,从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,获取所述目标文件所在的最后一级目录节点,然后根据所述最后一级目录节点的目录元数据信息中指向其下文件的第二路径信息在所述最后一级目录节点下的文件的文件元数据信息中进行查找匹配,直到查找到所述目标文件或查找失败,如果查找到所述目标文件,从所述目标文件的文件元数据信息中获取所述磁盘空间中存储所述目标文件的数据块的标号,然后从所获取的数据块的标号所标识的所述磁盘空间的数据块中读取所述目标文件。
本发明实施例提供的文件系统中数据的存储方法及装置,通过使用元数据文件存储访问磁盘空间的所有路径信息,并在系统启动时将元数据文件从磁盘空间中读取到内存中,在新建下一级目录节点或在某一目录节点下存储文件时,直接将要建立的下一级目录节点或要存储的文件的元数据信息存储到内存中的元数据文件中,并在上一级目录节点的元数据信息中添加指向下一级目录节点或所要存储的文件的路径信息,使用元数据文件对命名空间进行组织管理,使磁盘空间中仅划分出存储元数据文件的空间和存储文件的数据块即可,不再像现有技术那样将空间划分的比较散,提高了文件系统在磁盘空间中存储数据的效率,同时为提高文件系统访问磁盘空间中的数据的效率打下了基础。
本发明实施例提供的文件系统中数据的访问方法及装置,与本发明实施例提供的文件系统中数据的存储方法及装置相配合,文件系统只需在系统启动时将磁盘空间中的元数据文件读取到内存空间中,根据元数据文件中存储的各级目录节点和各级目录下的文件的元数据信息(即访问整个磁盘空间所需的路径信息)进行查找,通过内存中的元数据文件可以一次性找到目标文件或目标目录,减少了在内存与磁盘空间之间的交互次数,大大提高访问效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为文件系统ext3的磁盘分布方式的示意图;
图2A为本发明一实施例提供的元数据文件的一种树状结构示意图;
图2B为本发明一实施例提供的元数据文件的另一种树状结构示意图;
图3为本发明一实施例提供的文件系统中数据的存储装置的结构示意图;
图4为本发明一实施例提供的文件系统中数据的访问装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中存在的文件系统通过命名空间访问磁盘空间中的数据效率较低的问题,本发明实施例提供一种能够直接由命名空间映射到磁盘空间的元数据组织方式,用以提高文件系统存储和访问数据时的效率。在本发明实施例中,文件系统的命名空间在具体实现上通过磁盘空间中的一个元数据文件实现。其中,本发明各实施例采用一种变种trie的数据结构来组织管理元数据文件(即元数据文件中各级目录节点构成树状结构),通过元数据文件可以一次性找到目标文件或目标目录,大大提高查找效率。
基于上述的元数据文件,本发明实施例提供一种文件系统中数据的存储方法。在该存储方法中,文件系统通过元数据文件对命名空间中的文件目录进行管理。本发明实施例的执行主体是文件系统中数据的存储装置,该装置包括文件系统和与文件系统对应的磁盘空间;磁盘空间被划分为第一存储部分和第二存储部分,第一存储部分用于存储元数据文件,元数据文件存储有访问整个磁盘空间所需的所有路径信息;第二存储部分用于存储文件数据。在文件系统中数据的存储装置启动(或者说系统启动)时,文件系统将元数据文件从磁盘空间中读取到内存中。后续所创建的各个目录以及各个目录下的文件都通过内存中的元数据文件进行管理。本发明实施例提供存储方法包括:文件系统在某个目录下建立新目录(即下一级目录)并存储新建目录的有关信息的存储操作和文件系统在某个目录下创建并存储文件的存储操作。
首先,文件系统会创建一个根目录节点,并将根目录节点的属性信息存储到内存中的元数据文件中。然后,文件系统会以根目录节点为基础,进行创建和存储新目录节点和/或文件的操作。
其中,如果文件系统在第一目录节点下建立下一级目录节点,文件系统将下一级目录节点的目录元数据信息存储到内存中的元数据文件中,并在第一目录节点的目录元数据信息中添加指向下一级目录节点的第一路径信息。所述下一级目录节点的目录元数据信息包括:下一级目录节点的属性信息。
其中,第一目录节点可以是文件系统的命名空间中已经存在的任一目录节点,例如可以是根目录节点、可以是根目录节点的第一级子目录节点、还可以是第一级子目录节点的下一级子目录节点等。本实施例以在任一目录节点下创建新目录节点(即下一级目录节点)为例。
文件系统预先可以确定所要创建的是目录还是文件。当确定要在第一目录节点下创建下一级目录节点时,文件系统将所要创建的下一级目录节点的目录元数据信息存储到内存中的元数据文件中,以实现通过元数据文件对每个目录节点进行管理。同时,文件系统在内存中的元数据文件中存储第一目录节点到其下一级目录节点之间的路径信息,即所述的在第一目录节点的目录元数据信息中存储指向其下一级目录节点的路径信息,这样通过第一目录节点就可以找到其下一级目录节点。其中,目录节点的属性信息可以包括:目录节点的目录名、类型、大小和创建时间其中之一或其任意组合。其中,目录节点的大小一般为4096个字节。
也就是说,如果文件系统的命名空间中的目录节点存在下一级目录节点,则在内存中的元数据文件中所存储的该目录节点的目录元数据信息中不仅包括该目录节点的属性信息,还包括该目录节点指向其下一级目录节点的路径信息。其中,元数据文件的这种结构可以看作是一种变种的trie,每个目录节点可以对应一个trie节点,每个目录节点的目录元数据信息可以作为相应trie节点的内容。本实施例的变种trie与标准trie的区别在于,标准trie的每个节点所存储的是一个字符,而本实施例的变种trie的每个节点所存储的是字符串。此处的字符串主要是指每个目录节点的属性信息和指向其下一级目录节点的路径信息等。其中,对于没有下一级目录节点的目录节点,其对应的字符串主要是指该目录节点的属性信息。
如果文件系统要在第一目录节点下存储文件,文件系统获取磁盘空间中空闲的数据块,将该文件存储到所获取的数据块中,将文件的文件元数据信息存储到内存中的元数据文件中,并在内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向该文件的第二路径信息。其中,该文件的文件元数据信息包括该文件的属性信息和磁盘空间中存储该文件的数据块的标号。
在本实施例中,文件系统对应的磁盘空间主要被划分为两大部分,一部分用于存放元数据文件,另一部分用于存放各个文件的数据。其中,存储文件的部分又被划分为多个数据块。为了使内存中的元数据文件与磁盘空间中的元数据文件保持同步,文件系统还会按照预设周期,将内存中的文件元数据信息存储到磁盘空间中。本发明各实施例对预设周期的具体数值不做限定,例如该周期可以是10分钟,还可以以一次开关机为周期(也就是说在关机之前进行一次同步,以便于在文件系统中数据的存储装置重新启动时,文件系统能够从磁盘空间中读取到最新的元数据文件)。
当文件系统在某个目录下创建文件时,就需要将所创建的文件存储到磁盘空间中。因此,文件系统就会查询磁盘空间获取磁盘空间中空闲的且能够存储该文件的数据块,然后将该文件存储到获取的数据块中。然后,文件系统将该文件的文件元数据信息存储到内存中的元数据文件中,以通过元数据文件对文件系统的命名空间中的文件进行管理。其中,文件元数据信息主要包括文件的属性信息和磁盘空间中存储该文件的数据块的标号。其中,文件的属性信息可以包括:文件的文件名、类型、大小和创建时间等其中之一或其任意组合。例如,文件的文件名可以是picture.jpg、论文.doc等;文件的类型可以是普通文件、符号链接、套接字等通过文件的属性信息可以了解到文件的相关信息,通过磁盘空间中存储该文件的数据块的标号可以知道文件在磁盘空间中的存储位置,以便于从磁盘空间中读取或访问该文件。
在本实施例中,元数据文件中每个文件也可以对应一个trie节点,每个文件的文件元数据信息为相应trie节点的内容。此处的trie节点与标准trie的节点相比,所存储的是字符串。此处的字符串主要是指每个文件的属性信息和磁盘空间中存储文件的数据块的标号等。
进一步,文件系统还需要将该文件直接建立在哪个目录节点下等信息存储到元数据文件中,即在文件所直属的目录节点的目录元数据信息中添加该目录节点指向该文件的第二路径信息,以便于通过遍历目录节点找到该文件。
也就是说,如果某个目录节点下存在文件,该目录节点的目录元数据信息中不仅包括该目录节点的属性信息,还包括该目录节点指向其下文件的第二路径信息。
进一步,如果某个目录节点下既存在文件又存在下一级目录节点,则该目录节点的目录元数据信息中将包括目录节点的属性信息、该目录节点指向其下文件的第二路径信息和指向其下一级目录节点的第一路径信息。
更进一步,本实施例的目录节点还可以为空,即该目录节点下既没有文件又没有下一级目录节点,则其目录元数据信息将只包括该目录节点的属性信息。
由上述可见,本实施例的文件系统中数据的存储装置在启动时,文件系统将元数据文件从磁盘空间中读取到内存,在存储文件或新建目录节点时通过对内存中的元数据文件进行操作,以使元数据文件中存储有各级目录节点以及目录节点与其下各文件之间的路径信息,然后按照预设周期对磁盘空间中的元数据文件进行同步。由于本实施例的元数据文件是一种变种trie结构,每个trie节点可能存储有目录节点的属性信息、目录节点指向其下文件或下一级目录节点的路径信息、文件的属性信息或存储文件的数据块的标号等信息,通过元数据文件对文件系统的命名空间进行管理,将命名空间与一个整体数据结构相对应,一方面便于文件系统进行数据存储,提高了存储效率,另一方面在查找时能够通过一次读取磁盘空间就找到目标目录或目标文件的存储位置,减少了内存与磁盘空间之间的交互次数,提高了文件系统访问磁盘空间的效率。
为进一步说明本发明实施例提供的文件系统中数据的存储方法的流程,下面将以存储根目录/home/picture/flower.jpg文件为例进行说明。
在文件系统中数据的存储装置(或称为系统)启动时,文件系统将元数据文件从磁盘空间中读取到内存中,然后在文件的存储或目录的建立过程中,对内存中的元数据文件进行操作。
在本实施例中,假设从磁盘空间读取到内存中的元数据文件中已经存在根目录。基于此,文件系统在内存中的元数据文件的根目录下建立home目录,并将home目录的目录元数据信息存储到内存中的元数据文件中。举例说明,文件系统将home目录的目录名home、创建时间等存储到内存中的元数据文件(或者说存储到变种trie的数据结构)中。接着,文件系统在home目录下建立picture目录,将picture目录的目录元数据信息存储到内存中的元数据文件中,并在home目录的目录元数据信息添加指向picture目录的路径信息。其中,该路径信息可以包括:picture目录的目录名和指向picture目录的指针,这样既可以标识出home目录的下一级目录是谁,又可以找到其下一级目录。再接着,文件系统在picture目录下建立flower.jpg文件,将flower.jpg文件的文件元数据信息存储到内存中的元数据文件中,并在picture目录的目录元数据信息中添加指向flower.jpg文件的路径信息。其中,该路径信息可以包括:flower.jpg文件的文件名和指向flower.jpg文件的指针,这样既可以标识出picture目录的下有哪个文件,又可以找到其下的文件。
经过上述操作后,内存中的元数据文件中存储的信息可以表示为图2A所示的一种树状结构。假设,此时预先设定的周期到达,则文件系统将图2A所示的元数据文件写入磁盘空间的第一存储部分中。
进一步,假设文件系统还要在根目录节点下建立配置(config)文件,则文件系统将config文件的文件元数据信息存储到内存中的元数据文件中,并在根目录节点的目录元数据信息中添加指向config文件的路径信息。进一步,假设文件系统还要在home目录下建立视频(Video)目录,则文件系统将Video目录的目录元数据信息存储到内存中的元数据文件中,并在home目录的目录元数据信息中添加指向Video目录的路径信息。更进一步,假设文件系统还在picture目录下建立了今天(today)目录,并在today目录下建立了太阳.bmp(sun.bmp)文件。经过上述操作后,内存中的元数据文件中存储的信息可以表示为图2B所示的一种树状结构。
其中,在图2A和图2B中,圆圈表示非空目录节点(即该目录节点下或者存在下一级目录节点或者存在文件或者同时存在文件和下一级目录节点)。三角表示空目录节点(即该目录节点下既没有文件也没有下一级目录节点)。方框表示文件节点。
更进一步,当预先设定的周期再次到达时,文件系统将内存中的元数据文件写入磁盘空间中,这样磁盘空间中的元数据文件就会与内存中的元数据文件保持一致。
在图2A和图2B所示的变种trie与标准trie相比,主要存在以下区别:标准的trie每个节点存的是一个字符,而本实施例的变种trie每个节点存放的是字符串,例如目录名、文件名、路径信息等。不同于标准trie,本实施例的变种trie的所有节点能记载信息。
综上所述,文件系统的命名空间的路径对应于本实施例的变种trie结构即为从根节点开始,经过一个或多个中间节点,到达某个叶子节点的一条路径。本实施例的变种trie和文件系统本身目录树状结构一致,能保留路径完整语义。本实施例的变种trie中非叶子节点只记录目录节点的目录元数据信息,无需记录目录节点与数据块标号的对应关系,因为在变种trie结构下,目录节点的下一级目录节点不会存储在某个数据块中,而是直接通过变种trie本身的结构来维持目录节点之间的关系。本实施例的变种trie中叶子节点记录了普通文件的文件元数据信息和对应的数据块标号,查询到叶子节点,也就得到了存储文件的数据块标号,相当于得到了文件的内容。本实施例的变种trie的每个叶子节点不仅可以对应文件系统的文件还可以对应空目录,可记录空目录的目录元数据信息。该数据结构设计本身可以支持建立空目录,支持读取目录的属性信息,支持对目录下一级的遍历等,和文件系统目录的操作可以一一对应,为文件系统访问磁盘空间打下了基础。
进一步,在上述各实施例中,文件系统可以以线性表、二叉树或哈希(hash)方式,在内存中的元数据文件中对各级目录节点和/或各级目录节点与其下文件节点进行组织和存储管理。
本发明一实施例提供一种文件系统中数据的访问方法,该访问方法基于上述实施例提供的文件系统中数据的存储方法实现。在本实施例中,文件系统中数据的访问装置也包括文件系统和与文件系统对应的磁盘空间。磁盘空间被划分为第一存储部分和第二存储部分,第一存储部分用于存储元数据文件,元数据文件保存有访问磁盘空间所需的所有路径信息。如上述存储方法实施例所描述的,该元数据文件存储有各级目录节点的目录元数据信息和磁盘空间中存储的文件的文件元数据信息,该文件元数据信息包括文件的属性信息和磁盘空间中存储该文件的数据块的标号,各级目录节点的目录元数据信息包括目录节点的属性信息。如果目录节点存在下一级目录节点,该目录元数据信息还包括指向其下一级目录节点的第一路径信息;如果目录节点下存在文件,该目录元数据信息还包括指向其下文件的第二路径信息。第二存储部分用于存储文件数据。在文件系统中数据的访问装置开机时,文件系统将元数据文件从磁盘空间中读取到内存,然后基于内存中的元数据文件中的路径信息对磁盘空间进行访问。其中,本实施例的访问方法包括:文件系统访问某个目录节点的属性信息的操作和文件系统访问磁盘存储空间中存储的某个文件的操作。
较为优选的一种实现方式为:元数据文件中各级目录节点构成树状结构。
由于本实施例通过元数据文件对所有路径信息进行管理,无论文件系统执行哪一种访问操作,都可以基于内存中的元数据文件。
如果文件系统要访问的数据是目录节点(为示区别,记为目标目录节点),则文件系统从内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,直到查找到目标目录节点或查找失败。
如果文件系统在内存中的元数据文件中查找到目标目录节点,则文件系统从目标目录节点的目录元数据信息中读取目标目录节点的属性信息,实现对目标目录节点的读取或访问。由此可见,通过元数据文件对所有路径信息进行整体管理,使得文件系统在访问目录节点时只需要在内存与磁盘空间之间交互一次(即在文件系统中数据的访问装置启动时文件系统将元数据文件从磁盘空间读取到内存中的操作)即可完成访问,减少了内存与磁盘空间之间的交互次数,提高了访问效率。
进一步,如果文件系统要访问的数据为一文件(为示区别,记为目标文件),则文件系统从内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,获取该目标文件所在的最后一级目录节点,然后根据最后一级目录节点的目录元数据信息中指向其下文件的第二路径信息在最后一级目录节点下的文件的文件元素数据信息中进行查找匹配,直到查找到目标文件或查找失败。
如果文件系统从内存中的元数据文件中找到目标文件,文件系统从目标文件的文件元数据信息中获取磁盘空间中存储目标文件的数据块的标号,然后文件系统从所获取的数据块的标号所标识的磁盘空间的数据块中读取目标文件。即在获取到目标文件所在数据块的标号后,文件系统去磁盘空间中相应数据块中读取目标文件,将目标文件读取到内存中。
其中,各级目录节点的属性信息包括:各级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合。文件的属性信息包括:所述文件的文件名、类型、大小和创建时间其中之一或其任意组合。
进一步,结合文件系统对元数据文件中各级目录节点以及文件节点的组织管理方式,文件系统可以使用线性表、二叉树或hash方式在各级目录节点的目录元数据信息中和在目标文件所在的最后一级目录节点下的文件的文件元数据信息中进行查找匹配。
本实施例提供的文件系统中数据的访问方法,上述实施例提供的文件系统中数据的存储方法相配合,通过使用元数据文件这种存储结构,将文件系统的命名空间与整个数据结构相对应,文件系统在文件系统中数据的访问装置启动时从磁盘空间中读取元数据文件到内存,基于内存中的元数据文件使得命名空间的解析直接由路径到数据块,不再是由路径到索引节点再到数据块的过程,变多次查找磁盘空间为一次映射,减少了文件系统在内存与磁盘空间之间的交互次数,提高了查找或访问磁盘空间的效率。
下面以在图2B所示元数据文件结构中查找home/picture/flower.jpg文件为例,说明本发明实施例提供的文件访问方法的流程。
在本实施例中,假设文件系统在向下一级查找时使用hash算法。该文件访问的流程具体如下:
步骤1、文件系统在文件系统中数据的访问装置启动时从磁盘空间中读取元数据文件到内存中。
步骤2、文件系统从内存中的元数据文件的根目录节点开始,通过hash方式找到根目录节点的下一级目录节点home目录。
步骤3、文件系统继续通过hash方式找到home目录节点的下一级目录节点,即picture目录。
步骤4、文件系统继续通过hash方式找到picture目录节点下的flower.jpg文件。
步骤5、文件系统从flower.jpg文件的文件元数据信息中获取磁盘空间中存储flower.jpg文件的数据块标号。
在上述步骤2-步骤5中,文件系统一直在内存中的元数据文件中进行查找,没有与磁盘空间发生交互,并且通过一次查找即可找到目标文件在磁盘空间中的存储位置。
步骤6、文件系统根据获取的数据块标号,从磁盘空间中相应数据块中读取flower.jpg文件。
进一步,假设文件系统要在图2B所示元数据文件结构中继续查找home/picture/today目录,则该目录访问方法的流程具体如下:
步骤a、文件系统从内存中的元数据文件的根目录节点开始,通过hash方式找到根目录节点的下一级目录节点home目录。
步骤b、文件系统继续通过hash方式找到home目录节点的下一级目录节点picture目录。
步骤c、文件系统继续通过hash方式找到picture目录节点的下一级目录节点today目录。
步骤d、文件系统从today目录的目录元数据信息中获取today目录的属性信息。
其中,元数据文件是文件系统在文件系统中数据的访问装置启动时从磁盘空间读取到内存中的,故在后续访问过程中直接使用内存中的元数据文件。在上述步骤a-步骤d中,文件系统也是在内存中的元数据文件进行查找,没有与磁盘空间发生交互,并且一次查找即可找到目标目录节点。
由上述文件和目录的访问流程可见,本实施例通过元数据文件对文件系统的命名空间进行组织管理,使得文件系统在元数据文件中一次即可找到目录节点的属性信息或找到文件在磁盘空间中的存储位置,不需要在内存与磁盘空间之间反复多次进行交互,提高了查找效率。
综上所述,本发明实施例提供的文件系统中数据的存储方法与本发明实施例提供的文件系统中数据的访问方法相互配合,能够产生以下有益效果:1、对文件系统的命名空间的管理使用元数据文件这样一个整体的内存数据结构,避免了在内存与磁盘空间之间进行多次交互,整体性好,性能优,效率高。2、元数据文件这种数据结构简单,并且和文件系统本身的目录树状结构一致,能保留路径完整语义。3、通过元数据文件这种数据结构,使得命名空间的解析过程由path到inode再到block过程简化为直接由path到block的过程,变多次查找为一次映射,可以高效完成文件或目录的查找。4、使用元数据文件对命名空间进行组织,能够很好并简单地支持文件系统的目录操作。
图3为本发明一实施例提供的文件系统中数据的存储装置的结构示意图。如图3所示,本实施例的装置包括:文件系统31和与文件系统31对应的磁盘空间32。
本实施例的磁盘空间32被划分为第一存储部分和第二存储部分,第一存储部分用于存储元数据文件,所述元数据文件存储有访问磁盘空间32所需的所有路径信息,所述第二存储部分用于存储文件数据。
本实施例的文件系统31包括:第一初始读取模块311、第一存储模块312、第二存储模块313和同步模块314。
其中,第一初始读取模块311,与磁盘空间32连接,用于在文件系统中数据的存储装置启动时,将元数据文件从磁盘空间32中读取到内存中。
第一存储模块312,与第一初始读取模块311连接,用于在文件系统在第一目录节点下建立下一级目录节点时,将下一级目录节点的目录元数据信息存储到第一初始读取模块311读取到内存中的元数据文件中,并在内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向下一级目录节点的第一路径信息;所述下一级目录节点的目录元数据信息包括:下一级目录节点的属性信息。下一级目录节点的属性信息包括:所述下一级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合。
第二存储模块313,与第一初始读取模块311和磁盘空间32连接,用于在文件系统在第一目录节点下存储文件时,获取磁盘空间32中空闲的数据块,将文件存储到所获取的数据块中,将文件的文件元数据信息存储到第一初始读取模块311读取到内存中的元数据文件中,并在内存中的元数据文件中的第一目录节点的元数据信息中添加指向文件的第二路径信息;所述文件的文件元数据信息包括:文件的属性信息和存储文件的数据块的标号。文件的属性信息包括:所述文件的文件名、类型、大小和创建时间其中之一或其任意组合。
同步模块314,与磁盘空间32连接,用于按照预设周期,将内存中的元数据文件写入磁盘空间32中。更为具体的,同步模块314按照预设周期将内存中的元数据文件写入磁盘空间的第一存储部分中。
其中,元数据文件中各级目录节点可以构成一种树状结构,即整个元数据文件可以通过树状结构进行管理。而对于各级目录节点之间以及目录节点与文件之间可以采用线性表、二叉树或hash方式进行组织管理。
具体的,第一存储模块312可以以线性表、二叉树或hash方式,在内存中的元数据文件中对第一目录节点的目录元数据信息和下一级目录节点的目录元数据信息进行组织存储。
第二存储模块313可以以线性表、二叉树或hash方式,在内存中的元数据文件中对第一目录节点的目录元数据信息和文件的文件元数据信息进行组织存储。
本实施例的文件系统中数据的存储装置的各功能模块可用于执行本发明提供的文件系统中数据的存储方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的文件系统中数据的存储装置,通过使用元数据文件存储访问磁盘空间的所有路径信息,并在系统启动时将元数据文件从磁盘空间中读取到内存中,在新建下一级目录节点或在某一目录节点下存储文件时,直接将要建立的下一级目录节点或要存储的文件的元数据信息存储到内存中的元数据文件中,并在上一级目录节点的元数据信息中添加指向下一级目录节点或所要存储的文件的路径信息,使用元数据文件对命名空间进行组织管理,使磁盘空间中仅划分出存储元数据文件的空间和存储文件的数据块即可,不再像现有技术那样将空间划分的比较散,提高了文件系统在磁盘空间中存储数据的效率,同时为提高文件系统访问磁盘空间中的数据的效率打下了基础。
图4为本发明一实施例提供的文件系统中数据的访问装置的结构示意图。如图4所示,本实施例的装置包括:文件系统41和与文件系统41对应的磁盘空间42。
本实施例的磁盘空间42被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问磁盘空间32所需的所有路径信息;所述第二存储部分用于存储文件数据。
本实施例的文件系统41包括:第二初始读取模块411、第一访问模块412和第二访问模块413。
其中,第二初始读取模块411,与磁盘空间42连接,用于在文件系统中数据的访问装置启动时,将元数据文件从磁盘空间42中读取到内存中。
第一访问模块412,与第二初始读取模块411连接,用于在文件系统对目标目录节点进行访问时,从第二初始读取模块411读取到内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,直到查找到目标目录节点或查找失败,如果查找到目标目录节点,在目标目录节点的目录元数据信息中获取目标目录节点的属性信息。
其中,各级目录节点的属性信息包括:各级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合。
第二访问模块413,与第二初始读取模块411和磁盘空间42连接,用于在文件系统对目标文件进行访问时,从第二初始读取模块411读取到内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,获取目标文件所在的最后一级目录节点,然后根据最后一级目录节点的目录元数据信息中指向其下文件的第二路径信息在最后一级目录节点下的文件的文件元数据信息中进行查找匹配,直到查找到目标文件或查找失败,如果查找述目标文件,从目标文件的文件元数据信息中获取磁盘空间42中存储目标文件的数据块的标号,然后从所获取的数据块的标号所标识的磁盘空间42的数据块中读取目标文件。
其中,文件的属性信息包括:文件的文件名、类型、大小和创建时间其中之一或其任意组合。
较为优选的,本实施例的元数据文件从整体上采用树状结构进行管理,也就是说,元数据文件中的各级目录节点构成树状结构。
其中,如果元数据文件中各级目录节点之间以及目录节点与文件之间使用线性表、二叉树或hash方式进行组织管理,则第一访问模块412具体可以以线性表、二叉树或hash方式在各级目录节点的目录元数据信息中进行查找匹配。第二访问模块413具体可以以线性表、二叉树或hash方式在各级目录节点的目录元数据信息中以及在目标文件所在的最后一级目录节点下的文件的文件元数据信息中进行查找匹配。
本实施例的文件系统中数据的访问装置的各功能模块可用于执行本发明实施例提供的文件系统中数据的访问方法的流程,其具体工作原理不再赘述。
本实施例的文件系统中数据的访问装置,与上述实施例提供的文件系统中数据的存储装置相配合,文件系统只需在系统启动时将磁盘空间中的元数据文件读取到内存空间中,根据元数据文件中存储的各级目录节点和各级目录下的文件的元数据信息(即访问整个磁盘空间所需的路径信息)进行查找,通过内存中的元数据文件可以一次性找到目标文件或目标目录,减少了在内存与磁盘空间之间的交互次数,大大提高访问效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种文件系统中数据的存储方法,其特征在于,文件系统对应的磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息;所述第二存储部分用于存储文件数据;所述文件系统中数据的存储装置启动时,将所述元数据文件从所述磁盘空间读取到内存中,所述存储方法包括:
如果所述文件系统在第一目录节点下建立下一级目录节点,所述文件系统将所述下一级目录节点的目录元数据信息存储到内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向所述下一级目录节点的第一路径信息;所述下一级目录节点的目录元数据信息包括:所述下一级目录节点的属性信息;
如果所述文件系统在所述第一目录节点下存储文件,所述文件系统获取所述磁盘空间中空闲的数据块,将所述文件存储到所获取的数据块中,将所述文件的文件元数据信息存储到所述内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向所述文件的第二路径信息;所述文件的文件元数据信息包括:所述文件的属性信息和存储所述文件的数据块的标号;
所述文件系统按照预设周期,将所述内存中的元数据文件写入所述磁盘空间中。
2.根据权利要求1所述的文件系统中数据的存储方法,其特征在于,所述元数据文件中各级目录节点构成一种树状结构。
3.根据权利要求1所述的文件系统中数据的存储方法,其特征在于,所述文件系统以线性表、二叉树或哈希方式,在所述内存中的元数据文件中对所述第一目录节点的目录元数据信息、所述下一级目录节点的目录元数据信息和所述文件的文件元数据信息进行组织存储。
4.根据权利要求1或2或3所述的文件系统中数据的存储方法,其特征在于,所述下一级目录节点的属性信息包括:所述下一级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合;
所述文件的属性信息包括:所述文件的文件名、类型、大小和创建时间其中之一或其任意组合。
5.一种文件系统中数据的访问方法,其特征在于,文件系统对应的磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息;所述第二存储部分用于存储文件数据;所述文件系统中数据的访问装置启动时,将所述元数据文件从所述磁盘空间读取到内存中,所述访问方法包括:
如果所述文件系统要访问的数据为目标目录节点,所述文件系统从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,直到查找到所述目标目录节点或者查找失败;如果查找到所述目标目录节点,所述文件系统在所述目标目录节点的目录元数据信息中获取所述目标目录节点的属性信息;
如果所述文件系统要访问的数据为目标文件,所述文件系统从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,获取所述目标文件所在的最后一级目录节点,然后根据所述最后一级目录节点的目录元数据信息中指向其下文件的第二路径信息在所述最后一级目录节点下的文件的文件元数据信息中进行查找匹配,直到查找到所述目标文件或查找失败;如果查找到所述目标文件,所述文件系统从所述目标文件的文件元数据信息中获取所述磁盘空间中存储所述目标文件的数据块的标号,然后从所获取的数据块的标号所标识的所述磁盘空间的数据块中读取所述目标文件。
6.根据权利要求5所述的文件系统中数据的访问方法,其特征在于,所述元数据文件中各级目录节点构成一种树状结构。
7.根据权利要求5所述的文件系统中数据的访问方法,其特征在于,所述文件系统以线性表、二叉树或哈希方式在各级目录节点的目录元数据信息中和在所述最后一级目录节点下的文件的文件元数据信息中进行查找匹配。
8.根据权利要求5或6或7所述的文件系统中数据的访问方法,其特征在于,所述各级目录节点的属性信息包括:所述各级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合;
所述文件的属性信息包括:所述文件的文件名、类型、大小和创建时间其中之一或其任意组合。
9.一种文件系统中数据的存储装置,其特征在于,包括:文件系统和与所述文件系统对应的磁盘空间;
所述磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息,所述第二存储部分用于存储文件数据;
所述文件系统包括:
第一初始读取模块,用于在所述文件系统中数据的存储装置启动时,将所述元数据文件从所述磁盘空间中读取到内存中;
第一存储模块,用于在所述文件系统在第一目录节点下建立下一级目录节点时,将所述下一级目录节点的目录元数据信息存储到内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的目录元数据信息中添加指向所述下一级目录节点的第一路径信息;所述下一级目录节点的目录元数据信息包括:所述下一级目录节点的属性信息;
第二存储模块,用于在所述文件系统在所述第一目录节点下存储文件时,获取所述磁盘空间中空闲的数据块,将所述文件存储到所获取的数据块中,将所述文件的文件元数据信息存储到所述内存中的元数据文件中,并在所述内存中的元数据文件中的第一目录节点的元数据信息中添加指向所述文件的第二路径信息;所述文件的文件元数据信息包括:所述文件的属性信息和存储所述文件的数据块的标号;
同步模块,用于按照预设周期,将所述内存中的元数据文件写入所述磁盘空间中。
10.根据权利要求9所述的文件系统中数据的存储装置,其特征在于,所述元数据文件中各级目录节点构成一种树状结构。
11.根据权利要求9所述的文件系统中数据的存储装置,其特征在于,所述第一存储模块以线性表、二叉树或哈希方式,在所述内存中的元数据文件中对所述第一目录节点的目录元数据信息和所述下一级目录节点的目录元数据信息进行组织存储;
所述第二存储模块以线性表、二叉树或哈希方式,在所述内存中的元数据文件中对所述第一目录节点的目录元数据信息和所述文件的文件元数据信息进行组织存储。
12.根据权利要求9或10或11所述的文件系统中数据的存储装置,其特征在于,所述下一级目录节点的属性信息包括:所述下一级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合;
所述文件的属性信息包括:所述文件的文件名、类型、大小和创建时间其中之一或其任意组合。
13.一种文件系统中数据的访问装置,其特征在于,包括:文件系统和与所述文件系统对应的磁盘空间;
所述磁盘空间被划分为第一存储部分和第二存储部分,所述第一存储部分用于存储元数据文件,所述元数据文件存储有访问所述磁盘空间所需的所有路径信息;所述第二存储部分用于存储文件数据;
所述文件系统包括:
第二初始读取模块,用于在所述文件系统中数据的访问装置启动时,将所述元数据文件从所述磁盘空间中读取到内存中;
第一访问模块,用于在所述文件系统对目标目录节点进行访问时,从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,直到查找到所述目标目录节点或查找失败,如果查找到所述目标目录节点,在所述目标目录节点的目录元数据信息中获取所述目标目录节点的属性信息;
第二访问模块,用于在所述文件系统对目标文件进行访问时,从所述内存中的元数据文件中的根目录节点开始,根据各级目录节点的目录元数据信息中指向下一级目录节点的第一路径信息在各级目录节点的目录元数据信息中进行查找匹配,获取所述目标文件所在的最后一级目录节点,然后根据所述最后一级目录节点的目录元数据信息中指向其下文件的第二路径信息在所述最后一级目录节点下的文件的文件元数据信息中进行查找匹配,直到查找到所述目标文件或查找失败,如果查找到所述目标文件,从所述目标文件的文件元数据信息中获取所述磁盘空间中存储所述目标文件的数据块的标号,然后从所获取的数据块的标号所标识的所述磁盘空间的数据块中读取所述目标文件。
14.根据权利要求13所述的文件系统中数据的访问装置,其特征在于,所述元数据文件中各级目录节点构成一种树状结构。
15.根据权利要求13所述的文件系统中数据的访问装置,其特征在于,所述第一访问模块具体以线性表、二叉树或哈希方式在各级目录节点的目录元数据信息中进行查找匹配;
所述第二访问模块具体以线性表、二叉树或哈希方式在各级目录节点的目录元数据信息中和所述最后一级目录节点下的文件的文件元数据信息中进行查找匹配。
16.根据权利要求13或14或15所述的文件系统中数据的访问装置,其特征在于,所述各级目录节点的属性信息包括:所述各级目录节点的目录名、类型、大小和创建时间其中之一或其任意组合;
所述文件的属性信息包括:所述文件的文件名、类型、大小和创建时间其中之一或其任意组合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/084551 WO2013091244A1 (zh) | 2011-12-23 | 2011-12-23 | 文件系统中数据的存储方法、访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103282899A CN103282899A (zh) | 2013-09-04 |
CN103282899B true CN103282899B (zh) | 2016-06-15 |
Family
ID=48667689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180003263.2A Active CN103282899B (zh) | 2011-12-23 | 2011-12-23 | 文件系统中数据的存储方法、访问方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103282899B (zh) |
WO (1) | WO2013091244A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461911A (zh) * | 2014-07-14 | 2015-03-25 | 北京君正集成电路股份有限公司 | 一种数据存储方式及装置 |
CN104881257A (zh) * | 2015-06-09 | 2015-09-02 | 北京世纪铭辰科技有限公司 | 一种海量数据的实时存储系统和方法 |
CN106951521B (zh) * | 2017-03-20 | 2020-09-15 | Oppo广东移动通信有限公司 | 日志文件的读写方法、装置及系统 |
CN111566622B (zh) * | 2018-07-06 | 2023-11-10 | 华为技术有限公司 | 一种文件系统调整方法及设备 |
CN110555001B (zh) * | 2019-09-05 | 2021-05-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN111008195A (zh) * | 2019-10-31 | 2020-04-14 | 苏州浪潮智能科技有限公司 | 一种数据库空闲空间管理方法、系统、终端及存储介质 |
CN113127415B (zh) * | 2019-12-31 | 2024-02-27 | 浙江宇视科技有限公司 | 实时流文件的处理方法、装置、介质及电子设备 |
CN111400101B (zh) * | 2020-03-18 | 2021-06-01 | 北京北亚宸星科技有限公司 | 一种jfs2文件系统数据删除时的数据恢复方法及系统 |
CN111427862B (zh) * | 2020-03-19 | 2022-11-04 | 国电南瑞科技股份有限公司 | 电网调度控制系统中分布式文件系统的元数据管理方法 |
CN113467698A (zh) * | 2020-03-30 | 2021-10-01 | 珠海全志科技股份有限公司 | 基于文件系统的写方法、装置、计算机设备和存储介质 |
CN111913915B (zh) * | 2020-07-30 | 2023-10-03 | 杭州宏杉科技股份有限公司 | 文件隐藏方法和装置 |
CN113296700A (zh) * | 2021-04-20 | 2021-08-24 | 新华三信息技术有限公司 | 一种存储空间的管理方法、装置以及服务器 |
CN115190136B (zh) * | 2021-04-21 | 2024-03-01 | 统信软件技术有限公司 | 一种数据存储方法、数据传输方法及计算设备 |
CN113835643B (zh) * | 2021-11-23 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
CN113986838B (zh) * | 2021-12-28 | 2022-03-11 | 成都云祺科技有限公司 | 基于文件系统的海量小文件处理方法、系统及存储介质 |
CN114327290B (zh) * | 2021-12-31 | 2022-12-02 | 科东(广州)软件科技有限公司 | 一种磁盘分区的结构、格式化方法和访问方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786944A (zh) * | 2004-12-11 | 2006-06-14 | 鸿富锦精密工业(深圳)有限公司 | 重建树状文件目录结构的系统及方法 |
CN101446984A (zh) * | 2009-01-09 | 2009-06-03 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置及文件删除方法和装置 |
CN102122306A (zh) * | 2011-03-28 | 2011-07-13 | 中国人民解放军国防科学技术大学 | 一种数据处理方法及应用该方法的分布式文件系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574435B2 (en) * | 2006-05-03 | 2009-08-11 | International Business Machines Corporation | Hierarchical storage management of metadata |
US8055864B2 (en) * | 2007-08-06 | 2011-11-08 | International Business Machines Corporation | Efficient hierarchical storage management of a file system with snapshots |
US20100287205A1 (en) * | 2009-05-06 | 2010-11-11 | Htc Corporation | Operating system / electronic device and method for storing or reading a file |
CN101719141B (zh) * | 2009-12-24 | 2011-09-07 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
US8321484B2 (en) * | 2010-02-26 | 2012-11-27 | Microsoft Corporation | Minimizing bandwidth in file path-centric protocol message |
CN102184260B (zh) * | 2011-06-09 | 2013-07-10 | 中国人民解放军国防科学技术大学 | 一种云计算环境下的海量数据存取方法 |
-
2011
- 2011-12-23 CN CN201180003263.2A patent/CN103282899B/zh active Active
- 2011-12-23 WO PCT/CN2011/084551 patent/WO2013091244A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786944A (zh) * | 2004-12-11 | 2006-06-14 | 鸿富锦精密工业(深圳)有限公司 | 重建树状文件目录结构的系统及方法 |
CN101446984A (zh) * | 2009-01-09 | 2009-06-03 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置及文件删除方法和装置 |
CN102122306A (zh) * | 2011-03-28 | 2011-07-13 | 中国人民解放军国防科学技术大学 | 一种数据处理方法及应用该方法的分布式文件系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2013091244A1 (zh) | 2013-06-27 |
CN103282899A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103282899B (zh) | 文件系统中数据的存储方法、访问方法及装置 | |
US9830324B2 (en) | Content based organization of file systems | |
US11064025B2 (en) | File replication using file content location identifiers | |
CN103229173B (zh) | 元数据管理方法及系统 | |
CN104933133B (zh) | 分布式文件系统中的元数据快照存储和访问方法 | |
CN103020315B (zh) | 一种基于主从分布式文件系统的海量小文件存储方法 | |
US8849759B2 (en) | Unified local storage supporting file and cloud object access | |
US20150302111A1 (en) | Method and Apparatus for Constructing File System in Key-Value Storage System, and Electronic Device | |
US20170249216A1 (en) | Native snapshots in distributed file sytems | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
CN105677826A (zh) | 一种针对海量非结构化数据的资源管理方法 | |
WO2015134676A1 (en) | Distributed consistent database implementation within an object store | |
US9965505B2 (en) | Identifying files in change logs using file content location identifiers | |
CN103595797B (zh) | 一种分布式存储系统中的缓存方法 | |
US20140019494A1 (en) | Method and apparatus for file storage | |
CN102024019B (zh) | 一种分布式文件系统中基于后缀树的目录组织方法 | |
CN103002027A (zh) | 基于键值对系统实现树形目录结构的数据存储系统及方法 | |
WO2014110940A1 (en) | A method, apparatus and system for storing, reading the directory index | |
Renner et al. | Addressing hadoop's small file problem with an appendable archive file format | |
CN103246718B (zh) | 文件访问方法、装置和设备 | |
CN103177112B (zh) | 一种备份文件浏览系统 | |
CN113986838B (zh) | 基于文件系统的海量小文件处理方法、系统及存储介质 | |
van Staereling et al. | Efficient, modular metadata management with loris | |
CN106227830A (zh) | 存储和读取文件的方法和装置 | |
Zhao et al. | Fat File System Design and Research |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |