ReFS文件系统:特性、结构与高级功能解析
1. ReFS目录结构与文件枚举优化
ReFS(Resilient File System)中的目录是基于Minstore B+树实现的,负责单一扁平命名空间。一个ReFS目录可以包含文件、目录链接以及其他文件的链接(文件ID)。目录B+树的行由“键 - 类型 - 值”对组成,其中键是条目的名称,值取决于目录条目的类型。为了支持查询和其他高级语义,Minstore还会在不可见的目录行中存储一些内部数据,这些行的键以Unicode零字符开头。此外,每个目录都有一个文件行记录,在ReFS中,该文件记录以一个已知的零键存储在同一目录中,这对ReFS维护的目录内存数据结构有一定影响。
在NTFS中,目录是文件记录的一个属性;而在ReFS中,目录本身就是一个存储在目录内的文件记录(称为目录索引记录)。因此,当ReFS操作或检查目录中的文件时,必须确保目录索引已打开并驻留在内存中。
然而,ReFS B+树的这种配置存在一个问题:每次系统要枚举目录中的文件时,都需要打开并解析每个文件的B+树,这会导致大量对底层介质不同位置的I/O请求。如果介质是旋转磁盘,性能会非常差。
为了解决这个问题,ReFS将STANDARD_INFORMATION数据结构存储在文件嵌入式表的根节点中(而不是存储在子文件B+表的行中)。该数据结构包含了文件枚举所需的所有信息,如文件的访问时间、大小、属性、安全描述符ID、更新序列号等。文件的嵌入式根节点存储在父目录B+树的叶桶中。这样,当系统枚举目录中的文件时,只需解析目录B+树中的条目,而无需访问描述单个文件的B+表,从而提高了枚举速度。
2. ReFS磁盘结构
ReFS卷的
超级会员免费看
订阅专栏 解锁全文

33

被折叠的 条评论
为什么被折叠?



