简单比较Windows 8/2012 存储空间Storage Space和ZFS,LVM

初一接触windows 8和server 2012带来的存储空间就觉得很新奇,似乎包含了ZFS和LVM 两者的优点,但一用起来就发现问题颇多。于是打算总结下自己看到的和理解的,当作一个知识小结。

存储空间的引入,让MS系用户突然感到原来开源世界早就有这么好的存储技术了,多强大啊。

d1

首先就是存储空间主推的,JBOD连接,物理设备无关性。

这和ZFS文件系统一模一样,不管是物理硬盘,IDE,SAS,iSCSI,等等多种存储概念的设备统一起来,先进入可用存储池中,JBOD模式,不用考虑连接顺序,只考虑容量,不考虑外部管理系统究竟怎样,搬迁存储池只需要将硬盘移动即可,因为存储池信息都在硬盘上,只需在新系统新硬件环境挂载这个存储池即可。这对于复杂的存储环境适应性很好,也适合新老设备公用以保证资产的不浪费。选用JBOD的同时就摒弃了硬件raid模式,因为硬件raid总会带来不灵活,和ZFS一样,在CPU性能过剩的时代,替代硬件raid卡的处理能力,当然这会带来性能损失,这是后话。(ZFS更先进的是支持单文件形式的存储设备,也就是映射或者镜像文件)

连接起来了,就需要建立存储池,这和ZFS的zpool无异,选用几个包含一定容量的设备,建立存储池,设置的时候可以选用一个或多个热备份。

然后建立虚拟磁盘,也就是ZFS里的volume。虚拟磁盘也就是存储池中的一部分(或全部)空间单独分割变为一个虚拟设备,然后就可以让windows磁盘管理了,格式化等等和物理磁盘使用方法一样。这就和LVM一样了,动态卷,可在线扩容。

d2

接下来就是虚拟设备生成时的布局选择,simple (raid0),mirror(raid 1 *),parity(raid5)。这里windows 2012 类似LVM的设置就是,向导信息里mirror选项包含双向镜像(两个数据副本),三向镜像(三个数据副本)。ZFS是在生成zpool的时候设置的,而且不能跨多个存储做冗余,只能做校验,而windows 存储空间是在生成虚拟磁盘的时候设置。当然一旦选用冗余,会消耗不少空间用于存储池自身信息的保存,大致为,1~2G的消耗,比ZFS的raidz多一倍的样子,应该是针对ReFS优化,后面简单介绍。同样我也有一篇文章专门介绍mirror的使用。《Windows 8/server 2012 存储空间Storage Space Mirror扩容实验》

性能方面,raid 0 , 1 和硬件raid卡没什么差距,raid5/6有的只是空间利用率硬件卡较高,因为软件模式的raid会消耗一定空间作为磁盘的信息保存。raid 5/6因为需要计算奇偶校验码,会大量消耗CPU资源,同时没有专用缓冲内存的情况下,写入性能非常低下,现在的测试来看,比ZFS还差。基本上7200.11 1.5T 三盘raid5,读取200MB/s,写入25-30MB/s。ZFS不启用缓存的情况下大致为30-40MB/s略好。

ZFS默认就支持二级缓存,比如用SSD和大量内存做读写缓存(L2ARC 和 ZIL),所以在强调写入性能的时候,Storage Space需要另谋出路,使用三方软件来做二级缓存。还好这和Storage Space的初衷没有冲突,因为不管是ZFS或Storage Space都强调的是读取性能,强调的容易管理,容易恢复,成本低廉,物理结构简单。

 

最后要提到的就是ReFS,这个新文件格式是继承NTFS的基础上,实现了无限(理论上)的扩充和管理,达到了配合存储空间Storage Space管理数以万计的存储设备。其中一个最大的亮点就是,消除潜在数据丢失。前面说了,因为他消耗了更多的冗余空间,较多的空间被利用来存储冗余信息,在某个物理设备丢失后,数据更不容易被丢失,更容易被打捞修复,更是针对内存错误,通过备份解决了自动损坏还原,以及定期扫描备份对抗位衰减。另外ReFS实现了LVM和ZFS中的快照功能。

 

但是,他的缺点也很突出,而且太年轻,可靠性大打折扣,需要一年或两年的时间来验证是否可靠。Storage Space只是第一步,我们相信,他会更多地借鉴ZFS的经验,以及LVM管理的便捷性,提供更好的大容量管理器。

来源URL:http://geekpi.cn/blog/2013/03/2479