Soft Updates: 用于快速文件系统(FFS)的一项消除…

2009-05-13 12:52:26来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


作者及顾问:Marshall Kirk McKusick;卡内基梅隆大学 Gregory R. Ganger
中文翻译:北京工业大学计算机学院 李鑫
--------------------------------------------------------------------------
这篇论文最初发表于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很好地
融合进了现有的文件系统,保证了元数据关联性,并基本达到了最佳的性能。
第1节 研究背景与导言
元数据(如文件目录,i-节点,以及空闲块映射表)指明原始数据存储(raw storage)的
结构。元数据提供指针和描述符,通过它们将磁盘上的扇区联结成文件,并区分它们。
为了长期维持可靠存储,文件系统必须在遭遇非预期的系统崩溃,如断电和操作系统故
障时,保证元数据的完整性。由于类似的崩溃通常导致保存于易失性主存中的全部信息
的丢失,保存在非易失性存储器(例如,磁盘)中的信息必须总具有足够的一致性以便确
定性地重建文件系统的一致。特别地,文件系统在磁盘上的镜像绝不能包含悬挂指针,
也不能有足以导致二义性的资源所有权指针,或未引用的活动资源。维持这些原则通常
需要顺序地(或按原子操作分组)更新小的元数据对象。
过去,BSD快速文件系统(FFS)及其派生系统采用同步写入来保证稳定的存储器写入次
序。例如,在BSD系统中创建一个文件,首先需要分配和初始化新的i-节点并填充一个
新的目录指向项。由于采用同步写入,文件系统将强制创建文件的应用程序等待这些初
始化操作的完成,其结果是,在这些系统中类似创建、删除文件这样的操作将以磁盘,
而不是CPU/内存的速度进行。由于磁盘操作相对于其他部件来说更慢,同步写入会降低
系统性能。元数据更新问题也可以在采用NVRAM技术的前提下通过其他机制解决,例
如,可以使用不间断电源(UPS)或Flash。此时只需要保证NVRAM的一致性,而更新可以

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在FreeBSD中建立chroot的FTP服务

下一篇:在FreeBSD系统上使用IP Filter进行桥过滤