一种日志结构文件系统的设计与实现(一)

一种日志结构文件系统的设计与实现(一)

The Design and Implementation of a Log-Structured file system


Mendel Rosenblum and John K. Ousterhout

Electrical Engineering and Computer Sciences, Computer Science Division

University of California

Berkeley , CA 94720

mendel@sprite.berkeley.edu, ouster@sprite.berkeley.edu

 

邓辉

 

原文: http://www.eecs.berkeley.edu/~brewer/cs262/LFS.pdf

 

 

摘要:

       本文介绍了一种新的磁盘存储管理技术:日志结构文件系统 。在日志结构文件系统中,所有的修改都以顺序的方式写入一个类日志的结构中,因此既加快了写入的速度,同时也加快了崩溃恢复( crash recovery )的速度。日志是唯一存储在磁盘上的结构;其中包含了索引信息,可以提高从日志中读回文件内容的速度。为了提供快速写入所需要的“大块”( large extents )空闲磁盘空间,我们把日志分成段( segments ,并用段清理器( segments cleaner 来对分片严重的段中的有用信息进行压缩。我们进行了一系列的模拟测试以说明一个简单的、基于成本收益的清理策略的有效性。我们实现了一个日志结构文件系统原型: Sprite LFS ;其在小文件写操作方面的性能比现有的 Unix 文件系统高一个数量级,在读以及大文件写方面也超过 Unix 的性能。即使把段清理的开销包括在内, Sprite LFS 也可以在写入时使用到 70% 的磁盘带宽,而 Unix 文件系统一般只能使用到 5-10%

1、 介绍

       在最近的 10 年间, CPU 的速度飞速增长,而磁盘的访问速度却增长缓慢。这个趋势很可能不会改变,因此,磁盘性能就成为越来越多应用的性能瓶颈。为了减少这个问题的影响,我们设计了一种新的磁盘存储管理技术,称为日志结构文件系统 ,其使用磁盘的效率要比当前的文件系统高一个数量级。

 

       日志结构文件系统的设计有一个假设前提:文件会被缓存在主内存中,因此增加内存大小会增加缓存在满足读请求方面的效率 [1] 。因此,写请求就成为磁盘的主要负载。日志结构文件系统把所有新的信息写入到磁盘中的一个称为日志 的顺序结构中。由于消除了几乎所有的寻道开销,因此这种方法可以极大地提升写入性能。同时,日志的顺序特性也加快了崩溃恢复的速度:一般来讲,当前的 Unix 文件系统在崩溃后必须得扫面整个磁盘以恢复数据的一致性,但是日记结构文件系统只需要检查日志中的最新部分即可。

 

       日志并不是一个新的概念,很多近期的文件系统都已经把日志作为辅助结构融合于其中,用以加速写入和崩溃恢复 [2,3] 。但是,这些系统仅把日志用作临时存储;信息的持久存储地仍然为磁盘中的传统随机存取存储结构。相反,日志结构文件系统则把数据永久地存储在日志中:磁盘上只有这一个结构。日志中保存着索引信息,这样在读回文件内容时,其效率和当前文件系统不相上下。

 

       为了使得日志结构文件系统高效运行,就必须得保证在写入新数据时,总有“大块”空闲磁盘空间可用。这是日记结构文件系统设计中所面临的最困难的挑战。在本文中,我们提出了一种基于被称为 segments )的“大块”的解决方案,其中段清理器 进程会不停地对分片严重的段进行压缩,重新产生出新的空闲段。我们使用一个模拟器来研究不同的清理策略,并发现了一个简单但是有效的基于成本收益的算法:把老一些的,变化慢一些的数据和新的、快速变化的数据分离,并在清理时对它们区别对待。

 

       我们实现了一个称为 Sprite LFS 的日志结构文件系统原型,现在已经成为 Sprite 网络操作系统 [4] 产品的一部分。基准测试程序表明,对于小文件来说, Sprite LFS 的原始写入速度超过 Unix 一个数量级以上。即使对于其他类型的测试,比如读取和大文件存取, Sprite LFS 也至少和 Unix 一样快(除了一种情况:文件随机写入后,再顺序读)。我们还度量了产品系统中清理工作的长期开销。总的来说, Sprite LFS 在写入新数据时,可以利用到磁盘原始带宽的 65-75% (其他的被用作清理)。而 Unix 系统只能把磁盘原始带宽的 5-10% 用于写入新数据;其他的时间都花费在寻道上面。

 

       本文的剩余部分被分为 6 小节。第 2 节回顾了 1990’ s 时期计算机文件系统设计中的一些问题,第 3 节讨论了日志结构文件系统设计的可选方案,并导出了 Sprite LFS 的结构,主要关注于清理机制。第 4 节介绍 Sprite LFS 中的崩溃恢复。第 5 节基于基准测试程序和清理开销的长期度量对 Sprite LFS 进行评估。第 6 节比较了 Sprite LFS 和其他文件系统。我们在第 7 节进行了总结。

2 1990’ s 的文件系统设计

(待续)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值