天天看点

虚拟化简介虚拟化简介

虚拟化简介

虚拟化概念

虚拟化技术是指在一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个宿主操作系统(Host Operating System,简称:Host OS)下运行的一种技术。客操作系统也称为客户机,宿主操作系统也称为宿主机。

虚拟化示意图

虚拟化类型

虚拟化的类型总的来说,从实现的方式可以分为两个类型,分别为硬件虚拟化和软件虚拟化。从虚拟化的程度,可以分为完全虚拟化和准虚拟化,准虚拟化也称为半虚拟化。下面将针对每一种方式做一个简单的介绍:

硬件虚拟化

物理平台本身提供了对特殊指令的截获和重定向的硬件支持。虚拟化对用户隐藏了真实的计算机硬件,表现出另一个抽象计算平台。目前主要有两种:intel VT和AMD-V。

intel VT:英特尔虚拟化技术(IVT,Intel Virtualization Technology),由英特尔开发的一种虚拟化技术,利用IVT可以对在系统上的客操作系统,通过虚拟机查看器(VMM,Virtual Machine Monitor)来虚拟一套硬件设备,以供客操作系统使用。

AMD-V:AMD虚拟化(AMD Virtualization),AMD公司推出了支持虚拟化的硬件辅助技术,用于帮助VMM进行虚拟化,从而有效降低了虚拟化的开销,提高性能。

软件虚拟化

就是用纯软件的方法在现有的物理平台上(往往并不支持硬件虚拟化)实现对物理平台访问的截获和模拟。

完全虚拟化

全虚拟化为客户机提供了完整的虚拟X86 平台,包括处理器、内存和外设,支持运行任何理论上可在真实物理平台上运行的操作系统,为虚拟机的配置提供了最大程度的灵活性。

半虚拟化

改动客户操作系统,使它以为自己运行在虚拟环境下,能够与虚拟机监控机协同工作。这种方法就叫准虚拟化(para-virtualization),也叫半虚拟化。

区别点:全虚拟化对主机性能影响较,不需要对客户机操作系统做任何修改即可正常运行任何非虚拟化环境中已存在基于X86 平台的操作系统和软件,是全虚拟化无可比拟的优势。半虚拟化对主机性能影响较小。

虚拟化管理程序(Hypervisor)

Hypervisor,又称虚拟机器监视器(英语:virtual machine monitor,缩写为 VMM),是用来建立与执行虚拟机器的软件、固件或硬件。hypervisor提供虚拟的作业平台来执行客体操作系统(guest operating systems),负责管理其他客体操作系统的执行阶段;这些客体操作系统,共同分享虚拟化后的硬件资源。

虚拟化解决方案

虚拟化的解决方案有很多种,Xen和KVM,是开源免费的虚拟化件;WMware是付费的虚拟化软件;Hyper-V微软的收费虚拟化解决方案;Docker是一种容器技术,属于一种轻量级虚拟化解决方案。下面简单介绍一下主流的KVM和Xen。

KVM:基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为 KVM),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。

Xen是一个开放源代码虚拟机监视器,由XenProject开发。Xen 在系统硬件与虚拟机之间插入一个虚拟化层,将系统硬件转换为一个逻辑计算资源池,Xen 可将其中的资源动态地分配给任何操作系统或应用程序。在虚拟机中运行的操作系统能够与虚拟资源交互,就好像它们是物理资源一样。

Xen的实现方法是运行支持Xen功能的kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。Xen的缺点是如果你需要更新Xen的版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动。

相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。

Xen的半虚拟化:Xen通过半虚拟化的技术获得高效能的表现(较少的效能损失,典型的情况下大约损失2%,在最糟的情况下会有8%的效能耗损),但是这要求虚拟机使用经过修改的客户端操作系统。

Xen的完全虚拟化:Intel为Xen贡献了补丁以支持其VT-X架构扩展,而AMD则进行修改以支持其AMD-V架构扩展。如果系统处理器支持虚拟硬件扩展(Intel和AMD对本地支持虚拟化的扩展),这项技术将允许未经修改的操作系统运行在Xen虚拟机中。

继续阅读