在non-journaling file system情况下,当要对文件系统进行写操作时,先对文件系统的metadata进行修改,然后就写入用户数据到文件系统中。这就存在一个问题,一旦用户在写的过程中,文件系统崩溃将导致不一致性。例如,用户正在进行metadata的修改操作,如果此时文件系统当掉了,那么metadata与实际数据内容就不一致了。
journaling file system的出现就是为了解决这个问题。在这个文件系统的环境下,如果用户要进行写操作,那么在真正写入文件系统之前,kernel先把数据写入journal area。journal area既可以在文件系统中,也可以不在其中。虽然journal area的出现避免了文件系统不一致性的问题,但是它也有自己的缺点,那就是因为每次的写入都要先写入journal area,所以这就比non-journal file system多出了部分时间开销。如何平衡两者之间的关系因此也是很重要的。
journaling file system的出现就是为了解决这个问题。在这个文件系统的环境下,如果用户要进行写操作,那么在真正写入文件系统之前,kernel先把数据写入journal area。journal area既可以在文件系统中,也可以不在其中。虽然journal area的出现避免了文件系统不一致性的问题,但是它也有自己的缺点,那就是因为每次的写入都要先写入journal area,所以这就比non-journal file system多出了部分时间开销。如何平衡两者之间的关系因此也是很重要的。