网络I/O虚拟化:让10GbE更加灵巧

日期: 2008-10-13 作者:George Crump翻译:涂凡才 来源:TechTarget中国 英文

服务器虚拟化对网络I/O的影响与其对IT架构其它方面的影响是同样的,那就是使它们的缺点更加暴露无遗。在本文中,我们将看看虚拟化技术是如何显现这些缺点的,带宽管理的不足如何制约着服务器虚拟化的发展。此外,我们还将进一步探讨I/O问题的解决者——10Gb以太网(10GbE)网卡。 网络I/O缺点 网络I/O资源并不如CPU或内存资源那么丰富。

如果按照大多数服务器虚拟化厂商的最佳做法——每个虚拟机安装一个1GbE网卡,很快你就会发现虚拟化主机根本支持不了多少虚拟机。毕竟,网卡插槽只有那么多。 对于网络I/O的这些缺点,业界主要有如下几种应对方法。首先,几乎每个数据中心都是每增加一个虚拟机,就迅速分裂……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

服务器虚拟化对网络I/O的影响与其对IT架构其它方面的影响是同样的,那就是使它们的缺点更加暴露无遗。在本文中,我们将看看虚拟化技术是如何显现这些缺点的,带宽管理的不足如何制约着服务器虚拟化的发展。此外,我们还将进一步探讨I/O问题的解决者——10Gb以太网(10GbE)网卡。

网络I/O缺点

网络I/O资源并不如CPU或内存资源那么丰富。如果按照大多数服务器虚拟化厂商的最佳做法——每个虚拟机安装一个1GbE网卡,很快你就会发现虚拟化主机根本支持不了多少虚拟机。毕竟,网卡插槽只有那么多。

对于网络I/O的这些缺点,业界主要有如下几种应对方法。首先,几乎每个数据中心都是每增加一个虚拟机,就迅速分裂一次网卡。但是如果用这种方法,那么只有网络I/O需求较低的服务器是虚拟的。这样做有个明显的缺点,就是没有对整个环境进行虚拟化,会减低服务器虚拟化技术的优越性。第二种方法是常见做法,也是本文的重点——安装10GbE以太网卡。毫无疑问,10GbE可以大大地提高带宽。物理架构的解决方案的确是很容易,但如果是虚拟服务器环境又该如何处理呢?

NIC和网络I/O

在虚拟环境下,多个虚拟服务器通过hypervisor层竞争同一网络I/O资源。Hypervisor相当于一个“交警”,位于物理机和主机服务器的物理硬件之间。工作负载的处理遵循“先到先服务”的原则。随着每个物理硬件平台上的虚拟服务器数量的增加,hypervisor被中断而来处理网络I/O需求的时间也会增多。这种情况下,如果多个虚拟服务器的网络I/O负载过大,就会出现问题,因为它们会给hypervisor带来过大的压力。

为了解决这个问题,可以为每个虚拟机分配一个NIC。这个方法将原来共用的I/O队列分为了多个I/O队列,每个物理适配器处理一个队列。这样做的好处是减少了hypervisor的中断时间,有利于更好地管理hypervisor的中断。然而,这种让每个虚拟机(或多个虚拟机)使用一个NIC的方法不仅会导致网卡插槽不够用,还会带来一些其它的问题。

多NIC显然是布线管理的一个噩梦,而且还会增加耗电量。例如,一个1GbE卡的功率通常约为8瓦,安装10这样的卡等同于一个10GbE卡的性能,所以总功率应该是80瓦,而且还会影响服务器自身的空气流通。空气流通的降低进而会增加冷却需求,风扇需要转得更快,从而增加了服务器的电能消耗。相比之下,一个10GbE卡大约只有15瓦,而且对空气流通几乎没有任何影响。

由于这些原因,尽管10GbE卡存在上述所说的共用队列问题,它仍然是一个明智的选择,是未来发展的绝佳途径。10GbE NIC的问题在于它利用了10倍的带宽,这种情况在虚拟服务器环境下变得更加恶劣。在非虚拟环境下,一台带10GbE卡的高性能服务器可以获得9.9Gbps的带宽。而在虚拟环境下,同样的服务器却只能达到4.0Gbps。这是因为,在虚拟环境下所有I/O操作都要通过hypervisor中的同一队列完成,而且适配器中只有唯一的一个I/O通道。随着虚拟机数量和网络I/O负载的增加,虚拟机和虚拟机中的应用的性能将无法得到保持,因为它们都要在同一队列竞争I/O资源。

虚拟环境下网络I/O问题的解决

对于虚拟环境的网络I/O问题,有两种可能的解决方案。第一种,行业内的hypervisor厂商应该开发一个高级的I/O队列系统,允许分割10GbE卡的带宽。这种方案还需要有一个能充分利用队列系统的更加智能的10GbE卡。还有一种方案是,网卡厂商提高服务质量能力(QoS capability),允许对网卡进行硬件级别的分割,从而保证I/O通道的性能。

第一个具有QoS能力的hypervisor是VMware公司出的,不过其它供应商也将会跟着推出各自的产品。VMware把它称作NetQueue,它可以显著提高10GbE环境的性能。不过,它还需要得到NIC供应商的支持,目前的英特尔和Neterion网卡都支持NetQueue。NetQueue不用处理包路由工作,因此解放了CPU资源,缩减了延迟等待时间。

NetQueue使广泛的服务器整合成为可能,它使用了优化的10GbE适配器,让10GbE适配器的带宽最大限度地接近其额定值。这样,要获得9.8Gbps的带宽就不是什么难事了。但是,有些关键任务需要保证一定的带宽,而NetQueue没有为这样的特殊虚拟机提供真正的QoS。在交换机领域,QoS早就成为了现实,而在NIC方面,QoS能力还有待提高。

在“一个服务器一个应用”的日子里,的确没有太多的NIC QoS需求。服务器与交换机不同,交换机要处理多个数据源的通信,而服务器只有一个目的:为它的应用提供计算和处理能力。如今,由于虚拟化技术的出现,我们需要让某些虚拟服务器优先享有网络I/O资源,为它们保证一定的带宽。“先到先服务”的机制已经不再适合这种新形势了。一些供应商正在协力完成解决方案,进一步拓宽虚拟化。如,Neterion开发了IOQos。

作为802.11标准的一部分,IOQos是从零开始设计的,用于多应用环境——多个应用竞争I/O资源的环境。基于硬件的信道隔离有利于管理,管理员可以对不同虚拟机数据通道进行绝对的I/O隔离。完全隔离的优点体现在安全性方面,避免了共用资源间的干扰,如内存和CPU资源。如今,大多数软件应用假定自己对系统资源和网卡有绝对的使用权。而在虚拟环境下的网卡是为多个应用共用的,软件开发者们并没有意识到这一点。如果网卡资源的供应可以让软件自身觉得情况与它预期的一样,那将会大大地提高软件的兼容性。

最后,在将多个软件应用整合到物理主机中的虚拟机时,还需要有带宽作保障。从I/O的角度来看,可以让网卡把这个应用看作一个物理网卡,该应用可以获得有保证的带宽。在过去,系统管理员不得不为某些应用保证带宽,以保持服务器处于非虚拟化状态,或在虚拟服务器中为这些应用分配专用的NIC。这两种做法都不利于节省成本,虚拟化策略有可能帮助获得数据中心的成功。

如果10GbE结合虚拟厂商的智能队列系统、NIC厂商对队列系统的支持和IOQos的应用,我们将可以实现更广泛、更密集的服务器虚拟化部署。此外,还可以优化基础设施投资,获得更高的投资回报率。

相关推荐