在回写模式中,只有inode数据被写入日志,并且无法控制何时写入文件数据。
这条线让我想到在正常情况下将数据写入设备以及数据丢失的时候。
在写回模式中是否有任何选项可以在日记之后立即将数据强制写入设备,因此它可以保证与 Ordered模式提供的安全性相同的安全性?
此外,回写模式和有序模式是否仅基于此区别?
答案 0 :(得分:2)
如果我们没有详细说明,那么查询的答案是肯定的(至少在文件系统中如ext3)。在这两种模式中,只有文件系统元数据被写入日志。回写模式和有序模式之间的区别在于,在有序模式下,文件系统将元数据和相关数据块分组,以便在记录元数据之前将数据块写入磁盘,而在有序中仅记录元数据(并且不将数据块写入磁盘)在所有)。
II。从实现角度(就ext3而言),在有序模式下,在页面中的每个数据缓冲区上调用一个附加函数journal_dirty_data(),以将缓冲区插入到活动事务的适当列表中。 JBD层确保在事务的元数据缓冲区之前将此列表中的所有缓冲区写入磁盘。调用generic_commit_write()函数后,将数据缓冲区插入所有者inode的脏缓冲区列表中。在写回模式下,不会在数据缓冲区上调用像journal_dirty_data()这样的函数,只调用generic_commit_write()。