本文详细介绍Soft Updates一项消除大多数同步写操作的技术(1)
作者及顾问:Marshall Kirk McKusick;卡内基梅隆大学 Gregory R. Ganger中文翻译:北京工业大学计算机学院 李鑫 <delphij@cnfug.org>
--------------------------------------------------------------------------这篇论文最初发表于1999年6月6日至11日举行的USENIX年度技术会议中,Freenix会议录的第1-17页。其版权归Marshall Kirk McKusick和Greg Ganger所有,作者保留所有权力。这篇论文在作者的许可下被翻译和重新发布。在保持此版权宣示完整的前提下,允许对本文进行非商业目的的重新发布。--------------------------------------------------------------------------
摘要
传统上,维持掉电或系统崩溃后的文件系统一致性维护主要采用两种方法:其一是对存在依赖顺序的元数据(metadata)进行同步写入,其二是用写通式日志来将原子操作组织在一起。Soft Updates,一种不同于它们的方法,是一种通过保证元数据按依赖顺序更新来确保磁盘上文件系统的总保持一致的实现机制。使用SoftUpdates避免了对于独立日志或大量同步写操作的需求。同时,它还能将很多以前独立且同步进行的操作合并,从而在文件操作密集的环境(例如程序开发、邮件服务器等)中减少40%-70%的写操作。在提高性能的同时,SoftUpdates还可以更好地维持文件系统的一致性。通过保证不一致性仅存在于未声明的块或i-节点,SoftUpdate能够消除对于系统崩溃后运行文件系统检查程序的依赖。这样,在重启后文件系统立即处于可用状态。另外,可以通过一个后台任务在处于运行状态的文件系统中回收丢失的块和i-节点。
这篇论文描述了集成到4.4BSD快速文件系统(Fast Filesystem)中的一个SoftUpdates实现。它详细介绍了建立一个成品级质量的系统时,对研究原型以及BSD系统做的修改。同时,它也讨论了在将SoftUpdates从研究转入现实中的经验、难处,以及从中得到的教训; 那些非常规的文件系统操作(例如,fsck和‘fsync’),需要进行的重新考虑和增加的代码。最终实现的系统得到的体验证明了早先的研究成果:SoftUpdates很好地融合进了现有的文件系统,保证了元数据关联性,并基本达到了最佳的性能。
责编:豆豆技术应用
- Linux/Unix新闻
- Linux/Unix入门
- Linux/Unix命令
- Linux/Unix安装
- Linux/Unix编程
- Linux/Unix管理
- Linux/Unix桌面
- Linux/Unix内核
- Linux/Unix软件
- Linux/Unix发行版
- IBM AIX
- Solaris
- NetBSD
- SCO Unix
- NetBSD Internals
- NetBSD 指导手册
- FreeBSD Porter 手册
- FreeBSD Handbook 简体中文版
- FREEBSD 使用者手册
- FreeBSD 5.x 架设管理与应用
- FreeBSD 6.0架设管理与应用
- OpenBSD FAQ中文版