SU+J

| No Comments | No TrackBacks |

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了

No TrackBacks

TrackBack URL: https://blog.delphij.net/mt/mt-tb.cgi/1773

Leave a comment

Monthly Archives

Pages

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