服务器虚拟化通常关注于对CPU或内存资源进行抽象及分配,但服务器I/O仍旧面临瓶颈,这可能会限制服务器的存储及网络流量——最终限制服务器整合的最高水平。CPU以及hypervisor的最新技术使对服务器的I/O子系统进行更近一步的抽象成为了可能,和以往相比,服务器能够更好地共享I/O资源,处理更多的工作负载产生的I/O流量。但最新的硬件辅助I/O虚拟化技术并非信手拈来。
什么是I/O虚拟化?其如何使虚拟服务器或者工作负载受益?
虚拟化是一个软件层,将计算负载从底层的计算硬件中抽象出来。hypervisor将服务器的物理资源转换为虚拟资源,通过部署或调整虚拟资源以满足所有工作负载对计算资源的需求,实现虚拟服务器支持的工作负载的最大化。该工作机制非常适用于CPU和内存资源。
然而,服务器I/O在带宽方面一直面临着问题。例如,服务器的单个千兆以太网端口肯定能够支持单个应用,但是当被分割为10个、15个或者更多的服务器负载时(这其中包括网络、存储以及服务器之间的流量)可能就不够用了。当遇到I/O瓶颈时,CPU会空闲下来等待数据,计算效率会大大降低——I/O瓶颈最终会打败虚拟化所带来的资源使用效率的提升。
将虚拟化扩展至I/O子系统,在工作负载、存储以及服务器之间动态共享带宽,能够最大化地利用网络接口。通过缓解服务器I/O潜在的性能瓶颈,服务器能够承载更多的工作负载并提升其性能。
尽管I/O虚拟化一个潜在的重要优势就是提高整合率或者提升性能,但IT专业人员应该考虑管理简化所带来的其他优势。例如,I/O虚拟化使I/O管理变得更简单。正如虚拟化使得CPU以及内存配置变得更简单,I/O虚拟化简化了网卡以及HBA卡的配置、提升了服务器硬件的使用效率。管理变化出现在hypervisor而不是单个硬件设备上,管理I/O活动所需要的时间更少了。提升I/O硬件利用率同样能够降低I/O硬件成本,因为需要的网卡或者HBA卡变少了。对多种类型的I/O流量使用情况(例如应用、存储)进行改进,使得更多的流量能够在更少的网线上传输,降低了网络的复杂性。
I/O虚拟化对系统或者处理器的要求有哪些?如何启用?
一般来说,I/O虚拟化需要本地处理器提供硬件支持。这包括采用VT-c以及VT-d技术对基本的VT-x虚拟化功能进行补充的Intel VT处理器。AMD处理器使用AMD-V基线虚拟化以及启用AMD-Vi的芯片提供了类似的功能。
例如,VT-c使用虚拟机设备队列在物理网卡上卸载I/O任务,使虚拟I/O的连接速度接近于物理网卡固有的速度。VT-c还允许虚拟机使用单根I/O虚拟化直接访问网络。支持VT-d技术的处理器芯片进行I/O设备的分配并隔离共享I/O资源的工作负载。采用上述技术减少了与hypervisor以及虚拟机监控相关的处理开销,Intel 至强5500及后续的服务器处理器通常都具备这一特性。
尽管处理器及芯片支持对服务器虚拟化至关重要,但更为关键的是在服务器的BIOS设置中启用该特性。例如,基于Intel的服务器可能会提供大量可以通过BIOS启用或禁用的虚拟化特性。这些BIOS特性包括主虚拟机比如“启用Intel虚拟化技术”以及子特性的集合比如“启用Intel VT-d”或者“启用AMD IOMMU”来启用对处理器I/O虚拟化的支持。
在大多数情况下,BIOS默认启用了I/O虚拟化设置,但是IT员工应该检查所有服务器的虚拟化设置以确定系统配置合理。否则,系统硬件可能无法支持I/O虚拟化的高级功能(虚拟工作负载将会降低系统的总体性能)。
第二部分我们介绍I/O虚拟化存在的问题与不足。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
如何最大化利用I/O虚拟化?
I/O虚拟化使IT行业最大限度地受益于服务器虚拟化、流线供应,而且减少了网络接口卡(NIC)和使用 […]
-
如何在虚拟服务器环境部署SR-IOV?
SR-IOV(Single-root I/O virtualization,单根I/O虚拟化)实际上是一种实现I/O和连接虚拟化的核心技术,如何在虚拟服务器环境当中进行部署呢?
-
提高服务器工作负载性能:网络虚拟化
首先虚拟化是一个软件技术,是安装在工作负载和底层硬件之间的一个抽象层。网络连接虚拟化是如何提高服务器工作负载性能的呢?一些底层的技术到底是什么哪?
-
I/O虚拟化的问题与不足分析
需要说明的是I/O虚拟化并不是一个新概念——hypervisor已经在软件中对I/O虚拟化进行了处理。I/O虚拟化存在问题或不足吗?