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:
需要注意的是 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 的选项:
测试结果:
测试项目 | 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 重点支持的容错等功能下次有机会时再来测试,文中有任何问题欢迎指正咯。 ^_^