I/O虚拟化是提升虚拟服务器性能的最终途径吗

      在虚拟服务器的绩效水平与物理服务器相同以前,硬件和软件供应商必须提供共享存储器和网络I/O,毕竟,I/O是数据中心的核心之一。对虚拟化I/O设备的开发是使虚拟服务器的效率和可靠性与当前物理服务器水平相当的关键。
  
      芯片级的虚拟化,如英特尔VT和AMD V已经可用于更高效的虚拟机,要让8路1U服务器和足够的I/O保证12个或更多虚拟机工作,从数量的角度来看仍是一项挑战。高带宽光纤如10 GbE,8GbFC, SAS和DDR 4X InfiniBand可以提供足够大的输送管道来供给任何规模的机架服务器,但是大部分适配器卡仍然只提供一个系统界面并只支持一种操作系统模式。
  
      当前,通过将软件和CPU联合,磁盘和网络I/O已经实现创建功能共享环境,但是I/O性能比实体服务器可达到的低。因此,I/O供应商的目的将是寻找一个有效分离全部新带宽以支持虚拟机的方法。
  
      现在,虚拟I/O的“看门人”是the PCI Special Interest Group(Peripheral Connect Interface Special Interest Group),PCI界面的国际标准机构。这一小组为PCIe系统界面进行I/O虚拟化已经一年多了,这一标准完全建立起来预计是在今年年末。如果PCI-SIG可以按计划执行,我们将能在2008年中看到I/O虚拟设备。
  
      在一个虚拟环境中进行I/O管理面临多种挑战,大多数现存I/O设备是不可共享的。内存分配,中断处理以及DMA选址需要持续赋值并在虚拟机中进行重新分配。当前由不同的供应商采用不同的方式来控制,最普遍的两种方式是设备模拟(device emulation)和I/O平行虚拟化(I/O paravirtualization)。VMware公司的ESX服务器平台是基于设备模拟模式的,而ESX虚拟机管理通过软件来模拟虚拟I/O设备,创建了一个普通的硬件平台。
  
      像世界上一切事情一样,设备模拟模式有利有弊。VMware公司采用制造一个稳定和标准I/O环境的方式,用一系列非常通用的虚拟界面,无论对操作系统的结合还是应用软件的结合,这些界面都很适用。其也是一个在物理系统间进行虚拟机转换的极佳环境。由于硬件平台的强制标准化,所有目标机器上的I/O设备都与原始资料相同。当然,主要的缺点在于所有的软件级仿真都要以降低性能为代价,并且虚拟机性能随着I/O利用率的提高而降低,因为软件的有效性比硬件要差。
  
      对于VMware的I/O设备的战略,最大的挑战或许来自于XenSource的开源和瘦系统管理程序技术。与VMM系统内的仿真I/O设备不同,Xen利用了分离驱动程序的方法,这样就减少了通过将对实体设备的管理由虚拟管理器转移到一台独立的设备驱动器虚拟机上而需要执行的I/O处理。在这种虚拟I/O支持模式下,一个独立设备驱动虚拟机(基于一台未更改的物理设备驱动器)构成了一个虚拟设备,这一虚拟设备提供了分离设备驱动器中终端驱动器的一半。
  
      终端驱动器连接到设备通道,这用于提供了所有物理服务器上运行的虚拟机的全球访问。接着,每个客户虚拟机??采用了分离驱动程序的前端可进入设备通道以分享对系统I/O设备的访问。尽管这听起来很复杂,Xen模型通过使驱动器承担大量工作而充分减少虚拟机管理的I/O工作负荷,以提供更强的I/O性能。分离驱动程序方法和通过能力构成了未来的一种模式;关键的挑战是,如何协调内存处理以保证I/O虚拟技术支持的直接存储器存储单元之间不起冲突。
  
      这一问题将从CPU这一层来处理,通过引进I/O内存管理单元(I/O Memory Management Unit)技术??这一技术计划将包含在英特尔和AMD的下一代处理器中。一个I/O内存管理单元的功能是使运行合理化并采用直接存储器来提高设备虚拟到物理处理转换的内存保护,并为共享I/O提供有效的中断转换。但是这也需要I/O供应商逐渐实现,同时要使进程合理化。
  
     进行I/O虚拟化的前提是通过重新设计I/O设备(如以太网网络接口卡,光纤通道主机总线适配器以及视频卡)来解决问题,提供多个基于硬件的虚拟界面,这些界面可由虚拟机自身独立处理。
  
      PCI-SIG的任务是诠释虚拟设备主机界面的种类并确定个别分配资源的指导方针,支持目标界面重排,使虚拟机获得直接存储器存储处理转换并提供对等网络直接存储器处理管理的控制。很明显,这些关键问题需要从PCI界面水平上进行标准化,但是这毫无价值,当前如Emulex和Qlogic公司的光纤通道主机总线适配器的最新产品都具有部分上述性能。假设没有行业标准,则这些系统是由提供商指定,因此如果你正在购买用于虚拟化的高性能I/O卡,则需要审核供应商以确定其可以随着I/O虚拟标准的更新进行升级。
  
      I/O虚拟化需时较长的一个原因是:PCI-SIG关注于创建一个可为单个和多个应用软件提供支持的标准。独立服务器是一个单个环境,只有此服务器上的虚拟机可进入I/O设备。多重环境的I/O虚拟化是为集群系统(如刀片服务器??多重物理服务器的虚拟机可能需要进入相同高带宽I/O设备)设计的。当然,这增加了标准化过程的复杂程度。
  
      多重性能对数据中心模式(可根据虚拟任务动态分配计算机、网络和存储器池)的有效利用尤其重要,多个运行于多重虚拟机(在机箱中装满刀片服务器的情况下)的计算机结点间分享高速I/O端口以平衡负荷并充分利用高速I/O光纤的最高效的模式。甚至在单重环境中,I/O虚拟化给单重I/O设备提供了给有独立QoS、安全性以及性能特点的每个虚拟机以独立的界面。
  
      很多供应商都认为I/O虚拟化技术是未来处理当前虚拟环境I/O低效问题方法,最初的益处是传送速度加快,如10GbE、InfiniBand以及光纤通道,当多重标准发布后,用于刀片系统的I/O虚拟化设备将激增。用于虚拟机的理想I/O虚拟环境将包括有I/O记忆管理单元的AMD?VT处理器和英特尔处理器、有PCI Express结构的主板、以及高灵活性和高性能的I/O虚拟化激活卡。