The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.

2009年2月3日星期二

The difference between Xen & VMware

Virtualization is a hot topic these days. With hardware getting more and more capable, by means of cheap multi-core processors and gobs of memory, we can expect virtualization to become only more important in the coming years. Virtualization promises reduced costs for IT organizations, both hard (machines, power, cooling) and soft (admin and operations personnel).

There are lots of products on the market already, but two that draw the most attention are open source Xen & VMware family of products. VMware is the pioneer of the virtualization on the industry-standard hardware (having been founded in 1998) and is currently offering many inovative products, some of which are free to download and use. Xen, on the other side, is under heavy development, but is already promising unprecedented levels of performance.

With so many products on the market, sometime it's hard to distinguish among them. For the two above mentioned, Reza Rooholamini, the Director of the Global Solutions Engineering in Dell, has written very nice explanation of subtle architectural differences between them. He explains:

VMware ESX Server's architecture is based on direct execution (run user-level virtual machine code natively on the hardware) and binary translation (dynamically translate any privileged code). Since essentially a full x86 platform is exported to a virtual machine, ESX Server enables almost any OS that can execute on x86 to run inside a Virtual Machine (VM) without modification.

Xen's architecture uses a paravirtualization technique that modifies the guest OS so that it knows it's running in a virtualized environment. With hardware-assisted CPU virtualization technologies like Intel VT and AMD-V, Xen 3.x also supports unmodified or fully virtualized guest OSs. VMware has also made announcements regarding paravirtualization support in its products.

You can find full article here.

Also for more information about virtualization, this special report from InfoWorld [PDF] provides lots of useful information.

If you want to know more, especially about Xen, there are lots of additional whitepapers about virtualization on this site.

目前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等合作伙伴一起,我们承诺提供多种虚拟化技术供客户选择

没有评论: