您现在的位置是:首页 > IT基础架构 > 计算存储 >
文件系统比拼:微软ReFS VS Oracle ZFS
摘要从上面可以看到,相对于NTFS,ReFS提供了大量的改进。尽管相对于成熟的ZFS,ReFS还是有不少的局限性,但作为一款随着Windows Server 2012操作系统而来的创新产品,这已经难能可贵。...
同样真实的是,简单的RAID奇偶校验不足以容纳数千个磁盘卷。如果你想深入地了解存储方法论如何挫败云革命,看看斯坦福大学的David S. H. Rosenthal教授的数据存储论文“Keeping Bits Safe: How Hard Can It Be?”。
与时俱进,存储交付引擎需要变得更聪明,对堆栈的其余部分更加透明,这意味着需要更好的文件系统,能够检测和实时纠正错误的卷,不能只是简单地离线定期例行错误检测。两个选项是Oracle(甲骨文)的ZFS和微软的ReFS(Resilient File System,弹性文件系统)。
Sun开始实时错误检测的工作可以追溯到2005年,在Solaris 11(代号为“Nevada”)的初步发展之时。其原型产品的开放源码、下一代的文件系统被称为ZFS,直至后来被Oracle收购,仍继续进行开发和改进。
微软正在试图在其新的ReFS文件系统中创造一些类似的能力。ReFS是Windows Server 2012 Storage Spaces的特性。在其核心,ReFS试图像ZFS一样解决基本的问题,同时保持NTFS文件系统的兼容性,以支持传统的Windows应用程序,服务和基础设施。
ReFS和ZFS都在传统的文件系统之上提供一些基本的改进。首先,都实时地检测和修复数据错误,无需卸载或干扰访问相应的卷。对于ZFS,这些在数据级和元数据级进行,通过使用分层校验,坚持全程上传文件结构到根节点。
当一个文件被读取,读取文件的校验与存储的校验相比较,错误被自动检测。在ReFS中,校验被放到文件元数据。一个附加的称为Integrity Streams的可选功能,确保更改写入时,它们被写入到一个不同的成员卷,以确保原始的不受损害。这种错误检测对抗位损坏,磁盘上存储的数据的降解,以及硬件故障,固件故障,宇宙射线和其他完整的破坏性事件,不影响联机文件系统的可用性。
虽然这两个文件系统有着相似的特性,ZFS的striped volume校验的表现脱颖而出。根据微软的文档,ReFS上的校验来自配对微软的Storage Spaces特性,并要求现有的奇偶校验信息“在一个可能的新写入发生之前被读取和处理”。
微软提倡为日志使用专用的固态硬盘以缓解可怜的写入性能,ZFS与这种效应斗争的方式是直接在大小可变的stripe写入奇偶校验信息。这缓解了写速度的害处,还纠正了臭名昭著的“RAID 5 Hole”,这是在传统的RAID系统中的一种局限,允许数据在崩溃或电源故障的情况下丢失,这实际上构成了RAID实现奇偶校验方式的一个全新的范式。
这两种卷的缓存实现差别巨大。ReFS可容纳SSD缓存,但有关ReFS缓存功能并不多,虽然他们不支持DRAM缓存。
相比之下,ZFS缓存被很好地记录,DRAM高速缓存是一项核心功能。ZFS提供三个级别的缓存:ARC,它是智能内存缓存到RAM,并使用尽可能多的可用RAM;L2ARC,这是一次性的(非存储)SSD读缓存;以及ZIL,这是SSD写缓存,缓冲写到底层卷。
ARC在整个ZFS文件系统结构中的位置
(本文不涉密)
责任编辑:
上一篇:淘宝用数据纠正对县城的种种误解