ext4 和 xfs 中实际记录了哪些文件系统元数据操作?

rbo*_*yer 9 linux filesystems ext4 xfs

我找不到关于哪些文件系统元数据操作实际上持久保存到 ext4 和 xfs 文件系统日志的简单直接的答案。请注意,我不是在询问 POSIX 声明为“原子”的内容。我更关心原子文件系统操作的哪些子集由于在启用日志的情况下运行而无需一直向后弯腰而有效地持久fsync(2)

操作我相当肯定计数:

  • creat(2)
  • link(2)
  • unlink(2)
  • rename(2)
  • mkdir(2)
  • rmdir(2)

我不完全确定的操作:

  • symlink(2)

这种symlink(2)情况是最令人不安的,因为似乎没有任何直接的方法 fsync(2)fdatasync(2)存储符号链接内容的底层数据块。知道这本杂志为我处理了这件事会让人松一口气。

小智 0

出于性能原因,ext4 默认情况下仅通过日志写入文件系统元数据。

我相信 XFS 还会记录所有元数据事务,除非您调整了文件系统。