栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

What is the difference between a journaling vs a log structured file system?

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

What is the difference between a journaling vs a log structured file system?

What is the difference between a journaling vs a log structured file system?

来源:Quora同名问题——Ravi的回答

journaling File system

简单来说,文件系统先把一系列的写操作写到一个循环日志(circular log)里面,这个循环日志与磁盘数据分开。

文件系统中的journaling分成以下两部分:

metadata journaling

只有metadata(例如inode信息等)会存在log中,metadata journaling包括以下步骤:

  1. 修改文件数据(内存->磁盘)
  2. 在log中更新文件对应的inode
  3. 复制inode信息(log->磁盘)

好处是保证metadata的一致性,缺点是未保证数据的一致性,同时带来了两次inode的写(log和磁盘)。

physical journaling

与metadata非常类似,就是把文件的内容写到log中,好处很直观,保证了文件数据的一致性,缺点是带来了大量的写开销。

Log-structured File System

虽然在journaling中也有一个log,但是这两个文件系统是不一样的,log-structured文件系统把整个磁盘看做一个append only log,永远都是顺序追加到log的最后。所以这样我们会发现对于写操作永远都是顺序的。

对于那些修改后的文件以及删除的文件,我们自然不希望它们继续占着位置,所以一个高效的垃圾回收和空间管理机制是必须的。

如果不幸文件系统崩溃了,那么不同于fsck命令,LFS对整个硬盘存储了checkpoint,checkpoint中存储了第一个segment和最后一个segment的地址,segments之间通过指针连起来。segment是空闲空间的管理单位。

这里需要提到一个写时复制(copy-on-write)的技术。COW运用在很多地方,比如linux中fork子进程,以及我们要说到的文件系统。我们这里的COW特指在对文件数据进行修改的时候不会在原位置上直接操作。同时需要保证原子写。

关于LFS的详细信息,可以看:历史与概述

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/341359.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号