Windows的全新文件系统:ReFS

2012 年 1 月 31 日

大约 20 年前,微软公布了 New Technology File System(NTFS)文件系统,作为 Windows NT 的一部分出现。从那时起,NTFS 就沉淀下很多特性,这些特性可能当时看起来不错,但实际上是不怎么样的想法。同时,尖端技术不断发展,与 NTFS 架构也就不再兼容了。经过几次失败的尝试之后,微软现在承诺提供一个全新的文件系统。

该文件系统被称为 ReFS 或“弹性文件系统”,其设计目的是要提升可靠性,特别是发生电源断电或是媒介故障的时候(比如磁盘的老化)。可靠性部分来自底层的变化,比如文件元数据的存储和更新。现在元数据的更新使用写时分配(allocate-on-write)方式,而不是以前的结合日志即时更新方式。

ReFS 兼容 Storage Spaces 跨区卷技术。Storage Spaces 自身有多种提升性能和可靠性的方式,特别是出现灾难性的磁盘失败情况时。然而,可能发生某种很微妙形式的数据毁坏情况。ReFS 使用校验和系统,可以检测到这些错误的发生。出现错误时,ReFS 会查询所有的 Storage Spaces 驱动器,判断谁有文件的正确拷贝。

为了主动确保驱动器和文件的完整性,ReFS 会运行后台进程,不时抽测文件。该进程会对比与元数据和文件每份拷贝的内容,正如上例,该进程会使用正确拷贝修复其他错误拷贝。这对于很少访问的文件很重要,因为除非其他拷贝也出错,否则一份拷贝中的错误可能很难发现。

另一种可靠保障机制被称为“完整性流(integrity streams)”。与元数据类似,完整性流会使用写时分配方式来降低错误发生几率,这种错误发生在向磁盘写入时,有可能导致文件内容唯一一份正确拷贝出错。完整性流不适用所有文件类型,需要控制物理文件结构的应用(比如数据库)应该禁止该功能。

为了提升兼容性,在实现 ReFS 时,保证它可以在 NTFS API 下运行,只是替换了一些最底层的 API。不过还是有一些 NTFS 的功能 ReFS 无法支持:

  • 命名流
  • 对象 ID
  • 短名称
  • 压缩
  • 文件级加密(EFS)
  • 用户数据事务
  • 分散文件
  • 硬链接
  • 扩展属性
  • 磁盘份额

“BitLocker 加密、安全访问控制列表、USN 日志、变更通知、符号链接、接点、挂载点、重解析点、卷快照、文件 ID、oplocks”等其他特性仍得到支持。

ReFS 的早期版本将定位于文件服务器。也就是说只能在 Windows 8 Server 版中才能使用,而且不支持可启动驱动器。将来,ReFS 将可以提供给客户机版本的 Windows,最终将可用作启动驱动器。考虑到文件系统缺陷的危险程度,微软认为这种缓慢的方式更加审慎。

不过 NTFS 格式文件系统还是不能直接转换为 ReFS,必须创建新的驱动器,然后把数据拷贝过去。

查看英文原文: Introducing Windows New File System: ReFS

2012 年 1 月 31 日 03:563136
用户头像

发布了 479 篇内容, 共 123.6 次阅读, 收获喜欢 23 次。

关注

评论

发布
暂无评论
发现更多内容

我为什么开始技术写作?

flyer0126

技术创作

每个人都是领导者的工程团队

hongfei

奈学:传授“带权重的负载均衡实现算法”独家设计思路

奈学教育

分布式

【Java 25周年有奖征文获奖名单公布!!!】关于Java,你最想赞扬、吐槽、期待的变化是什么?

InfoQ写作平台

写作平台 Java25周年 活动专区

MySQL 可重复读,差点就我背上了一个 P0 事故!

楼下小黑哥

Java MySQL

线程池续:你必须要知道的线程池submit()实现原理之FutureTask!

一枝花算不算浪漫

源码分析 并发编程

我的编程之路 -6(新时代)

顿晓

android 编程之路 时代

DDD 中的那些模式 — 使用 Specification 管理业务规则

Joshua

设计模式 领域驱动设计 DDD 架构模式

Vue生态篇(一)

shirley

Java Vue

ARTS - Week Two

shepherd

js algorithm

知识也会生宝宝?

史方远

个人成长 随笔杂谈

# LeetCode 215. Kth Largest Element in an Array

liu_liu

算法 LeetCode

重学 Java 设计模式:实战单例模式

小傅哥

设计模式 编程思维 重构 优化代码

关爱孩子的心理建设

Neco.W

人生 感悟 教育

数据产品经理实战-数据门户搭建(上)

第519区

数据中台 开发数据

ARTS-01

NIMO

ARTS 打卡计划 ARTS活动

那些会阻碍程序员成长的细节[2]

码闻强

程序员 程序人生

5G时代下应用的安全防御研究

Nick

5G 5G网络安全 5G安全

像孩子一样认识新事物 —— 读《终身幼儿园》

YoungZY

学习 读书笔记 读书

深入计算机底层,从几本靠谱的书开始

HackMSF

计算机工作原理

ARTS week 3

刘昱

眼中有码,心中无码

小眼睛聊技术

学习 深度思考 程序员 最佳实践 算法

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【2】-抓包分析

hadesxiong

Python 爬虫 保险 Scrapy

美团可能会强势涉足 ToB

罗小布

创业 互联网巨头 深度思考 互联网

Mysql索引不会怎么办?6000字长文教会你

Super~琪琪

MySQL 数据库 sql 索引

Flutter开发环境配置

玉龙BB

flutter android vscode

我常用的浏览器插件

彭宏豪95

chrome 效率工具 浏览器 插件

# LeetCode 863. All Nodes Distance K in Binary Tree

liu_liu

算法 LeetCode

你不知道的SSD那些事

焱融科技

分布式 存储 SSD nvme

ARTS-1

你当像鸟飞往你的山

ARTS 打卡计划

如何做好Code Review?

flyer0126

Code Review

Windows的全新文件系统:ReFS-InfoQ