虚拟化技术:Xen,Hyper-V,KVM,VMware,OpenStack

一、虚拟化

1.1 什么是虚拟化

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

1.2 什么是虚拟化技术

虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。

1.3 虚拟化的类型

1.3.1 全虚拟化:IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX

全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机。

全虚拟化的虚拟平台中,GuestOS并不知道自己是一台虚拟机,它会认为自己就是运行在计算机物理硬件设备上的HostOS。因为全虚拟化的VMM会将一个OS所能够操作的CPU、内存、外设等物理设备逻辑抽象成为虚拟CPU、虚拟内存、虚拟外设等虚拟设备后,再交由GuestOS来操作使用。这样的GuestOS会将底层硬件平台视为自己所有的,但是实际上,这些都是VMM为GuestOS制造了这种假象。

1.3.2 半虚拟化:Xen,Hyper-V

半虚拟化是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。半虚拟化需要guest操作系统做一些修改,使guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能。

二、虚拟化技术

2.1 Xen

  • 免费
  • 功能强大,支持Linux的各种发行版本
  • 通常是在现有Linux操作系统上安装,是一种半虚拟化的安装方式
  • XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系统相互独立,依赖于 service domains 来完成一些功能;
  • Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要素,硬件支持依赖于 VMware 创建的驱动;
  • KVM 与 XEN 方式不同,KVM 是以 Linux 内核作为管理工具得。

2.2 Hyper-V

  • hyper-v比较特别,是微软windows 2008 R2附带的虚拟化组件,如果你买了足够的授权,hyper-v(包括hyper-v 2008 core)都可以免费使用。
  • Hyper-V 是基于 XEN 管理栈的修改;
  • Hyper-V 是微软提出的一种系统管理程序虚拟化技术,采用微内核的架构,兼顾了安全性和性能的要求。

2.3 XenServer 

Citrix XenServer是一种全面而易于管理的服务器虚拟化平台,基于强大的 Xen Hypervisor 程序之上。

  • 同ESXi相似,安装方便,有Windows端的图形化远程管理界面

Citrix已经将XenServer开源,普通用户可以永久免费使用。

2.4 KVM(Kernel-based Virtual Machine)

  • 后起之秀,主流的Linux在2.6内核之后都包含了kvm
  • 与Linux内核集成的,所以速度很快
  • 每个虚拟机都是一个常规的 Linux 进程,通过 Linux 调度程序进行调度。 

KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。

2.5 VMware ESXi (vSphere)

  • 鼎鼎有名的VMware公司的虚拟化平台,安装简单,有Windows端的统一管理平台vSphere。

2.6 VMWare

是一个“虚拟PC”虚拟机管理管理软件。它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。

2.7 OpenStack

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它不是一个软件,而是由几个主要的组件组合起来完成一些具体的工作。

发表回复