CN114327290B - 一种磁盘分区的结构、格式化方法和访问方法 - Google Patents

一种磁盘分区的结构、格式化方法和访问方法 Download PDF

Info

Publication number
CN114327290B
CN114327290B CN202111666085.3A CN202111666085A CN114327290B CN 114327290 B CN114327290 B CN 114327290B CN 202111666085 A CN202111666085 A CN 202111666085A CN 114327290 B CN114327290 B CN 114327290B
Authority
CN
China
Prior art keywords
file
index
block
nodes
log
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
Application number
CN202111666085.3A
Other languages
English (en)
Other versions
CN114327290A (zh
Inventor
李燕
郭建川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kedong Guangzhou Software Technology Co Ltd
Original Assignee
Kedong Guangzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kedong Guangzhou Software Technology Co Ltd filed Critical Kedong Guangzhou Software Technology Co Ltd
Priority to CN202111666085.3A priority Critical patent/CN114327290B/zh
Publication of CN114327290A publication Critical patent/CN114327290A/zh
Application granted granted Critical
Publication of CN114327290B publication Critical patent/CN114327290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种磁盘分区的结构、格式化方法与访问方法,所述结构包括:超级块、若干个索引节点和若干个数据块;每个索引节点的结构信息包括其索引号和其数据块指针;每个索引节点对应一个文件,该文件储存于其对应的数据块中,所述对应的数据块根据相应的索引节点的数据块指针确定,每个数据块占用一个磁盘块;索引节点包括第一索引节点和若干个第二索引节点,其中,第一索引节点对应第一文件,第一文件包括各第二索引节点的索引号与地址;超级块包括所述第一索引节点的地址和一个磁盘块的单位空间。本发明的磁盘分区的结构支持快速格式化和快速访问,且格式化时间与存储容量大小无关,访问速度快不受文件长度和文件数量的影响。

Description

一种磁盘分区的结构、格式化方法和访问方法
技术领域
本发明涉及操作系统领域,特别是涉及一种磁盘分区的结构、格式化方法和访问方法。
背景技术
在现有磁盘分区的结构中使用链表和位图来管理磁盘上的文件和空闲空间,使磁盘分区结构比较复杂,导致磁盘分区的格式化时间至少都是分钟级别的,并且格式化时间与存储容量的大小有关。同时在访问磁盘分区的文件时,访问时间长,且访问时间受文件长度和文件数量的影响。
发明内容
有鉴于此,本发明的实施例提供了一种磁盘分区的结构、格式化方法和访问方法,使用第一索引节点管理磁盘分区上各个文件的索引节点,从而管理磁盘分区上的各个文件;还使用空间文件来管理所有的空闲空间。本磁盘分区的结构简洁,支持秒级甚至毫秒级的快速格式化,并且格式化时间与存储容量大小无关;本磁盘分区的结构提高了文件的访问速度快并且访问时间确定,不受文件长度和文件数量的影响。
本发明实施例的第一方面提供了一种磁盘分区的结构,包括:包括:超级块、若干个索引节点和若干个数据块;每个索引节点的结构信息包括其索引号和其数据块指针;每个索引节点对应一个文件,该文件储存于其对应的数据块中,所述对应的数据块根据相应的索引节点的数据块指针确定,每个数据块占用一个磁盘块;所述索引节点包括第一索引节点和若干个第二索引节点,其中,所述第一索引节点对应第一文件,所述第一文件包括各所述第二索引节点的索引号与地址,所述第二索引节点包括根目录索引节点,其对应的文件为根目录文件;所述超级块包括所述第一索引节点的地址和一个磁盘块的单位空间。
由上,通过第一索引节点对应的数据块中包括各第二文件的索引节点的地址,实现对各第二文件的管理,在格式化只需格式化第一索引节点和根目录索引节点,支持快速格式化,格式化时间与磁盘容量无关,支持快速访问各第二文件。
在第一方面的一种可能实施方式中,所述第二索引节点还包括空间索引节点、日志索引节点、除根目录索引节点以外的目录索引节点和普通文件索引节点;所述空间索引节点对应的文件为空间文件,所述日志索引节点对应的文件为日志文件,每个所述普通文件索引节点对应一个普通文件,其内容包括所述普通文件的内容,每个所述目录索引节点对应一个目录文件;所述空间文件的内容用于确定磁盘分区中各空闲的数据块的地址;每个所述目录文件对应一个目录,其内容包括该目录下的各子项信息,所述各子项信息包括该目录下各子目录的名称与所述各子目录的索引节点的索引号、该目录下的各所述普通文件的名称与各所述普通文件的索引节点的索引号。
由上,通过第二文件中的空间文件、日志文件和目录文件分别管理各空闲的数据块、日志数据和各目录的子项信息。当格式化时也格式化空间索引节点时,通过空间索引节点管理磁盘分区空闲空间替代现有技术用链表管理磁盘分区空闲空间,初始化空间索引节点相对于初始化链表,实现秒级甚至毫秒级的快速初始化,并且初始化时间与存储容量大小无关。
在第一方面的一种可能实施方式中,所述索引节点对应的数据块至少包括一个文件块表,所述文件块表的地址根据相应的所述索引节点的所述数据块指针确定,每个文件块表占用一个数据块,每个数据块为一个磁盘块;所述文件块表的每个表项存储一段连续的空闲数据块的起始地址和该一段连续的空闲数据块中各自空闲数据块数量;当索引节点为所述目录索引节点时,其所述文件块表的每个表项包括对应的目录的一个所述各子项信息;当索引节点为所述第一索引节点、所述日志索引节点或所述文件索引节点时,该索引节点对应的数据块还包括若干个文件数据块,该若干个文件数据块存储该索引节点对应的文件的内容,该索引节点对应的文件块表的每个表项包括一段连续的文件数据块的起始地址和该一段连续的文件数据块中文件数据块数目,所述文件数据块以磁盘块为单位;所述超级块包括磁盘块单位空间和磁盘分区大小。
由上,通过从数据块指针到文件块表再到文件数据块的方式,确定各文件的内容,访问文件的时间确定,与文件长度和数量无关。
在第一方面的一种可能实施方式中,每个索引节点的所述数据块指针包括对应的文件的哈希表层级和根哈希表指针,其中,所述哈希表层级与该对应的文件大小正向变化;
每个文件对应的数据块还包括该文件的若干层级的哈希表,其中,高层级的哈希表的表项包括相邻的低层级的哈希表的起始地址,最低层级的哈希表的每个表项包括所述对应的文件的一个文件块表的起始地址,每个哈希表占用一个数据块。
由上,通过哈希表实现对各节点的文件块表的快速寻址,从而增强对大文件的管理能力。
在第一方面的一种可能实施方式中,所述第一索引节点、所述空间索引节点、所述日志索引节点或所述文件索引节点的结构信息还包括各自的文件块快速表,其中,当所述索引节点的所述数据块指标为空时,所述文件块快速表代替相应的所述文件块表。
由上,通过专属信息的文件块快速表替代文件块表,进一步提高对文件的访问速度,同时在格式化时进一步提升格式化的速度。
在第一方面的一种可能实施方式中,所述第所述第一索引节点的结构信息还包括索引节点的总数、空闲的索引节点的总数,首个非空闲的索引节点的索引号;所述超级块还包括所述首个非空闲的索引节点的索引号。
由上,通过第一索引节点的专属信息管理各索引节点的使用情况,使磁盘分区的文件系统快速获得新文件的索引节点和释放删除的索引节点。
在第一方面的一种可能实施方式中,所述目录索引节点的结构信息还包括第一目录的上层目录的所述索引号和所述第一目录中子目录与普通文件的总数,所述第一目录为所述目录索引节点对应的目录。
由上,通过目录索引节点的专属信息快速管理各目录之间的关系。
在第一方面的一种可能实施方式中,所述索引节点分为静态节点和动态节点,其中,所述静态节点在磁盘格式化时创建,所述动态节点在磁盘格式化后创建;所述静态节点包括所述第一索引节点、所述空间索引节点和所述根目录索引节点,所述静态节点存储于静态节点区,所述静态节点包括所述超级块后的若干个连续的磁盘块;所述超级块还包括所述静态节点的数目和单个索引节点的空间。
由上,通过设置静态节点为磁盘分区的重要索引节点预留空间,便于管理磁盘分区的文件系统。
在第一方面的一种可能实施方式中,所述静态节点还包括所述日志索引节点;所述日志索引节点对应的数据块位于日志空间区,所述日志空间区包括所述静态节点区后的若干个磁盘块,所述日志空间区在磁盘分区格式时创建;所述日志索引节点对应的数据块还包括所述日志空间区的大小和已使用的日志空间区的大小;所述超级块还包括所述日志空间区的起始地址与大小、日志文件的大小。
由上,通过设置日志空间区为磁盘分区的日志数据预留空间,提高磁盘分区的安全。
本发明实施例的第二方面提供了一种磁盘分区的格式化方法,对具有本发明实施例的第一方面的任一所述结构的磁盘分区进行格式化,所述格式化方法包括:获取格式化参数,所述格式化参数至少包括第一索引节点的地址;为第一索引节点分配索引号和数据块,创建第一文件,并在第一索引节点的地址处初始化第一索引节点的结构信息;为根目录索引节点分配索引号、地址和数据块,创建根目录文件并在根目录索引节点的地址处初始化根目录索引节点的结构信息;在设定地址的磁盘块中初始化超级块中,设置第一索引节点的地址。
由上,通过在格式化时通过对第一索引节点和根目录索引节点的格式化,快速完成格式化,格式化时间与磁盘容量无关。
在第二方面的一种可能实施方式中,所述格式化方法还包括:所述格式化参数还包括静态节点的数目、索引节点的单位空间、磁盘块单位空间、磁盘分区大小,所述静态节点为格式化时创建的索引节点,部署在磁盘分区的静态节点区,所述静态节点包括第一索引节点、根目录索引节点和空间索引节点;根据所述静态节点的数目、索引节点的单位空间、磁盘块单位空间确定静态节点区的大小;第一索引节点的结构信息还包括第一索引节点的文件块快速表,在初始化第一索引节点的结构信息时,第一索引节点的数据块指针设置为空,根据第一索引节点的数据块设置第一索引节点的文件块快速表,其中,第一索引节点的文件块快速表的每个表项包括指向第一文件对应的一段连续的文件数据块,第一文件对应的文件数据块存储第一文件的内容:在为根目录索引节点分配地址时,所分配的地址位于静态节点区;为空间索引节点分配索引号、地址和数据块,创建空间文件,并初始化空间索引节点,其中,空间索引节点的地址位于静态节点区,日志索引节点的结构信息还包括日志索引节点的文件块快速表,空间索引节点的块数据指针设置为空,空间索引节点的文件块快速表的每个表项包括一段连续的空闲数据块的起始地址与该一段连续的空闲数据块中数据块数量,各段连续的空闲数据块为磁盘分区中空闲的各区域;在第一文件中还设置空间索引节点的索引号和地址;在所述超级块中,还设置静态节点的数目、索引节点的单位空间、磁盘块单位空间。
由上,通过在格式化时增加对空间索引节点的初始化,相对于现有技术对管理空间磁盘空间的链表初始化,初始化时间短,与与磁盘容量无关,通过设置静态节点区,为重要节点预留空间,便于对重要节点快速访问,从而对磁盘分区快速管理。
在第二方面的一种可能实施方式中,所述格式化方法还包括:所述格式化参数还包括日志文件大小,其中,日志文件对应日志索引节点,所述静态节点还包括日志索引节点;根据日志文件大小获得日志空间区的大小,日志空间区的数据块包括日志空间区的大小、已用日志空间、日志数据;为日志索引节点分配索引号和地址,创建日志文件,并初始化日志索引节点和日志空间区,其中,日志索引节点的地址位于静态节点区,日志索引节点的结构信息还包括文件块快速表,日志索引节点的数据块指针设置为空,日志索引节点的文件块快速表的每个表项包括指向日志文件对应的一段连续的文件数据块,日志文件对应的文件数据块存在日志文件的内容:在初始化空间节点时,在所述各段连续的空闲数据块中还减去日志空间区;在第一文件中还设置日志索引节点的索引号和地址;在所述超级块中,还设置日志文件大小、日志空间大小。
由上,通过在格式化设置日志空间区为磁盘分区的日志数据预留空间,提高磁盘分区的安全
本发明实施例的第三方面提供了一种磁盘分区的访问方法,对具有本发明实施例的第一方面的任一所述结构的磁盘分区进行访问,包括:从超级块中获得第一索引节点的地址;根据第一索引节点的地址获得所述第一索引节点的结构信息,并据此获得第一文件;根据被访问文件的索引号,从第一文件中获得被访问文件的索引节点的地址;根据被访问文件的索引节点的地址,获得被访问文件的所述索引节点,并据此获得被访问文件的对应的数据块;对所述对应数据块进行读写操作。
由上,通过第一索引节点中确定被访问文件的索引节点的地址,再从被访问文件的索引节点中获取被访问文件的数据块地址,通过对该数据块的读写实现对被访问文件的快速访问,并且访问时间确定,不受文件长度和文件数量的影响。
本发明实施例的第四方面提供了一种磁盘分区的格式化装置,对具有本发明实施例的第一方面的任一所述结构的磁盘分区进行格式化,所述格式化装置包括:参数获取模块,用于获取格式化参数,所述格式化参数至少包括第一索引节点的地址;第一初始化模块,用于为第一索引节点分配索引号和数据块,创建第一文件,并在第一索引节点的地址处初始化第一索引节点的结构信息;根目录初始化模块,用于为根目录索引节点分配索引号、地址和数据块,创建根目录文件并在根目录索引节点的地址处初始化根目录索引节点的结构信息;超级块初始化模块,用于在设定地址的磁盘块中初始化超级块中,设置第一索引节点的地址。
由上,通过在格式化时通过对第一索引节点和根目录索引节点的格式化,快速完成格式化,格式化时间与磁盘容量无关。
在第四方面的一种可能实施方式中,所述格式化参数还包括静态节点的数目、索引节点的单位空间、磁盘块单位空间、磁盘分区大小,所述静态节点为格式化时创建的索引节点,部署在磁盘分区的静态节点区,所述静态节点包括第一索引节点、根目录索引节点和空间索引节点;所述格式化装置还包括地址确定模块,用于根据所述静态节点的数目、索引节点的单位空间、磁盘块单位空间确定静态节点区的大小;第一索引节点的结构信息还包括第一索引节点的文件块快速表,第一初始化模块在初始化第一索引节点的结构信息时,第一索引节点的数据块指针设置为空,根据第一索引节点的数据块设置第一索引节点的文件块快速表,其中,第一索引节点的文件块快速表的每个表项包括指向第一文件对应的一段连续的文件数据块,第一文件对应的文件数据块存储第一文件的内容:根目录初始化模块在为根目录索引节点分配地址时,所分配的地址位于静态节点区;所述格式化装置还包括空间初始化模块,用于为空间索引节点分配索引号、地址和数据块,创建空间文件,并初始化空间索引节点,其中,空间索引节点的地址位于静态节点区,空间索引节点的结构信息还包括空间索引节点的文件块快速表,空间索引节点的块数据指针设置为空,空间索引节点的文件块快速表的每个表项包括一段连续的空闲数据块的起始地址与该一段连续的空闲数据块中数据块数量,各段连续的空闲数据块为磁盘分区中空闲的各区域;超级块初始化模块还用于在所述超级块中设置静态节点的数目、索引节点的单位空间、磁盘块单位空间。
由上,通过在格式化时增加对空间索引节点的初始化,相对于现有技术对管理空间磁盘空间的链表初始化,初始化时间短,与磁盘容量无关,通过设置静态节点区,为重要节点预留空间,便于对重要节点快速访问,从而对磁盘分区快速管理。
在第四方面的一种可能实施方式中,所述格式化参数还包括日志文件大小,其中,日志文件对应日志索引节点,所述静态节点还包括日志索引节点;地址确定模块还用于确定日志索引节点的起始地址位,日志索引节点的起始地址位于静态节点区后的第一磁盘块的地址,及根据日志文件大小获得日志空间区的大小,日志空间区的数据块包括日志空间区的大小、已用日志空间、日志数据;所述格式化装置还包括日志初始化模块,用于为日志索引节点分配索引号和地址,创建日志文件,并初始化日志索引节点和日志空间区,其中,日志索引节点的结构信息还包括其文件块快速表,日志索引节点的数据块指针设置为空,日志索引节点的文件块快速表的每个表项包括指向日志文件对应的一段连续的文件数据块,日志文件对应的文件数据块存在日志文件的内容:空间初始化模块在初始化空间节点时,在所述各段连续的空闲数据块中还减去日志空间区;超级块初始化模块还用于在所述超级块中设置日志文件大小、日志空间大小。
由上,通过在格式化设置日志空间区为磁盘分区的日志数据预留空间,提高磁盘分区的安全
本发明实施例的第五方面提供了一种磁盘分区的访问装置,对具有本发明实施例的第一方面的任一所述结构的磁盘分区进行访问,包括:超级块查询模块,用于从超级块中获得第一索引节点的地址;第一查询模块,用于根据第一索引节点的地址获得所述第一索引节点的结构信息,并据此获得第一文件;第二查询模块,用于根据被访问文件的索引号,从第一文件中获得被访问文件的索引节点的地址;数据块查询模块,用于根据被访问文件的索引节点的地址,获得被访问文件的所述索引节点,并据此获得被访问文件的对应的数据块;访问模块,用于对所述对应数据块进行读写操作。
由上,通过第一索引节点中确定被访问文件的索引节点的地址,再从被访问文件的索引节点中获取被访问文件的数据块地址,通过对该数据块的读写实现对被访问文件的快速访问,并且访问时间确定,不受文件长度和文件数量的影响。
本发明实施例的第六方面提供了一种计算机操作系统,使用本发明实施例的第一方面的任一所述结构管理磁盘分区。
本发明实施例的第七方面提供了一种计算机,包括本发明实施例的第六方面的所述操作系统。
本发明实施例的第八方面提供了一种计算设备,包括:
总线;
通信接口,其与总线连接;
至少一个磁盘,其与总线连接,并具有若干个本发明实施例的第一方面的任一所述结构的磁盘分区;以及
至少一个处理器,其与总线连接;以及
至少一个存储器,其与总线连接并存储有程序指令,程序指令当被至少一个处理器执行时使得至少一个处理器执行本发明实施例的第二方面任一所述格式化方法或第三方面的所述访问方法。
本发明实施例的第九方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令当被计算机执行时使得计算机本发明实施例的第二方面任一所述格式化方法或第三方面的所述访问方法。
附图说明
图1为本发明的一种磁盘分区的结构实施例一的结构示意图;
图2A为本发明的一种磁盘分区的结构实施例二的结构示意图;
图2B为本发明的一种磁盘分区的结构实施例二的哈希表与文件块表的结构示意图;
图2C为本发明的一种磁盘分区的结构实施例二的索引节点的专属信息的结构示意图;
图3A为本发明的一种磁盘分区的格式化方法实施例一的流程示意图;
图3B为本发明的一种磁盘分区的格式化方法实施例二的流程示意图;
图4为本发明的一种磁盘分区的访问方法实施例的流程示意图;
图5A为本发明的一种磁盘分区的格式化装置实施例一的结构示意图;
图5B为本发明的一种磁盘分区的格式化装置实施例二的结构示意图;
图6为本发明的一种磁盘分区的访问装置实施例的结构示意图;
图7为本发明实施例提供的计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
索引节点(Inode):文件系统中的一种数据结构,每个索引节点保存了文件系统中的一个文件的元信息数据,如存放该文件的数据块的指针,但不包括数据内容或者文件名。
磁盘块和数据块:磁盘分区的一个单位空间,数据块是用来存储文件内容的单位空间,一个数据块对应一个磁盘块。
下面首先结合符合介绍本发明各实施例。
本发明的实施例提供了一种磁盘分区的结构、格式化方法和访问方法,使用第一文件来管理磁盘分区上各个文件的索引节点,从而管理磁盘分区上的各个文件,其中,还利用空间文件来管理所有的空闲空间,利用日志文件来管理日志数据,利用目录文件来管理目录。本磁盘分区的结构简洁,支持秒级甚至毫秒级的快速格式化,并且格式化时间与存储容量大小无关;本磁盘分区的结构提高了文件的访问速度快并且访问时间确定,不受文件长度和文件数量的影响。
本发明的实施例还提供了使用本发明的磁盘分区的结构的格式化装置、访问装置、操作系统和计算机。
首先,基于图1至图2C介绍本发明的磁盘分区的结构实施例。
【一种磁盘分区的结构实施例一】
本磁盘分区的结构实施例一第一文件来管理磁盘分区上各个文件的索引节点,从而管理磁盘分区上的各个文件。本磁盘分区的结构实施例的结构简洁,支持快速格式化和快速访问。
图1示出了一种磁盘分区的结构实施例的结构,包括:超级块、索引节点、数据块。
索引节点包括第一索引节点和若干个第二索引节点,每个索引节点对应一个文件,第一索引节点对应第一文件,第一文件包括各第二索引节点的索引号与地址,第二索引节点包括根目录索引节点,其对应的文件为根目录文件,根目录文件是一种目录文件
每个索引节点的结构信息包括其索引号和其数据块指针。其中,在一些实施例中,数据块指针用哈希表指针的方式表示
每个索引节点的对应的文件储存于其对应的数据块中,该对应的数据块根据对应的索引节点的数据块指针确定,每个数据块占用一个磁盘块。其中,在一些实施例中,为了节省磁盘块,第一索引节点和第二索引节点的所在磁盘块作为第一文件对应的数据块,第一文件内容为各索引节点的结构信息。
超级块包括第一索引节点的地址和一个磁盘块的单位空间。
综上,本磁盘分区的结构实施例一直接使用第一文件来管理磁盘分区上各个文件的索引节点,从而管理磁盘分区上的各个文件。在每个文件的索引节点的结构信息中包括数据块指针表,指向该文件的各个数据块。本磁盘分区的结构实施例的结构简洁,在格式化时只需格式化第一索引节点和根目录索引节点,实现秒级甚至毫秒级的快速格式化,并且格式化时间与存储容量大小无关;在访问文件时,根据第一索引节点确定被访问文件的对应的索引节点地址,从而确定被访问文件的磁盘块,实现对被访问文件的快速访问。
【一种磁盘分区的结构实施例二】
一种磁盘分区的结构实施例二在一种磁盘分区的结构实施例一的基础上,第二索引节点增加空间索引节点,用来管理所有的空闲数据块,便于新增加的文件快速获取;同时使用多层哈希表增强数据块指针的对各文件的数据块管理能力,实现对大文件的快速访问文件,还使用文件块快速表进一步提高文件的访问速度和磁盘分区格式化的效率。
在介绍本磁盘分区的结构实施例之前,先介绍一下本结构实施例各种的文件分类、索引节点Inode分类。
本结构实施例的文件分为第一文件ifile和第二文件,第一文件管理所有第二文件的索引节点,从而管理所有第二文件。第二文件为除第一文件ifile以外的所有文件,包括空间文件sfile、日志文件lgfile、目录文件dfile和普通文件nfile。
其中,目录文件dfile包括根目录文件rfile。普通文件nfile为除空间文件sfile、日志文件lgfile、目录文件dfile以外的第二文件,示例地,包括数据文件和各种设备的描述文件。
本发明的索引节点Inode包括第一索引节点和第二索引节点,第二索引节点包括空间索引节点、日志索引节点、目录索引节点、文件索引节点,目录索引节点包括根目录索引节点。
其中,在磁盘分区格式化时创建的索引节点Inode为静态节点(static Inode),包括第一索引节点、空间索引节点、日志索引节点、根目录索引节点。
其中,在磁盘分区格式化后创建的索引节点Inode为动态节点(dynamic Inode),包括在磁盘分区格式化后创建的文件索引节点和目录索引节点。
每个索引节点Inode对应一个文件和一个索引号。
其中,第一索引节点对应第一文件ifile,第二索引节点对应第二文件,其中,空间索引节点对应空间文件sfile,日志索引节点对应日志文件lgfile,每个目录索引节点对应一个目录文件dfile,每个文件索引节点对应一个普通文件nfile。
其中,第一文件的内容包括所有第二文件对应的第二索引节点的地址和索引号;空间文件sfile的内容包括所有空闲数据块free space block的地址,一个磁盘分区只有一个空间文件sfile;日志文件lgfile的内容包括日志数据,一个磁盘分区只有一个日志文件lgfile;每个目录文件dfile的内容包括相应的目录下的子目录的名称和索引号,还包括该相应的目录下的文件的名称和索引号。普通文件nfile的内容包括普通文件的数据。
在一些实施例中,为了节省磁盘块,第一索引节点和第二索引节点的所在磁盘块作为存储第一文件ifile的数据块,第一文件内容为各索引节点的结构信息。
由上,空间索引节点管理空间文件,从而直接磁盘分区的空闲数据块,相对于现有技术用链表管理磁盘分区的空闲数据块,磁盘格式化效率高,在创建文件时获取空闲数据块效率更快。
下面再介绍各索引节点的对应的数据块分类,每个索引节点的对应的数据块至少包括一个文件块表,每个文件块表占用一个磁盘块。
其中,当索引节点为空间索引节点时,其文件块表为空间文件块表Space BlockTable,存储空间文件sfile的内容;其当索引节点为目录索引节点时,其文件块表为目录文件块表Dir Entry Table,存储目录文件dfile的内容。
其中,当索引节点为第一索引节点、日志索引节点或文件索引节点时,该索引节点对应的数据块还包括若干个文件数据块File Data Block,每个文件数据块占用一个磁盘块,根据该索引节点对应的文件块表确定该索引节点对应的文件数据块的地址。当索引节点为第一索引节点时,其文件块表为第一文件块表,其文件数据块为第一文件数据块,存储第一文件ifile的内容;当索引节点为日志索引节点时,其文件块表为日志文件块表LogEntry Table,其文件数据块为日志文件数据块Log Data Block,存储日志文件lgfile的内容;当索引节点为文件索引节点时,其文件块表为普通文件块表,其文件数据块为普通文件数据块,存储普通文件nfile的内容。
下面基于上述的文件分类、索引节点Inode分类和数据块分类介绍本磁盘分区的结构实施例。
图2A示出了一种磁盘分区的结构实施例二的结构,包括:超级块、静态节点区、日志空间区和动态数据区。
超级块用于存储一个磁盘分区的文件系统的基本信息,超级块的信息包括:磁盘块的单位空间、索引节点的单位空间、静态索引节点的数目、第一索引节点的地址、日志数据的可占用空间大小。
其中,索引节点的单位空间、静态索引节点的数目和磁盘块的单位空间确定静态节点区的大小,再根据磁盘块的单位空间确定静态节点区的磁盘块数目。
其中,根据日志数据的可占用空间大小确定日志空间区的大小,再根据磁盘块的单位空间确定日志空间区的磁盘块数目。
在一些实施例中,超级块、静态节点区、日志空间区和动态数据区在空间上顺序连续分布,示例地,超级块占用0号磁盘块,从0号磁盘块的1024字节偏移处开始,静态节点区从1号磁盘块开始,日志空间区从静态节点区后第一个磁盘块开始,动态数据区从日志空间区后第一个磁盘块开始。在另一些实施例中,超级块、静态节点区、日志空间区和动态数据区分别从约定的磁盘块开始。
在一些实施例中,超级块的信息还包括磁盘分区的区号、磁盘分区大小,第一个非保留索引号。
其中,磁盘分区的区号用来识别磁盘分区,磁盘分区大小用来计算空闲的数据块,第一个非保留索引号用来快速获得当前可用索引节点。
示例地,磁盘块单位空间为4KB,索引节点的单位空间为256B,一个磁盘块可存储16(4K/256=16)个索引节点,在磁盘分区可视化时,第一个非保留索引号在5与15之间。
在一些实施例中,超级块的信息还包括日志空间区的大小、起始地址和已用日志空间,便于快速访问日志数据区。
在一些实施例中,超级块的信息还包括格式化标志位,以表示磁盘分区是否格式化。
静态节点区存储的静态节点,包括第一索引节点、空间索引节点、根目录索引节点和日志索引节点,图2A中示例地给出各静态节点的索引号和在静态节点区的地址,示例地,第一索引节点的索引号为1,其地址为静态节点区的第一个节点的地址(0号节点地址保留),空间索引节点的索引号为2,其地址为静态节点区的第二个节点的地址,根目录索引节点的索引号为3,其地址为静态节点区的第三个节点的地址,日志索引节点的索引号为4,其地址为静态节点区的第四个节点的地址,5-9索引号保留,从第10个索引号开始用于其他静态节点。
在本磁盘分区的结构实施例中,静态节点与动态节点的结构信息相同,包括:节点基本信息Inode Basic Info、哈希表层级Inode Hash Levels、根哈希表指针Inode HashRoot和专属信息Inode Private Info。
其中,节点基本信息Inode Basic Info包括索引节点的索引号、对应的文件大小。在一些实施例中,还包括相应的索引节点对应的文件占用磁盘块数目、访问权限、访问时间等基本信息。
其中,在本磁盘分区的结构实施例中,哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root组成数据库指针,用于确定相应的索引节点对应的文件块表的地址。在另一些实施例中,节点结构中不包括哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root,但包括其他形式的数据库指针。
其中,在本磁盘分区的结构实施例中,当一个索引节点的根哈希表指针InodeHash Root不为空时,该索引节点的数据块还包括至少一张哈希表,每个哈希表占用一个磁盘块。一个索引节点的哈希表层级Inode Hash Levels表示该索引节点对应的哈希表层级的数目,与对应的文件大小正向变化;根哈希表指针Inode Hash Root指向对应的索引节点的根哈希表,根哈希表为对应的索引节点的最高层级的哈希表,高层级的哈希表包括其对应的相邻的低层级的哈希表的指针,最低层级的哈希表的表项为对应的索引节点的文件块表的起始地址。根据一个索引节点的哈希表层级Inode Hash Levels和根哈希表指针InodeHash Root确定该索引节点对应的文件内容的过程在图2B中详细介绍。
其中,当索引节点为第一索引节点、空间索引节点、日志索引节点、普通索引节点时,其专属信息Inode Private Info包括文件块快速表,当1个文件的数据块指针为空时,用于替代文件块表,在后文结合图2C详细介绍专属信息Inode Private Info。
日志空间区用于存储日志数据和日志元数据,日志元数据包括:日志空间区大小Log Limit、已用日志空间大小Log Used、日志文件块表Log Entry Table,日志数据存储于若干个日志数据块Log Data Block。
其中,日志文件块表Log Entry Table是日志索引节点的文件块表,日志数据块Log Data Block是日志文件的文件数据块。日志文件块表Log Entry Table的每个表项包括一段连续的日志数据块Log Data Block的起始地址和该一段连续的日志数据块LogData Block中磁盘块的数目。
动态数据区的数据包括动态节点、日志文件的哈希表、除日志文件以外的各文件的文件块表和相应的文件数据块。动态数据区的数据根据实际需求申请分配。
示例地,动态数据区的数据按位置顺序包括:目录文件块表Dir Entry Table、各索引节点的哈希表、第一文件块表、普通文件块表、空间文件块表Space Block Table、动态节点、第一文件数据块和普通文件数据块。
其中,哈希表、目录关系表Dir Entry Table、第一文件块表、普通文件块表和空间文件块表Space Block Table属于元数据matedata。
其中,动态节点包括在磁盘分区格式化后创建的普通文件节点和目录节点,与静态节点具有相同的节点结构,参照上文的静态节点的结构描述。
图2B示出了根据一个索引节点的哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root确定该索引节点对应的文件内容的过程。
实际场景中一个索引节点可以对应多个层级哈希表,哈希表层级根据对应的文件大小正向变化,示例地,图2B中以三层哈希表为例进行说明。
其中,当一个索引节点的哈希表层级Inode Hash Levels为3时,其根哈希表指针Inode Hash Root指向一个三级哈希表,哈希表的级数越大,其层级越高,该三级哈希表的每个表项指向一个二级哈希表,该二级哈希表的每个表项又指向一个一级哈希表,该一级哈希表的每个表项又指向一个文件块表。
其中,当一个索引节点的哈希表层级Inode Hash Levels为2时,其根哈希表指针Inode Hash Root指向一个二级哈希表,该二级哈希表的每个表项又指向一个一级哈希表,该一级哈希表的每个表项又指向一个文件块表。
其中,当一个索引节点的哈希表层级Inode Hash Levels为1时,其根哈希表指针Inode Hash Root指向一个一级哈希表,该一级哈希表的每个表项指向一个文件块表。
图2B示例地给出每个哈希表包括n个表项,实际场景每个哈希表可以定义不同数目的表项。
其中,目录索引节点对应一个目录的目录文件,其文件块表为目录文件块表DirEntry Table,目录文件块表Dir Entry Table存储该目录文件dfile的内容,目录文件块表Dir Entry Table的每个表项包括该目录下的一个子项的名称和对应的索引号,该子项为该目录下的子目录或文件。
其中,第一索引节点对应第一文件,其文件块表为第一文件块表,第一文件块表的每个表项包括一段连续的第一文件数据块的起始地址和该一段连续的第一文件数据块中磁盘块的数目,各第一文件数据块存储第一文件ifile的内容。在一些实施例中,为了节省磁盘块,第一索引节点和第二索引节点的所在磁盘块作为存储第一文件ifile的第一文件数据块。
其中,当索引节点为文件索引节点时,其文件块表为普通文件块表,普通文件块表的每个表项包括一段连续的普通文件数据块的起始地址和该一段连续的普通文件数据块中磁盘块的数目,各第一文件数据块存储对应的普通文件nfile的内容。
其中,当索引节点为日志索引节点时,其文件块表和文件数据块在日空间区已经描述,这里不再详述。
当索引节点为空间索引节点时,其文件块表为空间文件块表Space Block Table,空间文件块表Space Block Table存储该空间文件sfile的内容,空间文件块表SpaceBlock Table的每个表项包括一段连续的空闲数据块Free data block的起始地址和该一段连续的空闲数据块Free data block的磁盘块数目。
由上,根据多层级的哈希表层级使索引节点可以管理各种大小的文件,增强索引节点的管理能力。
图2C示出各种索引节点的专属信息Inode Private Info的结构。
第一索引节点的专属信息Inode Private Info包括:索引节点的总数TotalInode Count、空闲索引节点数Free Inode Count、首个非空闲的索引号Free Inode Index和第一文件块快速表。第一文件块快速表的内容与第一文件块表相同。示例地,图2C中的第一文件块快速表指向5个第一文件数据块,可以实际场景设定其他数目的第一文件数据块。
文件索引节点的专属信息包括预留的普通文件数据块总数和普通文件块快速表,普通文件块快速表的内容与普通文件块表相同,其每个表项为一个指针。示例地,图2C中的日志文件块快速表指向5个普通文件数据块,可以实际场景设定指向其他数目的普通文件数据块。
日志索引节点的专属信息包括预留的日志文件数据块数和日志文件块快速表,日志文件块快速表的内容与日志文件块表Log Block Table相同。示例地,图2C中的日志文件块快速表指向5个日志文件数据块,可以实际场景设定指向其他数目的日志文件数据块。
空间索引节点的专属信息包括预留的空闲数据块数和空间文件块快速表,空间文件块快速表的内容与空间文件块表Space Block Table相同。示例地,图2C中的日志文件块快速表指向8个连续的空闲数据块,可以实际场景设定指向其他数目的连续的空闲数据块。
目录索引节点的专属信息包括上层目录的索引号Dot dot ino和当对应目录的子项数目Dir Entry count。
由上,通过文件块快速表快速查询对应文件的文件数据块,从而进一步提升文件访问速率,在格式化时进一步提升格式化效率。
综上,一种磁盘分区的结构实施例二在一种磁盘分区的结构实施例一的基础上,第二索引节点增加空间索引节点,用来管理所有的空闲数据块,便于新增加的文件快速获取空闲数据块;同时使用多层哈希表增强数据块指针的对各文件的数据块管理能力,实现对大文件的快速访问文件,还使用文件块快速表进一步提高文件的访问速度和磁盘分区格式化的效率。
【一种磁盘分区的格式化方法实施例一】
一种磁盘分区的格式化方法实施例一对具有一种磁盘分区的结构实施例一所述结构的磁盘分区进行格式化,该格式化过程具有快速的优点,且格式化的时间与磁盘分区大小无关。
图3A示出了一种磁盘分区的格式化方法实施例的流程,其包括步骤S1010至S1050。
S1010:获取格式化参数,该格式化参数至少包括第一索引节点的地址。
在一些实施例中,第一索引节点的地址以在磁盘分区的绝对地址表示;在一些实施例中,磁盘分区包括静态节点区,第一索引节点的地址的以静态节点区+区内偏移地址表示,示例地为256字节,静态节点区的地址为第一个磁盘块地址,第一索引节点在静态节点区的区内偏移地址为256字节。
S1020:为第一索引节点分配索引号和数据块,创建第一文件,并在第一索引节点的地址处初始化第一索引节点的结构信息。
在一些实施例中,该结构信息包括第一索引节点的数据块指针,根据该数据块指针用于确定第一文件ifile的数据块的地址。在其中的一些实施例中,第一索引节点的数据块指针以哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root的组合形式表示,根据哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root获得第一文件ifile的第一文件块表,再根据第一文件块表获得第一文件数据块。
在一些实施例中,第一索引节点的结构信息中包括的第一索引节点的数据块指针为空,但设置了第一索引节点的文件块快速表,根据该文件块快速表获得第一文件ifile的文件数据块的地址,并从中获取第一文件ifile。
S1030:为根目录索引节点分配索引号、地址和数据块,创建根目录文件,并在根目录索引节点的地址处初始化根目录索引节点的结构信息。
其中,根目录索引节点的结构信息包括其索引号和数据块指针,该数据块指针用于确定根目录文件rfile的数据块的地址。
在一些实施例中,根目录索引节点的数据块指针,以哈希表层级Inode HashLevels和根哈希表指针Inode Hash Root的组合形式表示。根据哈希表层级Inode HashLevels和根哈希表指针Inode Hash Root获得目录文件rfile的根目录文件块表,再根据根目录文件块表获得根目录文件数据块。
在一些实施例中,第一索引节点的结构信息中包括的根目录索引节点的数据块指针为空,但设置了根目录索引节点的文件块快速表,根据该文件块快速表获得根目录文件rfile的文件数据块的地址,并从中获取根目录文件rfile。
S1040:在第一文件中的数据块中设置根目录索引节点的索引号和地址,或更新第一索引节点的数据块指针。
在一些实施例中,存储第一文件ifile的数据块与各索引节点不重复,本步骤在第一文件ifile的数据块中设置根目录索引节点的索引号和地址,从而通过第一文件ifile管理根目录文件,获取根目录信息。
在一些实施例中,为了节省磁盘块,第一索引节点和第二索引节点的所在磁盘块作为第一文件ifile对应的数据块,第一文件内容为各索引节点的结构信息,在这些实施例中,本步骤根据根目录索引节点的所在磁盘块更新第一索引节点的数据块指针。
S1050:在设定地址的磁盘块中初始化超级块中,设置第一索引节点的地址。
其中,在超级块中设置第一索引节点的地址便于文件系统直接获得第一索引节点的地址。
在一些实施例中超级块设定在磁盘分区的0号磁盘块中,从其中1024字节开始。
需要强调的是:在初始化完成后为了更好管理磁盘分区,在一些实施例中,通过链表的方式管理磁盘分区的空闲数据块,在另一些实施例中,通过空间索引节点的方式管理磁盘分区的空闲数据块,空间索引节点对应空间文件,空间文件存储磁盘分区的空闲数据块的地址。
综上,一种磁盘分区的格式化方法实施例一磁盘分区进行格式化,只格式化第一索引节点和根模块索引节点,该格式化过程具有快速的优点,且格式化的时间与磁盘分区大小无关。
【一种磁盘分区的格式化方法实施例二】
一种磁盘分区的格式化方法实施例二对具有一种磁盘分区的结构实施例二所述结构的磁盘分区进行格式化,在格式时通过设置空间索引节点增强对空闲数据块的管理,设置文件块快速表进一步提升格式化的效率。
图3B示出了一种磁盘分区的格式化方法实施例的流程,其包括步骤S1110至S1170。
S1110:获取磁盘分区的格式化参数。
其中,格式参数至少包括:磁盘分区空间大小total_blk_nums、静态索引节点数目init_inode_nums、磁盘块单位空间、索引节点单位空间、日志文件大小log_blk_nums、第一索引节点的起始地址和是否强制格式化标记Forced。
其中,磁盘分区空间大小total_blk_nums、日志文件大小log_blk_nums以磁盘块的数目表示,第一索引节点的起始地址为第一索引节点的磁盘块地址ifile_addr+偏移地址表示。
在一些实施例中,格式参数还包括磁盘区块号part_id和磁盘访问驱动drv,磁盘区块号part_id和磁盘访问驱动drv对应。
在一些实施例中,格式参数还包括超级块起始地址。
示例地,超级块起始地址预定在0号磁盘块的1024字节处,磁盘块单位空间预设为4KB,索引节点单位空间预设为256B
其中,上述参数可以同时获取,也可以格式化过程中分步获取,本例以同时获取为例进行说明。
S1120:根据格式化标记和/或是否强制格式化标记判断是否继续格式化。如果继续格式化,则进入步骤S1130,否则退出格式化流程。
其中,过去完成格式化的磁盘分区的超级块中设置了格式化标记。
其中,判断是否继续格式化的方法包括:
(1)读取超级块的磁盘分区格式化标记,当无法获取磁盘分区格式化标记或磁盘分区格式化标记为未格式化时,说明磁盘分区未格式化,继续格式化;
(2)当磁盘分区格式化标记为已格式化且输入的是否强制格式化标记Forced为强制格式化时,继续格式化。
(3)当磁盘分区格式化标记为已格式化且输入的是否强制格式化标记Forced为不强制格式化时,则退出格式化。
S1130:根据格式化参数获得静态节点区的大小与起始地址、日志空间区的大小与起始地址、动态数据区的起始地址。
其中,格式化后的磁盘分区包括一种磁盘分区的格式化方法实施例二中描述的超级块、静态节点区、日志空间区和动态数据区。在本实施例中,为了叙述方便,超级块部署在0号磁盘块、静态节点区、日志空间区和动态数据区顺序连续部署。在一些实施例中,超级块、静态节点区、日志空间区和动态数据区的起始地址可设,其他格式化的步骤不变,其在本质上与本发明相同,也属于本发明的保护范围。
本步骤包括以下子步骤:
(1)以第一索引节点地址中的磁盘块地址ifile_addr为静态节点区的起始地址。
(2)根据静态索引节点数目init_inode_nums和索引节点单位空间确定静态索引节点的空间大小,再除以磁盘块单位空间获得静态节点区的磁盘块数目Inode_blks。
(3)确定日志空间区的磁盘块起始地址lgfile_addr为ifile_addr+Inode_blks,作为日志空间区的起始地址。
(4)根据log_blk_nums计算日志空间区大小,以所需磁盘块数目log_blks,log_blks包括日志块表区域记录区所需的磁盘块lgtbl_blks,lgtbl_blk存储日志文件块表、日志空间区大小和已用日志数据大小。
(5)确定动态数据区的起始地址的磁盘块起始地址为free_addr为lgfile_addr+log_blks,作为动态数据区的起始地址。
S1140:创建静态节点区,为各静态节点分配索引号和地址。
具体地,第一索引节点的磁盘块地址ifile_addr开始的第一个磁盘块的16个静态节点,并为空间索引节点、根目录索引节点和日志索引节点分配索引号和地址。
其中,在该第一个磁盘块的0号索引节点保留,第一索引节点的索引号为1,地址为输入的第一索引节点的地址,
示例地,设第一索引节点的地址为磁盘块ifile_addr+256字节的偏移地址,根目录索引节点的索引号为2,地址为磁盘块ifile_addr+256*2字节的偏移地址,根目录索引节点的索引号为3,地址为磁盘块ifile_addr+256*3字节的偏移地址,日志索引节点的索引号为4,地址为磁盘块ifile_addr+256*4字节的偏移地址。
S1150:初始化第一索引节点。
在本实施例中,为了节省磁盘块,第一索引节点和第二索引节点的所在磁盘块作为存储第一文件ifile的数据块,第一文件内容为各索引节点的结构信息。同时,以文件块快速表代替文件块表,以提高格式化速度。
其中,初始化第一索引节点包括设置第一索引节点的结构信息,具体包括:
(1)第一索引节点的基本信息Inode Basic Info中的索引号为1,第一文件大小为Inode_blks*4KB,访问权限为可读写的,访问时间为当前系统的时间。
(2)哈希表层级Inode Hash Levels为0,根哈希表指针Inode Hash Root为NULL,以表示数据块指针信息为空。
(3)专属信息Inode Private Info中的第一文件块快速表的第一表项中记录ifile使用的磁盘块起始地址为ifile_addr、磁盘块数量为inode_blks。
(4)专属信息Inode Private Info中节点总数Total Inode Count为16,剩余节点数目为Free Inode Count为6,第一非空闲的节点Free Inode index为10。其中,静态节点中5号到9号节点保留。
S1160:初始化日志索引节点、根目录索引节点和空间索引节点。
在初始化上述节点时,以文件块快速表代替文件块表,以提高格式化速度。
(1)在初始化空间索引节点时,包括:
节点基本信息Inode Basic Info中的索引号为2,空闲的磁盘块数目设置为total_blk_nums-free_addr,访问权限为可读写的,访问时间为当前系统的时间;
哈希表层级Inode Hash Levels为0,其根哈希表指针Inode Hash Root为NULL,以表示数据块指针信息为空;
专属信息Inode Private Info中空间文件块快速表第一表项的指针指向free_addr,表项数目为total_blk_nums-free_addr;
专属信息Inode Private Info中预留数据块数Total Booked Blocks为0。
(2)在初始化根目录索引节点时,包括:
节点基本信息Inode Basic Info中的索引号为3,分配的磁盘块数目为0,访问权限为可读写的,访问时间为当前系统的时间;
哈希表层级Inode Hash Levels为0,其根哈希表指针Inode Hash Root为NULL,以表示数据块指针信息为空;
专属信息Inode Private Info中上层根目录Dot dot ino为3即为本身,包括的子目录与文件的数目Dir Entry Count为0。
(3)在初始化日志索引节点时,包括:
节点基本信息Inode Basic Info中的索引号为4,文件大小为log_blks*4KB,分配的磁盘块数目为log_blks,访问权限为可读写的,访问时间为当前系统的时间;
其哈希表层级Inode Hash Levels为0,其根哈希表指针Inode Hash Root为NULL,以表示数据块指针信息为空;
专属信息Inode Private Info中预留的空闲数据块数为0,日志文件块快速表中第一表项为lgfile_addr,日志文件数据块数目为log_blks。
日志空间区日的日志数据空间Log Limit为log_blk_nums,使用日志数据块LogUsed为0。
S1170:根据初始化后的上述各索引节点的信息,初始化超级块。
其中,磁盘分区的总空间为total_blk_nums、静态索引节点的数目为init_inode_nums、第一索引节点的地址为ifile_addr+偏移地址、磁盘块单位空间、索引节点单位空间、日志文件大小log_blk_nums、日志空间区的起始地址为lgfile_addr。在一些实施例中,磁盘分区格式化标记为已格式化。
综上,在一种磁盘分区的格式化方法实施例二中,在整个格式化过程中,用文件块快速表代替文件块表,以简单的空间节点初始化代替现有技术用复杂的链表管理空闲空间,本实施例实现秒级甚至毫秒级的快速格式化,格式化的效率更高,且格式化时间与存储容量大小无关。
【一种磁盘分区的访问方法实施例】
一种磁盘分区的访问方法实施例对一种磁盘分区的结构实施例一或结构实施例二中所述的磁盘分区进行访问,在第一索引节点中确定被访问文件的索引节点的地址,再从被访问文件的索引节点中获取被访问文件的数据块地址,从而实现对被访问文件的快速访问。
本访问方法实施例以访问普通文件为例进行说明,对其他文件的访问的方法类似,也属于本发明的保护范围。
图4示出了一种磁盘分区的访问方法实施例的流程,其包括步骤S210至S250。
S210:从超级块中获得第一索引节点的地址。
在一些实施例中,第一索引节点的地址以在磁盘分区的绝对地址表示;在一些实施例中,磁盘分区包括静态节点区,第一索引节点的地址的以静态节点区+区内偏移地址表示,示例地为256字节,静态节点区的地址为第一个磁盘块地址,第一索引节点在静态节点区的区内偏移地址为256字节。
S220:从第一索引节点的地址处获得第一索引节点的结构信息,并据此获得第一文件。
其中,从第一索引节点的地址处获得第一索引节点的结构信息。
在一些实施例中,该结构信息包括第一索引节点的数据块指针,根据该数据块指针获得第一文件的数据块的地址,并从中获取第一文件。在其中的一些实施例中,第一索引节点的数据块指针以哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root的组合形式表示,根据哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root获得第一文件的第一文件块表,再根据第一文件块表获得第一文件数据块,并从中获得被访问文件。
在一些实施例中,第一索引节点的结构信息中包括的第一索引节点的数据块指针为空,但设置了第一索引节点的文件块快速表,根据该文件块快速表获得第一文件ifile的文件数据块的地址,并从中获取第一文件ifile。
S230:根据被访问文件的索引号,从第一文件中获得被访问文件的索引节点的地址。
在一些实施例中,在操作系统启动时中,通过获取各目录文件,获得磁盘分区中各个文件的名称和索引号,并都保存在内存中,根据被访问文件的名称从内存中快速获取被访问文件的索引号。
S240:根据被访问文件的索引节点的地址,获得被访问文件的索引节点的结构信息,并据此获得被访问文件的对应的数据块。
其中,被访问文件的索引节点的地址获得被访问文件的索引节点的结构信息。
在一些实施例中,该结构信息包括被访问文件的索引节点的数据块指针,根据该数据块指针获得被访问文件的数据块的地址。在其中的一些实施例中,被访问文件的索引节点的数据块指针以哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root的组合形式表示,根据哈希表层级Inode Hash Levels和根哈希表指针Inode Hash Root获得被访问文件的普通文件块表,再根据该普通文件块表获得被访问文件的普通文件数据块的地址。
在一些实施例中,被访问文件的索引节点中包括的数据块指针为空,但设置了被访问文件的文件块快速表,根据该文件块快速表获得被访问文件的普通文件数据块的地址。
S250:通过对被访问文件的各数据块进行读写,实现对被访问文件的访问。
在一些实施例中,对被访问文件的各数据块进行读写,就是对被访问文件的各文件数据块进行读写。
综上,在一种磁盘分区的访问方法实施例中,通过第一文件额第一索引节点中确定被访问文件的索引节点的地址,再从被访问文件的索引节点中获取被访问文件的数据块地址,通过对该数据块的读写实现对被访问文件的快速访问,并且访问时间确定,不受文件长度和文件数量的影响。
需要强调的,除了所述的格式化方法实施例和所述的访问方法实施例,对具有一种磁盘分区的结构实施例的磁盘分区进行任何其他操作方法都属于本发明的保护范围,如文件新建方法、文件删除方法、文件改名方法、文件移动方法等。
【一种磁盘分区的格式化装置实施例一】
一种磁盘分区的格式化装置实施例运行一种磁盘分区的格式化方法实施例一所述的方法。
图5A示出了一种磁盘分区的格式化装置实施例一的结构,包括:参数获取模块4010、第一初始化模块4020、根目录初始化模块4030、超级块初始化模块4040。
参数获取模块4010用于获取格式化参数。其工作方法和优点参照一种磁盘分区的格式化方法实施例一的步骤S1010。
第一初始化模块4020用于为第一索引节点分配索引号和数据块,创建第一文件,并在第一索引节点的地址处初始化第一索引节点的结构信息。其工作方法和优点参照一种磁盘分区的格式化方法实施例一的步骤S1020。
根目录初始化模块4030用于为根目录索引节点分配索引号、地址和数据块,创建根目录文件,并在根目录索引节点的地址处初始化根目录索引节点的结构信息。其工作方法和优点参照一种磁盘分区的格式化方法实施例一的步骤S1030。
根目录初始化模块4030还用于在第一文件中的数据块中设置根目录索引节点的索引号和地址或更新第一索引节点的数据块指针。其工作方法和优点参照一种磁盘分区的格式化方法实施例一的步骤S1040。
超级块初始化模块4040用于在设定地址的磁盘块中初始化超级块中,设置第一索引节点的地址。其工作方法和优点参照一种磁盘分区的格式化方法实施例一的步骤S1050。
【一种磁盘分区的格式化装置实施例二】
一种磁盘分区的格式化装置实施例二运行一种磁盘分区的格式化方法实施例二所述的方法。
图5B示出了一种磁盘分区的格式化装置实施例二的结构,包括:参数获取模块4110、判断模块4120、地址确定模块4130、静态区域创建模块4140、第一初始化模块4150、第二初始化模块4160和超级块初始化模块4170。
参数获取模块4110用于获取磁盘分区的格式化参数。其工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1110。
判断模块4120用于判断根据格式化标记和/或是否强制格式化标记判断是否继续格式化。其工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1120。
地址确定模块4130用于根据格式化参数获得静态节点区的大小与起始地址、日志空间区的大小与起始地址、动态数据区的起始地址。其工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1130。
静态区域创建模块4140用于创建静态节点区,为各静态节点分配索引号和地址。其工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1140。
第一初始化模块4150用于初始化第一索引节点。其工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1150。
第二初始化模块4160用于初始化日志索引节点、根目录索引节点和空间索引节点。第二初始化模块4160包括:根目录初始化模块,用于完成根目录索引节点的初始化;空间录初始化模块,用于完成空间索引节点的初始化;日志初始化模块,用于完成日志索引节点的初始化和日志空间区的创建。其中,各模块的工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1160。
超级块初始化模块4170用于根据初始化后的各索引节点的信息,初始化超级块。其工作方法和优点参照一种磁盘分区的格式化方法实施例二的步骤S1170。
【一种磁盘分区的访问装置实施例】
一种磁盘分区的访问装置实施例运行一种磁盘分区的访问方法实施例所述的方法。
图6示出了一种磁盘分区的访问装置实施例的结构,包括:超级块查询模块510、第一查询模块520、第二查询模块530、数据块查询模块540和访问模块550。
超级块查询模块510用于从超级块中查询第一索引节点的地址。其工作方法和优点参照一种磁盘分区的访问方法实施例的步骤S210。
第一查询模块520用于从第一索引节点的地址处获得第一索引节点的结构信息,并据此获得第一文件。其工作方法和优点参照一种磁盘分区的访问方法实施例的步骤S220。
第二查询模块530用于根据被访问文件的索引号,从第一文件中获得被访问文件的索引节点的地址。其工作方法和优点参照一种磁盘分区的访问方法实施例的步骤S230。
数据块查询模块540用于根据被访问文件的索引节点的地址,从被访问文件的索引节点的信息中获得被访问文件的各数据块。其工作方法和优点参照一种磁盘分区的访问方法实施例的步骤S240。
访问模块550用于通过被访问文件的各数据块进行读写,实现对被访问文件的访问。其工作方法和优点参照一种磁盘分区的访问方法实施例的步骤S250。
需要强调的,除了所述的格式化装置实施例和所述的访问装置实施例,对具有一种磁盘分区的结构实施例的磁盘分区进行任何其他操作的装置还包括其他装置都属于本发明的保护范围,如文件新建装置、文件删除装置、文件改名装置、文件移动装置等。
【操作系统实施例】
本发明实施例还提供了一种计算机操作系统实施例,该操作系统实施例管理本发明的一种磁盘分区的结构实施例一或结构实施例一所述结构的磁盘分区。
【计算实施例】
本发明实施例还提供了一种计算机,包括本发明的一种计算机操作系统实施例的所述操作系统。
【计算设备实施例】
本发明还提供的一种计算设备实施例,下面图7详细介绍。
该计算设备700包括,处理器710、存储器720、通信接口730、总线740、磁盘750。
应理解,该图所示的计算设备700中的通信接口730可以用于与其他设备之间进行通信。
其中,该处理器710可以与存储器720连接。该存储器720可以用于存储该程序代码和数据。因此,该存储器720可以是处理器710内部的存储单元,也可以是与处理器710独立的外部存储单元,还可以是包括处理器710内部的存储单元和与处理器710独立的外部存储单元的部件。
可选的,计算设备700还可以包括总线740。其中,存储器720、通信接口730可以通过总线740与处理器710连接。总线740可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线740可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一类型型的总线。
应理解,在本发明实施例中,该处理器710可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器710采用一个或多个集成电路,用于执行相关程序,以实现对具有本发明的所述结构的磁盘分区进行文件系统管理,包括格式化和访问的功能。
该存储器720可以包括只读存储器和随机存取存储器,并向处理器710提供指令和数据。处理器710的一部分还可以包括非易失性随机存取存储器。例如,处理器710还可以存储设备类型的信息。
在计算设备700运行时,所述处理器710执行所述存储器720中的计算机执行指令执行的对具有本发明的所述结构的磁盘分区进行文件系统管理的功能。
磁盘750可以是一个磁盘或磁盘阵列,包括若干个磁盘分区,其中一个或多个磁盘分区使用本发明所述磁盘分区的结构管理其上的文件系统。
应理解,根据本发明实施例的计算设备600可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备600中的各个模块的上述和其它操作和/或功能分别为了实现对具有本发明的所述结构的磁盘分区进行文件系统管理的相应功能,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述运行方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
【计算介质】
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于对具有本发明的所述结构的磁盘分区进行文件系统管理的功能,包括格式化和访问功能。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。

Claims (19)

1.一种磁盘分区的结构,其特征在于,包括:超级块、若干个索引节点和若干个数据块;
每个索引节点的结构信息包括其索引号和其数据块指针;
每个索引节点对应一个文件,该文件储存于其对应的数据块中,所述对应的数据块根据相应的索引节点的数据块指针确定,每个数据块占用一个磁盘块;
所述索引节点包括第一索引节点和若干个第二索引节点,其中,所述第一索引节点对应第一文件,所述第一文件包括各所述第二索引节点的索引号与地址,所述第二索引节点包括各目录索引节点、空间索引节点、日志索引节点和各文件索引节点,所述目录索引节点包括根目录索引节点,所述空间索引节点对应的文件为空间文件,所述空间文件的内容用于确定磁盘分区中各空闲的数据块的地址,所述日志索引节点对应的文件为日志文件,每个所述文件索引节点对应一个普通文件,每个所述目录索引节点对应一个目录文件;
所述超级块包括所述第一索引节点的地址和一个磁盘块的单位空间。
2.根据权利要求1所述结构,其特征在于,每个所述目录文件对应一个目录,其内容包括该目录下的各子项信息,所述各子项信息包括该目录下各子目录的名称与所述各子目录的索引节点的索引号、该目录下的各所述普通文件的名称与各所述普通文件的索引节点的索引号。
3.根据权利要求2所述结构,其特征在于,每个索引节点对应的数据块至少包括一个文件块表,所述文件块表的地址根据相应的索引节点的所述数据块指针确定,每个文件块表占用一个数据块,每个数据块为一个磁盘块;
当索引节点为所述空间索引节点时,其所述文件块表的每个表项存储一段连续的空闲数据块的起始地址和该一段连续的空闲数据块中各自空闲数据块数量;
当索引节点为所述目录索引节点时,其所述文件块表的每个表项包括对应的目录的一个所述各子项信息;
当索引节点为所述第一索引节点、所述日志索引节点或所述文件索引节点时,该索引节点对应的数据块还包括若干个文件数据块,该若干个文件数据块存储该索引节点对应的文件的内容,该索引节点对应的文件块表的每个表项包括一段连续的文件数据块的起始地址和该一段连续的文件数据块中文件数据块数目,所述文件数据块以磁盘块为单位;
所述超级块包括磁盘块单位空间和磁盘分区大小。
4.根据权利要求3所述结构,其特征在于,每个索引节点的所述数据块指针包括对应的文件的哈希表层级和根哈希表指针,其中,所述哈希表层级与该对应的文件大小正向变化;
每个文件对应的数据块还包括该文件的若干层级的哈希表,其中,高层级的哈希表的表项包括相邻的低层级的哈希表的起始地址,最低层级的哈希表的每个表项包括所述对应的文件的一个文件块表的起始地址,每个哈希表占用一个数据块。
5.根据权利要求3或4所述结构,其特征在于,所述第一索引节点、所述空间索引节点、所述日志索引节点或所述文件索引节点的结构信息还包括各自的文件块快速表,其中,当索引节点的所述数据块指针为空时,所述文件块快速表代替相应的所述文件块表。
6.根据权利要求1至4任一所述结构,其特征在于,所述第一索引节点的结构信息还包括索引节点的总数、空闲的索引节点的总数,首个非空闲的索引节点的索引号;
所述超级块还包括所述首个非空闲的索引节点的索引号。
7.根据权利要求2至4任一所述结构,其特征在于,所述目录索引节点的结构信息还包括第一目录的上层目录的所述索引号和所述第一目录中子目录与普通文件的总数,所述第一目录为所述目录索引节点对应的目录。
8.根据权利要求2所述结构,其特征在于,索引节点分为静态节点和动态节点,其中,所述静态节点在磁盘格式化时创建,所述动态节点在磁盘格式化后创建;
所述静态节点包括所述第一索引节点、所述空间索引节点和所述根目录索引节点,所述静态节点存储于静态节点区,所述静态节点包括所述超级块后的若干个连续的磁盘块;
所述超级块还包括所述静态节点的数目和单个索引节点的空间。
9.根据权利要求8所述结构,其特征在于,所述静态节点还包括所述日志索引节点;
所述日志索引节点对应的数据块位于日志空间区,所述日志空间区包括所述静态节点区后的若干个磁盘块,所述日志空间区在磁盘分区格式时创建;
所述日志索引节点对应的数据块还包括所述日志空间区的大小和已使用的日志空间区的大小;
所述超级块还包括所述日志空间区的起始地址与大小、日志文件的大小。
10.一种磁盘分区的格式化方法,其特征在于,对具有权利要求1至9任一所述结构的磁盘分区进行格式化,所述格式化方法包括:
获取格式化参数,所述格式化参数至少包括第一索引节点的地址;
为第一索引节点分配索引号和数据块,创建第一文件,并在第一索引节点的地址处初始化第一索引节点的结构信息;
为根目录索引节点分配索引号、地址和数据块,创建根目录文件并在根目录索引节点的地址处初始化根目录索引节点的结构信息;
在设定地址的磁盘块中初始化超级块中,设置第一索引节点的地址。
11.根据权利要求10所述格式化方法,其特征在于,所述格式化方法还包括:
所述格式化参数还包括静态节点的数目、索引节点的单位空间、磁盘块单位空间、磁盘分区大小,所述静态节点为格式化时创建的索引节点,部署在磁盘分区的静态节点区,所述静态节点包括第一索引节点、根目录索引节点和空间索引节点;
根据所述静态节点的数目、索引节点的单位空间、磁盘块单位空间确定静态节点区的大小;
第一索引节点的结构信息还包括第一索引节点的文件块快速表,在初始化第一索引节点的结构信息时,第一索引节点的数据块指针设置为空,根据第一索引节点的数据块设置第一索引节点的文件块快速表,其中,第一索引节点的文件块快速表的每个表项包括指向第一文件对应的一段连续的文件数据块,第一文件对应的文件数据块存储第一文件的内容:
在为根目录索引节点分配地址时,所分配的地址位于静态节点区;
为空间索引节点分配索引号、地址和数据块,创建空间文件,并初始化空间索引节点,其中,空间索引节点的结构信息还包括空间索引节点的文件块快速表,空间索引节点的块数据指针设置为空,空间索引节点的文件块快速表的每个表项包括一段连续的空闲数据块的起始地址与该一段连续的空闲数据块中数据块数量,各段连续的空闲数据块为磁盘分区中空闲的各区域;
在所述超级块中,还设置静态节点的数目、索引节点的单位空间、磁盘块单位空间。
12.根据权利要求11所述格式化方法,其特征在于,所述格式化方法还包括:
所述格式化参数还包括日志文件大小,其中,日志文件对应日志索引节点,所述静态节点还包括日志索引节点;
确定日志索引节点的起始地址位,日志索引节点的起始地址位于静态节点区后的第一磁盘块的地址;
根据日志文件大小获得日志空间区的大小,日志空间区的数据块包括日志空间区的大小、已用日志空间、日志数据;
为日志索引节点分配索引号和地址,创建日志文件,并初始化日志索引节点和日志空间区,其中,日志索引节点的地址位于静态节点区,日志索引节点的结构信息还包括日志索引节点的文件块快速表,日志索引节点的数据块指针设置为空,日志索引节点的文件块快速表的每个表项包括指向日志文件对应的一段连续的文件数据块,日志文件对应的文件数据块存在日志文件的内容:
在初始化空间节点时,在所述各段连续的空闲数据块中还减去日志空间区;
在所述超级块中,还设置日志文件大小、日志空间大小。
13.一种磁盘分区的访问方法,其特征在于,对具有权利要求1至9任一所述结构的磁盘分区上的文件进行访问,包括:
从超级块中获得第一索引节点的地址;
根据第一索引节点的地址获得所述第一索引节点的结构信息,并据此获得第一文件;
根据被访问文件的索引号,从第一文件中获得被访问文件的索引节点的地址;
根据被访问文件的索引节点的地址,获得被访问文件的所述索引节点,并据此获得被访问文件的对应的数据块;
对所述对应数据块进行读写操作。
14.一种磁盘分区的格式化装置,其特征在于,对具有权利要求1至9任一所述结构的磁盘分区进行格式化,所述格式化装置包括:
参数获取模块,用于获取格式化参数,所述格式化参数至少包括第一索引节点的地址;
第一初始化模块,用于为第一索引节点分配索引号和数据块,创建第一文件,并在第一索引节点的地址处初始化第一索引节点的结构信息;
根目录初始化模块,用于为根目录索引节点分配索引号、地址和数据块,创建根目录文件并在根目录索引节点的地址处初始化根目录索引节点的结构信息;
超级块初始化模块,用于在设定地址的磁盘块中初始化超级块中,设置第一索引节点的地址。
15.一种磁盘分区的访问装置,其特征在于,对具有权利要求1至9任一所述结构的磁盘分区上的文件进行访问,包括:
超级块查询模块,用于从超级块中获得第一索引节点的地址;
第一查询模块,用于根据第一索引节点的地址获得所述第一索引节点的结构信息,并据此获得第一文件;
第二查询模块,用于根据被访问文件的索引号,从第一文件中获得被访问文件的索引节点的地址;
数据块查询模块,用于根据被访问文件的索引节点的地址,获得被访问文件的所述索引节点,并据此获得被访问文件的对应的数据块;
访问模块,用于对所述对应数据块进行读写操作。
16.一种计算机操作系统,其特征在于,采用权利要求1至9任一所述结构管理磁盘分区。
17.一种计算机,其特征在于,包括:
权利要求16所述操作系统。
18.一种计算设备,其特征在于,包括:
总线;
通信接口,其与总线连接;
至少一个磁盘,其与总线连接,并具有权利要求1至9任一所述结构的磁盘分区;以及
至少一个处理器,其与总线连接;以及
至少一个存储器,其与总线连接并存储有程序指令,程序指令当被至少一个处理器执行时使得至少一个处理器执行权利要求10至13任一所述方法。
19.一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令当被计算机执行时使得计算机执行权利要求10至13任一所述方法。
CN202111666085.3A 2021-12-31 2021-12-31 一种磁盘分区的结构、格式化方法和访问方法 Active CN114327290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111666085.3A CN114327290B (zh) 2021-12-31 2021-12-31 一种磁盘分区的结构、格式化方法和访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111666085.3A CN114327290B (zh) 2021-12-31 2021-12-31 一种磁盘分区的结构、格式化方法和访问方法

Publications (2)

Publication Number Publication Date
CN114327290A CN114327290A (zh) 2022-04-12
CN114327290B true CN114327290B (zh) 2022-12-02

Family

ID=81019982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111666085.3A Active CN114327290B (zh) 2021-12-31 2021-12-31 一种磁盘分区的结构、格式化方法和访问方法

Country Status (1)

Country Link
CN (1) CN114327290B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115048046B (zh) * 2022-05-26 2022-11-25 北京华昱卓程软件有限公司 日志文件系统以及数据管理方法
CN115993938B (zh) * 2023-03-21 2023-05-23 苏州浪潮智能科技有限公司 一种磁盘格式化方法、装置、设备和计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828876A (en) * 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
CN1661568A (zh) * 2004-02-24 2005-08-31 中国科学院声学研究所 一种嵌入式环境下音像录放装置的文件系统
CN102184211A (zh) * 2011-05-03 2011-09-14 成都市华为赛门铁克科技有限公司 文件系统和检索、写入、修改或删除文件的方法与装置
CN107016100A (zh) * 2017-04-10 2017-08-04 重庆大学 一种基于非易失性内存文件系统的元数据管理方法
CN110531940A (zh) * 2019-06-06 2019-12-03 重庆紫光华山智安科技有限公司 视频文件处理方法及装置
CN111143285A (zh) * 2018-11-06 2020-05-12 深圳市茁壮网络股份有限公司 一种小文件存储文件系统以及小文件处理方法
CN111221776A (zh) * 2019-12-30 2020-06-02 上海交通大学 面向非易失性内存的文件系统的实现方法、系统及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4907605B2 (ja) * 2007-06-25 2012-04-04 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム
CN103282899B (zh) * 2011-12-23 2016-06-15 华为技术有限公司 文件系统中数据的存储方法、访问方法及装置
US9043540B2 (en) * 2012-03-30 2015-05-26 Netapp, Inc. Systems and methods for tracking block ownership

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828876A (en) * 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
CN1661568A (zh) * 2004-02-24 2005-08-31 中国科学院声学研究所 一种嵌入式环境下音像录放装置的文件系统
CN102184211A (zh) * 2011-05-03 2011-09-14 成都市华为赛门铁克科技有限公司 文件系统和检索、写入、修改或删除文件的方法与装置
CN107016100A (zh) * 2017-04-10 2017-08-04 重庆大学 一种基于非易失性内存文件系统的元数据管理方法
CN111143285A (zh) * 2018-11-06 2020-05-12 深圳市茁壮网络股份有限公司 一种小文件存储文件系统以及小文件处理方法
CN110531940A (zh) * 2019-06-06 2019-12-03 重庆紫光华山智安科技有限公司 视频文件处理方法及装置
CN111221776A (zh) * 2019-12-30 2020-06-02 上海交通大学 面向非易失性内存的文件系统的实现方法、系统及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
持久化内存文件系统的磨损攻击与防御机制;杨朝树等;《软件学报》;20200608(第06期);329-349 *

Also Published As

Publication number Publication date
CN114327290A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN108804510B (zh) 键值文件系统
US8983967B2 (en) Data storage system having mutable objects incorporating time
CN106021266B (zh) 支持动态更新的快速多层索引
JP4685038B2 (ja) 隠蔽領域管理装置および方法
US8521790B2 (en) Increasing efficiency of data storage in a file system
CN114327290B (zh) 一种磁盘分区的结构、格式化方法和访问方法
US20110314246A1 (en) Hierarchical allocation for file system storage device
JPH0728675A (ja) ファイルシステムにおけるオブジェクトの効率的な記憶
CN108121813B (zh) 数据管理方法、装置、系统、存储介质及电子设备
CN106844584B (zh) 元数据结构和基于其的操作方法、定位方法、切分方法
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
CN109804359A (zh) 用于将数据回写到存储设备的系统和方法
US9411526B1 (en) Filesystem management
CN110018998A (zh) 一种文件管理方法、系统及电子设备和存储介质
CN111881107B (zh) 支持多文件系统挂载的分布式存储方法
CN107679182B (zh) 一种目录配置方法及装置
CN111143285A (zh) 一种小文件存储文件系统以及小文件处理方法
US6714946B1 (en) Data management system using a plurality of data operating modules
CN107408132B (zh) 跨越多个类型的存储器移动分层数据对象的方法和系统
US8239427B2 (en) Disk layout method for object-based storage devices
Li et al. Enabling efficient updates in KV storage via hashing: Design and performance evaluation
US10067966B2 (en) Leveraging hierarchy in a tree data structure to dynamically allocate keys
CN108804571B (zh) 一种数据存储方法、装置以及设备
EP4336336A1 (en) Data compression method and apparatus
US10235373B2 (en) Hash-based file system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant