SU+J

| No Comments

Jeff Roberson 下周左右将会正式发表对于 UFS 的一项改进,为 Soft Updates 加入 Journal-ling,从而简化其恢复逻辑,并消除对 fsck 的依赖。

目前常见的保持元数据一致性的方法有四种:最原始的、将元数据以同步方式写盘的方法,性能非常差;常见的文件系统中使用的元数据回写日志(如ext3),缺点是无法检验日志本身的正确性,而且元数据需要写入两次因此对性能有潜在影响;Soft Updates,缺点是需要运行fsck来释放资源泄漏,而这个操作很耗时,且实现本身比较复杂;Copy-on-Write,在WAFL和ZFS中采用的技术,随着硬盘的淘汰随机存取时间不再是性能瓶颈,应该是未来的发展趋势,目前的缺点是会导致产生较多碎片。SU+J结合了Soft Updates和Journalling的优点,即,使用Soft Updates来确保写到磁盘上的数据的一致性,而使用Journalling来确保资源泄漏能够迅速回收,从而消除了fsck的必要性。

非常期待看到明年BSDCan的presentation。虽然目前我拿到的代码还有少量毛边,但是总体来说这次改进:

  • 不需要修改磁盘上的文件系统数据结构,因此能够用于现有系统;
  • 减少了 Soft Updates 本身的复杂性,每个事务所需的描述数据只需32个字节,扫完32K次操作(1MB日志数据)需要的时间只需2秒不到;
  • 极大地减少了由于 fsck 需要吃很多内存、很多 I/O 导致的恢复速度慢的问题,这个实现基本上可以不再使用fsck了

Leave a comment

About this Entry

This page contains a single entry by Xin LI published on December 14, 2009 2:28 PM.

服务器挂了 was the previous entry in this blog.

Buffer和cache的区别是什么? is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01