首先介绍一下NIC Teaming的用途,简单说来就是将多个网卡绑定到一起,生成一个逻辑的网卡来提供高可用和带宽聚合。NIC组合的成员网卡要求能正常连接到网络。Teaming是提高系统高可用的一种非常有用的方案,试想在生产环境中,不管系统如何健壮,如果主机的网卡出现问题,网卡连接的交换机端口出现问题乃至交换机出现问题,都会导致应用的不可用。基于对网络高可用的需求,NIC Teaming提供了一种廉价而高效的高可用解决方案。
在早期版本的Windows,NIC Teaming的功能是通过第三方的解决方案来实现的,常用的有HP,Intel或Dell。这种情况会带来两个问题:1.每个供应商提供的解决方案都是基于各种的硬件来实现,不对其他供应商的硬件提供支持;2.如果在一个配置了Teaming的网络上出现连接错误,需要找第三方的供应商来解决问题,微软无法提供相应的支持。过去的项目中,曾经出现过使用Intel Teaming技术导致网络连接失败,查找原因后发现是Teaming的问题,接下来卸载驱动才解决问题,用了多块网卡不但没提供高可用,反而与微软的产品发生冲突,导致应用的不可用。在新的Windows Server 2012 R2版本中,微软终于给出了集成到操作系统的Teaming解决方案,
Windows Server 2012的NIC Teaming模式有三种:
静态成组(Static Teaming)这是一种依赖于对交换机(Switch-dependent)的组合方式,要求交换机的支持,并且成员网卡不能分散到不同的交换机上。可以参考下图:
交换机独立:网卡组合不需要交换机的参与,这样网卡可以连接到不同的交换机上,从交换机这个级别开始高可用。这种组合方式适用不支持网卡组合的交换机,由Windows Server 2012来完成相应的处理工作。
LACP:类似静态成组,需要先在交换机中启用LACP,会把多块网卡合并成一个逻辑的线路,这种组合方式的速度是最快的。
除了网卡成组的模式需要配置,还需要配置Teaming进行负载均衡的模式,模式也是有三种:
地址哈希(Address Hash):启用该方式后,数据包到达Teaming后,会根据目的地址信息(MAC地址,IP地址和端口号)执行哈希算法,通过算法的结果,NIC Team决定由哪块物理网卡发送数据包。这种方式无法控制流量的走向,如果有大量数据是流向一个目标地址,那么只会通过一块物理网卡来发送。
Hyper-V端口:正如名字显示的,用于Hyper-V的模式,与无法控制的地址哈希相比,这种方式效率更高,数据会通过绑定虚拟网卡的不同物理网卡传输,同时这种绑定是基于每个虚拟网卡,而不是每台虚拟机的。如果是使用Hyper-V外部虚拟交换机建议选择这种方式。
动态:这种方式是在Windows Server 2012 R2中新引入的方式,也是最优化的方式,数据会被平分到所有的成员网卡上,最大效率的利用带宽。
创建一个NIC Teaming的方法很简单,只需要简单的鼠标动几下:
1. 打开服务器管理器,选择本地服务器,可以看到NIC Teaming是禁用的。点击Disable启用功能。
2. 在组任务中选择新建组,或者在右面可用网卡中选择相应的网卡,然后右键选择加入到新组。
3. 为组设置名字并选择好模式后,即可成功建立起NIC Teaming。同时多说一句,如果模式选择交换机独立,那么聚合的时间会稍微长一些,需要耐心等待一下。