教你提升Hyper-V网络性能的三个技巧
虚拟化及整合关注于核心的计算资源像处理器以及存储,但是网络I/O资源经常被忽略。网络带宽以及设备配置对确保客户端/服务器高效运行同样很重要——尤其是现在与网络相关的技术在服务器以及网络适配器中不断涌现出来。让我们了解一些能够提升Hyper-V网络性能的技巧。
选择正确的网络技术
标准的网络依赖于动态主机配置协议给网络客户端动态分配IP地址,DHCP依赖于可用的DHCP服务器。在传统的网络中,找不到DHCP服务器将无法为新设备自动分配IP地址,一旦IP租约到期将无法连接现有的设备。即使是找不到DHCP服务器,自动的私有IP寻址(APIPA)也能使DHCP客户端获得IP地址以及子网掩码。默认情况下,APIPA将使用预留的IP地址,范围从169.254.0.1到169.254.255.254,子网掩码是255.255.0.0。APIPA每几分钟就会检查DHCP服务器,当DHCP服务可用时就将控制权移交给DHCP。一般来说,APIPA主要用于有较少客户端的小型组织,因此运行Hyper-V的Windows服务器平台通常会禁用APIPA。企业级数据中心将采用冗余的DHCP服务器以确保DHCP服务稳定运行。
虚拟机队列(VMQ)是Intel提供的网络硬件技术,旨在允许网络接口卡使用直接内存访问将内部帧直接传送到网卡的接收缓冲区。这样减少了对基于驱动器的流量交换的依赖性,提升了常见网络流量类型(包括TCP/IP、iSCSI、FCoE)传送到虚拟主机系统的效率。部分改进是由于不同的处理能够处理不同虚拟机的数据包—而不是一个处理器处理所有的网络数据交换。在大多数情况下,应该启用网卡上的VMQ,处理器还应该与外部的交换机进行绑定。
通过在硬件而不是在驱动器或者软件中实现整个TCP/IP协议栈,TCP卸载引擎旨在提升网络性能,减少了准备、形成、传输、接收、解包并收集网络数据包所需要进行的处理工作。TCP烟囱卸载类似,控制权仍保留在操作系统中但实际的数据交换在网卡中进行。一般来说,尽管基于软件的NIC绑定可能不支持卸载硬件,但可以在虚拟系统中启用卸载特性。如果虚拟服务器使用了网卡绑定,那么可以禁用卸载特性,否则通常应该启用卸载特性。
针对虚拟服务器另一个流行的配置是在传输集群共享卷、iSCSI以及在线迁移流量的网络中启用巨型帧。巨型帧数据包大小是9000或9014个字节,而不是常见的1500字节。通过在每个数据包中传输更多的数据,能够通过更少的数据包完成文件传输,网卡和主机系统的效率会提升。然而巨型帧同样意味着两端所有的网络元素(网卡、交换机以及SAN)都要支持巨型帧。
升级网卡固件以及驱动的时机
计算设备通常使用堆栈模式构建:硬件(芯片及连接)在底层,固件(比如BIOS)用于初始化并配置硬件,固件使用驱动与操作系统建立连接。bug以及固件或者驱动的编码技术不过关可能会带来性能问题。这种情况要比你想象的多,往往可以通过升级固件以及驱动来解决该问题。
然而,硬件、固件、驱动以及操作系统之间的相互关系可能很薄弱且易于出错。有时可能会导致意想不到的新问题或者bug,因此固件以及驱动升级很可能会导致更多的问题。因此不应该盲目升级。
首先,确认升级后是否能真正解决问题。如果不是解决特定的问题,那么不建议升级。例如,如果固件升级能解决特定网卡不能启用TOE的bug,为了启用TOE并提升网络性能,升级固件可能很有必要。与之相反,如果固件升级修复了NIC并未使用的一个芯片的bug,反而可以不升级。
其次,应用到生产系统前要在实验环境中进行升级测试。测试有助于提高升级效率,识别潜在的结果并避免在生产环境中出现潜在的混乱局面。
网卡绑定如何影响虚拟机性能
网卡绑定给虚拟服务器带来了很多好处。绑定允许同一台服务器上的多个网卡适配器协同工作以聚合带宽并进行流量的故障切换。例如,可以绑定两个独立的千兆以太网端口以提供两倍带宽,在单个端口发生故障时也能够确保数据正常传输。
一般来说,管理流量、生产虚拟机流量以及虚拟机迁移任务都可以采用网卡绑定,无论是否适合你的企业都可以启用并配置网卡绑定。一个建议就是在分配负载前建立网卡绑定。另一个很流行的策略就是为客户虚拟机配置单-根I/O虚拟化也就是SR-IOV。
然而,不建议在iSCSI存储流量中采用网卡绑定。在Windows Server 2012及后续系统中建议优先采用多路径I/O也就是MPIO技术来处理iSCSI存储流量。
网络资源及配置对虚拟机性能具有重大影响。因此IT专业人员应该考虑带宽、接口类型、驱动以及其他因素。但在复杂的网络环境中相互关系错综复杂,调整网络配置可能会遇到问题。在做出任何调整之前进行基准测试,每次只调整一个因素,然后建立新的性能基准对网络变更带来的影响进行评估。这样做能够帮助识别并解决未预料到的结果,客观地认识配置变更所带来的影响。