有两种传统的方法来把文件系统的元数据 (meta-data) 写入磁盘。 (Meta-data更新是更新类似 inodes 或者目录这些没有内容的数据)
从前,默认方法是同步更新这些元数据(meta-data)。如果一个目录改变了,系统在真正写到磁盘之前一直等待。文件数据缓存(文件内容)在这之后以非同步形式写入。这么做有利的一点是操作安全。如果更新时发生错误,元数据(meta-data) 一直处于完整状态。文件要不就被完整的创建要不根本就不创建。如果崩溃时找不到文件的数据块,fsck(8) 可以找到并且依靠把文件大小设置为 0 来修复文件系统。另外,这么做既清楚又简单。缺点是元数据(meta-data)更新很慢。例如 rm -r 命令,依次触及目录下的所有文件,但是每个目录的改变(删除一个文件)都要同步写入磁盘。 这包含它自己更新目录,inode 表和可能对文件分散的块的更新。 同样问题出现大的文件操作上(比如 tar -x)。
|