中图分类号:TP316.81文献标识码:A文章编号:1009-2552(2007)12-0050-03
日志技术在Linux文件系统中的研究与应用
戴彤彤,刘胜辉,王磊
(哈尔滨理工大学计算机科学与技术学院,哈尔滨150080)
摘要:介绍了日志技术的主要特点,详细讲解了一种最常用的日志技术形式,同时针对日志技术在Linux文件系统中的应用作了深入的分析,并对ReiserFS、JFS、XFS几种主要日志文件系统进行了分析和研究。
关键词:Linux文件系统;日志;ReiserFS;JFS;XFS
Analysis of Linux file system using log technology
DAI Tong-tong,LI U Sheng-hui,WANG Lei
(School of Computer Science and Technology,Harbin University of Science and
Technology,Harbin150080,China)
Abstract:This paper analyses characteristics of log technology and the most popular method of using it.It discusses on some problems of log technology applying into Linux file syste m in detail,and researches several kinds of journaling file system,such as ReiserFS,JFS and XFS.
Key w ords:Linux file syste m;Log;ReiserFS;JFS;XFS
0引言
文件系统是Linux操作系统中重要的组成部分,它是操作系统在计算机的硬盘上存储和检索数据的逻辑方法,是系统中数据信息的管理组织形式。文件系统管理和组织保存在磁盘驱动器上的数据,实现了数据完整性:即保证写入磁盘的数据和随后读出的内容的一致性。
1Linux中无日志技术的文件系统Linux可以支持很多种文件系统,使用最广泛的是Linux文件系统的第二扩展文件系统(Sec ond Extended File System,ext2fs),但是,随着Linux系统在许多安全性要求很高的领域的广泛应用,E xt2文件系统的崩溃恢复机制并不能满足相应的要求。当崩溃发生后,再重新启动时会调用文件扫描工具fsck 来扫描,系统会计算出被损坏的数据的位置,然后或是通过恢复冗余的元数据信息,或是直接删除被损坏或是元数据信息损坏的文件来试图恢复损坏的元数据信息。不难看出,在检
测过程中,如果要检测的文件系统很大,那么检测时间也会相应增长,这势必降低了系统的可用性。为了解决这一缺陷,Linux 文件系统引入了日志技术,以使文件系统在崩溃后快速恢复一致性。
2日志技术在Linux文件系统中的工作原理
日志文件系统(journaling file system,JFS)使用了最初为数据库开发的技术,以记录在文件系统元数据上作为原子事务执行的操作的信息。在系统出现故障时,文件系统是通过重放日志并对适当的事务应用日志记录而恢复到一致状态的。因为重放应用程序只须检查最近的文件系统活动产生的日志记录而不必检查所有文件系统元数据,所以这种采用日志技术的文件系统的恢复时间要短得多。日志文件系统不仅记录对信息节点(inode)的更改,同时也记录对文件内容的更改。其基本思想就是将所有的文件的改变记录在文件系统中的一个特殊的文件)))日志文件中。每次对文件系统的修改都记录在这个文件的尾部,它们不经过磁盘缓冲区直接写回磁盘。这样,在系统崩溃后,只要检查日志文件的尾部,就能够到文件系统崩溃前的状态,迅速
收稿日期:2007-06-25
作者简介:戴彤彤(1983-),女,硕士研究生,现就读于哈尔滨理工大学计算机学院,主要研究方向为操作系统及网络安全。
)
50 )
地恢复系统。
在文件系统的实现中最常用的日志形式是元数据日志。当文件系统对它在磁盘上的结构进行更改时,它将使用几个分离的同步写入操作来完成更改。元数据日志文件系统在磁盘上有一个回绕的、只能附加的日志区域,它使用这个区域来记录每个磁盘事务的状态。在更改任何磁盘结构之前,都会向日志写入一个计划提交(inten-t to -commit)记录。然后更新目录结构并将日志项目标记为完成。因为对文
件系统结构的每一个更改都在日志中,所以要想检查文件系统的一致性,只需查看日志即可,不需要扫描整个文件系统。在装载时,如果发现一个计划提交项目但是它没有被标记为完成,则将检查这个块的文件结构,并在必要时修复。
图1显示了非日志文件系统中文件的数据块、信息节点信息以及在更改这个文件中的数据时发生的情况。图2显示了日志文件系统上的一个类似文
件以及修改这个文件时发生的情况。
图1
非日志文件系统更新操作示意图
linux怎么读取文件
图2 日志文件系统更新操作示意图
3 几种日志文件系统
目前加入了日志技术的文件系统主要有以下几种:ext3文件系统,ReiserFS,JFS 和XFS 。ext3是ext2文件系统更高一级的版本。ReiserFS 是由Ha ns Reiser 发起的Linux 最早的日志文件系统。JFS 是由IB M 设计开发的日志文件系统;XFS 由SGI 从Irix 系统中移植到Linux 系统的文件系统。其中,ext3文件系统在ext2文件系统的基础上加入了日志功能,是一个支持异步的日志文件系统,在性能上完全兼容ext2,有关其性能特点可参照ext2文件系统。本文重点研究讨论日志技术在其它三种文件系统的应用。3.1 ReiserFS 日志文件系统
ReiserFS 是Linux 最早的一个使用日志技术的文件系统,它的主要目标是在系统崩溃之后能提供比较快的恢复,并拥有事务型文件系统原数据更新。ReiserFS 的运行速度很快,特别适用于小文件和包含许多文件的目录。
ReiserFS 既可以只对元数据做日志,也可以同时对文件数据块做日志。具体来说,ReiserFS 提供以下三种日志模式:
(1)日志(Journal)
Journal 模式要求文件系统所有数据和元数据的改变都记入日志。这种模式减少了丢失每个文件所作修改的机会,但是它需要很多额外的磁盘访问。例如,当一个新文件被创建时,它的所有数据块都必须复制一份作为日志记录。
(2)预定(Ordered)
Ordered 模式只有对文件系统元数据的改变才记入日志。然而,ReiserFS 文件系统把元数据和相
关的数据块进行分组,以便把元数据写入磁盘之前写入数据块。这样,就可以减少文件内数据损坏的机会。例如,确保增大文件的任何写访问都完全受日志的保护。
(3)写回(Writeback)
只有对文件系统元数据的改变才记入日志,这是ReiserFS 文件系统最快的日志模式。
ReiserFS 文件系统还有一个特性)))预写日志。大多数元数据的操作都涉及多个块,并且通常只有一个操作所涉及的一些块被更新时,元数据才会被破坏。使用预写日志,将在允许块达到它们的真正位置之前就将其写入日志。在系统崩溃之后,将重放日志,以便将文件系统恢复到一致的状态。
)
51)
这种重放比fsck要快的多,其时间受日志区域的大小而不是文件系统的大小限制。
3.2JFS日志文件系统
JFS由IB M公司开发,是一个采用了日志技术的字节级文件系统,它非常强大,并且是可以扩展的。虽然JFS主要是为面向事务的高性能服务器所需要的高吞吐量和可靠性需求而设计的,但是它同样适用于对性能和可靠性有所要求的客户配置。JFS的设计从一开始就完全集成了日志,而不是在现有文件系统上添加日志。这个文件系统的日志是在各个聚集中维护的,并且用来记录在元数据上的操作信息,聚集内多个已挂载的文件集可以同时使用一个日志。JFS日志具有一种由文件系统创建实用程序设置的格式。
JFS文件系统所使用的日志记录的模式如下:当涉及元数据更改的文件系统操作(如,unlink())返回成功执行的返回码时,操作的结果就已经提交到文件系统,即使系统崩溃,也将看到这种结果。例如,一旦成功删除了文件,即使系统崩溃然后重启,它仍然是删除的并且不会再重新出现。
3.3XFS日志文件系统
XFS文件系统最初存在于Irix操作系统中,后来由SGI将其移植到Linux,代替了非日志EFS文件系统。X
FS是一个高度可扩展的64位的文件系统,它大量使用了B树来支持大型文件和稀疏文件以及非常大的目录。
XFS日志文件系统有着独特的日志模式,它对元数据的所有更改都连续地记录到磁盘空间的一个单独区域中。每个文件都有一个单独的日志。为了安全起见,XFS的日志空间是从文件系统空间中单独分配的,并由日志管理器来控制。日志管理器的作用是标识日志记录并调用文件系统的其它部分来执行恢复操作。特定的日志必须在数据操作之前或之后按顺序写入,所以XFS的日志管理器使用了空间管理器提供的信息,以便控制从缓冲区缓存的写入操作的顺序。如果出现故障,空间管理器和名字管理器会向日志管理器发出日志请求。每个请求都可能填充日志块的一部分或多个日志块。当写入达到末端时,日志是作为可以绕回的循环顺序列表实现的。每个日志项目都包含了一个日志序列号,因此查最高序列号就可以到日志的末端。
4结束语
加入了日志技术的文件系统虽然解决了文件一致性问题,但同时也加大了系统的性能开销,它需要更多的同步写入,而最流行的日志实现方式)))元数据日志至少需要对每个文件更新使用三次写入,因此日志文件系统的运行速度远不如非日志文件系统。所以在Linux中选择使用的文件系统时,要结合自己的需求:要求更快速的还是更高可靠性的文件系统。只有这样才能将文件系统的各项特点完全的发挥出来。
参考文献:
[1]Cao M,Ts.o T Y,Pulavarty B,et al.State of the Art:Where we are
with the EX T3filesystem[C].Ottawa Linux Symposi um,2005.
[2]Stephen Tweedie.EXT3,Journaling Files ys tem[C].Ottawa Li nux
Symposium,2000:24-29.
[3]Bryant R,Forester R,Hawkes J.Files ys te m performance and s calabili ty
in Li nux2.4.17[C]P P Proceedi ngs of the FREENIX Track:2002USE-NIX Annual Technical Conference,June2002:259-274.
[4]Zachary N J Pe terson,Randal C Burns.Ext3cow:The Desi gn,Imple-
mentati on,and Anal ysi s of Metadata for a Time-Shif ting File Sys te m [R].Tec hnical Report HSSL-2003-03.
[5]Richard M enedetter.Journaling files ys te ms for Linux[M].2002.
责任编辑:张荣香
(上接第49页)
[6]Reed M C,Alexander P D.Multi user De tection usi ng Antenna Arrays
and FEC on Multipath Channels[J].IEEE JSAC,1999,17:89-2082.
[7]Wang X,Poor H V.Iterative(Turbo)Soft Interference Cancellati onand
Decoding for Coded CD MA[J].IEEE Trans.Commun.,1999,47:61 -1046.
[8]Shi Z,Schlegel C.Joint Iterative Decoding of Seri ally Concatenated Er-
ror Control Coded CDMA[J].IEEE J SAC,2001,19:53-1646.
[9]Hoeher P.On Channel Coding and Multius er Detec tion for DS-CDM A
[C].Proc.IEEE Int.l.Conf.Univ.Pers.Commun.,Oct.1993:46
-641.
[10]Vi terbi A J.Very Low Rate Convoluti onal Codes for Maxi mum Theo-
retical Performance of Spread Spectrum-Multiple-Access Channels
[J].IEEE JSAC,1990,8:49-641.
[11]Frenger P,Orten P,O ttoss on T.Code-spread CD MA with Interference
Cancellation[J].IEEE JSAC,1999,17:95-2090.
[12]M ahadevappa R H,Proakis J G.M i ti gating Mul tiple Access Interfe-
rence and Inters ymbol Interference in Uncoded CD MA Systems with
Chip-level Interleaving[J].IEEE Trans.Wi reless Commun.,2002,
1:92-781.
[13]Ping L,et al.On Interleave-division Multi ple-Acces s[C].Proc.IEEE
ICC.04,Paris,June2004:73-2869.
[14]Branns trom F N,Aulin T M,Rasmus sen L K.Iterative Detec tors for
Trellis-code Multiple-Access[J].IEEE Trans.Commun.,2002,50:
85-1478.
责任编辑:肖滨
)
52 )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论