摘要:虚拟化技术最早出现在20世纪60年代的IBM大型机系统,在70年代的System 370系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Machine Moni-tor, VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例。 |
1、什么是虚拟化
虚拟化(Virtualization)技术最早出现在20世纪60年代的IBM大型机系统,在70年代的System 370系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Machine Moni-tor, VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例。
2、虚拟化技术的分类
这里的服务器虚拟化指的是通过虚拟化软件来实现计算机和服务器虚拟化,通过使用控制程序(Control Program,也被称为Virtual Machine Monitor或Hypervisor)隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统(Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如VMWARE的ESX产品)。
2.1全虚拟化((Full Virtualization)。
全虚拟化是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其它系统软件完全不做任何修改就可以在虚拟机中运行。操作系统与真实硬件之间的交互可以看成是通过一个预先规定的硬件接口进行的。全虚拟化VMM以完整模拟硬件的方式提供全部接口(同时还必须模拟特权指令的执行过程)。
2.2超虚拟化(Paravirtualization)。
这是一种修改Guest OS部分访问特权状态的代码以便直接与VMM交'_的技术。在超虚拟化虚拟机中,部分硬件接口以软件的形式提供给客户机操作系统,这可以通过Hypercall(VMM提供给Guest OS的直接调用,与系统调用类似)的方式来提供。
2.3部分虚拟化((Partial Virtualization)。
VMM只模拟部分底层硬件,因此客户机操作系统不做修改是无法在虚拟机中运行的,其它程序可能也需要进行修改。在历史上,部分虚拟化是通往全虚拟化道路上的重要里程碑。
2.4操作系统级虚拟化(Operating System Level Virtualiza-tian)。
在传统操作系统中,所有用户的进程本质上是在同一个操作系统的实例中运行,因此内核或应用程序的缺陷可能影响到其它进程。操作系统级虚拟化是一种在服务器操作系统中使用的轻量级的虚拟化技术,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,不同实例中的进程完全不了解对方的存在。
3.Linux虚拟化技术解决方案
3.1 Linux-VServer(操作系统级虚拟化)。
Linux-VServer是一个操作系统级虚拟化解决方案。Linux-VServer对Linux内核进行虚拟化,这样多个用户空间环境又称为Virtual Private server(VPS),就可以单独运行,而不需要互相了解。Linux-VServer通过修改Linux内核实现用户空间的隔离。
3.2 Xen(超虚拟化)。