CN103714013B - 一种文件***的存储空间的配置方法及装置 - Google Patents
一种文件***的存储空间的配置方法及装置 Download PDFInfo
- Publication number
- CN103714013B CN103714013B CN201310750617.0A CN201310750617A CN103714013B CN 103714013 B CN103714013 B CN 103714013B CN 201310750617 A CN201310750617 A CN 201310750617A CN 103714013 B CN103714013 B CN 103714013B
- Authority
- CN
- China
- Prior art keywords
- area
- bit map
- data block
- resource
- index 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种文件***的存储空间的配置方法及装置,所述方法包括:为所述文件***分配位图区存储空间和资源区存储空间;当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。由此,本发明实施例,可最大限度地利用存储器的存储空间。
Description
技术领域
本发明涉及数字信号处理领域,尤其涉及一种文件***的存储空间的配置方法及装置。
背景技术
相变存储器(Phase Change Memory,PCM),磁阻式随机访问存储器(Magnetoresistive Random Access Memory,MRAM)和可变电阻式存储器(Resistiverandom-access memory,RRAM)是目前出现的新型存储器,他们以其独特的性能成为业界的热点研究对象,被业界统称为存储级内存(Storage Class Memory,SCM)。
SCM与传统的硬盘不同,除了高读写性能外,还具有Byte可变性,每次读写可以只改变很小的数据段,能够进行精细化管理。目前这些新型存储器可用于存储文件***的数据。
文件***主要用于管理和存储文件的数据和元数据,现在大多数的文件***的文件或目录在存储器中的存储空间的分配都采用的是索引节点+数据块的方法。在索引节点中存储文件或目录的元数据和文件的数据块号,在对应的数据块中存放文件或目录的具体内容。每一个文件或目录都有一个索引节点,根据文件大小来确定需要多少个数据块。
当前,基于SCM的文件***对于各个分区的界限都是固定的,比如ext4文件***中,在超级块中就记录了索引节点(简记为:inode)的位图起始块、数据块位图起始块、索引节点表起始块、数据块起始块。这种固定界限的方式会带来一个问题。当小文件过多时,会由于没有多余的索引节点,而导致数据块的浪费;而当大文件很多时,会因为数据块耗尽,多余的索引节点得不到使用。这两种情况,都会造成存储器的存储空间的浪费。
发明内容
本发明实施例提供一种文件***的存储空间的配置方法及装置,在充分满足文件***的存储空间分配时,能有效利用存储器的存储空间。
本发明第一方面提供一种文件***的存储空间的配置方法,其可包括:
为所述文件***分配位图区存储空间和资源区存储空间;
当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。
结合第一方面,在第一种可行的实施方式中,所述为所述文件***分配位图区存储空间和资源区存储空间,可包括:
根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
结合第一方面或第一方面的第一种可行的实施方式,在第二种可行的实施方式中,所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配,包括:
当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;
当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
所述当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配,包括:
当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;
当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
结合第一方面或第一方面的第一种可行的实施方式,在第三种可行的实施方式中,所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;
当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点;
所述当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;
当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。
结合第一方面或第一方面的第一种可行的实施方式,在第四种可行的实施方式中,所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;
当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点;
所述当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配对应于所述数据块的位图的空间时,从所述资源区高地址端向低地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;
当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。
结合第一方面或第一方面的第一种可行的实施方式,在第五种可行的实施方式中,所述方法还可包括:
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置。
结合第一方面的第五种可行的实施方式,在第六种可行的实施方式中,所述方法还可包括:
当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点;
当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
本发明第二方面提供一种文件***的存储空间的配置装置,其可包括:
初始配置模块,用于为所述文件***分配位图区存储空间和资源区存储空间;
索引节点配置模块,用于当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
数据块配置模块,用于当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。
结合第二方面,在第一种可行的实施方式中,所述初始配置模块,包括:
计算模块,用于根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
空间划分模块,用于根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
结合第二方面或第二方面的第一种可行的实施方式,在第二种可行的实施方式中,所述索引节点配置模块,包括:
根目录索引节点配置模块,用于当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;以及当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
所述数据块配置模块,包括:
根目录数据块配置模块,用于当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;以及,当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
结合第二方面或第二方面的第一种可行的实施方式,在第三种可行的实施方式中,所述索引节点配置模块,包括:
非根目录索引节点配置模块,用于当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;以及,当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点;
所述数据块配置模块,包括:
非根目录数据块配置模块,用于当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。
结合第二方面或第二方面的第一种可行的实施方式,在第四种可行的实施方式中,所述索引节点配置模块,包括:
非根目录索引节点配置模块,用于当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;以及,当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点;
所述数据块配置模块,包括:
非根目录数据块配置模块,用于当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。
结合第二方面或第二方面的第一种可行的实施方式,在第五种可行的实施方式中,所述装置还包括:
索引节点删除模块,用于当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
数据块删除模块,用于当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置。
结合第二方面的第五种可行的实施方式,在第六种可行的实施方式中,所述索引节点配置模块,还用于当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点;
所述数据块配置模块,还用于当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
由上可见,在本发明的一些可行的实施方式中,为所述文件***分配位图区存储空间和资源区存储空间;当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。由此,本发明实施例并不明显限定索引节点和数据块的在位图区及资源区的空间的界限,而是灵活将位图区的空间和资源区的空间共享给索引节点和数据块,可最大限度地利用存储器的存储空间。
附图说明
图1为本发明实施例的文件***的存储空间的配置方法的一实施例的流程示意图;
图2为本发明实施例的文件***的存储空间配置框架示意图;
图3为本发明实施例的文件***的存储空间的配置装置的一实施例的结构组成示意图;
图4为本发明实施例的初始配置模块31的一实施例的结构组成示意图;
图5为本发明实施例的文件***的存储空间的配置装置的另一实施例的结构组成示意图;
图6为本发明实施例的文件***的存储空间的配置装置的另一实施例的结构组成示意图;
图7为本发明实施例的文件***的存储空间的配置装置的另一实施例的结构组成示意图;
图8为本发明实施例的文件***的存储空间的配置装置的另一实施例的结构组成示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
图1为本发明实施例的文件***的存储空间的配置方法的一实施例的流程示意图。如图1所示,本发明实施例的方法可包括:
步骤S110,为所述文件***分配位图区存储空间和资源区存储空间。
具体实现中,步骤S110可在文件***初始化阶段执行。
作为一种可行的实施方式,在步骤S110可根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;然后,根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
具体实现中,在步骤S110,在为所述文件***分配位图区存储空间和资源区存储空间之后,还可初始化所述文件***的超级块,具体的,初始化超级块可作如下操作:将所述位图区的起始地址、所述资源区的起始地址、所述位图区包括的位图个数,所述资源区包括的空间个数等信息写入所述超级块。
图2示出了一种本发明实施例为所述文件***分配位图区存储空间和资源区存储空间后的文件***的逻辑结构图。如图2所示,本发明实施例的文件***的存储空间主要包括超级块、位图区及资源区三大块,其中,位图区内部并不明确划分索引节点位图区和数据块位图区,资源区内部并不明确划分索引节点表区和数据块区,因此,本发明实施例位图区中所有空间可供索引节点和数据块共享,资源区中所有空间可供索引节点和数据块共享。
步骤S111,当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配。
步骤S112,当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。
具体实现中,步骤S111和步骤S112可不分先后顺序。
具体实现中,本发明实施例中此处及后续所提到的分配位图的可包括:将所述位图置位,以表示所述位图已经被占用。所述置位的取值可为任何一个预先设定好的数字或者字母。比如,可设定当位图被置位为“1”时,表示相应的位图被分配。
在一些可行的实施方式中,在步骤S111,当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配。以及,在步骤S112,当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;以及,当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
在一些可行的实施方式中,在步骤S111,当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点。具体实现中,这种方式可使用于有索引节点释放的情况下。具体实现中,在此方案中,从所述位图区低地址端向高地址端方向遍历位图之前,可先查询超级块中记录的被删除的索引节点的个数是否为零,如果非零,则遍历。
在一些可行的实施方式中,在步骤S112,当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。具体实现中,这种方式可使用于有数据块释放的情况下。具体实现中,在此方案中,从所述位图区高地址端向低地址端方向遍历位图之前,可先查询超级块中记录的被删除的数据块的个数是否为零,如果非零,则遍历。
在一些可行的实施方式中,在步骤S111,当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点。具体实现中,这种方式可使用于有索引节点释放的情况下或无索引节点释放的情况下。
在一些可行的实施方式中,在步骤S112,当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。具体实现中,这种方式可使用于有数据块释放的情况下或无数据块释放的情况下。
在一些可行的实施方式中,本发明实施例的方法,还可包括(未图示):
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置。
这样,本发明实施例在步骤S111,当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点。以及,本发明实施例,在步骤S112,当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
结合图2,假设,箭头1的指向为位图区低地址端向高地址端方向,箭头2的指向为位图区高地址端向低地址端方向,箭头3的指向为资源区低地址端向高地址端方向,箭头4的指向为资源区高地址端向低地址端方向。因此,结合图2便可知道,本发明实施例的索引节点的位图是从箭头1的起始位置(从低地址端向高地址端方向)开始分配位图,而数据块的位图是从箭头2的起始位置(从高地址端向低地址端方向)开始分配,这样,索引节点的位图和数据块的位图从两边向中间靠拢,避免了明显界限的空间浪费的缺陷。同样,结合图2便可知道,本发明实施例的索引节点的索引节点表项是从箭头3的起始位置(从低地址端向高地址端方向)开始分配空间,数据块是从箭头4的起始位置(从高地址端向低地址端方向)开始分配空间,这样,索引节点的索引节点表项和数据块从资源区两边向中间靠拢,避免了明显界限的空间浪费的缺陷。
由上可见,在本发明的一些可行的实施方式中,为所述文件***分配位图区存储空间和资源区存储空间;当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。由此,本发明实施例并不明显限定索引节点和数据块的在位图区及资源区的空间的界限,而是灵活将位图区的空间和资源区的空间共享给索引节点和数据块,可最大限度地利用存储器的存储空间。
相应的,本发明实施例还提供了可用于实施本发明的文件***的存储空间的配置方法的装置,下面对装置实施例进行举例说明。
图3为本发明实施例的文件***的存储空间的配置装置的一实施例的结构组成示意图。如图3所示,本发明实施例的文件***的存储空间的配置装置可包括:初始配置模块31、索引节点配置模块32以及数据块配置模块33,其中:
初始配置模块31,用于为所述文件***分配位图区存储空间和资源区存储空间。
索引节点配置模块32,用于当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
数据块配置模块33,用于当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。
具体实现中,初始配置模块31可在文件***初始化阶段为所述文件***分配位图区存储空间和资源区存储空间。
在一些可行的实施方式中,如图4所示,本发明实施例的初始配置模块31可进一步包括:
计算模块311,用于根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
空间划分模块312,用于根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
具体实现中,本发明实施例的初始配置模块31还可用于在为所述文件***分配位图区存储空间和资源区存储空间之后,初始化所述文件***的超级块,具体的,初始化超级块可作如下操作:将所述位图区的起始地址、所述资源区的起始地址、所述位图区包括的位图个数,所述资源区包括的空间个数等信息写入所述超级块。
如图5所示,在一些可行的实施方式中,所述索引节点配置模块32,可包括:
根目录索引节点配置模块321,用于当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;以及当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
非根目录索引节点配置模块322,用于当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;以及,当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点;
所述数据块配置模块33,包括:
根目录数据块配置模块331,用于当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;以及,当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
非根目录数据块配置模块332,用于当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。
如图6所示,在一些可行的实施方式中,所述索引节点配置模块32,可包括:
根目录索引节点配置模块321,用于当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;以及当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
非根目录索引节点配置模块323,用于当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;以及,当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点;
所述数据块配置模块33,包括:
根目录数据块配置模块331,用于当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;以及,当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
非根目录数据块配置模块333,用于当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。
如图7所示,在一些可行的实施方式中,本发明实施例的装置还可包括:
索引节点删除模块34,用于当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
数据块删除模块35,用于当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置。
则所述索引节点配置模块32,还用于当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点;
所述数据块配置模块33,还用于当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
以上实施例,是从文件***的存储空间的配置装置所包括的功能模块对其组成进行了举例,图8为本发明实施例的文件***的存储空间的配置装置的硬件结构组成示意图。如图8所示,本发明实施例的文件***的存储空间的配置装置在硬件组成上可包括:存储器81以及处理器82,所述处理器82可调用所述存储器81中存储的相关程序,并执行如下步骤:
为所述文件***分配位图区存储空间和资源区存储空间;
当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配。
在一些可行的实施方式中,所述处理器82为所述文件***分配位图区存储空间和资源区存储空间,具体包括:
根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
在一些可行的实施方式中,所述处理器82执行当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配的步骤,具体包括:
当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;
当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
所述处理器82执行当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配的步骤,具体包括:
当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;
当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
在一些可行的实施方式中,所述处理器82执行所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配的步骤,具体包括:
当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;
当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点;
所述处理器82执行当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配的步骤,具体包括:
当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;
当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。
在一些可行的实施方式中,所述处理器82执行所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配的步骤,具体包括:
当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;
当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点;
所述处理器82执行当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配对应于所述数据块的位图的空间时,从所述资源区高地址端向低地址端方向进行分配的步骤,具体包括:
当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;
当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。
在一些可行的实施方式中,所述处理器82还执行如下步骤:
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置。
则所述处理器82当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,具体执行如下步骤:
查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点;
以及所述处理器82当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,具体执行如下步骤:
查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
本发明实施例的模块,可用通用集成电路(如中央处理器CPU),基于FPGA的控制器或以专用集成电路(ASIC)来实现。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上所列举的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (16)
1.一种文件***的存储空间的配置方法,其特征在于,包括:
为所述文件***分配位图区存储空间和资源区存储空间;
当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配,包括:
当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;
当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
所述当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配,包括:
当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;
当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
2.如权利要求1所述的文件***的存储空间的配置方法,其特征在于,所述为所述文件***分配位图区存储空间和资源区存储空间,包括:
根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
3.一种文件***的存储空间的配置方法,其特征在于,包括:
为所述文件***分配位图区存储空间和资源区存储空间;
当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;
当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点;
所述当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;
当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。
4.如权利要求3所述的文件***的存储空间的配置方法,其特征在于,所述为所述文件***分配位图区存储空间和资源区存储空间,包括:
根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
5.一种文件***的存储空间的配置方法,其特征在于,包括:
为所述文件***分配位图区存储空间和资源区存储空间;
当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;
当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点;
所述当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配对应于所述数据块的位图的空间时,从所述资源区高地址端向低地址端方向进行分配,包括:
当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;
当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。
6.如权利要求5所述的文件***的存储空间的配置方法,其特征在于,所述为所述文件***分配位图区存储空间和资源区存储空间,包括:
根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
7.一种文件***的存储空间的配置方法,其特征在于,包括:
为所述文件***分配位图区存储空间和资源区存储空间;
当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,还包括:
当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点;
当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
8.如权利要求7所述的文件***的存储空间的配置方法,其特征在于,所述为所述文件***分配位图区存储空间和资源区存储空间,包括:
根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
9.一种文件***的存储空间的配置装置,其特征在于,包括:
初始配置模块,用于为所述文件***分配位图区存储空间和资源区存储空间;
索引节点配置模块,用于当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
数据块配置模块,用于当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
索引节点删除模块,用于当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
数据块删除模块,用于当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述索引节点配置模块,包括:
根目录索引节点配置模块,用于当在所述位图区为所述文件***的根目录的索引节点分配位图时,从所述位图区低地址端向高地址端方向的第一个位图开始分配;以及当在所述资源区为所述文件***的根目录的索引节点分配空间索引节点表项空间时,从所述资源区低址端向高地址端方向的第一个空间开始分配;
所述数据块配置模块,包括:
根目录数据块配置模块,用于当在所述位图区为所述文件***的根目录的数据块分配位图时,从所述位图区高地址端向低地址端方向的第一个位图开始分配;以及,当在所述资源区为所述文件***的根目录的数据块分配空间时,从所述资源区高址端向低地址端方向的第一个空间开始分配。
10.如权利要求9所述的文件***的存储空间的配置装置,其特征在于,所述初始配置模块,包括:
计算模块,用于根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
空间划分模块,用于根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
11.一种文件***的存储空间的配置装置,其特征在于,包括:
初始配置模块,用于为所述文件***分配位图区存储空间和资源区存储空间;
索引节点配置模块,用于当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
数据块配置模块,用于当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
索引节点删除模块,用于当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
数据块删除模块,用于当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述索引节点配置模块,包括:
非根目录索引节点配置模块,用于当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,从所述位图区低地址端向高地址端方向遍历位图,直到找到一个空闲的第一位图,将所述第一位图分配给所述非根目录的文件的所述索引节点;以及,当在所述资源区为所述文件***的非根目录的文件的索引节点分配空间索引节点表项空间时,从所述资源区低地址端向高地址端方向查找与所述第一位图对应的第一空间,并将所述第一空间分配给所述非根目录的文件的所述索引节点;
所述数据块配置模块,包括:
非根目录数据块配置模块,用于当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,从所述位图区高地址端向低地址端方向遍历位图,直到找到一个空闲的第二位图,将所述找到的第二位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的非根目录的文件的所述数据块分配空间时,从所述资源区高地址端向低地址端方向查找与所述第二位图对应的第二空间,并将所述第二空间分配给所述非根目录的文件的所述数据块。
12.如权利要求11所述的文件***的存储空间的配置装置,其特征在于,所述初始配置模块,包括:
计算模块,用于根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
空间划分模块,用于根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
13.一种文件***的存储空间的配置装置,其特征在于,包括:
初始配置模块,用于为所述文件***分配位图区存储空间和资源区存储空间;
索引节点配置模块,用于当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
数据块配置模块,用于当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
索引节点删除模块,用于当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
数据块删除模块,用于当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述索引节点配置模块,包括:
非根目录索引节点配置模块,用于当在所述位图区为所述文件***的非根目录的文件的索引节点分配位图时,将所述位图区低地址端向高地址端方向的最后一个已分配为索引节点的位图的下一个位图分配给所述非根目录的文件的所述索引节点;以及,当在所述资源区为所述文件***的索引节点分配空间索引节点表项空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为索引节点表项空间的下一个空间分配给所述非根目录的文件的所述索引节点;
所述数据块配置模块,包括:
非根目录数据块配置模块,用于当在所述位图区为所述文件***的非根目录的文件的数据块分配位图时,将所述位图区高地址端向低地址端方向的最后一个已分配为数据块的位图的下一个位图分配给所述非根目录的文件的所述数据块;以及,当在所述资源区为所述文件***的所述数据块分配空间时,将所述资源区低地址端向高地址端方向的最后一个已经分配为数据块的空间的下一个空间分配给所述非根目录的文件的所述数据块。
14.如权利要求13所述的文件***的存储空间的配置装置,其特征在于,所述初始配置模块,包括:
计算模块,用于根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
空间划分模块,用于根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
15.一种文件***的存储空间的配置装置,其特征在于,包括:
初始配置模块,用于为所述文件***分配位图区存储空间和资源区存储空间;
索引节点配置模块,用于当在所述位图区为所述文件***的索引节点分配位图时,从所述位图区低地址端向高地址端方向进行分配,当在所述资源区为所述文件***的索引节点分配索引节点表项空间时,从所述资源区低地址端向高地址端方向进行分配;
数据块配置模块,用于当在所述位图区为所述文件***的数据块分配位图时,从所述位图区高地址端向低地址端方向进行分配,当在所述资源区为所述文件***的数据块分配空间时,从所述资源区高地址端向低地址端方向进行分配;
还包括:
索引节点删除模块,用于当删除索引节点时,将所述索引节点在所述位图区的位图清零,并释放所述索引节点在所述资源区的空间,并在索引节点删除记录表中添加所述删除的索引节点索引信息,所述索引节点的索引信息用于指示所述删除的索引节点在所述位图区的位图的位置和指示所述删除的索引节点在所述资源区的索引节点表项的位置;
数据块删除模块,用于当删除数据块时,将所述数据块在所述位图区的位图清零,并释放所述数据块在所述资源区的空间,并在数据块删除记录表中添加所述删除的数据块的索引信息,所述数据块的索引的信息用于指示所述删除的数据块在所述位图区的位图的位置和指示所述删除的数据块在所述资源区的空间位置;
其中,所述索引节点配置模块,还用于当在所述位图区为所述文件***的索引节点分配位图及在所述资源区为所述文件***的索引节点分配索引节点表项空间时,查询所述索引节点删除记录表是否为空,如果所述索引节点删除记录表非空,则根据所述索引节点删除记录表中的索引信息重新将被删除的索引节点的位图及空间分配给所述文件***的所述索引节点;
所述数据块配置模块,还用于当在所述位图区为所述文件***的数据块分配位图及当在所述资源区为所述文件***的数据块分配空间时,查询所述数据块删除记录表是否为空,如果所述数据块删除记录表非空,则根据所述数据块删除记录表中的索引信息重新将被删除的数据块的位图及空间分配给所述文件***的所述数据块。
16.如权利要求15所述的文件***的存储空间的配置装置,其特征在于,所述初始配置模块,包括:
计算模块,用于根据用户创建的所述文件***的数据块的大小及个数,计算所述位图区的大小和所述资源区的大小;
空间划分模块,用于根据所述位图区的大小和所述资源区的大小,分别为所述位图区和所述资源区分配相应大小的存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310750617.0A CN103714013B (zh) | 2013-12-31 | 2013-12-31 | 一种文件***的存储空间的配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310750617.0A CN103714013B (zh) | 2013-12-31 | 2013-12-31 | 一种文件***的存储空间的配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714013A CN103714013A (zh) | 2014-04-09 |
CN103714013B true CN103714013B (zh) | 2017-08-25 |
Family
ID=50407010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310750617.0A Active CN103714013B (zh) | 2013-12-31 | 2013-12-31 | 一种文件***的存储空间的配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714013B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572828B (zh) * | 2014-12-08 | 2018-01-19 | 中国科学院信息工程研究所 | 一种基于空间位图模型的辅助索引方法及*** |
CN105893266B (zh) * | 2015-01-04 | 2020-04-28 | 伊姆西Ip控股有限责任公司 | 用于重新使用文件***的存储块的方法和装置 |
CN104731872B (zh) * | 2015-03-05 | 2018-04-03 | 长沙新弘软件有限公司 | 基于位图的存储空间管理***及其方法 |
WO2016191964A1 (zh) * | 2015-05-29 | 2016-12-08 | 华为技术有限公司 | 一种文件***的管理方法及装置 |
CN105138632A (zh) * | 2015-08-20 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种文件数据组织管理方法及文件管理服务器 |
CN106021127B (zh) * | 2016-05-09 | 2020-01-14 | Tcl移动通信科技(宁波)有限公司 | 一种基于移动终端的缓存共享方法及*** |
CN106021466A (zh) * | 2016-05-17 | 2016-10-12 | 浙江大华技术股份有限公司 | 一种存储数据的方法及装置 |
CN106202350A (zh) * | 2016-07-05 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***自动精简配置的方法及*** |
CN106445589A (zh) * | 2016-09-08 | 2017-02-22 | 百富计算机技术(深圳)有限公司 | 嵌入式小***的应用程序加载方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5454103A (en) * | 1993-02-01 | 1995-09-26 | Lsc, Inc. | Method and apparatus for file storage allocation for secondary storage using large and small file blocks |
CN1766845A (zh) * | 2005-11-30 | 2006-05-03 | 吴晓栋 | 一种实现***高度安全和可恢复的文件***的方法 |
CN101034399A (zh) * | 2006-03-07 | 2007-09-12 | 日立***服务公司 | 半导体闪存的数据管理及控制***和半导体闪存收容装置 |
CN101375280A (zh) * | 2006-01-27 | 2009-02-25 | 艾尔弗莱斯科技术有限公司 | 事件结构化文件***(esfs) |
CN101382876A (zh) * | 2008-10-07 | 2009-03-11 | 北京创毅视讯科技有限公司 | 一种数据存储方法 |
CN102339318A (zh) * | 2011-10-24 | 2012-02-01 | Tcl集团股份有限公司 | 一种文件***管理方法及*** |
-
2013
- 2013-12-31 CN CN201310750617.0A patent/CN103714013B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5454103A (en) * | 1993-02-01 | 1995-09-26 | Lsc, Inc. | Method and apparatus for file storage allocation for secondary storage using large and small file blocks |
CN1766845A (zh) * | 2005-11-30 | 2006-05-03 | 吴晓栋 | 一种实现***高度安全和可恢复的文件***的方法 |
CN101375280A (zh) * | 2006-01-27 | 2009-02-25 | 艾尔弗莱斯科技术有限公司 | 事件结构化文件***(esfs) |
CN101034399A (zh) * | 2006-03-07 | 2007-09-12 | 日立***服务公司 | 半导体闪存的数据管理及控制***和半导体闪存收容装置 |
CN101382876A (zh) * | 2008-10-07 | 2009-03-11 | 北京创毅视讯科技有限公司 | 一种数据存储方法 |
CN102339318A (zh) * | 2011-10-24 | 2012-02-01 | Tcl集团股份有限公司 | 一种文件***管理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN103714013A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714013B (zh) | 一种文件***的存储空间的配置方法及装置 | |
US9292217B2 (en) | Logical volume space sharing | |
CN105630955B (zh) | 一种高效动态的数据集合成员管理方法 | |
US9575976B2 (en) | Methods and apparatuses to optimize updates in a file system based on birth time | |
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
JP5996088B2 (ja) | 暗号ハッシュ・データベース | |
CN108804510A (zh) | 键值文件*** | |
CN104461390B (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN108491549B (zh) | 一种分布式存储***中文件目录的创建方法及装置 | |
US10068033B2 (en) | Graph data query method and apparatus | |
JP2015512551A (ja) | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 | |
CA2560215A1 (en) | Property tree for metadata navigation and assignment | |
WO2010099715A1 (zh) | 数据操作方法、***、客户端和数据服务器 | |
CN103140840B (zh) | 数据管理的方法及装置 | |
CN103914522A (zh) | 一种应用于云存储重复数据删除的数据块合并方法 | |
CN107783988A (zh) | 一种目录树的加锁方法及设备 | |
CN105718319B (zh) | 一种内存池版图解析方法和内存池装置 | |
US20100058023A1 (en) | Efficiently managing modular data storage systems | |
CN103970795A (zh) | 一种数据处理方法、装置及*** | |
CN111198856A (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
CN106021466A (zh) | 一种存储数据的方法及装置 | |
CN102542041A (zh) | 栅格数据处理方法及*** | |
CN102253985A (zh) | 一种文件***数据的管理方法及*** | |
CN106383826A (zh) | 数据库查询方法和装置 | |
CN103530067B (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 |