Linux日志文件系统剖析
到日志中.这种模式可以最大限度地防止文件系统崩溃与数据丢失,但全部数据都写入了两次(先写入日志,再写入磁盘),系统性能可能会降低.
日志的提交也有很多种不同的策略.比如,是在日志将满时,还是在超时后? 日志文件系统的现状 如今,有几种日志文件系统应用非常广泛.每一种都有其自己的优缺点.下面介绍现存最普遍的四种日志文件系统.
JFS2 JFS2(又称 enhanced journaled file system)是最早期的日志文件系统,在植入 Linux 之前已被应用于 IBM AIX? 操作系统多年.它是 64 位的文件系统,虽然它是在原来的 JFS 的基础上开发的,但却较之有所改进,即:JFS2 具有更优的扩展性能,支持多处理器架构. JFS2 支持预定的日志记录方式,可以提高较高的性能,并实现亚秒级文件系统恢复.JFS2 同时为提高性能提供了基于分区的文件分配(Extent-based allocation).基于分区的分配 是指对一组连续的块而非单一的块进行分配.这些块在磁盘上是连续的,其读取和写入的性能就会更好.这种分配的另外一个优势就是可以将元数据管理最小化.按块分配磁盘空间就意味着要逐块更新元数据.而使用分区,元数据则仅需按照分区(可以代表多个块)更新. JFS2 还使用了 B 树,以便更快地查找目录和管理分区描述符.JFS2 没有内部日志提交策略,而是在 kupdate 守护进程超时时提交. XFS XFS 是 Silicon Graphicsis 于 1995 年为 IRIX 操作系统开发的其他早期日志文件系统之一.它于 2001 年就已经被植入 Linux,因此,它已经成熟可靠. XFS 支持 64 位全地址寻址,并以 B 树为目录和文件分配提供高性能.XFS 同样使用了基于分区的分配,支持可变的块大小(从 512 字节到 64KB ).除分区外,XFS 还采用延时分配,即等到块将被写入磁盘时,再为其分配磁盘空间.这样所需磁盘空间总数就一目了然,因此这个功能提高了分配连续磁盘块的可能性. XFS 还有一些其他的有趣特性,它可以保证 rate 输入输出(I/O — 通过为文件系统用户保留带宽)和直接 I/O.其中,数据是直接在磁盘和用户空间缓冲区间拷贝的(而不是从多个缓冲区进入).XFS 采用回写日志策略. 第三扩展文件系统(ext3fs) 第三扩展文件系统(third extended file system,ext3fs)是最流行的日志文件系统,是由 ext2 文件系统演化而来.实际上,Ext3fs 可以与 ext2fs 兼容,这是 ext3fs 使用的结构与 ext2fs 相同,仅仅多了一个日志而已.我们甚至可以把 ext3fs 的一部分当作 ext2 文件系统挂载,或者将 ext2 文件系统转换成 ext3 文件系统(使用 tune2fs 实用程序).
Ext3fs 允许用三种方式记录日志(回写,预定和数据),但预定模式为默认模式.日志提交策略也是可配置的,但是默认在日志填满 1/4 时或其中一个提交计时器超时时,提交日志. ext3fs 主要的弊端之一就是它最初不是作为日志文件系统而设计的.它是在 ext2fs 的基础上开发的,因此缺少一些其他日志文件系统所具备的高级特性(例如分区).它在性能方面较之 ReiserFS、JFS 以及 XFS 也尤为逊色,但它所需要的 CPU 和内存要比同类解决方案少. ReiserFS 什么是 tail packing? 很多情况下,一些文件的大小小于逻辑块.为了不把可以分配给一个逻辑块的磁盘空间浪费给小文件(称之为tail),于是把多个文件打包到一个单一的逻辑块中.结果发现这种方法可以让磁盘空间的容量比其他竞争文件系统(有性能损失)高 5%.
|
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |