CN111142780A - 一种大文件存储文件系统以及大文件处理方法 - Google Patents

一种大文件存储文件系统以及大文件处理方法 Download PDF

Info

Publication number
CN111142780A
CN111142780A CN201811314081.7A CN201811314081A CN111142780A CN 111142780 A CN111142780 A CN 111142780A CN 201811314081 A CN201811314081 A CN 201811314081A CN 111142780 A CN111142780 A CN 111142780A
Authority
CN
China
Prior art keywords
block
file
data
data block
area
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.)
Pending
Application number
CN201811314081.7A
Other languages
English (en)
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.)
Shenzhen Ipanel TV Inc
Original Assignee
Shenzhen Ipanel TV Inc
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 Shenzhen Ipanel TV Inc filed Critical Shenzhen Ipanel TV Inc
Priority to CN201811314081.7A priority Critical patent/CN111142780A/zh
Publication of CN111142780A publication Critical patent/CN111142780A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种大文件存储文件系统以及大文件处理方法,其中,该大文件存储文件系统包括:超级块区域、索引节点表区域、可用数据块区域和预留数据块区域,将大文件存储在可用数据块区域的数据块中,避免了超级块信息和块组描述符表的冗余,简化了文件系统结构,采用直接寻址方式,缩短了磁盘访问的时长,从而提升了读写速度。

Description

一种大文件存储文件系统以及大文件处理方法
技术领域
本发明涉及大文件存储技术领域,特别是涉及一种大文件存储文件系统以及大文件处理方法。
背景技术
现有的文件系统如图1所示,以索引方式存储大文件,如EXT系列,在多个块组中都存有冗余的超级块信息以及块组描述符表,现有的文件系统对于一个超大的磁盘,需要在每一个块组中写入相应的数据,导致磁盘访问速度很慢,如:现有文件系统针对文件是一个链表的形式,且数据不连续,在访问文件的时,需要先通过间接寻址方式定位到第一块数据,访问第二块数据的时候,再次寻址到新的磁盘地址进行访问。
发明内容
本发明的目的在于提出一种大文件存储文件系统以及大文件处理方法,以实现简化文件系统结构,使用方便,缩短磁盘访问的时长。
为达到上述目的,本发明提供了以下技术方案:
一种大文件存储的文件系统,包括:超级块区域、索引节点表区域、可用数据块区域和预留数据块区域,其中:
所述超级块区域包括超级块区域信息、索引区域信息和数据区域信息,用于记录文件系统的整体信息;
所述索引节点区域用于存储所述可用数据块区域中每个数据块所对应的索引节点,所述索引节点包括:逻辑块号、物理块号、占用标志和文件号;
所述可用数据块区域和所述预留数据块区域以数据块为单位进行分割,其中:
所述可用数据块区域按照所述数据块的大小进行划分,且与所述索引节点一一对应,并按照预设规则进行编号,用于存储数据;
所述预留数据区域与所述可用数据块区域的结构相同,所述预留数据块区域中的预留数据块个数按照磁盘格式化时设定的预设比例进行划分的,用于作为所述文件系统后续数据块操作。
进一步地,所述超级块区域信息包括:磁盘总空间、磁盘剩余空间、超级块偏移地址以及超级块分配空间。
进一步地,所述索引节点信息包括:索引信息偏移地址、索引信息预留空间和单个索引接点大小。
进一步地,所述数据区域信息包括:数据块偏移地址、预留数据块偏移地址、数据块大小、数据块总个数、可用数据块个数、可用数据块空间、预留数据块个数、预留数据块空间以及预留块比例。
一种大文件的写入方法,应用于大文件存储的文件系统,该方法包括:
根据给定的逻辑块号获取所述逻辑块号对应的索引节点信息;
获取所述索引节点中的物理块号,根据所述物理块号、可用数据块偏移地址以及数据块大小计算对应的数据块的偏移地址;
将所述待写入大文件写入到所述可用数据块中对应的所述数据块的偏移位置,并更新所述索引节点的文件号为所述大文件的文件号,更新所述索引节点的占用标志为1,并将所述文件索引节点写入到磁盘。
一种大文件的删除方法,应用于大文件存储的文件系统,该方法包括:
给定大文件的对应的逻辑块号,通过所述逻辑块号获取所述逻辑块号的对应的索引节点;
将所述待删除大文件对应的所述索引节点的占位标志重置为0,将文件号重置为0,并对所述索引节点写入到磁盘。
经由上述的技术方案可知,与现有技术相比,本发明公开了一种大文件存储文件系统以及大文件处理方法,其中,该大文件存储文件系统包括:超级块区域、索引节点表区域、可用数据块区域和预留数据块区域,将大文件存储在可用数据块区域的数据块中,避免了超级块信息和块组描述符表的冗余,简化了文件系统结构,采用直接寻址方式,缩短了磁盘访问的时长,从而提升了读写速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中提供的EXT系列文件系统结构图;
图2为本发明实施例提供的一种大文件存储文件系统结构图;
图3为本发明实施例提供的一种大文件的写入方法流程图;
图4为本发明实施例提供的一种大文件的删除方法流程图。
具体实施方式
术语解释:
文件系统:是操作系统用于明确存储设备(常见的是磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
磁盘:是计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。
磁盘格式化:是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
直接寻址:是一种基本的寻址方法,其特点是:在指令格式的地址的字段中直接指出操作数在内存的地址。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。
间接寻址:是相对于直接寻址而言的,指令地址字段的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说是D单元的内容才是操作数的有效地址。间接寻址是在直接寻址的基础上面建立起来的,也就是直接寻址得到的数据是一个地址,通过这个地址找到最终的数据,也就是两次寻址,第一次得到的是地址,第二次才是目标数据。
超级块(superblock):是硬盘分区开头——开头的第一个byte是byte0,从byte1024开始往后的一部分数据。由于block size最小是1024bytes,所以super block可能是在block1中(此时block的大小正好是1024bytes),也可能是在block0中。超级块中的数据其实就是文件卷的控制信息部分,也可以说它是卷资源表,有关文件卷的大部分信息都保存在这里。例如:硬盘分区中每个block的大小、硬盘分区上一共有多少个blockgroup、以及每个block group中有多少个inode。
索引节点:是指在许多类Unix文件系统中的一种数据结构。每个索引节点保存了文件系统中的一个文件系统对象的元信息数据,但不包括数据内容或者文件名。
数据块:是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位。是数据的物理记录,与数据的逻辑记录(逻辑上有联系,在存储器上占有一组邻接单元的数据单位)之间的对应关系有3种方式:①一个块即为一个记录;②一个块包含若干个逻辑记录;③一个逻辑记录占有几个块。数据块的大小可以是固定的或是可变的,块与块之间有间隙。设计数据块大小,受到多方面因素的影响,包括输入、输出效率,存储空间代价以及计算机应用特点等。每一个数据块都有对应的一个索引节点,索引节点中保存有数据块的索引号,文件系统根据索引号来读取该数据块的数据。
偏移地址:就是计算机里的内存分段后,在段内某一地址相对于段首地址(段地址)的偏移量。本文中所提到的偏移地址一般是指相对于磁盘起始地址的偏移地址。
大文件数据:包含图片或者影像数据,一般会是电影或者电视,一般大文件数据是指比较大的数据文件,如64M以上的数据文件。
注意:上述的64M是一个相对值,根据规定文件的界限,以某一个数据大小为界限,大于64M的文件为大文件,小于等于64M的文件为小文件,但也可以定义为大于32M的文件为大文件,小于等于32M的文件为小文件。这个根据业务场景来定义,确定文件大于某一个界定的值即为大文件,否则为小文件。一般通常大文件的大小定义为大于64M。
如图1所示,为现有技术中文件系统布局结构图,由引导块和多份块组组成,每一个块组都由超级块、块组标识符表、预留块组描述表、数据块位图、节点表以及多个数据块组成,各个组成结构的具体描述为:
超级块(Super Block)描述整个分区的文件系统信息,如索引/数据块的大小、总量、使用量、剩余量以及文件系统的格式与相关信息,超级块在每个块组的开头都有一份拷贝。
块组描述符表(GDT,Group Descriptor Table)由很多块组描述符组成,整个分区分成多个块组就对应有多少个块组描述符,每个块组描述符存储一个块组的描述信息,如在这个块组中从哪里开始是索引表,从哪里开始是数据块,空闲的索引和数据块还有多少个等等。块组描述符在每个块组的开头都有一份拷贝。
预留块组描述表类似块组描述符表,由很多预留块组描述符组成,整个分区分成多个预留块组就对应有多少个预留块组描述符,每个预留块组描述符存储一个预留块组的描述信息,如在这个预留块组中从哪里开始是索引表,从哪里开始是数据块,空闲的索引和数据块还有多少个等等。预留块组描述符在每个块组的开头都有一份拷贝。
数据块位图(Block Bitmap)用来描述整个块组中哪些块已用哪些块空闲,块位图本身占一个块,其中的每个bit代表本块组的一个数据块,这个bit为1代表该块已用;为0表示空闲可用。假设格式化时block大小为1KB,这样大小的一个块位图就可以表示1024*8个块的占用情况,因此一个块组最多可以有1024*8个块。
节点表由一个块组中的所有索引组成。一个文件除了数据需要存储之外,一些描述信息也需要存储,如文件类型,权限,文件大小,创建、修改、访问时间等,这些信息存在索引中而不是数据块中,索引表占多少个块在格式化时就要写入块组描述符中。
因此,超级块以及块组描述符表都是有冗余的,造成一定的空间浪费,并且该系统结构较复杂,对于文件系统格式化很慢,需要在每一个块组中写入相应的数据。
另外,现有的文件系统,以EXT系统的寻址方式主要是间接寻址,假设该文件系统的块的大小为1KB(1*1024B),以EXT3文件系统为例,索引表中,每一个索引占128字节,其中,60个字节用于指向存放文件内容的数据块指针,每个指针4字节,那么有15个指针,最后3个指针需要用分级间接寻址。12个直接寻址,可以直接获取文件数据块位置,可以有12条记录;一级间接寻址:该指针指向一个1K的块,块内有1024/4=256条记录,这256个指针记录,每条指针记录的是数据块的指针;二级间接寻址:该指针指向一个1K的块,块内有1024/4=256条记录,这256个指针记录,每条指针记录的是数据块指针的指针。可以有256*256条数据块的指针;三级间接寻址:以此类推,可以有256*256*256条数据块的指针记录。
所以,对于1KB的块大小最大可以表示(256^3+256^2+256+12)*1KB≈16GB的文件。如果要读取16G的文件那么就需要根据以上庞大的数据指针来获取数据,访问磁盘的次数会陡增,势必降低读写性能。
对于1KB的块大小的文件系统,存储文件12KB的文件读取效率还是很高的,但是对于存储大于12K的文件,就要涉及到间接寻址,对于三级间接寻址,读取一个数据块1kB最多需要读取五次磁盘,即,读索引信息、读一级间接寻址块、读二级间接寻址块、读三级间接寻址块、读寻址到的数据块,才可以获取到数据块中的数据。可见,读写文件效率明显较低。
而EXT4索引采用的办法是使用extent来保存<文件逻辑块号,磁盘块号>的映射关系:一个extent对应一系列连续的块号,EXT4中一个索引可以直接存放4个extent。对于很大的文件,EXT4采用extent_tree的方式,其本质同样是一种间接寻址的关系,同样会影响读写性能。
因此,为了实现简化文件系统结构,使用方便,缩短磁盘访问时长。提出了一种大文件存储的文件系统,使用直接寻址方式获取文件数据。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明实施例提供了一种大文件存储的文件系统,该文件系统具体包括:超级块区域11、索引节点表区域12、可用数据块区域13和预留数据块区域14,其中:
上述超级块区域11包括超级块区域信息111、索引区域信息112和数据区域信息113,用于记录文件系统的整体信息;上述索引节点区域12用于存储所可用数据块区域13中每个数据块所对应的索引节点,该索引节点包括:逻辑块号121、物理块号122、占用标志123以及文件号124;上述可用数据块区域13和上述预留数据块区域14以数据块为单位进行分割,其中:可用数据块区域13按照数据块的大小进行划分,且与索引节点一一对应,并按照预设规则进行编号,用于存储数据;预留数据区域14与可用数据块区域13的结构相同,预留数据块区域14中的预留数据块个数按照磁盘格式化时设定的预设比例进行划分的,用于作为文件系统后续数据块操作。
进一步的,上述超级块区域信息包括:磁盘总空间(totalsize)、磁盘剩余空间(leftsize)、超级块偏移地址(superblock offset)以及超级块分配空间(superblocksize)。
其中,磁盘总空间(totalsize)是整个文件系统存储介质磁盘的总大小,磁盘剩余空间(leftsize)是磁盘剩余的能够写入数据的大小,超级块偏移地址(superblockoffset)为文件系统超级块相对于磁盘起始地址的偏移大小,超级块(superblock)分配空间时文件系统为超级块所占磁盘空间分配的总大小,该空间可以设置为2KB或者4KB或者其他大小,是可以扩展增加其他字段的。
进一步的,上述索引节点信息包括:索引信息偏移地址(index_table_offset)、索引信息预留空间(index_table_size)和单个索引接点大小。
其中,从文件系统结构可以得知,索引信息偏移地址(index_table_offset)等于超级块的地址加上超级块分配空间(superblock size),即第一个索引节点的起始地址。索引信息预留空间(index_table_size)是索引节点表所占的空间的大小,这个是由文件系统格式化时根据磁盘大小来预留设定的,一个数据块空间对应一个索引节点信息,索引节点表信息的预留空间会预留很大一块连续的区域,计算方法为:如一个4T的磁盘,数据块大小为8M,那么,总的数据块个数大约为4T/8M=500K,若每一个索引节点信息占1K空间,那么该盘索引节点表占空间为1K*500K=500M大小,因此文件系统可以设置大于500M的数值来设定索引信息预留空间的大小,这样做是为了当数据块变小时,需要分配更多的空间给索引信息预留空间,如可以设置为10G。预先分配较大的索引预留空间,可以有利于文件系统对于磁盘大小的扩展。单个索引节点的大小是为每一个索引节点分配的空间,如上面的示例,为单个索引节点分配的空间大小为1K,该大小是可以根据需要设定的,但是如果太大会浪费存储空间,可以根据需要来设定。
进一步的,上述数据区域信息包括:数据块偏移地址(data_block_offset)、预留数据块偏移地址(reserved_block_offset)、数据块大小(block_size)、数据块总个数(total_block_nums)、可用数据块个数(block_nums)、可用数据块空间(data_block_size)、预留数据块个数(reservered_block_nums)、预留数据块空间(reserved_block_size)、预留块比例(rate)。
其中,数据块大小(block_size)和预留块比例(rate)是在文件系统格式化时设定的;数据块总空间=磁盘总空间(totalsize)-超级块分配空间(superblocksize)-索引信息预留空间(index_table_size),那么数据块总个数(total_block_nums)=数据块总空间/数据块大小(block_size);
那么,预留数据块个数(reservered_block_nums)=数据块总个数*预留块比例(rate);可用数据块个数(block_nums)=数据块总个数-预留数据块个数(reservered_block_nums);由该文件系统结构可知,数据块偏移地址(data_block_offset)=超级块起始地址+超级块分配空间(superblocksize)+索引信息预留空间(index_table_size);预留数据块偏移地址(reserved_block_offset)=数据块的偏移地址(data_block_offset)+可用数据块空间(data_block_size)。
以上是超级块中文件系统的主要描述字段,超级块分配空间(super block size)设置的大小如果为4K,足以满足以上数据字段所需要的空间,如果需要记录其他的附加信息等,那么可以根据需要在超级块中扩展添加其他字段。
需要说明的是,每一个数据块都对应一个索引节点,一个文件可能存储在多个数据块中,但是对于数据块地址的查询可以直接根据索引节点信息来计算得出。
具体的,索引节点结构包括:逻辑块号121、物理块号122、占用标志123以及文件号124组成,其中:
逻辑块号为对应数据块从0开始编号的块号;物理块号为数据实际存储的数据块号,逻辑块号和物理块号是统一的;占用标志为某个数据块被写入了数据,设置该标志,就会标记该索引节点以及索引节点所述的物理块对应的数据块已经被占用,如果要删除该索引节点以及索引节点所述的物理块对应的数据块上的数据,直接将该索引节点上的占用标志重置为0即可;文件号重置为0。如果一个1G的文件存储在数据块大小为8M的文件系统磁盘上,那么该文件一定会占用多个数据块,文件号就是用来标记查询该文件的,索引节点中的逻辑块号是用来标记这个文件的某一个文件片段的信息。
索引节点的结构中的字段也是可以根据业务需要扩展增加的,一个索引节点结构在磁盘中存储的空间是由超级块中单个索引节点大小来设定的,每一个索引节点所占的空间是相同的。
上面可知,数据块结构分为可用数据块和预留数据块部分。二者都是以数据块为单位分割的,除了预留数据块外,每一个可用数据块对应索引节点表中一个索引节点信息。索引节点表中索引节点的个数与可用数据块的个数相同。一般情况下,在数据存储时,数据存储在可用数据块部分,其中:
可用数据块:该数据块和索引节点一一对应,一个可用数据块对应一个索引节点信息,在系统格式化的时候,就确定了索引节点和可用数据块的一一对应的关系,0号索引节点对应0号可用数据块,1号索引节点对应1号可用数据块。
预留数据块:按照磁盘格式化的时候设定的一定比例划分出来的数据块,该数据块用来作为磁盘后续数据块操作,在磁盘格式化的时候,没有对应的索引节点相对应,该块只是作为系统预留使用。
本发明实施例提供的一种大文件存储文件系统,该系统包括:超级块区域、索引节点表区域、可用数据块区域和预留数据块区域,将大文件存储在可用数据块区域的数据块中,避免了超级块信息和块组描述符表的冗余,简化了文件系统结构,采用直接寻址方式,缩短了磁盘访问的时长,从而提升了读写速度。
如图3所示,本发明实施例提供了一种大文件的写入方法,应用于大文件存储的文件系统,该方法具体包括如下步骤:
S301、根据给定的逻辑块号获取该逻辑块号对应的索引节点信息。
S302、获取索引节点中的物理块号,根据物理块号、可用数据块偏移地址以及数据块大小计算对应的数据块的偏移地址。
S303、将待写入大文件写入到可用数据块中对应的数据块的偏移位置,并更新索引节点的文件号为大文件的文件号,更新索引节点的占用标志为1,并将文件索引节点写入到磁盘。
例如:假设写入文件的大小为67M,文件系统的数据块的大小为8M,那么需要67/8向上取整得9块数据块存储该待写入大文件,遍历索引节点表,得到9个索引节点列表中占用标志位为0的索引节点,根据每个节点信息中的逻辑块号如j、超级块中记录的数据块偏移地址(data_block_offset)以及数据块的大小(block_size),计算出该数据块的偏移地址,写入数据即可。
文件内容写入后,更新索引节点中的占位标志位1,文件号设置为当前文件的文件号,然后将该文件的对应的9个节点信息写入到磁盘。索引的寻址方法:index_table_offset+索引节点的序号j*(索引节点的大小或扇区大小)。
本发明实施例中对于所有数据的寻址方式为直接寻址,是根据超级块中的记录的索引节点信息以及数据块的偏移地址来计算出数据存储的地址。如:用户要读取第i个索引节点所对应的的数据的过程:
1、获取第i个索引节点信息,本发明实施例不限于上面的预读取,也可以按照下面的方法直接寻址获取第i个索引节点的信息。
根据超级块中存储的索引信息偏移地址(index_table_offset)与单个索引节点的大小比如为1k,计算出第i个数据块索引节点信息的偏移地址,并将该索引节点读取出来。计算方式为:index_table_offset+i*1K,但不限于该算法,索引的存储也可以是根据扇区的大小进行存储的。具体的,按照扇区方式存储:一个索引节点占用一个扇区,一般一个扇区的大小为512KB,那么若按照扇区存储,这里的计算方式为index_table_offset+i*扇区的大小。
2、计算数据的偏移地址,直接读取数据块中的数据。
根据该节点信息中的物理块号如j,和超级块中记录的数据块偏移地址(data_block_offset),以及数据块的大小(block_size),计算出该数据块的偏移量,读取数据。数据的偏移地址计算方式如下:block_size*j+data_block_offset
文件数据的读取与写入都是基于此寻址方式进行的,根据文件的索引节点信息,计算得到数据存放的地址,即可读取或写入数据。
可以看出,寻址方式简单,本发明实施例采用的是一种直接寻址方式,相较于现有的文件系统对于大文件的间接寻址尤其是三级间接寻址,本发明对于大文件的直接寻址速度要快很多,直接加快了文件系统的读写的性能。
如图4所示,本发明实施例还公开了一种大文件的删除方法,应用于大文件存储的文件系统,该方法具体包括如下步骤:
S401、给定大文件对应的逻辑块号,通过该逻辑块号获取该逻辑块号对应的索引节点。
S402、将待删除大文件对应的索引节点的占位标志重置为0,将文件号重置为0,并对索引节点写入到磁盘。
本发明实施例中,需要说明的是,在进行大文件的删除时,只要是将对应索引节点的占位标志重置为0即可,也是主要的操作方法,不需要删除该索引节点对应的实际数据。
需要说明的是,本发明实施例中,文件系统格式化需要重置超级块部分以及对索引节点表信息进行初始化,索引节点表的信息初始化操作为:对索引节点的占位标志,以及文件号进行清零,逻辑块号与物理块号从零开始编号。只需要写这两部分到磁盘上即可完成格式化,格式化过程简单,快速。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种大文件存储的文件系统,其特征在于,包括:超级块区域、索引节点表区域、可用数据块区域和预留数据块区域,其中:
所述超级块区域包括超级块区域信息、索引区域信息和数据区域信息,用于记录文件系统的整体信息;
所述索引节点区域用于存储所述可用数据块区域中每个数据块所对应的索引节点,所述索引节点包括:逻辑块号、物理块号、占用标志和文件号;
所述可用数据块区域和所述预留数据块区域以数据块为单位进行分割,其中:
所述可用数据块区域按照所述数据块的大小进行划分,且与所述索引节点一一对应,并按照预设规则进行编号,用于存储数据;
所述预留数据区域与所述可用数据块区域的结构相同,所述预留数据块区域中的预留数据块个数按照磁盘格式化时设定的预设比例进行划分的,用于作为所述文件系统后续数据块操作。
2.根据权利要求1所述的文件系统,其特征在于,所述超级块区域信息包括:磁盘总空间、磁盘剩余空间、超级块偏移地址以及超级块分配空间。
3.根据权利要求1所述的文件系统,其特征在于,所述索引节点信息包括:索引信息偏移地址、索引信息预留空间和单个索引接点大小。
4.根据权利要求1所述的文件系统,其特征在于,所述数据区域信息包括:数据块偏移地址、预留数据块偏移地址、数据块大小、数据块总个数、可用数据块个数、可用数据块空间、预留数据块个数、预留数据块空间以及预留块比例。
5.一种大文件的写入方法,其特征在于,应用于大文件存储的文件系统,该方法包括:
根据给定的逻辑块号获取所述逻辑块号对应的索引节点信息;
获取所述索引节点中的物理块号,根据所述物理块号、可用数据块偏移地址以及数据块大小计算对应的数据块的偏移地址;
将所述待写入大文件写入到所述可用数据块中对应的所述数据块的偏移位置,并更新所述索引节点的文件号为所述大文件的文件号,更新所述索引节点的占用标志为1,并将所述文件索引节点写入到磁盘。
6.一种大文件的删除方法,其特征在于,应用于大文件存储的文件系统,该方法包括:
给定大文件的对应的逻辑块号,通过所述逻辑块号获取所述逻辑块号的对应的索引节点;
将所述待删除大文件对应的所述索引节点的占位标志重置为0,将文件号重置为0,并对所述索引节点写入到磁盘。
CN201811314081.7A 2018-11-06 2018-11-06 一种大文件存储文件系统以及大文件处理方法 Pending CN111142780A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811314081.7A CN111142780A (zh) 2018-11-06 2018-11-06 一种大文件存储文件系统以及大文件处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811314081.7A CN111142780A (zh) 2018-11-06 2018-11-06 一种大文件存储文件系统以及大文件处理方法

Publications (1)

Publication Number Publication Date
CN111142780A true CN111142780A (zh) 2020-05-12

Family

ID=70515934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811314081.7A Pending CN111142780A (zh) 2018-11-06 2018-11-06 一种大文件存储文件系统以及大文件处理方法

Country Status (1)

Country Link
CN (1) CN111142780A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221467A (zh) * 2018-11-26 2020-06-02 深圳市茁壮网络股份有限公司 数据写入、读取方法及对应的装置
CN113434468A (zh) * 2021-06-01 2021-09-24 武汉天喻信息产业股份有限公司 文件存储方法、装置、设备及可读存储介质
CN113792023A (zh) * 2021-09-17 2021-12-14 湖南艾科诺维科技有限公司 支持多通道的嵌入式文件系统及其控制方法
CN114647388A (zh) * 2022-05-24 2022-06-21 杭州优云科技有限公司 一种高性能分布式块存储系统和管理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221467A (zh) * 2018-11-26 2020-06-02 深圳市茁壮网络股份有限公司 数据写入、读取方法及对应的装置
CN113434468A (zh) * 2021-06-01 2021-09-24 武汉天喻信息产业股份有限公司 文件存储方法、装置、设备及可读存储介质
CN113434468B (zh) * 2021-06-01 2023-02-28 武汉天喻信息产业股份有限公司 文件存储方法、装置、设备及可读存储介质
CN113792023A (zh) * 2021-09-17 2021-12-14 湖南艾科诺维科技有限公司 支持多通道的嵌入式文件系统及其控制方法
CN113792023B (zh) * 2021-09-17 2023-11-21 湖南艾科诺维科技有限公司 支持多通道的嵌入式文件系统及其控制方法
CN114647388A (zh) * 2022-05-24 2022-06-21 杭州优云科技有限公司 一种高性能分布式块存储系统和管理方法

Similar Documents

Publication Publication Date Title
US11068455B2 (en) Mapper tree with super leaf nodes
CN111143285A (zh) 一种小文件存储文件系统以及小文件处理方法
CN111142780A (zh) 一种大文件存储文件系统以及大文件处理方法
US11226747B2 (en) System and method for copy on write on an SSD
CN108984420B (zh) 管理非易失性存储器(nvm)中的多个名称空间
US9727452B2 (en) Distributing metadata across multiple different disruption regions within an asymmetric memory system
US8423733B1 (en) Single-copy implicit sharing among clones
US7761648B2 (en) Caching method for NAND flash translation layer
US6697795B2 (en) Virtual file system for dynamically-generated web pages
US20030004947A1 (en) Method, system, and program for managing files in a file system
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US20120117297A1 (en) Storage tiering with minimal use of dram memory for header overhead
CN111522507B (zh) 一种低延迟的文件系统地址空间管理方法、系统及介质
CN113568582B (zh) 数据管理方法、装置和存储设备
CN106709014B (zh) 一种文件系统转换方法及装置
JP2005174345A (ja) ファイルシステムフォーマットの変換方法及びその装置
US8239427B2 (en) Disk layout method for object-based storage devices
US6981116B2 (en) System and method for information control block tracking streams for universal disk format file systems
US8825723B2 (en) Methods and devices for managing and editing files in a file system
KR102094786B1 (ko) 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법
CN104951569A (zh) 文件系统以及采用该文件系统的文件管理方法
US11086798B2 (en) Method and computer program product and apparatus for controlling data access of a flash memory device
CN113535092A (zh) 用于减少内存元数据的存储引擎、方法和可读介质
CN106033454B (zh) 虚拟文件系统的格式化方法、处理方法和装置
CN118567577B (zh) 基于分布式块存储的数据访问方法、装置、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200512