Windows Server 8 ReFS 测试初探

本文同步自(如浏览不正常请点击跳转):https://zohead.com/archives/windows-server-8-refs-basic-test/

微软最新的 Windows Server 8(现在已改名为 Windows Server 2012,坑爹的命名,汗下)中支持了微软引入的新文件系统 ReFS 用于替换存在了 N 年了的 NTFS 文件系统。大家可能依稀还记得当前 Longhorn(其实就是后来的 Vista 操作系统的开发代号) 操作系统发布时传闻要引入的新文件系统 WinFS 被阉割的消息,到了 2012 年终于推出了新文件系统 ReFS。

ReFS 全名为 Resilient File System(弹性文件系统),按照微软官方的说明,ReFS 相对 NTFS 主要的改进有:

1、改进磁盘上的数据结构,ReFS 也跟着主流文件系统的脚步使用 B+ 树来存储元数据和实际数据了,文件大小、卷大小等的限制也还是 64 位,元数据和实际数据被以类似关系数据库形式的表组织起来,文件名和路径长度的限制也扩大为 32KB 的 Unicode 字符串;
2、元数据增加校验和,增强数据的验证和自动更正处理,支持 COW 实现可靠磁盘数据更新;
3、扩大卷大小、文件大小、文件夹大小;
4、数据条带提高性能,并支持错误容忍;
5、可以在不同的计算机间共享存储池以增强容错性和负载平衡;
6、也是非常重要的,对 NTFS API 及使用方式上的很大程度上的兼容,包括 ACL、符号链接、挂载点、oplock 等,但也有一些 NTFS 的特性例如 文件压缩、硬链接、用户磁盘配额 等没有被支持。

有关 ReFS 的详细原理及说明请参考这个 MSDN 的 blog:

http://blogs.msdn.com/b/b8/archive/2012/01/16/building-the-next-generation-file-system-for-windows-refs.aspx

需要注意的是 Windows 7 及之前的系统都不支持 ReFS,而且 Windows 8 似乎也只有服务器版本才支持。借着前几天下载安装的 Windows Server 8 测试版本系统笔者就先简单测试下 ReFS 相对 NTFS 的性能,由于我这实际应用时以顺序读写为主,先做顺序读写性能对比。

测试环境:

Intel S5500BC 服务器主板;
Intel Xeon 5506 CPU * 1;
Kingston DDR3 1066 4G 服务器内存 * 1;
Adaptec RAID 51645 PCIe SAS RAID卡;
WD WD10EVDS 1TB SATA 监控硬盘 * 16;
Windows Server 8 Beta Datacenter Build 8250 64位中文版;
Iometer 1.1.0-rc1 Windows 64位版本

16 个 1TB 的 SATA 盘建 RAID0,RAID0 的块值为 256KB,并启用 read 和 write cache。然后在 Windows Server 8 中的磁盘阵列设备上分别建 2TB 大小的简单卷,格式化为 NTFS 和 ReFS,分别测试其连续读写性能。

在磁盘管理里新建分区格式化时就可以看到 ReFS 的选项:

Windows 8 ReFS格式化选项

测试结果:

测试项目 ReFS(MB/s) NTFS(MB/s)
64KB 连续写 192.85 225.02
64KB 连续读 230.79 227.82
256KB 连续写 388.94 417.79
256KB 连续读 495.48 548.49
1MB 连续写 690.77 738.42
1MB 连续读 965.39 821.82
4MB 连续写 860.45 858.28
4MB 连续读 1129.54 1092.30

从测试结果可以看到,ReFS 相对 NTFS 来说在小一些的块值的连续读写上并没有什么优势,而在 RAID0 的整个 stripe 条带大小(256KB * 16 = 4MB)的读写性能上则确实比 NTFS 有一点改进。

另外说下 ReFS 暂时的不足之处:

1、Windows 8 虽然已经支持 ReFS,但并没有 NTFS 和 ReFS 之间转换的工具,你如果需要从 NTFS 切换到 ReFS,暂时只能手工中转拷贝了;
2、不支持从 ReFS 引导启动系统;
3、可移动磁盘或者 U 盘之类的设备不能使用 ReFS;
4、不支持文件压缩和用户磁盘配额,虽然这两个用的可能不是非常多,但还是有点不可想象;
5、NTFS 中原来支持的扩展属性 ReFS 也不再支持,有一些软件会依赖这个,感觉会有些不便。

总之现在看起来微软新引入的 ReFS 并没有像 ZFS 那样的新文件系统(支持 RAID-Z、原生快照、128位文件系统等特性)那样吸引人,如果要吸引用户转移到 ReFS 感觉还是任重道远,不知道 Windows Server 2012 最终版本中的 ReFS 到底有何改善。

本文章中介绍的只是测试了连续读写的性能,ReFS 重点支持的容错等功能下次有机会时再来测试,文中有任何问题欢迎指正咯。 ^_^

发表评论





*