- 积分
- 154
- 最后登录
- 2024-4-25
- 精华
- 0
- 阅读权限
- 20
- 主题
- 46
- UID
- 1058737
- 帖子
- 311
- PB币
- 791
- 威望
- 5
- 贡献
- 0
- 技术
- 13
- 活跃
- 289
少校
- UID
- 1058737
- 帖子
- 311
- PB币
- 791
- 贡献
- 0
- 技术
- 13
- 活跃
- 289
|
NTFS 是目前使用最为广泛、最先进、功能最丰富的文件系统,在众多领域得到了广泛应用。但每当我们重新设计 Windows 时,我们都不希望止步于过去的成功经验,因此,我们在 Windows 8 中也引入了一种经过精心设计的新文件系统。ReFS(弹性文件系统 (Resilient File System) 的缩写)是基于 NTFS 构建而成的,因此该文件系统除具有至关重要的兼容性外,还针对新一代存储技术和应用情境对架构和工程设计进行了调整。与引入每种文件系统时相同,在 Windows 8 中,ReFS 将仅作为 Windows Server 8 的一部分引入。当然,在应用程序级别,以 ReFS 格式存储的数据可以由客户端作为 NTFS 数据访问。当您阅读本博文时,请不要忘记 NTFS 目前仍是业内领先的 PC 文件系统技术。
我们称之为 ReFS 的这种文件系统从头到脚都为针对所有不同的 Windows 部署方式满足用户多样化的需求而设计。
ReFS 的关键目标如下:
- 保持对一部分广泛采用的 NTFS 功能的兼容性,同时放弃其他价值有限但会大幅增加系统复杂性和占用率的功能。
- 验证并自动更正数据。数据可能会由于各种原因而损坏,因此必须对其进行验证,并在可能的情况下进行自动更正。元数据必须写入适当的位置,以避免出现“断写”,我们将在下文中详细介绍该情况。
- 针对超大规模应用进行优化。使用普遍适用的可扩展结构。不要假设磁盘检查算法可以扩展到整个文件系统的规模。
- 确保文件系统永不脱机。当出现损坏时,最佳的解决方案是隔离错误,并允许继续访问余下的卷,同时尽可能打捞所有可用的数据,并且这一切都通过实时的方式完成。
- 借助与 ReFS 联合设计和构建的存储空间功能,提供完整的端到端弹性结构。
ReFS 的关键功能如下(请注意,其中某些功能与存储空间联合提供)。
- 带有校验和的元数据完整性
- 提供可选用户数据完整性的完整性流。
- 通过写入时分配事务模型实现可靠的磁盘更新(也称为写入时复制)
- 支持超大规模的卷、文件和目录
- 存储池和虚拟化使得文件系统可建立并易于管理
- 通过数据条带化提高性能(带宽可管理)并通过备份提高容错性
- 通过磁盘扫描防止潜在的磁盘错误
- 借助“数据打捞”实现损坏还原,以便在任何情况下尽可能提高卷的可用性
- 跨计算机共享存储池,以提供额外的容错性和负载平衡
此外,ReFS 还从 NTFS 集成了某些功能和语义,包括 BitLocker 加密、用于安全的访问控制列表、USN 日志、更改通知、符号链接、交接点、装入点、重解析点、卷快照、文件 ID 和操作锁。
当然,客户端只要使用任何操作系统中可访问现有 NTFS 卷的文件访问 API,就可以访问以 ReFS 存储的数据。
关键设计属性和功能我们的设计属性与我们的目标密切相关。在我们逐一介绍这些属性的同时,请时刻记住我们的文件系统会由数亿台不同的设备使用,规模从体积最小的计算机到最大的数据中心,从最小的存储格式到最大的多轴格式,从固体状态存储到最大的驱动器和存储系统。同时,Windows 文件系统会由来源各异的各种应用程序和系统软件访问。ReFS 吸收了这些优点,并在这一基础上进行了重新构建。我们并非从零开始,而是在适当的 NTFS 组件的基础上进行了适当的重新设计。首先,我们按照一直以来引入主要文件系统的方式以务实的方式引入了此架构,只有 Microsoft 才能以这等规模实施该做法。
代码重用和兼容性在文件系统 API 这一领域,兼容性是最重要、技术含量最高,同时也最具挑战性的目标。重写文件系统语义的实现代码无法确保适当的兼容性,并且引发的问题将高度依赖于应用程序代码、调用时间和硬件。因此,在构建 ReFS 时,我们重用了用于实现 Windows 文件系统语义的代码。此代码用于实现文件系统接口(读取、写入、打开、关闭、更改通知等),维护内存中的文件和卷状态,执行安全措施,以及维护内存缓存和文件数据同步。这些代码的重用旨在确保与继承自 NTFS 的功能的高度兼容性。
在重用的部分中,我们在 NTFS 版本代码的基础上使用了新架构的引擎,并在其中通过主文件表等磁盘上结构来表示文件和目录。ReFS 将这部分重用代码与一种全新的引擎相结合,这是 ReFS 背后的一大创新。下图展示了这些改进:
|
|