伴随这两年SDDC(软件定义的数据中心)愈来愈热,做为其中重要的建设区块的软件定义存储(SDS)也愈来愈多地被各行业,各种规模的数据中心所使用。做为SDS厂商之一的微软,面对这块蛋糕固然不甘人后,从Windows Server 2012开始,微软隆重推出了他的SDS解决方案--Storage Space。该版本仍是须要创建在共享磁盘柜(JBOD)的基础上,和其余主流SDS厂商同样,其目的是经过将JBOD里各种磁盘加入到一个或多个存储池,再从存储池里划分存储空间(Storage Space)给单台主机使用或者多台主机共享的过程,帮助用户精简架构,简化管理及实现按需灵活扩展。服务器链接JBOD盘柜也再也不须要昂贵的RAID卡,而只须要认证的SAS卡便可,数据保护及性能优化等高级功能则以软件定义的方式基于每个存储空间实现。相比传统SAN的使用维护,SDS的确彰显出易于部署,易于使用和易于扩展的特色。shell
到了Windows Server 2016,该功能有了很大的变化,首先从架构上来讲,企业用户依然可使用MS Failover Cluster功能将多达16台服务器配置成一个S2D群集,每台服务器再也不须要外接JBOD,而是直接贡献出配置的内部磁盘组成存储池。每台服务器经过虚拟的Software Storage Bus可以“看到”其余节点的物理磁盘。这样的架构就比其上一代更加简化,和VSAN及Nutanix的产品趋于一致。节点和节点的网络链接建议采用支持RDMA的冗余万兆网卡,以此提升安全性及下降数据交换的延迟。若是贡献存储的服务器节点同时也跑业务,那么这也就是热门的超融合架构(HCI);也能够把存储节点和业务节点分开,存储空间以CIFS方式共享给前面的业务节点,这两层架构各自按需扩展。第二,服务器的磁盘可支持PCIe NVMe SSD、SSD和HDD,S2D会默认将性能最好的磁盘做为存储总线缓存(Storage Bus Cache),为每一个节点提供读/写缓存,同时也做为存储池的元数据存放地。该功能可在配置时自动或者经过手工指定完成。好比服务器里同时配置了以上三种类型的磁盘,那么PCIe SSD将被用于存储总线缓存,SSD和HDD磁盘将被用于容量层。值得注意的是,用Powershell命令能够看到针对磁盘类型的指定里有SCM/SSD/HDD三种,这里SCM是指“Storage Class Memory”,是JEDEC标准里的下一代极高性能的存储设备,当前Windows Server 2016可以支持该标准里的NVDIMM-N,而vSphere 可能须要等到明年才能支持。NVDIMM-N简单地说就是将DRAM芯片和NAND Flash芯片放于同一个内存模块内,辅之以大电容或者电池作数据保护,当系统意外掉电时,经过大电容或者电池,可以将DRAM里的数据直接搬到NAND存储芯片里,这样就实现了近乎永久的保存,该过程对于操做系统及应用透明。使得系统既可以享受近乎DRAM几十纳秒级别的数据写入延迟,又能获得意外掉电后的数据保护,真正达到消除系统内存储的性能瓶颈的目的。第三,在Windows server 2012/R2,其标准版也可以支持Storage Space,可是到了W2016,只有数据中心版才包含S2D功能。在数据保护方面,除了2-way mirror ,3 way-mirror之外,也能支持Erasure Coding(single parity/dual parity)以提升磁盘空间利用率。另外,和以前的版本同样,微软将S2D的不少高级配置及参数调节功能仅仅放到了Powershell里,对于习惯用图形界面进行配置管理的用户须要注意。下面的实验也基本在Powershell里进行。Storage Space/S2D都有本身的硬件兼容列表,部署前务必仔细核对本身的硬件是否可以支持。好比S2D当前针对戴尔服务器HBA卡的认证就只有HBA330。具体信息可参考下面微软官网:
windows
Storage Space 硬件认证列表:
缓存
S2D 配置须要知足的硬件条件:性能优化