在我的备份应用程序中,我使用USN日记来检查卷的更改。在微软网站中,它提到了USN有一个最大的大小,并且文件得到了完整的记录被删除。
MaximumSize是更改日志的目标最大大小(以字节为单位)。更改日志可以增长大于此值,但在NTFS文件系统检查点,NTFS文件系统会检查日志并在其大小超过MaximumSize值加上AllocationDelta值时对其进行裁剪。(在NTFS文件系统检查点,操作系统将记录写入NTFS文件系统日志文件,从而允许NTFS文件系统确定从故障中恢复所需的处理。)
那么,当杂志满了时,到底会发生什么呢?所有记录都被删除了吗?还是只有它才会删除最古老的记录并为新记录做一个条目?我如何处理usn期刊大小完整的案件?
发布于 2014-12-24 17:16:31
USN日志是一个稀疏文件,USNumbers本身是这个file...actual偏移量的索引。但是,诀窍是,在稀疏内存映射文件中,当它超过其大小阈值时,它会删除最早的条目。这就是稀疏文件的魔力。因为早期的记录被砍掉了,所以抵消额不需要改变。NTFS保存有关归零范围的元数据,并透明地将零输出到读取文件的客户端。这是个滚动的原木。
零输出的工作单位是AllocationDelta.每次发生零输出时,NTFS就会设置一个新的LowestValidUsn值。
因此,当您执行备份时,您会希望记录NextUsn...which是指向下一个USN将被写入的位置的指针。然后,当您执行后续备份时,并且保存的NextUsn大于LowestValidUsn,那么自上次备份以来的所有更改都仍然存在,您可以依赖USN来优化备份过程。
如果USN确实溢出了MaxUsn,我不知道实际发生了什么。这似乎不太可能--而且值得知道是什么导致了这一点。似乎我读过关于实际发生的事情的相互矛盾的描述--要么是日志记录停止--要么是NTFS只是重置日记的寒冷。
如果日志被管理员重置或自动重新创建,NTFS将为日志分配一个新的ID。在这种情况下,备份程序必须从重新读取整个卷开始。
https://stackoverflow.com/questions/27190997
复制相似问题