目前Xen和VMware是市场上主流的两大虚拟化产品。现在我就来谈谈这两大产品背后的架构有什么区别,以及这一技术在未来会如何发展。VMware ESX服务器的架构是建立在直接执行(直接在硬件上上运行用户级的虚拟机编码)和二进制译码(对特权级别编码进行动态编译)的基础上的。从根本上说,它把一个完整的X86平台导出到虚拟机上,ESX服务器可以使大多数能在X86上执行的操作系统都能在虚拟机上运行,而不需要进行任何修改。Xen的架构中使用了一种叫Para虚拟化技术 (Para virtualization) ,对虚拟出来的客户操作系统(Guest OS)进行修改,使它知道它是在虚拟环境下运行。
有了基于硬件的CPU虚拟化技术例如Intel VT 和AMD-V,Xen 3.x 也支持未加修改或完全虚拟化的客户机操作系统。VMware也宣布其产品支持Para虚拟化技术。
那么这两种方式有什么不同呢?最大的不同就是对输入/输出(I/O)设备的处理。虚拟机I/O端口和每个物理I/O端口设备之间如何路由在很大程度上影响虚拟平台架构的性能、便携性、可持续性、和稳定性。Xen采用的是分离驱动模式,真实驱动存在于一个中间层, 这个中间层叫服务虚拟机,其他虚拟机上的特殊驱动通过这个服务虚拟机进行通讯。这种方法能提供很好的性能,但是对于闭源和传统操作系统支持有限。在ESX中,虚拟机的虚拟设备驱动与ESX内核里的物理设备驱动直接相互连接。ESX虚拟机可以为其虚拟设备使用现成的(off-the-shelf)驱动。这不仅能提供高性能,还能提供更广泛的操作系统支持。然而在这个模型里,新的设备驱动必须要导入到ESX内核中(在以前的一个帖子中我对此做过讨论)。为了解决I/O虚拟化的平衡问题和复杂化问题,戴尔与英特尔、AMD这样的合作伙伴以及外设硬件供应商们一起,在芯片组和I/O设备中引入了虚拟化支持。企业级虚拟化解决方案的另外一个重要部分就是其管理。戴尔OpenManage这样的产品附送VMware Virtual Center,P2V 和VM Importer,提供了整套工具,能有效进行部署,监控,操作自动化,以及对虚拟IT数据中心进行管理。Novell 和Red Hat都在他们的操作系统中整合了对Xen平台的管理,方法是运用像YaST和Anaconda这样的安装和配置工具以及Virtual Machine Manager这样的管理工具。正如Winston Bumpus在此前的一个帖子中提到的,戴尔积极参与了多个标准团体。在这方面,我们与Distributed Management Task Force (DMTF) 的SVPC工作组一起合作,推动虚拟平台管理界面的标准化。
现在ESX和Xen都有自己的优势和不足。最终该怎么选,要看客户对自己的虚拟化解决方案有何要求了。与VMware, Red Hat, Novell, Intel 和AMD等合作伙伴一起,我们承诺提供多种虚拟化技术供客户选择