Resilient File System(ReFS) - Windows Server 2012 技术白皮书
嚯嚯
08月19日 10:17
此文约为2651字,阅读需要7分钟
Windows Server 2012 包含了一种全新设计的文件系统,名为 Resilient File System(ReFS),以 NTFS 为基础构建而来,不仅保留了与最受欢迎文件系统的兼容性,同时可支持新一代存储技术与场景。
ReFS 在设计上以下列主要目标为中心:
- 保持与已被广泛认可并获得成功的 NTFS 的兼容性,同时对不足之处加以改进。
- 在底层存储天生被认为不够可靠的情况下,尽可能维持最高级别的系统可用性
- 与可靠性。
- 在与存储空间功能配合使用后,可提供完善的端到端弹性架构,这两个功能配合可将容量与可靠性优势进一步放大。
通过以这些主要目标为中心,Windows Server 2012 的 ReFS 可提供下列特性:
- 可靠、可扩展的磁盘结构 – 正如上文提到的,ReFS 依然可以使用 NTFS 文件系统的 API,借此可保证与 NTFS 文件系统的兼容性。重复使用底层代码,ReFS 使用了重新架构的磁盘结构引擎,例如主文件分配表,借此可用于展现文件与目录。这种全新的引擎也叫做“Minstore”,独家使用了 B+ 树作为唯一且通用的磁盘结构,借此展现磁盘上保存的全部信息。通过使用 Minstore,树可以非常大,并且通过嵌套可实现多层次结构的树,并可实现真正的压缩,只需要几个键即可嵌入到其他结构中。这意味着对文件系统的任何部分,都可实现非常显著的扩张和收缩。
- 通过校验改善元数据完整性 – ReFS 中所有元数据的校验工作都可在树的层面上进行,这些校验值会独立于树页面本身,单独进行保存。这样既可避免各种形式的磁盘错误,包括介质上数据的退化。
- 通过 Integrity Streams 提供可选的用户数据完整性 – ReFS 还包含了对文件内容进行校验的额外功能。通过启用这个名为 Integrity Streams 的选项,ReFS 总是会将文件的改动写入到不同于原始位置的其他位置。这种写入时分配的技术可确保原有数据不会因为新的写入而丢失。校验值的更新则可在写入数据时自动进行,这样可确保文件总是具备可验证的多个版本,就算在写操作时断电也无需担心。虽然该选项在很多情况下很有用,但也不适合某些特殊场合。例如,有些应用程序需要依赖磁盘上的特殊文件布局自行管理自己的存储。 因为 Integrity Streams 在每次文件内容有改动时都要重新分配块,因此这样的应用程序将无法保持所需的文件布局。数据库应用程序就是一种这样的应用程序。因此系统提供了不同层次的粒度,供您通过各种机制与 API 对 Integrity Streams 设置进行控制。
- 强壮的磁盘更新 – ReFS 提供了更强壮的磁盘更新,并使用了一种在写入事务中进行分配的模式(也叫做“写入时复制”)。这种方法可提供最大化的可靠性,同时无需采用日志结构的文件系统,既可避免在磁盘更新过程中,由于断电导致随机写入以及大量写入操作产生的问题。为此您可以通过自动化的方式将元数据的更新操作写入到其他位置,不对原数据进行原位更新。在高强度压力测试中,当高负荷系统断电后,这种方式展现出了出乎意料的强壮特性。
- 通过 Salvage 获得最大化可用性 – 我们发现很多客户会将 ReFS 与镜像存储空间配合使用,这样既可用透明的方式对错误进行自动修复。不过在很罕见的情况下,这样的卷依然有可能出现错误,例如出错的内存将错误的数据传递给磁盘。另外,有些人可能并不会为自己的 ReFS 卷使用镜像存储空间。在这些情况下,如果遇到出错的情况,ReFS 会实施“salvage”,这是一种可以将损坏的数据从卷的命名空间中实时删除的功能,因此好的数据并不会受到不可修复的已损坏数据的影响。这种做法确保了无需将卷离线既可修复错误,并能让管理员从备份中还原命名空间中被删掉的文件。
- 支持更大体积的的卷、目录以及文件 – 虽然最主要的困扰都围绕着系统配置(例如内存数量)以及各种系统组件的局限,但装满整个数据集或备份所需的时间也会产生一定的局限。ReFS 磁盘上格式通过使用 16KB 的簇大小,在设计上可支持高达 2^78 字节的卷,但Windows 栈只能对 2^64 字节进行寻址。这种格式还可支持 2^64-1 字节的单个文件体积,一个目录中可保存 2^64 个文件,卷中也可以保存相同数量的目录。
- 交互性与灵活性 – ReFS 在设计上可充分满足 Windows 存储栈的各种指标,并可通过其他栈层提供最大化的灵活性与兼容性。虽然经过广泛的测试,确保了与各种可支持软件的兼容性,例如备份与反病毒应用程序,ReFS 在设计上依然能够很好地与存储栈的其他层完美配合。最好的例子之一是,将 ReFS 与存储空间配合使用。ReFS 可无缝利用多台计算机以及虚拟磁盘上共享的存储池,并可在存储池之间实现无缝转换,在存储空间或 ReFS 的基础之上提供额外的容错能力。
- 代码重用与兼容性 – 除了各种新功能,ReFS 还继承了来自 NTFS 的一些出色功能,例如BitLocker 驱动器加密、增强安全性的访问控制列表(ACL)、USN 日志、变更通知、SymLinks/Junctions/Mount points、重解析点、卷快照、文件 ID 以及 Oplocks。另外 ,ReFS还可使用与客户端上任何操作系统访问 NTFS 卷时相同的文件访问 API 进行访问。
未知的网友