CN111797058B - 一种通用文件系统及文件管理的方法 - Google Patents

一种通用文件系统及文件管理的方法 Download PDF

Info

Publication number
CN111797058B
CN111797058B CN202010625526.4A CN202010625526A CN111797058B CN 111797058 B CN111797058 B CN 111797058B CN 202010625526 A CN202010625526 A CN 202010625526A CN 111797058 B CN111797058 B CN 111797058B
Authority
CN
China
Prior art keywords
file
data
inode
information
block
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
CN202010625526.4A
Other languages
English (en)
Other versions
CN111797058A (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.)
Changsha Jingjia Microelectronics Co ltd
Original Assignee
Changsha Jingjia Microelectronics 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 Changsha Jingjia Microelectronics Co ltd filed Critical Changsha Jingjia Microelectronics Co ltd
Priority to CN202010625526.4A priority Critical patent/CN111797058B/zh
Publication of CN111797058A publication Critical patent/CN111797058A/zh
Application granted granted Critical
Publication of CN111797058B publication Critical patent/CN111797058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种通用文件系统。包括:超级块、多个索引区和多个数据区;所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;所述索引区用于记录文件信息以及INODE的使用情况;所述数据区用于以数据块为数据单元存储文件数据,若干个所述数据块组成一个所述INODE,每个文件包含若干个所述INOD。该文件系统适应性强、接口友好、性能卓越:多个介质同时操作,避免碎片化,提高读写性能,提高文件检索效率;安全可靠:掉电不损坏文件系统,且部分介质损坏后可以继续工作。

Description

一种通用文件系统及文件管理的方法
技术领域
本发明涉及计算机系统管理技术领域,尤其涉及一种通用文件系统及文件管理的方法。
背景技术
文件系统是操作系统用于明确存储设备或分区上的文件管理方法和数据结构,即在存储设备上组织文件的方法。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时删除文件等。
目前,传统的文件系统对存储设备进行管理过程中,在长时间使用后,由于文件大小不确定,必然会导致存储空间碎片化。存储空间碎片化后,数据的存储就变得不再连续,每次读写一个数据段就需要多次查表、多次地址跳转才能完成。这会使数据的存储和查找都需要进行大量的运算,效率低下。
传统的不带日志的文件系统如FAT32、FAT16等还存在异常掉电导致文件系统损坏的风险。
发明内容
本发明的一方面涉及一种通用文件系统,包括:超级块、多个索引区和多个数据区;
所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;
所述索引区用于记录文件信息以及INODE的使用情况;
所述数据区用于存储文件数据,若干个数据块组成一个所述INODE,每个文件包含若干个所述INODE;
其中,所述文件系统中的循环覆盖方式包括块级覆盖,所述文件系统中的循环覆盖方式包括块级覆盖,所述块级覆盖为,当存储空间耗尽时,按照修改时间先后顺序逐步释放文件系统中被覆盖文件的部分数据块,并在被释放的空间建立新的文件或写入数据,实现文件的逐步覆盖。
优选地,如果所述文件系统使用的存储空间为一个存储介质,则,所述超级块设置在所述存储介质的起始位置,各所述索引区和数据区按照先索引区后数据区的方式重复循环设置在所述超级块之后;
如果所述文件系统使用的存储空间为多个存储介质,则,所述超级块和多个所述索引区均设置在高速存储介质上,且所述超级块设置于所述高速存储介质的起始位置,多个所述数据区分别对应设置于多个低速存储介质上。
优选地,当所述INODE存储在多个存储介质的多个数据块中,且其中一个或多个存储介质故障时,所述INODE跳过故障存储介质上,使用完好的存储介质上的数据块记录数据,所述INODE的逻辑地址不变。
优选地,所述通用文件系统还包括下层存储设备接口区和上层应用接口区,所述下层存储设备接口用于所述文件系统向下通过存储设备接口操作存储器硬件,所述上层应用接口用于上层应用操作文件,完成系统应用程序创建、修改、读写和/或删除文件的操作。
优选地,所述通用文件系统还包括超级块管理模块、索引区管理模块、数据区管理模块、接口管理模块、坏块管理模块和缓冲管理模块;
所述超级块管理模块用于超级块信息的获取和更新操作,所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;
所述索引区管理模块用于INODE索引信息的管理,每个INODE信息对应一个索引信息,索引信息用于记录INODE的使用情况和文件信息;
所述数据区管理模块用于数据块的读写操作,将对文件的操作映射为对应文件所在存储介质的操作;
所述接口管理模块用于对接口区进行管理,提供文件操作、获取文件列表、文件保护和文件循环覆盖接口服务;
所述坏块管理模块用于检测存储介质的健康情况,并将存在故障的存储介质所属的数据块映射到其他健康的存储介质上;
所述缓冲块管理模块用于对数据的缓存进行管理。
本发明另一方面涉及一种利用通用文件系统进行文件管理的方法,包括:
接收上层应用发送的数据请求;
根据所述数据请求的类型,对INODE的情况进行检测,判断是否具有满足条件的INODE,如果有,则执行数据请求,否则,返回失败信息。
优选地,所述数据请求为新建文件,包括:检查是否有空闲INODE,如果有空闲INODE,则直接占用空闲INODE建立新的文件;否则判断是否允许循环覆盖,如果允许循环覆盖,则根据覆盖模式选择释放一个文件或一个数据块,释放后在被释放的空间建立新的文件;如果不允许循环覆盖,则返回失败信息;
其中,覆盖模式包括文件级覆盖以及块级覆盖,如果覆盖模式为文件级覆盖则释放整个文件,如果覆盖模式为块级覆盖则释放被覆盖文件的一个数据块。
优选地,所述数据请求为写入文件,包括:检查当前使用的INODE是否满足空间要求,如果当前使用的INODE满足空间要求,则直接写入数据并更新文件信息;如果当前使用的INODE不满足空间要求,则检查是否有空闲INODE,如果有空闲INODE则可以直接占用空闲INODE写入数据;否则判断是否允许循环覆盖,如果不允许循环覆盖则返回失败信息;如果允许循环覆盖,则根据覆盖模式选择释放一个文件或一个数据块,释放后在被释放的空间写入数据;
其中,覆盖模式包括文件级覆盖以及块级覆盖,如果覆盖模式为文件级覆盖则释放整个文件,如果覆盖模式为块级覆盖则释放被覆盖文件的一个数据块。
优选地,所述数据请求为读取文件,包括:根据文件链表找到文件所对应的INODE链表,然后根据INODE链表,找到要操作的文件对应的INODE,最后根据文件偏移找到对应的数据块,之后进行数据读取。
优选地,所述数据请求为删除文件,包括:
根据文件链表找到文件所对应的INODE链表;
根据INODE链表,找到要删除的文件对应的所有INODE,
依次释放INODE,更新文件列表信息。
本发明具有如下有益效果:
1、本发明的通用文件系统适应性强,可以部署在任何存储介质上,也可以跨存储介质部署;其还可以运行在任何操作系统或是单片机、DSP等无操作系统环境中;
2、本发明的通用文件系统接口友好,对外提供标准文件系统接口,可以很好地与其他开发模块对接;
3、本发明的通用文件系统性能卓越,可以驱动多个存储介质同时进行读写操作,提高操作速度;避免文件和传统电子盘碎片化提高读写性能;可以根据文件索引快速查找数据,提高文件检索效率;
4、本发明的通用文件系统安全可靠,掉电不损坏文件系统。部分介质损坏后可以继续工作。
附图说明
图1为本发明所述文件系统在单一存储介质上的结构分布图;
图2为本发明所述文件系统在多个存储介质上的结构分布图;
图3为存储介质损坏数据块重分配图;
图4为本发明所述文件系统软件架构图;
图5为文件块级覆盖示意图;
图6为新建文件流程示意图;
图7为写入文件流程示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
实施例一
针对现有存储系统存在的问题,本发明了一种高效、高可靠性的文件系统,其可以部署在flash、电子盘或是任何组合的存储介质上。
本发明提供的文件系统定义一个单位的数据单元作为一个数据块(BLOCK),整个磁盘被分配为若干个数据块。
本发明提供的一种通用文件系统,包括:超级块、多个索引区和多个数据区;
所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;
所述索引区用于记录文件信息以及INODE的使用情况;
所述数据区用于存储文件数据,若干个所述数据块组成一个所述INODE,每个文件包含若干个所述INODE;
其中,所述文件系统中的循环覆盖方式包括块级覆盖,所述文件系统中的循环覆盖方式包括块级覆盖,所述块级覆盖为,当存储空间耗尽时,按照修改时间先后顺序逐步释放文件系统中被覆盖文件的部分数据块,并在被释放的空间建立新的文件或写入数据,实现文件的逐步覆盖。
本文件系统可以根据不同的数据的重要程度等特征,支持把数据记录在一个存储介质上,或是同时记录在多个相同或不同的存储介质上。
在本发明的一个优选实施例中,如果所述文件系统使用的存储空间为一个存储介质,则,所述超级块设置在所述存储介质的起始位置,各所述索引区和数据区按照先索引区后数据区的方式重复循环设置在所述超级块之后。如果所述文件系统使用的存储空间为多个存储介质,则,所述超级块和多个所述索引区均设置在高速存储介质上,且所述超级块设置于所述高速存储介质的起始位置,多个所述数据区分别对应设置于多个低速存储介质上。
该实施例中,由于超级块中记录着文件系统的基本配置信息和分区信息等,将其设置在存储介质的初始位置,有利于存储介质的有效分配利用以及信息的快速查找。另外,由于索引区被频繁的访问,所以,将其设置在高速存储介质上,有利于存储介质上的文件被快速访问。
如本领域技术人员可以理解的,超级块、索引区和数据区的位置还可以采用其他的顺序。
具体实施过程中,如图1所示,如果系统中只有一种存储介质,那么在存储介质的起始位置放置超级块,接着放置各个分区,每个分区的前部分为索引区,每个分区的后部分为数据区。如图2所示,如果系统中存在多种存储介质,可以把超级块和索引区放置在高速存储器上(比如NVRAM),数据区放置到低速存储介质上(比如电子盘、FLASH)。
在本实施例中,超级块用于放置超级块,超级块的信息包括文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息。
当文件系统使用的存储空间为一个存储介质时,文件系统可以划分为多个分区,并在每个分区中分别设置索引区和数据区。当所述文件系统使用的存储空间为多个存储介质时,可以把超级块和多个索引区均设置在高速存储介质上,多个数据区分别对应设置于多个低速存储介质上。
所以,本发明提供的文件系统中包括多个索引区和多个数据区,且采用上述部署方式保证了系统安全性能。其中,在每个索引区放置对应数据区的INODE索引信息,每个INODE索引信息用于记录文件信息以及INODE的使用情况。
本发明中,将每个INODE索引信息在两个数据块上备份,每次进行索引区更新时按照先后顺序多次写入,在异常掉电情况可以保证有一份索引区(INODE索引信息)是实时可用的。下次上电后文件系统再通过完整的一份链表数据快速修复受损的部分。另外,所有的INODE索引信息形成INODE链表,采用INODE链表对文件进行管理,可以提高文件检索和存储效率。其中,采用空闲INODE链表记录空闲的INODE信息,采用文件INODE链表记录文件信息,采用已用INODE链表记录已经使用的INODE信息。
当文件系统检测到某一个或多个存储介质故障时,可以重新对数据块进行重组,在应用层不进行特殊操作的情况下继续进行数据写入操作,同时把存储介质的健康信息记录到文件属性信息中,从而能够在数据读取时根据存储介质的健康信息跳过故障存储介质读取到数据。作为一个实施例,比如5个固态电子盘作为存储介质,单个INODE固定为10个数据块,如图3所示。图3中,ImBn表示第m个INODE的第n个数据块。其中第二个固态电子盘使用中损坏。本文件系统工作时,检测到一个固态电子盘损坏,此时每个INODE记录的数据会只使用8个数据块,但是INODE之间的逻辑地址还是间隔10个数据块。即INODE占用的逻辑数据块都是固定的大小,但是有效空间减小了。
本文件系统中的每个文件属性中除了基本文件信息外还可以有用户自定义数据,可以为每个文件的数据内容生成数据索引,在数据查找时可以根据数据索引提高数据检索效率。
本文件系统在进行循环覆盖记录时,除了可以采用文件级覆盖外,还可以采用块级覆盖。
块级覆盖的方式可如图4所示,图4中,blkn表示第kn个数据块。块级覆盖是指在存储空间耗尽时,先找到文件系统中最老的一个数据块,将该数据块从源文件中删除,将新的数据写入到该块中并将该存储块放到新的文件中,实现数据的逐步覆盖。在文件级覆盖时,如果已经存在的单个文件过大,新写入的文件较小,此时删除文件时会因为一小块数据导致大量数据丢失。块级覆盖相对于文件级覆盖来说,每次只删除一个文件块而非整个文件,因此数据存储会更加安全,存储空间利用率更高。
而且,采用该文件系统的块级覆盖,可以提升固态硬盘的性能。当存储介质为固态硬盘时,使用传统的文件系统,如果多个文件同时写入,固态硬盘内部的一个nand flash数据块上存储多个文件的信息。而nand flash的数据块作为基本的擦除单位,当需要擦除数据块重新利用时,需要将数据块上的有效文件搬移,然后再擦除。这种多余的搬移增加了nand flash的读写,导致固态硬盘的速度下降。在多负载情况下,多个文件同时写入,就会导致一个nand flash数据块上存储多个文件的情况。
本文件系统块级覆盖方式,将先写的文件系统块先全部覆盖,后写的文件系统块后覆盖,在文件系统层保证了nand flash数据块上的多文件信息同步被覆盖,当nandflash数据块被回收擦除时,已经没有任何有效文件信息,不需要任何搬移,直接擦除,保证固态硬盘保持高速状态。
实际测试中,在多路负载、多个文件循环持续写入情况下,文件系统整体速度保持高速稳定,没有速度波动。
如图5所示,文件系统作为计算机系统的中间模块,向下可以通过存储设备接口操作硬件,向上可以通过文件系统接口对接应用,计算机系统中的应用程序可以使用文件系统接口创建、修改、读写、删除文件,应用程序无需直接操作硬件设备即可存储数据。此外,本发明提供的文件系统还提供按文件类型和时间顺序获取列表接口;提供文件保护接口,提供按文件循环覆盖和按数据块循环覆盖接口。
本发明提供的通用文件系统还包括超级块管理模块、索引区管理模块、数据区管理模块、接口管理模块、坏块管理模块和缓冲管理模块;
所述超级块管理模块用于超级块信息的获取和更新操作,所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;
所述索引区管理模块用于INODE索引信息的管理,每个INODE信息对应一个索引信息,索引信息用于记录INODE的使用情况和文件信息;
所述数据区管理模块用于数据块的读写操作,将对文件的操作映射为对应文件所在存储介质的操作;
所述接口管理模块用于对接口区进行管理,提供文件操作、获取文件列表、文件保护和文件循环覆盖接口服务;
所述坏块管理模块用于检测存储介质的健康情况,并将存在故障的存储介质所属的数据块映射到其他健康的存储介质上;
所述缓冲块管理模块用于对数据的缓存进行管理。
实施例二
本发明提供了一种利用通用文件系统进行文件管理的方法,文件管理包括新建文件、写入文件、读取文件和删除文件。
其中,新建文件的方法包括:如图6所示,检查是否有空闲INODE,如果有空闲INODE,则直接占用空闲INODE建立新的文件;否则判断是否允许循环覆盖,如果允许循环覆盖,则根据覆盖模式选择释放一个文件或一个数据块,释放后在被释放的空间建立新的文件;如果不允许循环覆盖,则返回失败信息;
其中,覆盖模式包括文件级覆盖以及块级覆盖,如果覆盖模式为文件级覆盖则释放整个文件,如果覆盖模式为块级覆盖则释放被覆盖文件的一个数据块。
其中,循环覆盖可以采用文件文件级覆盖,还可以采用块级覆盖。
写入文件的方法包括:如图7所示,检查当前使用的INODE是否满足空间要求,如果当前使用的INODE满足空间要求,则直接写入数据并更新文件信息;如果当前使用的INODE不满足空间要求,则检查是否有空闲INODE,如果有空闲INODE则可以直接占用空闲INODE写入数据;否则判断是否允许循环覆盖,如果不允许循环覆盖则返回失败信息;如果允许循环覆盖,则根据覆盖模式选择释放一个文件或一个数据块,释放后在被释放的空间写入数据;
其中,覆盖模式包括文件级覆盖以及块级覆盖,如果覆盖模式为文件级覆盖则释放整个文件,如果覆盖模式为块级覆盖则释放被覆盖文件的一个数据块。。
读取文件的方法包括:根据文件链表找到文件所对应的INODE链表,然后根据INODE链表,找到要操作的文件对应的INODE,之后根据文件偏移找到对应的数据块,最后进行数据读取。
删除文件的方法包括:
根据文件链表找到文件所对应的INODE链表;
根据INODE链表,找到要删除的文件对应的所有INODE,
依次释放INODE,更新文件列表信息。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种通用文件系统,其特征在于,包括:超级块、多个索引区和多个数据区;
所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;
所述索引区用于记录文件信息以及INODE的使用情况;
所述数据区用于存储文件数据,若干个数据块组成一个所述INODE,每个文件包含若干个所述INODE;
其中,所述文件系统中的循环覆盖方式包括块级覆盖,所述块级覆盖为,当存储空间耗尽时,按照修改时间先后顺序逐步释放文件系统中被覆盖文件的部分数据块,并在被释放的空间建立新的文件或写入数据,实现文件的逐步覆盖;
如果所述文件系统使用的存储空间为多个存储介质,则,所述超级块和多个所述索引区均设置在高速存储介质上,且所述超级块设置于所述高速存储介质的起始位置,多个所述数据区分别对应设置于多个低速存储介质上;当文件系统检测到某一个或多个存储介质故障时,重新对数据块进行重组,在应用层不进行特殊操作的情况下继续进行数据写入操作,同时把存储介质的健康信息记录到文件属性信息中,在数据读取时根据存储介质的健康信息跳过故障存储介质读取到数据;当所述INODE存储在多个存储介质的多个数据块中,且其中一个或多个存储介质故障时,所述INODE跳过故障存储介质上,使用完好的存储介质上的数据块记录数据,所述INODE的逻辑地址不变。
2.如权利要求1所述的通用文件系统,其特征在于,如果所述文件系统使用的存储空间为一个存储介质,则,所述超级块设置在所述存储介质的起始位置,各所述索引区和数据区按照先索引区后数据区的方式重复循环设置在所述超级块之后。
3.如权利要求1所述的通用文件系统,其特征在于,所述通用文件系统还包括下层存储设备接口和上层应用接口,所述下层存储设备接口用于所述文件系统向下通过存储设备接口操作存储器硬件,所述上层应用接口用于上层应用操作文件,完成系统应用程序创建、修改、读写和/或删除文件的操作。
4.如权利要求3所述的通用文件系统,其特征在于,所述通用文件系统还包括超级块管理模块、索引区管理模块、数据区管理模块、接口管理模块、坏块管理模块和缓冲管理模块;
所述超级块管理模块用于超级块信息的获取和更新操作,所述超级块用于记录文件系统的基本配置信息、分区信息、存储介质的数据块划分信息和属性信息;
所述索引区管理模块用于INODE索引信息的管理,每个INODE信息对应一个索引信息,索引信息用于记录INODE的使用情况和文件信息;
所述数据区管理模块用于数据块的读写操作,将对文件的操作映射为对应文件所在存储介质的操作;
所述接口管理模块用于对接口进行管理,提供文件操作、获取文件列表、文件保护和文件循环覆盖接口服务;
所述坏块管理模块用于检测存储介质的健康情况,并将存在故障的存储介质所属的数据块映射到其他健康的存储介质上;
所述缓冲块管理模块用于对数据的缓存进行管理。
5.一种利用权利要求1-4任一项所述的通用文件系统进行文件管理的方法,其特征在于,包括
接收上层应用发送的数据请求;
根据所述数据请求的类型,对INODE的情况进行检测,判断是否具有满足条件的INODE,如果有,则执行数据请求,否则,返回失败信息。
6.如权利要求5所述的文件管理的方法,其特征在于,所述数据请求为新建文件,包括:检查是否有空闲INODE,如果有空闲INODE,则直接占用空闲INODE建立新的文件;否则判断是否允许循环覆盖,如果允许循环覆盖,则根据覆盖模式选择释放一个文件或一个数据块,释放后在被释放的空间建立新的文件;如果不允许循环覆盖,则返回失败信息;
其中,覆盖模式包括文件级覆盖以及块级覆盖,如果覆盖模式为文件级覆盖则释放整个文件,如果覆盖模式为块级覆盖则释放被覆盖文件的一个数据块。
7.如权利要求5所述的文件管理的方法,其特征在于,所述数据请求为写入文件,包括:检查当前使用的INODE是否满足空间要求,如果当前使用的INODE满足空间要求,则直接写入数据并更新文件信息;如果当前使用的INODE不满足空间要求,则检查是否有空闲INODE,如果有空闲INODE则可以直接占用空闲INODE写入数据;否则判断是否允许循环覆盖,如果不允许循环覆盖则返回失败信息;如果允许循环覆盖,则根据覆盖模式选择释放一个文件或一个数据块,释放后在被释放的空间写入数据;
其中,覆盖模式包括文件级覆盖以及块级覆盖,如果覆盖模式为文件级覆盖则释放整个文件,如果覆盖模式为块级覆盖则释放被覆盖文件的一个数据块。
8.如权利要求5所述的文件管理的方法,其特征在于,所述数据请求为读取文件,包括:根据文件链表找到文件所对应的INODE链表,然后根据INODE链表,找到要操作的文件对应的INODE,之后根据文件偏移找到对应的数据块,最后进行数据读取。
9.如权利要求5所述的文件管理的方法,其特征在于,所述数据请求为删除文件,包括:
根据文件链表找到文件所对应的INODE链表;
根据INODE链表,找到要删除的文件对应的所有INODE,
依次释放INODE,更新文件列表信息。
CN202010625526.4A 2020-07-02 2020-07-02 一种通用文件系统及文件管理的方法 Active CN111797058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010625526.4A CN111797058B (zh) 2020-07-02 2020-07-02 一种通用文件系统及文件管理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010625526.4A CN111797058B (zh) 2020-07-02 2020-07-02 一种通用文件系统及文件管理的方法

Publications (2)

Publication Number Publication Date
CN111797058A CN111797058A (zh) 2020-10-20
CN111797058B true CN111797058B (zh) 2024-02-09

Family

ID=72811016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010625526.4A Active CN111797058B (zh) 2020-07-02 2020-07-02 一种通用文件系统及文件管理的方法

Country Status (1)

Country Link
CN (1) CN111797058B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590046B (zh) * 2021-08-03 2023-10-31 艾体威尔电子技术(北京)有限公司 一种单片机文件读写方法
CN113934371B (zh) * 2021-10-08 2024-04-12 福建星网视易信息系统有限公司 一种存储器及其数据管理方法和计算机存储介质
CN116521607B (zh) * 2023-06-29 2023-08-29 湖南源科创新科技有限公司 基于cpu和fpga的异构平台及文件系统标准化方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754844A (en) * 1995-12-14 1998-05-19 Sun Microsystems, Inc. Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location
CN1612252A (zh) * 2003-10-31 2005-05-04 浙江中控技术股份有限公司 实时数据在线压缩与解压缩方法
CN102184211A (zh) * 2011-05-03 2011-09-14 成都市华为赛门铁克科技有限公司 文件系统和检索、写入、修改或删除文件的方法与装置
CN103049539A (zh) * 2012-12-25 2013-04-17 华为技术有限公司 一种文件系统中文件数据的存储方法及其装置
CN105868396A (zh) * 2016-04-19 2016-08-17 上海交通大学 内存文件系统的多版本控制方法
CN107180092A (zh) * 2017-05-15 2017-09-19 中国科学院上海微系统与信息技术研究所 一种文件系统的控制方法、装置及终端
CN108491402A (zh) * 2018-01-17 2018-09-04 艾体威尔电子技术(北京)有限公司 一种轻量级文件系统的实现方法
CN109445702A (zh) * 2018-10-26 2019-03-08 黄淮学院 一种块级数据去重存储系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290994B2 (en) * 2010-05-05 2012-10-16 International Business Machines Corporation Obtaining file system view in block-level data storage systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754844A (en) * 1995-12-14 1998-05-19 Sun Microsystems, Inc. Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location
CN1612252A (zh) * 2003-10-31 2005-05-04 浙江中控技术股份有限公司 实时数据在线压缩与解压缩方法
CN102184211A (zh) * 2011-05-03 2011-09-14 成都市华为赛门铁克科技有限公司 文件系统和检索、写入、修改或删除文件的方法与装置
CN103049539A (zh) * 2012-12-25 2013-04-17 华为技术有限公司 一种文件系统中文件数据的存储方法及其装置
CN105868396A (zh) * 2016-04-19 2016-08-17 上海交通大学 内存文件系统的多版本控制方法
CN107180092A (zh) * 2017-05-15 2017-09-19 中国科学院上海微系统与信息技术研究所 一种文件系统的控制方法、装置及终端
CN108491402A (zh) * 2018-01-17 2018-09-04 艾体威尔电子技术(北京)有限公司 一种轻量级文件系统的实现方法
CN109445702A (zh) * 2018-10-26 2019-03-08 黄淮学院 一种块级数据去重存储系统

Also Published As

Publication number Publication date
CN111797058A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
CN111797058B (zh) 一种通用文件系统及文件管理的方法
US7594062B2 (en) Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area
US8521949B2 (en) Data deleting method and apparatus
US8731897B2 (en) Tape emulating disk based storage system and method with automatically resized emulated tape capacity
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US8694984B2 (en) Memory apparatus and method of updating firmware of the memory apparatus
US7136977B2 (en) Backup acquisition method and disk array apparatus
US20050231765A1 (en) Information recording medium, data processing apparatus and data processing method
US10037149B2 (en) Read cache management
KR101369813B1 (ko) 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적
CN108628542B (zh) 一种文件合并方法及控制器
KR20040085422A (ko) 플래시 메모리 액세스 장치 및 방법
KR100703680B1 (ko) 플래시 파일 시스템
CN112035294A (zh) 安全日志文件系统及其实现方法和介质
JP2006519444A (ja) フラッシュメモリーのデータ管理方法
US20090083503A1 (en) System of creating logical volume and method thereof
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
CN116594555A (zh) 一种航空数据读写中间件系统
CN111949212B (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
US20070271311A1 (en) Disk array device and data management method for managing master data and replication data replicated from master data
US20040078519A1 (en) Data reorganization method in a RAID striping system
WO2000013180A1 (en) Improved method for providing variable sector-format operation to a computer system
CN114706536B (zh) 一种元数据管理方法、装置、电子设备及可读存储介质
KR101077500B1 (ko) 저널링이 적용된 fat 파일 시스템의 로그 데이터 저장 방법
KR20140031610A (ko) 영상 데이터의 안정적 저장이 가능한 차량용 블랙박스 장치 및 그 영상 데이터의 저장방법

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