斑竹网络专注为中小企业客户提供以管理服务为核心的IT全方位服务 https://www.sysadm.cn
分类: LINUX
2013-12-10 10:05:23
ReiserFS文件系统比较适合于较小的IO请求的环境下,而XFS和JFS则适合于非常大的文件系统和非常大的I/O尺寸的情况下。而EXT3则介于ReserFS和JFS/XFS之间,因为它能较好的适应小的I/O请求及提供很好的多处理器扩展。从负载形式来说,JFS和XFS非常适合于高端的数据仓库、科学计算和大规模的SMP服务器以及流媒体服务器。而ReiserFS和EXT3文件系统则一般应用在文件服务、WEB服务和邮件服务上。
1. EXT2文件系统
Ext2(Extended 2 File System)是EXT3文件系统的前一个版本,它是不带日志(journaling)的文件系统。整个文件系统会被分隔成多个不同的块组(分区?,与分区不是一回事,用dumpe2fs命令可以查看到块分组情况),以便获得更好的性能。每个块组包括以下组成部分:
? 超级块(Super block):这个块存储文件系统的信息,每个块组的顶部都存放有超级块的复本;
? 块组描述器(Block group descriptor):有关块组的信息都存储在这里;
? 数据块位图(Data block bitmaps):用于未使用数据块的管理;
? i-node位图(i-node bitmap):用于空闲的i-node管理;
? i-node表(i-node tables):存放i-node表。每个文件都有相应的i-node表,用于存放文件的元数据,如文件模式(权限等)、uid、gid、atime、ctime、mtime、dtime以及一个指向数据块的指针等;
? 数据块(Data blocks):这里是实际存放用户数据的地方;
下图是Ext2文件系统的数据结构图:
图7 Ext2文件系统数据结构
在ext2文件系统中,操作系统查找和使用一个文件的过程如下:
当系统从某个进程那里接收到要查找或打开系统中某个目录下的指定文件,如/var/log/message时,系统首先会分析指定文件的路径,然后从最低层的目录(/)开始查找。它首先找到根路径的i-node信息,然后由根i-node的指引,查得根目录下所包括的所有的文件和子目录,从中可以找所需查找的第二级目录的i-node信息,如/var 。然后,系统会一级一级查下去,直至找到所指定的文件的i-node,最后依据这个i-node指引的信息找到对应文件里的数据信息。如果操作系统对每个文件查找都重复上述过程显然效率较低,所以,操作使用了缓存技术来加速这种查找。
2. EXT3文件系统
ext3文件系统是在ext2文件系统的基础上发展过来的,它具有与ext2文件系统相同的结构,但是增加了日志(journaling)功能。Ext3文件系统的主要改进包括:
? 可用性:ext3文件系统总是使用一致性的方法向磁盘上写数据。所以,当系统非正常关机后重启,ext3文件系统不需要操作花时间来对数据的一致性进行检查,这减少了系统的恢复时间;
? 完整性:在挂载文件系统时,如果带上data=journal参数,即启用日志模式,那么所有的数据,包括文件数据和数据元数据都会被记录日志;