Unix 了解卷影分页及其与日志文件系统的区别
我正试图很好地掌握类unix文件系统中的影子分页;你可能在或中看到的东西。在影子分页中,当一个人想要对一个页面进行更改时,一个不同的页面或“影子页面”被写入。操作完成后,即提交所有内容后,将写出阴影页,替换旧页。这是对阴影分页的正确(尽管是高层次)理解吗 那么,卷影分页与日志文件系统有何不同?他们看起来很相似Unix 了解卷影分页及其与日志文件系统的区别,unix,filesystems,zfs,journaling,Unix,Filesystems,Zfs,Journaling,我正试图很好地掌握类unix文件系统中的影子分页;你可能在或中看到的东西。在影子分页中,当一个人想要对一个页面进行更改时,一个不同的页面或“影子页面”被写入。操作完成后,即提交所有内容后,将写出阴影页,替换旧页。这是对阴影分页的正确(尽管是高层次)理解吗 那么,卷影分页与日志文件系统有何不同?他们看起来很相似 谢谢你抽出时间 两种系统都允许您通过不同的机制提供原子性/一致性: 当您修改某些内容时,卷影分页总是分配一个新块,当一个块被覆盖时,它的旧副本将变为空闲,因为任何其他活动文件系统块都不会
谢谢你抽出时间 两种系统都允许您通过不同的机制提供原子性/一致性:
- 当您修改某些内容时,卷影分页总是分配一个新块,当一个块被覆盖时,它的旧副本将变为空闲,因为任何其他活动文件系统块都不会引用它。崩溃一致性是通过树上的递归元数据更新实现的——更新叶块所在的位置(在修改期间复制到其他地方),并且必须更新其父级(在修改期间复制到其他地方),等等。当更新到树根的整个链时,包含所有修改的文件系统的新版本将变得可见
- 日志记录允许您就地修改块,但您仍然需要将它们写入两次:一次写入标记您意图的日志(并在需要时提供多更新原子性,例如用于实现将文件从一个目录移动到另一个目录),然后写入日志本身。由于要就地修改,对于同一块的重写,除了重写的特定文件系统树块外,通常不必更新许多其他文件系统树块,因为在编写新版本的文件系统树块时,这些文件系统树块的位置没有改变