在最新的Windows Server 2016中,微软引入了Storage Spaces Direct(S2D)技术,进入到了软件定义存储 (Software Defined Storage)这个市场。本文将与您探讨,在这场IT基础架构变革潮流当中的网络协议,是如何配合并促进超融合架构的。
为什么需要软件定义存储SDS?
简要来说,“软件定义存储=便宜版本的SAN”。特别是对要求高性能的应用,不再以几百万投资为起点,无需购买专用的网络设备,依靠X86服务器、SSD和以太网卡,就可以达到以前高端FC存储才具备的几百万IOPS性能,而投资可能仅仅是传统方案的一半甚至是1/3!
既然SDS这么好,为什么10年前、5年前不搞,而是现在?
因为软件要依托于硬件设备的能力,之前没有落地的原因在于-那时没有高速的网络端口(10G/25G),也没有具备高速IO能力的存储设备(SSD和NVMe)。类似于虚拟化技术早在小型机时代就有了,但是硬件跟不上,一样发展不起来。
Storage Space Direct (S2D)简介
S2D具有2种部署模式:
超融合式(Hyper-Converged)
分解部署(Disaggregated)
超融合式选项直接将运算(Compute)、存储(Storage)、网络(Network)等资源全部整合,在服务器集群之上运行Hyper-V 虚拟机或 SQL Server 数据库,VM虚拟机数据将直接存储在CSV集群共享卷中。 此部署选项无需配置文件服务访问和权限, 此架构适合中小型企业部署。架构请参照下图:

此模式也被称作聚合式(Converged),是将运算(Compute)、存储(Storage)、网络(Network)等资源分开进行管理,Hyper-V与S2D运行在不同的故障转移集群中, 通过 SMB3 文件共享协议提供网络连接存储。
此模式适用于中大型企业部署,架构图如下:

可以看出,两种部署模式都依赖于SMB 网络协议,在S2D的部署文档是这样描述的:“Storage Spaces Direct uses SMB3, including SMB Direct and SMB Multichannel, over Ethernet to communicate between servers. We strongly recommend 10+GbE with remote-direct memory access (RDMA), either iWARP or RoCE.”。
可见SMB协议在S2D方案当中的重要性。里面提到的2个特性具体是什么含义呢?我们接下来一起分析一下SMB协议。
为什么使用SMB协议?
SMB协议是Windows平台标准文件共享协议,*BSD/Linux平台通过samba服务来支持。 SMB 协议可在其 TCP/IP 协议或其他网络协议上使用,使用 SMB 协议时,应用程序(或应用程序用户)可访问远程服务器上的文件或其他资源。这让应用程序可以读取、创建和更新远程服务器上的文件。
Windows不同操作系统版本以及Linux上面的samba服务支持不同SMB协议版本,具体参考如下信息:

CIFS:SMB的前身版本,用于微软1996年发布的windows NT4.0操作系统。
SMB 1.0:2000年发布,该版本使用于Windows 2000、Windows XP、Windows Server 2003和Windows Server2003 R2。
SMB 2.0:2008年发布,该版本用于Windows Vista (SP1或之后版本)和Windows Server 2008。Samba 3.6
SMB 2.1:2010年发布,Windows 7,Windows Server 2008R2。Samba 3.6
SMB 3.0:2012年发布,Windows 8,Windows Server 2012。Samba 4.1 and 4.2
SMB 3.0.2:2013年发布,Windows 8.1,Windows Server 2012R2。
SMB 3.1.1:2015年发布,Windows 10,Windows Server 2016。Samba 4.3
目前主流的操作系统,无论Windows还是Linux使用的SMB协议都使用3.0以上版本。相比单纯为了文件共享的2.x版本,SMB3 在企业级应用和业务持续性等几个方面有明显的提升和改进(如下图):

我们着重介绍以下几个特性:
SMB3 提供故障切换功能,在一台服务器故障情况下,客户端请求可以平滑切换到另外一台服务器,可以实现0宕机时间,切换过程少量IO会有延迟。该功能要求SMB服务器是一个集群,客户端和服务器都采用SMB3,共享开启“Continuous Availability”。
切换过程示意图如下:

此功能有以下几点优势:
1. 对于业务应用完全透明,上层应用的请求平滑切换,没有宕机时间。
2. 可以最大化业务连续性,保障业务不受硬件或软件节点的故障影响。
3. 可以对文件或目录弹性操作。
SMB3可以将多台服务器组建成为一个集群,集群里面所有节点对客户端提供文件共享服务。在集群节点故障情况下,共享可以实现0宕机时间;并且可以快速故障恢复。
架构示意图如下:
SMB3 的分布式支持非常适合虚拟化以及数据库类的应用,通过扩充集群节点可以快速增加系统的带宽和容量。同时它具有以下优点:
1. Active/Active 的文件共享。
2. 系统冗余度很好,达到0宕机时间。
3. 快速故障恢复能力。
如果SMB客户端或者服务器拥有两块以上网卡,SMB多通道技术可以自动侦测使用多有网络路径,可以合并使用所有网卡带宽,SMB多通道技术可以结合多核处理器的RSS技术(RSS可以将IO请求均衡分发到不同处理器核心)。SMB多通道可以利用操作系统现有网卡绑定技术,但是并不依赖。如果一种一块网卡故障,SMB多通道可以自动进行故障切换。
SMB多通道架构请参见下图:

1. 无需操作系统的teaming/bonding等技术,自动发现并利用网络路径。
2. 可以结合RSS特性,将IO请求均衡分发到不同处理器核心。
3. 可以利用RDMA特性,而无需RoCE over LAG 等网络协议参与。
4. 自动地故障链路切换、自动恢复以及自动配置。
5. 相比点到点的链路聚合技术,SMB多通道提供端到端的故障检测能力。
SMB3支持RDMA功能,客户端和服务器都需要使用支持RDMA功能适配器(iWARP、RoCE、InfiniBand)。RDMA功能可以使SMB共享可以获得更高带宽和更低延迟,有效降低CPU I/O处理负载。结合SMB多通道功能可以实现负载均衡和故障切换功能。
RDMA架构示意图如下:

无论是iWARP 还是RoCE,RoCEv2 等RDMA协议,都可以采用并实施SMB Direct。它具有如下优势:
1. 对比TCP/IP明显的性能提升
2. 最小的CPU资源消耗
3. 极低的传输时延
4. 支持iWARP,RoCE,RoCEv2 以太网RDMA协议和InfiniBand 协议。
但是不同于之前的软件特性提升,SMBDirect 需要以下硬件支持:
1. RNIC网卡,即支持RDMA协议的以太网卡
2. 10G以上的以太网接口(10/25/40/50/100GbE)
以上四个SMB3协议的特性,是S2D方案的网络基石,在网络层面保障了软件定义存储的可靠性、高性能以及弹性扩展的需求。
总结
在互联网、云计算环境下,随着企业业务的不断拓展,软件定义存储SDS架构也可以快速提升企业基础架构敏捷性,帮助企业维持较高的服务水平,同时满足关键型业务的需要。
Cavium的FastLinQ 45000 系列网卡(100G/40G/25G)和FastLinQ 41000 系列(25G/10G)网卡已经通过了Microsoft SDDC-Premium certified 认证,可以支持Windows Server 2016的所有特性,包括S2D方案。
3.Cavium FastLinQ for Microsoft Azure Stack 最佳实践
4.使用Cavium FastLinQ 25GbE通过iWARP加速Live Migration



