![什么是日志文件系统?](https://linux22.com/image/522302/%E4%BB%80%E4%B9%88%E6%98%AF%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
什么是日志文件系统?
甚至维基百科也没有提供太多信息。除了 NTFS,还有哪些文件系统(在 Windows / Linux 上)支持日志记录,它如何提高性能?
答案1
日志文件系统在实际执行更改之前记录对文件系统的更改。这样,它能够在发生故障(例如电源故障)后恢复,并且数据丢失最少。
这特征维基百科的文件系统比较部分给出了日志记录。
日志不会提高性能。事实上,日志操作会稍微降低速度,以换取上述可靠性。
答案2
本质上,日志文件系统的作用是在硬盘和操作系统之间添加一个额外的抽象层。它不是直接在磁盘上执行操作,而是跟踪它首先尝试执行的操作,然后判断是否成功。
例如,如果您想将文件从一个驱动器移动到另一个驱动器,该过程将类似于以下内容:
- 将旧文件物理复制到新位置
- 更新新驱动器上的目录条目
- 从旧驱动器中删除目录条目
- 旧驱动器上的可用空间
具体过程取决于文件系统,但您明白我的意思。这通常会正常工作,但在系统崩溃的偶然情况下,事情可能会在中途中断。您可能最终会得到物理复制的文件,但没有指向它的目录条目。您可能最终会删除旧驱动器上的目录引用,但不会释放空间。在某些情况下,您可能会得到损坏的文件系统,甚至无法再工作,因为目录条目只是部分写入。
换句话说,很多事情都可能出错。
日志文件系统将使用相同的基本过程,并添加一些额外步骤。例如:
- 日记条目:将文件从 A 移动到 B
- 将旧文件物理复制到新位置
- 更新新驱动器上的目录条目
- 从旧驱动器中删除目录条目
- 旧驱动器上的可用空间
- 日记条目:已完成将文件从 A 移动到 B
如果此过程因任何原因(例如系统崩溃)而中断,文件系统现在会知道正在进行什么,以及是否完成。然后它可以快速而优雅地恢复,要么尝试从头完成事务,要么将文件系统恢复到之前的状态。所有这些都不需要逐块检查文件系统来查找错误,考虑到现代硬盘的大小,这可能非常耗时。
这可以显著提高文件系统的稳健性,并加快故障情况下的恢复时间。通过更改日志条目的粒度,可以获得不同级别的可靠性——这同样取决于文件系统。
由于日志记录不可避免地涉及比其他方法更多的步骤,因此除非您觉得崩溃严重,否则不会有任何性能提升。但是,与优势相比,性能差异通常可以忽略不计。
答案3
维基百科文章日志文件系统包含更多关于它是什么、如何工作以及为什么工作的细节。
答案4
日志文件系统这一术语被广泛误用,指那些实际上并不具备日记功能的文件系统。
在文件系统中,“日志”的含义是文件系统能够从崩溃和断电中恢复到一致状态。这并不意味着性能提升,也不意味着文件系统在崩溃前某个时间恢复到完整快照,甚至不意味着崩溃后不会有“文件系统检查”式的操作来恢复。