fbpx
维基百科

日志文件系统

日志文件系统(英語:Journaling file system)是一種文件系統。在发生变化时,它先把相关的信息写入一个被称为日志的区域,然后再把变化写入主文件系统。在文件系统发生故障(如内核崩溃或突然停电)时,日志文件系统更容易保持一致性,并且可以较快恢复。[1]

概述 编辑

对文件系统进行修改时,需要进行很多操作。这些操作可能中途被打断,也就是说,這些操作不是“不可中斷”(atomic)的。如果操作被打断,就可能造成文件系统出现不一致的状态。[1]

例如:删除文件时,先要从目录树中移除文件的标示,然后收回文件占用的空间。如果在这两步之间操作被打断,文件占用的空间就无法收回。文件系统认为它是被占用的,但实际上目录树中已经找不到使用它的文件了。

在非日志文件系统中,要检查并修复类似的错误就必须对整个文件系统的数据结构进行检查。一般在挂载文件系统前,操作系统会检查它上次是否被成功卸载,如果没有,就会对其进行检查。如果文件系统很大或者I/O带宽有限,这个操作可能会花费很长时间。

为了避免这样的问题,日志文件系统分配了一个称为日志(journal)的区域来提前记录要对文件系统做的更改。在崩溃后,只要读取日志重新执行未完成的操作,文件系统就可以恢复一致。这种恢复是原子的,因为只存在几种情况:

  • 不需要重新执行:这个事务被标记为已经完成
  • 成功重新执行:根据日志,这个事务被重新执行
  • 无法重新执行:这个事务会被撤销,就如同这个事务从来没有发生过
  • 日志本身不完整:事务还没有被完全写入日志,它会被简单忽略

日志的三个级别 编辑

在很多日志文件系统(如:ext3ReiserFS)中,可以选择三个级别的日志:回写(writeback)、顺序(ordered)和数据(data)。

回写 编辑

在回写模式中,只有元数据被记录到日志中,数据会被直接写入主文件系统。这种模式能提供较好的性能,不过有较大的风险。例如:在增大文件时,数据还未写入就发生崩溃,那么文件系统恢复后,文件后面就可能出现垃圾数据。

顺序 编辑

在顺序模式中,只有元数据被记录到日志中,但在日志被标记为提交前,数据会被写入文件系统。在这种模式下,如果在增大文件时,数据还未写入就发生崩溃,那么在恢复时这个事务会被简单的撤销,文件保持原来的状态。

数据 编辑

在数据模式中,元数据和文件内容都先被写入日志中,然后在提交到主文件系统。这提高了安全性,但损失性能,因为所有数据要写入两次[1]。在这种模式下,如果在增大文件时,发生崩溃,那么可能有两种情况:

  • 日志完整:这时事务会被重新执行,修改会被提交到主文件系统
  • 日志不完整:这时主文件系统还未被修改,只需要简单放弃这个事务

常见的日志文件系统 编辑

  • JFSIBM的 Journaled File System,最早的日志文件系统[1]
  • Ext4/Ext3文件系统:由Ext2文件系统演化而成的日志文件系统,广泛用于Linux系统。
  • XFS檔案系統:廣泛用於Linux系統,自 Red Hat Enterprise Linux 7 起取代Ext4成为Red Hat Enterprise Linux的默认文件系统(包括其衍生版及CentOS[2]
  • ReiserFS:用B+树作为数据结构的日志文件系统,在处理小文件时有较好的性能。
  • Btrfs:用B树作为数据结构,被认为是下一代Linux文件系统[3]
  • NTFS微软NTFS也是日志文件系统,也是Windows下最常用的文件系统。
  • HFS+蘋果公司發展的OS X作業系統下主要使用的文件系統。

参见 编辑

参考资料 编辑

  1. ^ 1.0 1.1 1.2 1.3 M. Tim Jones. Linux 日志文件系统剖析. IBM. 2008-07-07 [2011-01-15]. (原始内容于2020-03-28). 
  2. ^ . Red Hat Customer Portal. [2022-03-18]. (原始内容存档于2022-03-01) (英语). 
  3. ^ 刘明. 新一代 Linux 文件系统 btrfs 简介. IBM. 2010-09-20 [2010-01-15]. (原始内容于2010-01-25). 

日志文件系统, 英語, journaling, file, system, 是一種文件系統, 在发生变化时, 它先把相关的信息写入一个被称为日志的区域, 然后再把变化写入主文件系统, 在文件系统发生故障, 如内核崩溃或突然停电, 更容易保持一致性, 并且可以较快恢复, 目录, 概述, 日志的三个级别, 回写, 顺序, 数据, 常见的, 参见, 参考资料概述, 编辑对文件系统进行修改时, 需要进行很多操作, 这些操作可能中途被打断, 也就是说, 這些操作不是, 不可中斷, atomic, 如果操作被打断, 就可能造成. 日志文件系统 英語 Journaling file system 是一種文件系統 在发生变化时 它先把相关的信息写入一个被称为日志的区域 然后再把变化写入主文件系统 在文件系统发生故障 如内核崩溃或突然停电 时 日志文件系统更容易保持一致性 并且可以较快恢复 1 目录 1 概述 2 日志的三个级别 2 1 回写 2 2 顺序 2 3 数据 3 常见的日志文件系统 4 参见 5 参考资料概述 编辑对文件系统进行修改时 需要进行很多操作 这些操作可能中途被打断 也就是说 這些操作不是 不可中斷 atomic 的 如果操作被打断 就可能造成文件系统出现不一致的状态 1 例如 删除文件时 先要从目录树中移除文件的标示 然后收回文件占用的空间 如果在这两步之间操作被打断 文件占用的空间就无法收回 文件系统认为它是被占用的 但实际上目录树中已经找不到使用它的文件了 在非日志文件系统中 要检查并修复类似的错误就必须对整个文件系统的数据结构进行检查 一般在挂载文件系统前 操作系统会检查它上次是否被成功卸载 如果没有 就会对其进行检查 如果文件系统很大或者I O带宽有限 这个操作可能会花费很长时间 为了避免这样的问题 日志文件系统分配了一个称为日志 journal 的区域来提前记录要对文件系统做的更改 在崩溃后 只要读取日志重新执行未完成的操作 文件系统就可以恢复一致 这种恢复是原子的 因为只存在几种情况 不需要重新执行 这个事务被标记为已经完成 成功重新执行 根据日志 这个事务被重新执行 无法重新执行 这个事务会被撤销 就如同这个事务从来没有发生过 日志本身不完整 事务还没有被完全写入日志 它会被简单忽略日志的三个级别 编辑在很多日志文件系统 如 ext3 ReiserFS 中 可以选择三个级别的日志 回写 writeback 顺序 ordered 和数据 data 回写 编辑 在回写模式中 只有元数据被记录到日志中 数据会被直接写入主文件系统 这种模式能提供较好的性能 不过有较大的风险 例如 在增大文件时 数据还未写入就发生崩溃 那么文件系统恢复后 文件后面就可能出现垃圾数据 顺序 编辑 在顺序模式中 只有元数据被记录到日志中 但在日志被标记为提交前 数据会被写入文件系统 在这种模式下 如果在增大文件时 数据还未写入就发生崩溃 那么在恢复时这个事务会被简单的撤销 文件保持原来的状态 数据 编辑 在数据模式中 元数据和文件内容都先被写入日志中 然后在提交到主文件系统 这提高了安全性 但损失性能 因为所有数据要写入两次 1 在这种模式下 如果在增大文件时 发生崩溃 那么可能有两种情况 日志完整 这时事务会被重新执行 修改会被提交到主文件系统 日志不完整 这时主文件系统还未被修改 只需要简单放弃这个事务常见的日志文件系统 编辑JFS IBM的 Journaled File System 最早的日志文件系统 1 Ext4 Ext3文件系统 由Ext2文件系统演化而成的日志文件系统 广泛用于Linux系统 XFS檔案系統 廣泛用於Linux系統 自 Red Hat Enterprise Linux 7 起取代Ext4成为Red Hat Enterprise Linux的默认文件系统 包括其衍生版及CentOS 2 ReiserFS 用B 树作为数据结构的日志文件系统 在处理小文件时有较好的性能 Btrfs 用B树作为数据结构 被认为是下一代Linux文件系统 3 NTFS 微软的NTFS也是日志文件系统 也是Windows下最常用的文件系统 HFS 蘋果公司發展的OS X作業系統下主要使用的文件系統 参见 编辑数据库参考资料 编辑 1 0 1 1 1 2 1 3 M Tim Jones Linux 日志文件系统剖析 IBM 2008 07 07 2011 01 15 原始内容存档于2020 03 28 Chapter 4 File Systems Red Hat Enterprise Linux 7 Red Hat Customer Portal 2022 03 18 原始内容存档于2022 03 01 英语 刘明 新一代 Linux 文件系统 btrfs 简介 IBM 2010 09 20 2010 01 15 原始内容存档于2010 01 25 取自 https zh wikipedia org w index php title 日志文件系统 amp oldid 78369519, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。