ext文件系统和虚拟文件系统

转载于骏马金龙

ext3文件系统的日志功能

相比ext2文件系统,ext3多了一个日志功能。

在ext2文件系统中,只有两个区:数据区和元数据区。如果正在向data block中填充数据时突然断电,那么下次启动时就会检查文件系统中数据和状态的一致性,这段检查和修复可能会消耗大量时间,甚至检查后无法修复。之所以会这样是因为文件系统在断电后,它不知道上次正在存储的文件的block从哪里开始,哪里结束。所以会扫描整个文件系统进行排查。

而在创建ext3文件系统时会划分三个区:数据区、日志区和元数据区。每次存储数据时,先在日志区中进行ext2中元数据区的活动,直到文件存储完成后标记上commit才将日志区中的数据转存到元数据区。当存储文件时突然断电,下一次检查修复文件系统时,只需要检查日志区的记录,将bmap对应的data block标记为未使用,并把inode号标记未使用,这样就不需要扫描整个文件系统而耗费大量时间。

虽说ext3相比ext2多了一个日志区转写元数据区的动作而导致ext3相比ext2性能要差一点,特别是写众多小文件时。但是由于ext3其他方面的优化使得ext3和ext2性能几乎没有差距。

ext4文件系统

回顾前面关于ext2和ext3文件系统的存储格式,它使用block为存储单元,每个block使用bmap中的位来标记是否空闲,尽管使用划分块组的方法优化提高了效率,但是一个块组内部仍然使用bmap来标记该块组内的block。对于一个巨大的文件,扫描整个bmap都将是一件浩大的工程。另外在inode寻址方面,ext2/3使用直接和间接的寻址方式,对于三级间接指针,可能要遍历的指针数量是非常非常巨大的。

ext4文件系统的最大特点是在ext3的基础上使用区(extent,或称为段)的概念来管理。一个extent尽可能的包含物理上连续的一堆block。inode寻址方面也一样使用区段树的方式进行了改进。

默认情况下,EXT4不再使用EXT3的block mapping分配方式 ,而改为Extent方式分配。

EXT4在总体结构上与EXT3相似,大的分配方向都是基于相同大小的块组,每个块组内分配固定数量的inode、可能的superblock(或备份)及GDT。

EXT4的inode结构做了重大改变,为增加新的信息,大小由EXT3的128字节增加到默认的256字节,同时inode寻址索引不再使用EXT3的"12个直接寻址块+1个一级间接寻址块+1个二级间接寻址块+1个三级间接寻址块"的索引模式,而改为4个Extent片断流,每个片断流设定片断的起始block号及连续的block数量(有可能直接指向数据区,也有可能指向索引块区)。

EXT4删除数据后,会依次释放文件系统bitmap空间位、更新目录结构、释放inode空间位。

在存储数据时,ext3中的block分配器一次只能分配4KB大小的Block数量,而且每存储一个block前就标记一次bmap。假如存储1G的文件,blocksize是4KB,那么每存储完一个Block就将调用一次block分配器,即调用的次数为10241024/4KB=262144次,标记bmap的次数也为10241024/4=262144次。

而在ext4中根据区段来分配,可以实现调用一次block分配器就分配一堆连续的block,并在存储这一堆block前一次性标记对应的bmap。这对于大文件来说极大的提升了存储效率。

ext类的文件系统的缺点

最大的缺点是它在创建文件系统的时候就划分好一切需要划分的东西,以后用到的时候可以直接进行分配,也就是说它不支持动态划分和动态分配。对于较小的分区来说速度还好,但是对于一个超大的磁盘,速度是极慢极慢的。例如将一个几十T的磁盘阵列格式化为ext4文件系统,可能你会因此而失去一切耐心。

除了格式化速度超慢以外,ext4文件系统还是非常可取的。当然,不同公司开发的文件系统都各有特色,最主要的还是根据需求选择合适的文件系统类型。

虚拟文件系统VFS

每一个分区格式化后都可以建立一个文件系统,Linux上可以识别很多种文件系统,那么它是如何识别的呢?另外,在我们操作分区中的文件时,并没有指定过它是哪个文件系统的,各种不同的文件系统如何被我们用户以无差别的方式操作呢?这就是虚拟文件系统的作用。

虚拟文件系统为用户操作各种文件系统提供了通用接口,使得用户执行程序时不需要考虑文件是在哪种类型的文件系统上,应该使用什么样的系统调用来操作该文件。有了虚拟文件系统,只要将所有需要执行的程序调用VFS的系统调用就可以了,剩下的动作由VFS来帮忙完成。

55555555555555555555555.png


标题:ext文件系统和虚拟文件系统
作者:reyren
地址:https://www.reyren.cn/articles/2021/06/21/1624870924655.html

    评论
    0 评论
avatar

取消