弹性文件系统(英語:Resilient File System,简称ReFS[2],代号“Protogon”[3]。这是一个微软Windows Server 2012中引入的专有文件系统,目的是成为NTFS之后的“下一代”文件系统。

ReFS
开发者Microsoft
全称Resilient File System
发布2012年8月1日,​11年前​(2012-08-01[1] (Windows Server 2012)
限制
最大文件尺寸16 exabyte
最大卷容量1 yottabyte
功能
属性
透明压缩
寫入時複製
操作系统支持Microsoft Windows

ReFS旨在克服NTFS被构想以来出现的重要问题,面向已改变的数据存储需求。ReFS的关键设计优势包括自动完整性检查英语File_integrity_monitoring数据清理、避免需要运行chkdsk、防止数据衰落英语Data_degradation、内置硬盘驱动器故障英语Hard_disk_drive_failure冗余的处理、集成RAID功能、数据和元数据更新切换到写时复制/分配超长路径和文件名的处理,以及存储虚拟化和存储池、包括几乎任意大小的逻辑卷(与所用驱动器的物理大小无关)。

存储系统和使用情况的需求已发生改变——存储设备的大小(大容量或TB级存储阵列正日益常见)和持续可靠性需求。因此,该文件系统需要根据物理磁盘和逻辑卷之间的抽象层或虚拟化完成自我修复,避免介入缓慢或必须中断的磁盘检查)。

ReFS最初只被添加到Windows Server 2012,目标是逐步迁移到未来版本的消费者系统中(很快就有爱好者以修改英语Modding方式解锁这点)。最初的版本中移除了一些NTFS功能,例如磁盘配额英语Disk_quota备用数据流扩展属性,因此引发了一定关注。有部分功能已在更高版本的ReFS中重新实现。

在ReFS的早期版本(2012年-2013年)中,它在测试中类似或略高于NTFS的水平[4],但在完整性检查时远慢于NTFS,这是因为ReFS新采用了奇偶效验。[5][6]也有用户在预发布版本中提到了到存储空间,该存储系统旨在支撑ReFS,但据称它可能会导致ReFS自动恢复失败。[7][8][9]

相较NTFS的功能变化 编辑

重要新功能 编辑

改进磁盘结构可靠性
ReFS对所有存储在磁盘上的结构使用B+ 树,包括所有元数据和文件数据。[10][11]元数据和文件数据被组成一个类似关系数据库的数据表。文件大小、文件夹内的文件数和卷总大小及卷中文件夹数量都采用64位数字;因此,ReFS支持最多16 EB的文件大小,最多18.4 × 1018个目录和最大1 YB(64 KB的卷),这允许较大的可扩展性,对文件和目录大小没有实际限制(硬件限制仍适用)。空闲空间是由一个分层分配器计算,其中包括三个单独的表,分别保存大、中、小块。
内置复原
ReFS对元数据采用allocation-on-write更新策略[10],每次更新时分配新块并采用批次IO。所有ReFS元数据都采用独立存储的64位校验和。文件数据可以单独拥有可选的“完整性流”校验和,那种情况下文件更新策略也实现写时复制;新的“完整性”属性可应用到文件和目录。如果文件数据或元数据损坏,文件可以直接删除而无需脱机维护整个卷,并且文件可以从备份恢复。因为内置弹性设计,管理员不需要对ReFS定期运行错误检查工具,例如CHKDSK
与现有API和技术兼容
ReFS支持NTFS特性的一个子集,并且仅“广泛使用”的Win32 API支持它;但它不需要新的系统API,并且大多数文件系统筛选器可在ReFS卷工作。[10]ReFS支持许多现有的Windows和NTFS特性,例如BitLocker 加密、访问控制列表USN日志、变更通知[12]符号链接junction点英语NTFS_junction_point挂载点重解析点卷快照文件ID操作锁定。ReFS与存储空间无缝集成[10]存储虚拟化层允许数据被镜像或条带化,以及作为机器之间的共享存储池。[13]ReFS的可恢复功能增强了存储空间提供的镜像功能,可以使用数据清理流程检测是否有任何文件的镜像副本已经损坏(可选启用) [11],它会定期读取所有副本并验证它们的校验和,然后使用良好副本替换损坏副本。

已移除功能 编辑

某些NTFS功能在ReFS的初始版本中已移除或不支持。这包括备用数据流对象ID8.3文件名NTFS压缩加密文件系统(EFS)、事务性NTFS英语Transactional_NTFS硬链接扩展属性磁盘配额英语Disk_quota[10][3][14]ReFS最初不提供重复数据删除[10]在随后的v3.2版本中实现。此外,Windows目前不能从ReFS卷引导启动。[10]镜像或条带化卷的动态磁盘已被“存储空间”提供的镜像或条带化存储池取代;自动纠错仅在镜像空间支持。

在后续实现的Windows 8.1 64位和Server 2012 R2的ReFS中,文件系统开始支持备用数据流,最大长度128K,以及完整性流在奇偶效验空间上自动纠正损坏数据。[15]ReFS在缺乏备用数据流的支持时不适合Microsoft SQL Server实例分配。[16]

稳定性和已知问题 编辑

一些ReFS与“存储空间”共同运行时的出现问题已被提出或建议[9],包括:

  • 在“存储空间”上添加自动精简配置的ReFS可能以非正常的方式失败,卷会没有警告地变为无法访问或无法管理。[7]发生此情况的可能原因是,如果物理磁盘的基本存储空间太慢。Smallnetbuilder英语Smallnetbuilder评论说,这种情况下,修复可能会“望而却步”,因为理论上进展需要需要识别存储空间的布局和恢复它们,而这在开始前需要恢复任何ReFS文件系统内容;因此推荐同时采用备份手段。[7]
  • 即使“存储空间”非自动精简配置,ReFS在某些情况下仍可能无法有把握的糾正所有文件错误。因为存储空间以块而非文件操作,如果存储空间的某些部分工作异常,某些文件可能会缺乏必要的块或恢复数据。因此,磁盘和数据的添加和删除可能会受损,以及冗余转换变得困难或不可能。[8]
  • 因为ReFS不是为应对故障设计,如果它发生故障,目前没有工具来修复它。第三方工具只能逆向工程该系统,截至2014年只有寥寥几个工具。[9]

与竞争对手的性能比较 编辑

2014年,一篇对ReFS的评论与准备在生产中使用的评估显示,ReFS在与它的两个主要竞争对手(文件系统)的比较中具有关键优势。ZFS(在SolarisFreeBSD中使用)被广泛批评为使用数GB的内存用于联机重复数据消除,这影响了它在大量中小型系统上的使用。但是,在关闭ZFS的联机重复数据消除后(因为ReFS不支持此功能),ZFS只占用几百MB内存,与另外两个系统相对持平。Drobo英语Drobo等方案使用专有方法,这意味着如果故障且厂商也无法解决,没有其他解决方案。[17]

2012年,Phoronix撰写了一篇[18]ReFS对战Btrfs的分析(Btrfs是适用于Linux的一个写时复制文件系统)。两者具有类似的特性,都支持校验和、类RAID使用多块磁盘,以及错误检测与纠正。但是,当时的ReFS缺乏重复数据删除、写时快照和压缩,而Btrfs和ZFS支持上述技术。

参见 编辑

参考资料 编辑

  1. ^ Snover, Jeffrey. Windows Server 2012 released to manufacturing!. Windows Server Blog. Microsoft Corporation. 2012-08-01 [2014-09-02]. (原始内容存档于2015-12-22). 
  2. ^ Lucas, Martin. Windows Server 2012: Does ReFS replace NTFS? When should I use it?. Ask Premier Field Engineering (PFE) Platforms. Microsoft. TechNet blogs. 2013-01-01 [2013-01-20]. (原始内容存档于2013-05-15). 
  3. ^ 3.0 3.1 Foley, Mary Jo. Microsoft goes public with plans for its new Windows 8 file system. ZDNet. CBS Interactive. 2012-01-16 [2013-01-21]. (原始内容存档于2013-05-15). 
  4. ^ ReFS vs NTFS Benchmark - First Ever - Exclusive Technology News. firstever.eu. [2016-06-26]. (原始内容存档于2014-07-08). 
  5. ^ Relative Performance of Parity .vs. Mirror in Storage Spaces. Baris Eris's Blog. [2016-06-26]. (原始内容存档于2014-06-22). 
  6. ^ 存档副本. [2016-06-26]. (原始内容存档于2014-06-17). 
  7. ^ 7.0 7.1 7.2 Elena Pakhomova of ReclaiMe.com. Data Recovery Tales: When Windows Storage Spaces Go Bad. 2012-08-08 [2016-06-26]. (原始内容存档于2016-07-30). 
  8. ^ 8.0 8.1 Windows 8 Storage Spaces: Bugs and Design Flaws. helgeklein.com. [2016-06-26]. (原始内容存档于2016-06-18). 
  9. ^ 9.0 9.1 9.2 存档副本. [2014-06-17]. (原始内容存档于2014-08-08). 
  10. ^ 10.0 10.1 10.2 10.3 10.4 10.5 10.6 Verma, Surendra. Sinofsky, Steven , 编. Building the next generation file system for Windows: ReFS. Building Windows 8. Microsoft. MSDN blogs. 2012-01-16 [2013-01-20]. (原始内容存档于2013-05-15). 
  11. ^ 11.0 11.1 Meyer, David. Microsoft takes wraps off new Windows file system. ZDNet. CBS Interactive. 2012-01-17 [2013-01-20]. (原始内容存档于2013-05-15). 
  12. ^ ReadDirectoryChangesW function. MSDN Library. Microsoft. 2012-11-08 [2013-01-21]. (原始内容存档于2013-05-15). 
  13. ^ Nagar, Rajeev. Sinofsky, Steven , 编. Virtualizing storage for scale, resiliency, and efficiency. Building Windows 8. Microsoft. MSDN blogs. 2012-01-05 [2013-01-18]. (原始内容存档于2013-05-15). 
  14. ^ Windows Server 2012: Does ReFS replace NTFS?. [2016-06-26]. (原始内容存档于2013-05-15). 
  15. ^ Resilient File System Overview. TechNet Library. Microsoft. 2012-02-29 [2013-12-25]. (原始内容存档于2017-02-01). 
  16. ^ Cherry, Denny. SQL Server Pro magazine. Troubleshooting SQL Server Storage Problems. Penton Media. 2012-08-21 [2016-06-26]. (原始内容存档于2017-10-10). 
  17. ^ Windows Storage Spaces and ReFS: Is it time to ditch RAID for good?. BetaNews. [2016-06-26]. (原始内容存档于2014-01-31). 
  18. ^ Microsoft's ReFS File-System: Competitor To Btrfs? - Phoronix. phoronix.com. [2016-06-26]. (原始内容存档于2016-09-08). 

外部链接 编辑