转载自华为服务支持 EXT文件系统
EXT各代系统的介绍与区别
ext 第一代扩展文件系统,一种文件系统,于1992年4月发表,是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。
特点:它是在linux上,第一个利用虚拟文件系统实现出的文件系统。
优势:克服MINIX文件系统性能不佳的问题。
ext2:第二代扩展文件系统是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的经典实现为LINUX内核中的ext2fs文件系统驱动,最大可支持2TB的文件系统,至linux核心2.6版时,扩展到可支持32TB。
特点:在ext2文件系统中,文件由inode(包含有文件的所有信息)进行唯一标识。一个文件可能对应多个文件名,只有在所有文件名都被删除后,该文件才会被删除。此外,同一文件在磁盘中存放和被打开时所对应的inode是不同的,并由内核负责同步。
优势:文件系统高效稳定。
ext3:第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。
特点:Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。
5大优势
1) 高可用性:系统使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统。
2) 数据的完整性:避免了意外宕机对文件系统的破坏。
3) 文件系统的速度:因为ext3的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之Ext2文件系统并来说,性能并没有降低。
4) 数据转换 :“由ext2文件系统转换成ext3文件系统非常容易。
5) 多种日志模式。
ext4:第四代扩展文件系统,是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4是由Ext3的维护者Theodore Tso领导的开发团队实现的,并引入到Linux2.6.19内核中。
特点:Ext4修改了Ext3中部分重要的数据结构,而不仅仅像Ext3对Ext2那样,只是增加了一个日志功能而已。Ext4可以提供更佳的性能和可靠性,还有更为丰富的功能。
优势:
1) 与Ext3兼容:执行若干条命令,就能从Ext3在线迁移到Ext4,而无须重新格式化磁盘或重新安装系统。
2) 更大的文件系统和更大的文件:较之Ext3目前所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB 的文件。
3) 无限数量的子目录:Ext3目前只支持32,000个子目录,而Ext4支持无限数量的子目录。
4) Extents:Ext4引入了现代文件系统中流行的extents概念,每个extent 为一组连续的数据块,相比Ext3采用间接块映射,提高了不少效率。
5) 多块分配:Ext4 的多块分配器 “multiblock allocator”(mballoc) 支持一次调用分配多个数据块。
6) 延迟分配。
7) 快速 fsck。
8) 日志校验。
9) “无日志”(No Journaling)模式。
10) 在线碎片整理。
11) inode相关特性:较之Ext3默认的inode大小128字节,ext4默认inode大小为256字节。
ext4文件系统:块组、块位图和inode位图、inode表和目录项
Ext4文件系统将磁盘分区分成若干个块组,第一个块组(即块组0)中会包含超级块信息,其余块组不一定包含超级块,有些块组会保存超级块的备份。其主要布局如下:
每个块组中都有的元数据信息是块位图、Inode位图以及Inode表。除了0号块组拥有超级块和GDT之外,其他块组中也可能拥有超级块和GDT的备份,其中的预留GDT作为文件系统扩展使用,一旦文件系统增大,就会产生新的块组描述符,保留在GDT表中。
超级块记录文件系统的整体信息,包含inode/block的大小、总量、使用量、剩余量,以及文件系统的格式,文件系统挂载时间,最近一次数据写入时间,最近一次校验磁盘的时间等。
EXT4将整个磁盘划分为固定大小的若干块组,默认是128M。块组描述符表用于记录块组的基本信息,block bitmap所在的块号, inode bitmap所在的块号,空闲的块数目,空闲Inode数目,目录项个数等。dumpe2fs [磁盘路径]可以显示ext2、ext3、ext4文件系统的超级块和块组信息。
Block bitmap: 标记block是否被使用。
Inode bitmap: 标记inode是否被使用。
每个位图一个数据块,每一位用0或1表示一个块组中数据块或inode表中inode的使用情况。
如果一个数据块大小是4KB的话,那一个位图块可以表示4*1024*8个数据块的使用情况,这也是单个块组具有的最大数据块个数。这样可以算出一个块组大小是128MB。
为了找到与一个文件相关的信息,必须遍历目录文件找到与文件相关的目录项,然后加载inode找到该文件的元数据。Ext4在目录项中用一位存储了文件类型(通常存储在inode中)的拷贝,这对性能提升有益。
网友评论