WSFC2016 SMB多通道与网络调校

   SMB多通道是微软Windows Server 2012时新增的一项功能,微软SMB3.0协议的一部分,主要用于SMB文件传输时,检测到多张可通讯网卡,自动使用多张网卡进行传输,提升吞吐量,链路容错。前端


   Windows Server 2012和以前的服务器操做系统最大的一个不一样点就在于,2012利用操做系统自己实现了不少原来只有硬件才能作的技术,同时又和各大硬件厂商合做,使各大硬件厂商的设备可以在微软OS上面发挥出最好的性能,例如,2012实现了原生的SMB 多通道,NIC teaming,能够和存储设备感知,实现ODX技术,等等node


   SMB多通道,不少人可能没有关心过,其实这是一项很好用的技术,咱们不须要额外配置什么,Windows Server 2012 /Win8 以后的OS原生自带,只要你有两台机器,它们之间要进行SMB传输,机器1上面有两张网卡 192.168.1.1和192.168.2.1 ,机器二上面有两张网卡 192.168.1.2 192.168.2.2,那么SMB多通道技术就会自动聚合两站网卡的带宽,进行协议传输,一旦其中一张网卡坏掉,自动使用单条通道进行传输算法


  经过SMB多通道,咱们能够实现相似于MPIO的效果,它的优势就是自动聚合多网卡带宽,最大化利用网卡性能,自动容错,自动扩展,发现有可用通道自动加入传输。缺点就是SMB多通道,只能在SMB协议传输时有用,其它协议传输时无效,但SMB多通道技术能够和NIC teaming技术配合,SMB协议传输使用SMB多通道,其它流量使用NIC teamingshell


SMB多通道技术要求:
数据库


至少须要两台运行Windows Server 2012,Windows Server 2012R2或Windows 8计算机后端

不须要安装其余功能 - 默认状况下启用SMB Multichannel服务器

多个可通讯网络适配器网络


可选要求架构

一个或多个支持RSS的网络适配器
负载均衡

使用NIC Teaming配置的多个网络适配器之一

一个或多个支持远程直接内存访问(RDMA)的网络适配器



SMB多通道适用场景



多个支持RSS的网卡


此为SMB多通道典型配置,在2012以前,即使两个节点具有多张能够通信的网卡,可是传输流量的时候也只会使用一个接口创建链接,并不会自动聚合全部接口带宽,2012开始,一旦检测到多张可通信网卡,将自动聚合全部网卡,若是网卡支持RSS功能,则SMB为单个会话建立多个TCP / IP链接,每一个接口至少有一个或多个链接,此配置使SMB可以使用可用的组合网络适配器带宽,并使得SMB客户端能够在网络适配器出现故障的状况下继续而不会中断。


多个NIC Teaming中的网卡


Windows Server 2012 R2和Windows Server 2012支持经过使用称为网卡绑定的功能将多个网络适配器合并到一个网络适配器的功能。尽管一个Teaming老是提供容错功能,可是当SMB没有SMB多通道部署时,SMB每一个团队只能建立一个TCP / IP链接。此配置会致使所使用的CPU内核数量和队列带宽的最大使用量受到限制。


当使用SMB多通道部署SMB时,SMB为单个会话建立多个TCP / IP链接,以实现CPU内核之间更好的平衡并更好地利用可用带宽。NIC Teaming继续提供故障转移功能,这比单独使用SMB Multichannel更快,咱们还建议使用网卡组合绑定,由于它为不依赖SMB的其余工做负载提供故障切换功能,这些工做负载没法从SMB多通道的故障切换功能中受益。


单个或多个支持RDMA的网络适配器


SMB多通道检测网络适配器的RDMA功能,这使得SMB Direct功能(SMB Direct over RDMA)成为可能,当使用SMB多通道部署SMB时,SMB检测网络适配器的RDMA能力,并为该单个会话建立多个RDMA链接,每一个接口有两个RDMA链接,经过此配置,SMB能够利用RDMA支持的网络适配器提供的高吞吐量,低延迟和低CPU利用率,当您使用多个RDMA接口时,它还提供容错功能。


RDMA技术在大型数据传输时性能提高特别明显,在2012R2时,这项技术并不支持NIC teaming,所以若是您想要得到SMB Direct技术,在2012时代,只有选择SMB多通道+RDMA,2016时代起,支持融合网络架构可以得到RDMA技术。


简单介绍完SMB多通道技术,咱们再来看下它和WSFC的关系,在WSFC 2012时×××始,群集开始支持SMB多通道技术,SMB多通道和群集,咱们分为两个层面来看


  1. 存储流量

  2. CSV重定向流量


典型的场景是Hyper-V over SMB,或 SQL over SMB,前面是应用群集,后面是存储群集,应用经过SMB协议访问存储群集,利用RDMA技术和SMB多通道技术提升传输效率


在这种场景下,SMB多通道,会仅使用角色1的群集网络,即挑选启用客户端和群集通讯的网络来作存储流量负载均衡使用


WSFC场景下的SMB多通道一般会遵循如下规则


1.挑选不一样子网,度量值尽量相近的群集网络进行SMB多通道汇总

2.只有网卡速率,RSS  , RDMA等参数彻底相同的网卡,才会被归入SMB多通道传输

3.若是有多个不一样速率的网卡均可以使用,则SMB多通道将首选速率块的网卡创建通道


什么是度量值呢,事实上这是隐藏在群集网络内部的运做参数,界面上咱们看不到它


在WSFC 2008时×××始,能够经过Powershell命令得到


Get-ClusterNetwork | ft Name, Metric, AutoMetric


WSFC 2008时代,默认状况下群集内部网络度量值为1000,群集首个发现的内部网络为1000,以后的内部网络依次向上递增100,群集以未设置网卡网关为内部网络挑选依据


全部对外网络的群集网络度量值默认为10000,以后发现的依次递增100,群集以设置网卡网关为对外网络挑选依据。


全部无群集通信的群集网络度量值默认为10100,以后发现的依次递增100,群集以检测到网卡具有ISCSI通讯为依据。


一个典型的架构以下


d1beff0f33974749c0ae28b01b137352.png

群集网络得到最低的度量值,所以WSFC 2008时代,CSV流量,群集数据库流量,心跳检测流量将首先经过这个网络进行


实时迁移网卡得到第二低的度量值,所以群集将会使用此网卡进行实时迁移,直接经过GUI界面选择实时迁移网卡,可覆盖此决定。


默认状况下群集网络度量值由群集根据算法自动生成,对于高端用户也能够手动进行修改

05245a5fd2acd41a6a5565449456b044.png


看过一些外国的设计一般针对管理网卡和群集网卡会设置备用网卡,例如这样的架构


Cluster1 900

Cluster2 910

MGMT1 10200

MGMT2 10300


这样设计的一个好处是,能够防止一旦群集功能或管理功能网卡坏掉,去使用其它不该该使用的网卡,事先规划出度量值网卡,到时群集会自动挑选下一度量值网卡使用


到了Windows Server 2012时代 群集网络度量值的评定发生了变化,不只能够基于角色,还能够基于硬件功能


e240ef047c98cc6409778ddf00b2a52d.png



接下来咱们将经过实际搭建一个利用SMB多通道的SOFS群集来实际看下效果


实验环境

9d544b81b3837ab09659a41e2f33d0b5.png

当前SOFS群集已经配置完成

2017-11-23_095251.png

SOFS群集角色已配置完成

2017-11-23_095910.png


群集网络设置以下


2017-11-23_095300.png

默认状况下SMB多通道已启用,能够看到,当咱们把文件在两个节点间互相拷贝时,调用了全部网卡

589f1bd07d10c49647d9456b18af02d8.png


ca2f9dc194e26cebcddc97f194d8dd6e.png

禁用SMB多通道功能

28450dec5cbbc278806aef15f7e1ecfd.png

再次拷贝文件,发现已经没有了SMB多通道,只会调用一块网卡进行拷贝。

e6e79368ced3f7833d9827f7129a2ae3.png


d881143fe636fe8a79e7aeae3a9bcfb6.png

再次启用SMB多通道功能

432df6e7cf8118bfead06e6771ea660b.png

拷贝过程从新调用全部网卡

142041da2e43d6e12e06df52ff5e1c7b.png

查看群集网络度量值,发现不太标准,并非咱们想要的,CLUS网卡度量值没有是最低,CLUS MGMET SMB02 度量值过于接近,容易产生负载均衡

e23c2789d08265ab174221ebb4f569d0.png从新定义度量值 CLUS3000  ,SMB01为50000 ,SMB02为50001 ,MGMET为70000。规划控制SMB多通道只在SMB01 SMB02网络传输

6b7c507f28c6e978905970324ded46a2.png

上面咱们在SOFS群集内部中查看了SMB多通道的效果,下面咱们安装hyper-v群集,进一步查看


当前HV01 HV02节点已经完成Hyper-V群集配置

2017-11-23_095544.png

2017-11-23_095636.png

新建虚拟机,设置存储路径为SOFS群集路径

2017-11-23_095816.png

在虚拟机所在节点查看SMB多通道,能够看到,当前HV节点经过30 40两条通道链接到SOFS存储群集节点,同时利用两张网卡的带宽,并得到了容错性。

2017-11-23_100115.png

经过查看网络配置咱们能够发现 在HV群集中,网络度量值为规范,只有SMB01,SMB02网络度量值接近,其它条件也都知足,所以HV群集优先使用此两条链路进行链接

2017-11-21_213640.png

在一些状况下,可能并不会这样顺利,有时度量值计算可能不会像这样按照咱们但愿的来,会有一些误差,致使其它网络,例如管理网络,实时迁移网络也和存储网络处于接近的度量值,这样就有可能会产生负载均衡,一旦您部署了SOFS群集与前端群集,发现前端群集没有使用想要的链路去链接到SOFS群集,除了修改度量值,您还能够选择手动建立SMB多通道限制策略,强制限制SMB多通道仅在咱们想要的网卡上面执行


首先在前端群集,指链接到SOFS群集的HV或SQL群集,上面运行Get-NetAdapter,查看网卡index记录,记下它

2017-11-21_212700.png

建立SMB多通道限制策略

New-SmbMultichannelConstraint -ServerName wisdom -InterfaceIndex 13,16

2017-11-23_100859.png

New-SmbMultichannelConstraint -ServerName wisdom.oa.com -InterfaceIndex 13,16

2017-11-23_100947.png


ServerName的的地方建议输入SOFS VCO名称及FQDN名称,这样,凡是HV群集链接到SOFS群集的这个名称,都仅会调用到咱们指定的网卡,来完成SMB多通道

此设置需在HV群集 或 SQL群集 的每一个节点上面进行设置


须要注意:SMB多通道限制策略,只有在网卡已知足SMB多通道要求的状况下才有意义,例如,三块网卡,速率,RSS,RDMA参数相同,度量值也接近,可是你不想要同时使用这三块网卡,只想使用其中两块,那么能够经过SMB多通道限制策略,若是是两块网卡,可是速率不一样,建立SMB多通道限制策略无心义,由于SMB多通道必须多网卡速率相同才能够构建多条通道,速率不一样的状况下,将仅使用速率高的网卡创建通道。


设置SMB多通道限制策略,主要有如下几种场景


  1. 防止存储通讯淹没管理网络,但愿管理网络更多的流量来作其它事情

  2. 防止CSV redirect IO流量淹没管理网络


关于CSV redirect IO流量,老王在后面会提到


到这里相信你们对于SMB多通道在WSFC群集的应用有了个初步的认识,简单来讲,就是微软在SMB领域的一个创新,让你们更多的去使用它的SMB架构,咱们能够部署一个SOFS,交付给前端的HV,SQL,应用使用RDMA SMB多通道技术链接到后端,得到高性能和容错性,为IT基础架构多了一种新的选择,SMB多通道在群集中也能够获得应用,WSFC 2012时代只要知足多子网群集网络,网卡速率参数相同就能够利用SMB多通道技术


SMB多通道技术在WSFC 2012群集中主要有两种应用场景


  1. 传统SMB流量,HV SQL SOFS群集自己使用SMB协议传输存储的流量,这种类型的SMB多通道,会挑选群集网络中,客户端可访问的网络

  2. CSV 重定向流量


在正常的状况下,全部一个群集中,全部节点对于CSV - 存储,都是直接访问IO,一个写入请求直接经过CSV写入到存储,此流量成为南北向流量,还有一种东西向流量,假设群集中的单个节点失去到存储的访问资格,便是说该节点到链路出现问题,那么CSV卷就会进入重定向模式,在这种模式下,虽然上层链接到CSV的应用不会中断,但会感受到性能有明显的降低,所以每一次的写入IO,都会由失去资格的节点把IO重定向到能够访问存储的节点,而后该节点再完成IO请求


一般状况下CSV卷进入重定向模式,有如下几种可能


  1. 单节点失去到存储的访问资格

  2. 节点上安装了不兼容的筛选器驱动程序

  3. CSV备份,2008 R2没法建立CSV的单个同步VSS快照,致使在备份操做过程当中大量重定向IO,有些存储系统会受到压力,致使2008 R2 Hyper-V群集崩溃


在2012时代,针对于CSV备份机制发生了改变,再也不使用VSS备份操做,而是采用分布式快照机制来简单的备份CSV卷


所以在2012时代发生CSV重定向大概有几种可能 1.存储链路 2.节点筛选器驱动干扰 3.元数据更新


一般状况下元数据更新数据量很小,咱们不须要过多关心它,筛选器驱动一般若是节点很干净也不会出现


WSFC 2012时代出现CSV重定向概率最多的仍是单节点存储链路失败,或还原操做的场景


实际上CSV重定向流量是一种很危险的流量,在2008时代,不少人不知道这一点,因而就放了带宽很低的一个群集通讯网络,结果发现当单节点存储链路出问题,CSV重定向模式下整个群集几乎没办法执行IO操做


在WSFC 2008 时代,对于CSV重定向流量,默认状况下,只使用度量值最低的群集网络,来完成重定向时的东西向流量


WSFC 2012时×××始,CSV重定向流量有了新的变化,再也不根据度量值挑选,而是使用SMB协议,SMB多通道来完成CSV重定向时的流量传输,使用新的方式传输CSV重定向流量将比原来方式提升四倍,更好的处理CSV重定向时的性能问题,对于CSV重定向时的SMB多通道挑选,将遵循如下规则


1.SMB多通道优先于NetFT的网络优先级,以决定CSV重定向流量使用哪些子网

2.CSV重定向将仅使用内部群集网络进行SMB Multichannel,此行为能够更改成也使用外部网络修改UseClientAccessNetworksForSharedVolumes群集参数

3.SMB多通道须要相同的链路速度和特性(RSS和/或RDMA)才能同时在不一样的子网上传输CSV重定向的流量

4.若是适配器不相同,SMB多通道将使用更快的适配器来传输CSV重定向的流量

5.只有在SMB Multichannel不可用或禁用的状况下,故障转移群集才会故障返回到NetFT决定使用哪一个子网。而后,将应用最低度量标准逻辑,并经过最低度量子网发送CSV重定向流量


若是不但愿重定向流量使用SMB多通道,仅使用单个网络,那么您能够直接关闭节点SMB多通道功能

Set-SMBClientConfiguration -EnableMultichannel $ False”


在一个理想的状况下,一个SMB架构的群集


应该是使用两种不一样的SMB多通道,两种SMB多通道网络类型都按照规则执行


存储流量使用对外的网络进行SMB多通道

CSV重定向流量使用群集内部网络进行SMB多通道

2017-11-21_215850.png

若是在WSFC 2012时代碰见CSV重定向流量淹没其它网络的状况,例如还原一个备份失败,CSV重定向流量调用了CSV网卡和管理网卡,淹没了管理网卡,致使管理网卡不能访问,这时候您可使用New-SmbMultichannelConstraint 来强制限制CSV多通道SMB多通道流量


建议 1.不要使用会产生CSV重定向的备份工具 2.规划特定的网卡来完成CSV重定向 SMB多通道流量


对于这里的场景来讲,老王相信国内使用这种SMB架构用于企业生产的仍是很少,并且在一个群集里面完成两组SMB多通道,也稍微有点麻烦,须要分别制定不一样的SMB多通道策略,那么怎么可以实现一组SMB多通道,完成存储流量和CSV重定向流量,老王想到一种办法,修改群集的一个参数,UseClientAccessNetworksForSharedVolumes,让CSV重定向流量也可使用对外类型的群集网络,这样的话,只要存储流量和CSV重定向网卡类型的网卡,速率,RSS ,RDMA参数相同,就可使用SMB多通道功能,届时将是一组SMB多通道,完成存储流量和CSV重定向流量,也能够经过New-SmbMultichannelConstraint 来强制限制CSV多通道SMB多通道的网卡。


那么一个SOFS群集就是 管理网卡一张,对外存储网卡两张 心跳卡一张,对外存储网络既完成SMB存储流量多通道,也完成CSV重定向流量多通道


以上咱们看了


  1. SMB多通道技术介绍

  2. SMB多通道在WSFC群集的应用及要求

  3. SMB多通道在SOFS群集内部的应用

  4. SMB多通道在SOFS群集与HV群集之间的应用

  5. SMB多通道的两种不一样类型流量:存储链接流量,CSV重定向流量


在WSFC 2016时代,SMB多通道技术和群集的结合变的更为融洽,群集再也不要求必须多个子网才能够在群集中作SMB多通道,如今相同子网的多张网卡也能够在群集中构建多通道,事实上,SMB多通道技术自己就支持相同子网多网卡,或不一样子网多网卡,只是说2012时代的WSFC有所限制,构建网络拓扑时,相同子网的多张网卡不会被构建到群集的网络拓扑,WSFC 2016时代群集修改了这个规则,相同子网的多个网卡也能够被构建到群集网络拓扑,实现群集SMB多通道



所谓的相同子网多个网卡构建到群集网络拓扑,并非说,相同子网,会出现多个群集网络,而是可让一个群集网络下面包含单个子网的多个网卡


本例中共计16node1 16node2两个节点,各节点四块网卡,分别MGMET SMB01 SMB02 Heart

其中

节点1 SMB网卡30.0.0.18 30.0.0.19 

节点2 SMB网卡30.0.0.0.20 30.0.0.21

2017-11-23_123712.png


在两个节点之间拷贝文件,能够看到SMB多通道调用了全部网卡

2017-11-23_124318.png

建立SMB多通道限制策略 ,在各节点分别执行

2017-11-23_130457.png

再次拷贝,发现只调用选定网卡

2017-11-23_132425.png

运行命令查看,发现当前对于HV02节点的文件拷贝,只是经过30网段的四张网卡进行

2017-11-23_131939.png

除了限制SMB默认传输流量,咱们还能够限制CSV重定向流量


配置群集,容许CSV重定向流量使用外部网络  (可选,建议最好能够单独布置多张内部通讯网卡)


2017-11-23_125525.png


分别新建存储各节点CSV重定向 SMB多通道限制策略

针对于CSV重定向 SMB多通道限制策略,server name不能输入常规的机器名称,根据结果来看应该是NETFT虚拟出来的一个地址,该名称能够经过下图命令得到

此策略需分别在链接存储的CSV各节点设置其它节点的名称

2017-11-23_132647.png

建立完成后,模拟CSV重定向

2017-11-23_130749.png

经过命令能够查看到,节点1因为模拟了CSV重定向模式,所以节点1对于CSV的东西向流量访问都将经过节点2完成

2017-11-23_131717.png


细心的朋友可能会发现,这里的命令和 2012时代不太同样, 2016的Get-SmbMultichannelConnection命令 多了一个 SmbInstance参数

2017-11-23_133256.png

经过这个参数,咱们能够看出,SMB多通道在各个不一样的类型中所使用的网卡


Default:传统SMB传输

CSV:CSV重定向

SBL:2016 SDS特定流量

SR:2016 存储复制特定流量


因为环境有限,在WSFC 2016场景中,我并无完整的展现后端SOFS群集,前端HV群集的场景

本例咱们是以一个融合群集为例

事实上若是说是前端HV群集,后端SOF群集,才是最佳的架构

在这种架构里面

SMB多通道限制策略应该这样设计


HV群集设计由那两块网卡完成存储链接SMB存储链接多通道

SOFS群集设计由那两块网卡完成CSV重定向多通道


对于SMB存储多通道只须要在HV一方设计便可,SOFS群集会检测到对方只与我开放两条通道,而自动选择两条通道去创建链接


SOFS群集直接和存储链接,承载CSV卷,所以有必要设计CSV重定向流量多通道,能够经过添加多个内部群集网卡,而后经过策略限定,或修改参数,容许CSV重定向使用对外网卡


须要注意的一点是,SMB多通道限制策略,须要输入一个ServerName名称,在完成场景下,应该是在HV或SQL各节点建立这条策略,输入名称应该SOFS的VCO和VCO FQDN名称


本例咱们用于模拟测试输入的对方节点名称,实际场景是不会这样作的!


对于CSV重定向 SMB多通道的限制是特殊的,由于它的Server Name不是使用的节点名称,而是使用的奇怪的地址,这点能够经过事先模拟CSV重定向,获取到对方地址,而后建立CSV重定向的 SMB多通道限制策略


以上为WSFC 2016 SMB多通道的新功能介绍,WSFC 2016时×××始,支持群集使用单个子网不一样网卡构建SMB多通道,新增SMB Instance命令,用于查看SMB多通道用途

相关文章
相关标签/搜索