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 ReiserFS 是从一开始就按照记录日志的意图而开发的日志文件系统.ReiserFS 于 2001 年被引进到主流 2.4 内核(Linux 采用的第一个日志文件系统).其默认的日志记录方法为预定,且支持以在线调整大小的方式扩展文件系统.ReiserFS 同时还具有 tail packing 功能,显着减少了磁盘碎片.在处理较小文件方面,ReiserFS 的速度要比 ext3f 快(当 tail packing 可用时).
ReiserFS(又称 ReiserFS v3)具有很多先进的功能,如 B 树.该文件系统的基础格式建立在单一的 B 树的基础之上,这搜索的效率和可伸缩性增强.提交策略则取决于日志的大小,但是要以待提交的块的数量为基础. ReiserFS 也遇到了几个问题 — 大多是最近出现的,这与其开发者遇到了一些法律纠纷有直接原因. 日志文件系统的未来 现在您已经了解了现行的(和过去的)日志文件系统,下面就让我们看一看它的发展趋势. Reiser4 在成 |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |