目前文件系统中,snapshot 和deduplication write clones广泛应用,当文件系统要进行defragment storage 或者 shrink volumes时,查找某个块所对应的inode是一个开销很大的事情。
于是back reference 应运而生。
Write_anywhere 文件系统是指,当修改一个块时候,并不在原有块上写,而是直接将内存中buffer_head刷到磁盘另一个地方,并修改三级间址结构。
Back reference 维护下面这样的结构。
每次发生修改时候,并不修改已有记录,而是append一条新的记录,利用join操作,已经一个比较高级的数据结构LSM实现高效固化到磁盘。
最后每102次磁盘I/O 才增加一次磁盘I/O。
关于snapshot,可以参考