中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。
分类: LINUX
2016-01-26 10:01:35
日志模式(Journal):将所有的元数据和数据改变均写入日志
预定模式(Ordered):只记录元数据的变化,在数据写入磁盘后再修改元数据。
写回模式(Writeback):只记录元数据的修改变化,对数据修改顺序无要求。
每个文件系统包含一个事务(transaction_t),一个事务又包含一组原子操作(handle_t),当本次原子操作的数据与上一次事务数据发生重合的时候,就需要将数据进行重新复制一份,这个操作通过函数 journal_get_write_access(do_journal_get_write_access)来完成,而缓冲区元数据的标记则通过函数 ext3_journal_dirty_metadata来完成。记录的内容包含修改的块号以及缓冲区数据。
当所有的操作完成后,就通过调用journal_stop函数来进行关闭事务,journal_commit_transaction来提交事务。该函 数由日志线程kjournald周期性调用,将所有的数据回写至本次磁盘,另外通过进行验证检查点,检查过期数据回收空间。