【IT168 技术】本篇文章为系列博文之一,着重讨论Windows Server 2012——之前在测试阶段被暂时定名为Windows Server 8——中的各项新功能。在本文中,我们将对其中最新推出的文件系统格式展开探讨,也就是弹性文件系统或简称为REFS。
自Windows NT 3.1面世以来,NTFS一直作为微软操作系统的首选文件系统方案。作为FAT的替代品,NTFS为用户带来更高的可靠性与可扩展性。随着Windows系统家族各桌面版本及服务器版本的不断更迭,NTFS本身也常用常新、获得了大量修正与改进。而在Windows Server 2012中,微软终于决定重新洗牌,带来一套全新文件系统——这就是弹性文件系统,或者简称为REFS。
REFS可以被视为NTFS的改进型方案,同时也带来了多项显著提升;
• 自动修正数据损坏
• 数据接纳能力显著提升
• 可用性更高——支持长效脱机文件系统
• 整合存储空间,优化资源利用率
微软公司显然考虑到了全新文件系统格式的推出可能导致的诸多问题。大量新代码不仅常常伴生新错误,技术人员还需要为之重新编写许多内部及外部接口——由此产生的兼容性和可靠性影响都是不容忽视的大麻烦。有鉴于此,REFS选择以NTFS代码为主体基础,通过调整及改进的方式进行功能升级。根据微软公司的官方说明,我们总结了以下一些显著特性:
• 元数据完整性校验
• 利用数据流完整性技术保护用户数据
• 利用写入交互模式提高磁盘寿命(也被称为写时复制功能)
• 进一步提升容量、文件体积及目录容积
• 存储池与虚拟化技术的引入令文件系统的创建及管理工作更加简便
• 数据分割技术不仅提升性能(带宽可管理),也为容错性提供了冗余资源
• 磁盘清理能够修复潜在的磁盘错误
• 利用弹性特征在故障发生时最大程度挽回用户数据
• 在不同设备之间共享存储池,进而增加额外的容错能力与负载平衡
下面再来看看新文件系统在应对故障时的一些有趣改动。
写入中止
在元数据输入过程当中,一旦I/O读写操作发生意外故障(例如突然断电),写入中止功能将自动启用。REFS利用“写入分配”技术确保元数据被保存在新位置,降低了重要信息丢失的可能性。
Bit Rot
Bit Rot——也就是未被检测出的数据损坏——一直是大型文件系统中的常见病、多发病。REFS利用存储空间(Storage Spaces)功能对数据在多套镜像之间进行清理与验证,其中包括数据读取与验证以及元数据比对——新功能,值得赞赏。
数据流完整性(Integrity Streams)
数据流完整性是REFS中的另一项新功能。在启用之后,每一次写入活动所涉及的数据都会被保存在新位置。由此带来的益处显而易见,但同时对于那些高度依赖于自有数据层的应用程序而言则形同虚设。目前看来,这类功能似乎是专门为JOBD所打造,而无法作用于SAN设备——当然这并不意味着微软打算放弃SAN,而只是强调了SAN作为备选方案的地位。
在个人测试中,我在自己实验室中的Drobo 1200i上创建了两套LUN,二者容量相同但格式有别——一套启用了REFS完整性功能,另一套则没有。根据测试结果,我个人断言数据流完整性功能只能在利用命令行对数据进行格式化时发挥作用。本次测试采取8列深度,数字块大小从512字节到64K不等,且保持100%连续性与100%写入操作。
结果显然非常有趣。在开启完整性功能的情况下,数据吞吐量只达到未开启状态下的一半左右。对于每秒输入输出操作而言,Drobo比较擅长处理4K大小的数据块(我使用的是固态硬盘版本,数据块也调整为4K)。数据流完整性功能会利用新位置写入方式将I/O流量进行打乱,这可能会对服务器中的SATA JBOD产生巨大影响,因此建议大家使用之前一定做好认真评估。