如果存储设备中存在RAID卡,那么只能将RAID的所有功能禁用(如果允许禁用的话)才可能兼容存储空间特性,这样其实是一种浪费。因而采用存储空间的虚拟化方案,就不需要采购带RAID控制器的磁盘阵列,而直接采购JBOD磁盘柜就可以了,省不少钱。
如下官网上的示意图已经清楚的展示的存储空间相关概念:
在存储空间中建立的虚拟磁盘是一种弹性存储,虚拟磁盘定义好后无法改变存储布局(即无法在Simple、Mirror和Parity模式中自由切换)和提供方式(Thin和Fixed),但是可以调整容量。微软提供了三种存储布局,类似RAID的几种级别,TEDNET上的定义是:
简单(Simple):数据跨物理磁盘条带化,这最大化了容量并提高了吞吐量,但降低了可靠性。这种存储布局至少需要一块磁盘,并且不能针对磁盘故障提供保护。
镜像(Mirror):数据在两个或三个物理磁盘上复制,这提高了可靠性,但降低了容量。这种存储布局至少需要两块磁盘用于针对单一磁盘故障提供保护,或者至少需要五块磁盘用于针对同时发生的两起磁盘故障提供保护。
奇偶校验(Parity):数据和奇偶校验信息跨物理磁盘条带化,这提高了可靠性,但一定程度上降低了容量。这种存储布局至少需要三块磁盘用于针对单一磁盘故障提供保护,并且至少需要七块磁盘用于针对两起磁盘故障提供保护。
存储空间特性也可以应用在Windows Server 2012的故障转移集群中,但要求会更高:
虚拟磁盘提供方式必须是固定(Fiexed,创建时就占据固定容量)。
虚拟磁盘奇偶校验存储布局在Windows Server 2012中不被支持,但2012 R2支持。
所有物理磁盘必须通过SAS链接。
所有物理磁盘必须支持PR(Persistent Reservation)且通过故障转移集群验证测试。
集群需要共享存储,因而JBOD磁盘必须通过SAS物理连接所有节点(可以通过SAS连接所有节点或者使用SAS交换机),因而DAS不被支持。
从以上要求看,要使用集群存储空间特性局限性是比较明显的,要与SAN方案竞争还有很长的路要走。想了解更多关于存储空间特性的细节,可以访问Storage Spaces Frequently Asked Questions (FAQ)
三、虚拟化存储网络
在Windows Server 2012中实现虚拟化的关键是部署Hyper-V服务器,保障Hyper-V虚拟机运行。原则上我们可以将Hyper-V虚拟机放置任何存储中,基于DAS、NAS或SAN存储都是可选的,Hyper-V Server 2012甚至已经实现在非共享存储的独立主机间实时迁移虚拟机。但是为了实现高可用性,我们一般会部署Hyper-V服务器故障转移集群,这要求集群节点拥有共享存储,因而为实现共享存储我们还有两种选择:基于SAN(基于iSCSI的IP SAN和基于FC通道的FC SAN)和基于文件服务器集群的Hyper-V over SMB。
1、基于IP SAN和FC SAN
如下图是典型的两节点集群连接存储的实现高可用性的方案,可以看出IP SAN与FC SAN在网络拓扑上没有本质区别,两者都可以通过多路径IO(MPIO)实现IO高可靠性和负载均衡。这里的Storage Server即是传统意义上的存储服务器(带CPU和控制器的存储阵列),为Hyper-V Server集群提供共享存储。测试环境中,可以利用Windows Server中 iSCSI目标服务器角色在普通PC中实现一个IP SAN所需要的Storage Server。
2、Hyper-V over SMB