专家解析:软件与硬件虚拟化优劣分析虚拟化

2010-08-06    来源:IT专家网    
虚拟化技术是指计算元件在虚拟的设备上而不是真实的设备上进行。虚拟化在企业中的应用已经非常普遍,其作用也被广大用户所认同。不过这些都不是本篇文中要讨论的重点。在本文

  虚拟化技术是指计算元件在虚拟的设备上而不是真实的设备上进行。虚拟化在企业中的应用已经非常普遍,其作用也被广大用户所认同。不过这些都不是本篇文中要讨论的重点。在本文中笔者要给大家分析的是软件虚拟化与硬件虚拟化之间的差异。了解这个内容,有利于各位读者选购合适自己的虚拟化方案。

  一、 虚拟化技术与多任务等类似技术的差异。

  虚拟化技术根据其实现方式的不同,可以分为软件虚拟化和硬件虚拟化。虽然这两种方式都可以可以实现虚拟化应用,但是他们还是有很大的不同。笔者认为,企业系统管理员有必要了解这些差异。因为这有助于管理员判断到底是采用软件虚拟化方案还是采用硬件虚拟化方案。

  不够在了解这些差异之前,笔者认为有必要先给大家强调一下虚拟化技术与多任务等相关技术之间的差异。因为这是了解硬件虚拟化方案与软件虚拟化方案之间差异的基础。

  虚拟化技术在外在表现形式上,与多任务技术或者超线程技术比较相似。但是其内在是完全不同的。多任务是指在一个操作系统中多个程序可以同时运行,如Word应用程序与MP3播放器可以同时运行,即是在应用程序的级别,而不是操作系统的级别。也就是说如果需要同时运行多个操作系统,那么多任务技术就无法完成。而虚拟化技术则是在操作系统级别的,即可以让计算机同时运行多个操作系统,而且每个操作系统中又可以运行多个应用程序(这主要涉及到多任务技术的应用)。这就是虚拟化技术与多任务技术的差异。前者是操作系统级别,后者是某个操作系统上的应用程序级别。

  超线程技术之的是单CPU模拟双CPU来平衡应用程序的运行性能。在超线程模式下,这两个模拟出来的COU是不能够分离的,只能够相互之间协同工作。而通过虚拟化技术,如虚拟化多个操作系统同时运行,此时每一个操作系统都运行在一个虚拟的CPU或者虚拟主机上。虚拟出来的CPU或者主机相对独立,互不干涉。而不是像多线程技术那样,需要相互协作。

  可见虚拟化技术与多任务技术和超线程技术在本质上有很大的差异。这也真是我们为什么选择虚拟化解决方案而不选择超线程或者多任务技术的原因。

  二、 软件虚拟化解决方案的优劣分析。

  软件虚拟化解决方案是纯软件的解决方案。一般我们所说的虚拟机就是一种纯软件的解决方案。在纯软件虚拟化解决方案中,客户操作系统在大部分情况下都是通过虚拟机监视器来与硬件进行通信,然后由虚拟机监视器来决定对系统上所有虚拟机的访问。

  纯软件虚拟机的解决方案优势是比较明显的。如成本比较低廉、部属方便、管理维护简单等等。不过这种解决方案,也有很大的劣势。而真是这些劣势决定了纯软件虚拟化解决方案在部属时会受到比较的限制。具体的来说,笔者认为管理员对于以下这些劣势要心中有数。

  第一个劣势是会增加额外的开销。在纯软件虚拟化解决方案中,虚拟机监视器是部属在操作系统上的。也就是说,此时对于操作系统来说,虚拟机监视器跟普通的应用程序是一样的。在这种情况下,在虚拟机监视器上再安装一个操作系统,那么软件与硬件的通信会怎么处理呢?举一个简单的例子。在一台主机上安装的操作系统是Windows2003,然后部属了一个虚拟机。在虚拟机上又安装了一个XP的操作系统。然后用户使用XP操作系统的MP3播放器播放音乐。在这种情况下,XP操作系统的数据要转发给虚拟机监视器,然后虚拟机监视器再将数据转饭给2003操作系统。显然,在这个转发的过程中,就多了一道额外的二进制转换的过程。而这个转换的过程必然会增加系统的负载性和硬件资源的额外开销,从而减低应用的性能。在实际工作中,一般不会在服务器上采用纯软件的虚拟化解决方案,也真是出于这个原因。这个方案应用的最广泛的地方是在普通的主机上。如现在要给用户进行培训或者测试环境中,就可以在虚拟化的操作系统上进行相关的设置等等。因为此时对于性能的要求并不是很高。

  第二个劣势是客户操作系统的支持受到虚拟机环境的限制。这是什么意思呢?举一个简单的例子。现在有两个操作系统,分别是32位的与64位的。假设64位的操作系统必须安装在支持64为操作系统的硬件上,如64位的CPU上。此时即使采用虚拟化技术,也不能够安装64位的操作系统。因为硬件不支持。可见,在纯软件虚拟化解决方案中,其相关应用并不能够突破系统本身的硬件设置。在实际工作中,这是很要命的一个缺陷。如现在管理员需要测试某个应用程序在64位操作系统上的稳定性。但是硬件本身不支持64位操作系统,此时虚拟化技术也无能为力。管理员可能需要重新购买一台主机来进行测试。

1
3