您的位置:首页 > 其它

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

2010-03-01 16:54 507 查看

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

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
的文件系统设计

(待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: