虚拟化技术介绍

Technorati 标签:

    虚拟化包含多个层面,比如硬件虚拟化(从底层的硬件平台直接支持软件环境,又称为平台虚拟化),操作系统虚拟化(在硬件之上,独立于操作同的一层软件成为hypervisor,hypervisor创建虚拟化平台,操作系统实例运行在这个平台上,这使得硬件平台可以被多个操作系统和应用所共享)。

clipboard

Linux虚拟化技术术语:

    模拟(emulation):将一个操作系统(host)的服务转换并显示成另一个操作系统(Guest)的过程。Host和Guest可以是不同的,比如,Host是x86平台,可以提供PowerPC的模拟,

47979fddf23f4f9fadf95e070a5b836a

Linux上两种轻便的模拟器:QEMU和Bochs 用于模拟虚拟化。

优点:可以在不同的host操作系统上和平台上运行不同的Guest操作系统

缺点:由于要模拟指令,导致效率比较低。

clipboard[1]

Linux上面的两个重要的虚拟化解决方案:

    Citrix的Xen,可以同时执行Type1和Type2型的hypervisor,Amazon的EC2就是采用Xen来进行服务器的虚拟化的。

    Linux Kernel Virtual Machine(KVM),由RedHat 开发,集成到主线内核中去了。

无论是完全虚拟化,还是半虚拟化,都需要底层硬件协助虚拟化(Intel的 VT 和AMD的SVM)

KVM工作原理:通过简单的加载一个内核模块,导出一个/dev/kvm的设备,同时将原有的Linux内核转换为一个系统管理程序(新内核)。KVM可以启动新内核的客户模式(旧内核有用户模式和内核模式)。有了/dev/kvm设备,VM使自己的地址空间独立于内核或者运行着的任何其他VM的地址空间。

    使用方法:安装KVM后,可以在用户空间启动客户操作系统,由kvm工具来操作kvm模块,通过/dev/kvm来加载客户操作系统。每个客户操作系统都是主机操作系统的一个单个进程。

clipboard[2]

内存使用KVM进行虚拟化,IO通过一个稍加修改的qemu进程进行虚拟化。KVM提供了客户模式,用来执行由KVM加载的操作系统中,非IO部分的代码。

客户操作系统有两个模式,客户模式(非IO操作)和用户模式(IO操作,由qemu提供。)

使用指南:

     KVM的内核配置在Device Driver上-->Virtualization,启动处理器对环境的支持,具有kvm和qemu的用户空间应用程序。

操作系统虚拟化

对操作系统本身进行虚拟化。操作系统提供一组用户空间的彼此隔离,每个应用被限制在每个用户空间里面。

clipboard[3]

参考链接:

Linux 虚拟化技术-IBM专栏

虚拟化相关介绍 http://xjsunjie.blog.51cto.com/999372/1322646

笑遍世界的KVM学习博客 :http://smilejay.com/

原文地址:https://www.cnblogs.com/cherishui/p/4313741.html