首页IT科技linux中的文件系统支持磁盘配额功能(Linux标准的文件系统知识分享(Ext2/Ext3/Ext4))

linux中的文件系统支持磁盘配额功能(Linux标准的文件系统知识分享(Ext2/Ext3/Ext4))

时间2025-08-04 19:18:21分类IT科技浏览5245
导读:Ext...

Ext

全称Linux extended file system, extfs              ,即Linux扩展文件系统                     ,Ext2就代表第二代文件扩展系统        ,Ext3/Ext4以此类推           ,它们都是Ext2的升级版                    ,只不过增加了日志功能            ,且彼此向下兼容        ,所以Ext2被称为索引式文件系统                    ,而Ext3/Ext4被称为日志式文件系统              。

备注:Linux支持很多文件系统                ,包括网络文件系统(NFS)               、Windows的Fat文件系统                     。

查看Linux支持的文件系统:ls -l /lib/modules/$(uname -r)/kernel/fs

查看Linux支持的文件系统(已载入到内存中):cat /proc/filesystems

核心设计

数据区

这些元素相对稳定    ,磁盘格式化后                    ,就固定下来了        。

1                      、inode(索引节点)

记录文件的权限      、属性和数据所在块block的号码                   ,每个文件都有且仅有一个的inode,每个inode都有自己的编号                 ,可以把inode简单地理解为文档索引           。

2           、block(数据区块)

存储的文件内容                      ,也叫数据区块(data block)    ,每个block都有自己的编号              ,Ext2支持的单位block容量仅为1k                       、2k         、4k                    。

备注:为了方便inode的记录                     ,在磁盘格式化后        ,block的大小都已经固定了            。每一个块只能存放一个文件的数据           ,若文件太大                    ,将占用多个block;若文件太小            ,block剩余空间就不能被使用了        ,就会导致磁盘空间浪费                    ,所以在磁盘分区后                ,文件系统格式化前    ,请先仔细想想文件系统的预计使用情况        。

中介数据(metadata)

这些元素是为了维持文件系统状态而设计出来的                    ,主要代表的是文件系统的动态配置信息                   ,属于描述性信息                    。

1       、superblock(超级块)

记录文件系统(filesystem)的整体信息,包括inode/block的总量                        、使用量             、剩余量   、大小                       、以及文件系统的格式和相关信息                。

备注:整个文件系统的基本信息全部记录在superblock                 ,它的大小一般为1024Bytes                      ,如果它死掉    ,将会花费大量的时间去补救哦!!!

2                 、block group(区块群组)

试想一下              ,假如我们的磁盘容量高达数百G                     ,当我们格式后        ,inode和block会非常庞大           ,为了便于管理                    ,Ext文件系统在格式化时            ,引入了区块群组(block group)的概念        ,每个区块群组都保持独立inode/block/superblock                    ,拥有固定数量的block                ,这样就分成了一群一群最基础的子文件系统    。

备注:superblock对于文件系统太重要了    ,但是文件系统的superblock又只有一个                    ,所以除了第一个block group含有superblock外                   ,后续block group都可能会含有备份的superblock,目的就是为了避免superblock单点无法救援的问题                    。

3、block bitmap(区块对照表)

一个block只能被一个文件使用                 ,当我们新增文件时                      ,肯定需要使用新的block来记录文件数据                   。那么如何快速地知道    ,哪些block是新的?哪些block是已经使用了的?block bitmap就是这样被设计出来              ,记录所有使用和未使用的block号码。同样的                     ,当我们删除文件时        ,先从block bitmap中找到对应的block号码           ,然后更新标志为未使用                    ,最后释放block                 。

inode bitmap(inode 对照表)

和block bitmap一样的设计理念            ,只不过它记录地是已使用和未使用的inode号码        ,这里就不再敖述了                      。

group descriptor

描述每个区段(block group)开始和结束的block号码                    ,以及说明每个区段(inodemap                   、blockmap                     、inode table)分别介于哪些block号码之间    。

列出目前系统所有被格式化的设备:blkid

挑选一个已格式化好的设备                ,查看文件系统的详细信息:dumpe2fs /dev/vda1

备注:通过上面的Magic签名为0xEF53    ,说明我们的磁盘分区是一个的ext2和ext3文件系统              。类似于通过文件开头的Magic                    ,可以判断文件类型一样                     。

总结

Ext家族是Linux支持度最广   、最完整的文件系统                   ,当我们格式化磁盘后,就已经为我们规划好了所有的inode/block/metadate等数据                 ,这样系统可以直接使用                      ,不需要再进行动态的配置    ,这也是它最优秀的特点              ,不过这也是它最显著的缺点                     ,磁盘容量越大        ,格式化越慢           ,centos7.x已经选用xfs作为默认文件系统        。

声明:本站所有文章                    ,如无特殊说明或标注            ,均为本站原创发布           。任何个人或组织        ,在未征得本站同意时                    ,禁止复制               、盗用                      、采集      、发布本站内容到任何网站           、书籍等各类媒体平台                    。如若本站内容侵犯了原著者的合法权益                ,可联系我们进行处理            。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue project.json(Nest+Vue实战:工作计划管理系统) python 切片 拷贝(python中用切片复制列表)