虚拟网络设备关键是什么?
网络设备与服务器不同,它们一般执行高I/O的任务,通过网络接口以最小附加处理来传输大量的数据,并且非常依赖于专用硬件。所有高速路由和数据包转发,包括加密(IPsec与SSL)和负载均衡,都依靠专用处理器。当一个网络设备被重新打包为一个虚拟机格式时,专用硬件就失效了,所有的这些任务现在都必须由通用的CPU执行,这有时候会导致性能的显着下降。
在虚拟设备中部署路由器、交换机或者防火墙可能会直接占用在其他地方可以更好利用的CPU时间--当然,除非您已经充实地预分配了服务器,并且还有大量闲置的CPU处理时间,否则在这种情况下您的规划将会出现严重的问题。
更糟糕的是,在服务器虚拟化解决方案中所使用的虚拟机管理软件也可以虚拟化网络接口。这意味着从网络设备到虚拟化硬件的每个I/O访问路径都会经过一个更高特权软件(虚拟机管理程序)进行环境转换,它可以使用大量的CPU时间来解码所需要做的事情,模拟想要的动作。同时,在虚拟机器之间传输的数据必须在它们的地址空间进行复制,这会给整个过程增加更多的延迟。
VMware的虚拟机管理程序具有的DVFilter API会带来一定的帮助,它支持一个可加载的内核模块,来检查和修改虚拟机管理程序(vNetwork Data Path Agent)内部或它与虚拟机(vNetwork Control Path Agent)之间传输的网络流量。可加载的内核模块能够显着地减少VM环境转换的开销。
虚拟网络设备发挥作用的位置
虚拟网络设备可以发挥作用的位置很多。例如,您可以将一个不依靠专用硬件而执行大量CPU密集处理的设备虚拟化。Web应用程序防火墙(WAF)和复杂的负载均衡器就是很好的例子(它们一般是作为Apache Web服务器或者作为Squid反向代理服务器的可加载模版实现,也就不足为奇了)。
同时,如果您正计划部署多租户云,那么将网络装置作为单击即可部署的乐高积木组件所获得的灵活性可能不仅仅可用于证明低于标准的性能。而如果您是按您用户实际使用的VM/CPU来计费的话,由于这种情况下您将不需要考虑他们所使用的CPU有多少,因此这一点会显得更为突出。
当防火墙和路由功能在每个虚拟机管理程序中作为虚拟交换机的一部分而实现时,虚拟化网络也会发挥作用。这可能会导致虚拟机之间出现最优的流量流(不管它们是否属于同一个IP子网),同时也能解决流量长号问题。可惜,似乎Cisco仍然是唯一使用Virtual Ethernet Module (VEM)功能来扩展VMware虚拟机管理程序交换机的供应商。虽然有许多的安全解决方案已经部署了VMsafe API,但是目前我所知道的网络设备(包括VMware的vShield Edge)仍依靠虚拟机来转发虚拟(或物理)LAN中的流量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论