原文 http://yp.oss.org.cn/software/show_resource.php?resource_id=171
linux 2.6.20内核包含一个全新的虚拟技术: KVM, 全称为基于内核的虚拟机. 它很友好, 稳定和高性能, 虽然还没有正式发布. 本文从理论和实践介绍KVM的原理, 并给出一些简单的评测报告.
原理简介
当前存在几种不同的虚拟技术. 一种是半虚拟化技术(Paravirtualization), 客户操作系统需做一些修改.
另一种是全虚拟化技术(Full Virtualization), 客户操作系统无需任何修改. 我们知道全虚拟化技术是以降低性能来提高兼容性,
因为在虚拟化环境中如果没有客户操作系统的协助, 系统将很难达到较好的性能. 另一方面, 近来新处理器的开发缩短了这方面的差距. 最新的Intel VT
(虚拟技术, Virtualization Technology)和AMD SVM
(安全虚拟机, Secure Virtual Machine)从硬件上支持了虚拟技术, 试图取代半虚拟化技术. KVM在标准的Linux内核中增加了虚拟技术, 从而我们可以通过(或将)优化的内核来使用虚拟技术.
在KVM模型中, 每一个虚拟机都是一个由Linux调度程序管理的标准进程. 一个普通的Linux进程有两种运行模式: 内核和用户. KVM增加了第三种模式: 客户模式(有自己的内核和用户模式.)
KVM由两个部分组成:
. 一个是管理虚拟硬件的设备驱动, 该驱动使用字符串设备/dev/kvm做为管理接口.
. 另一个是模拟PC硬件的用户空间组件, 这是一个稍做修改的qemu进程.
QEMU
是一个著名的处理器模拟程序, 由法国人Fabrice Bellard
开发.
KVM实践: 使用Windows XP做为客户机
KVM仍在开发当中, 我决定来做一些实验. 我使用了2.6.20-rc2内核和现成的Debian软件包: kvm
和qemu
. 重新编译内核和安装软件包后, 一切准备就绪.
安装客户机的操作系统非常简单:
qemu-img create hda.img -f qcow 6G
kvm -no-acpi -m 256 -cdrom winxpsp2.iso -hda hda.img -boot d
第一步是创建一个虚拟盘(主机系统上的一个普通文件). 我选择了QEMU写时拷贝格式, 文件将随着内容的增多而增大,
这样不至于浪费磁盘空间, 虚拟盘最大为6GB. 虚拟盘准备好后, 开始系统安装. 实际上, 我已经预先做了一项工作(非必须的),
从Windows XP系统安装光盘拷贝所有数据到磁盘上, 简单一个命令 cp /dev/cdrom image.iso).
我使用了-no-acpi参数, 因为QEMU只是实验性的支持ACPI, 在Windows XP系统安装过程中Windows
Installer(安装程序)会存在一些问题.
我想没有比这还更简单的安装. 很快就完成了windows的安装. 有人也许会问我, 什么选择windows呢? 好的,
现在我没有理由来选择在linux系统上运行linux虚拟机. 而且, 我也很想做一些Windows虚拟机的测试. 现在你不用安装双启动模式了,
你随时都可以简单启动widnows虚拟机. 然后比如在windows虚拟机中打开IE7来查看本文..
一些基准测试
好的, Windows XP的安装速度很快, 接下来我有更多的时间进行一些基准测试. 提示, 测试工作是部分性的, 非标准测试.
目的是从实验来理解KVM的一些特性. 另外我提供了几个有意思的实例, 做起来也很容易. 一旦完成Windows系统的安装,
Windows客户机甚至可以在未经修改的QEMU上运行. 而且我重新编译和安装了kqemu,
kqemu是一个由qemu原作者开发的QEMU加速模块(QEMU accelerator module), 可惜它是一个闭源软件. 最后,
我选择了两个测试软件: PCMark2002
和Super PI
(版本 1.1e). 注意测试硬件的处理器是Intel E6600.
我认为kqemu和KVM比单独的QEMU模拟器的性能要强很多. 而且可以看到kqemu只比kvm好一点点. 但是我想kvm的性能会不断改进的, 毕竟比起其它虚拟技术, kvm还很年轻.
运行Super PI的结果是: KVM速度最快, 相当于原始(单机运行)速度(在实际硬件上运行, 无任何虚拟机软件)的84%.
而QEMU的速度是最慢的, 上面图表没有显示实际数据, 我把所有的结果列出来(数值越低越快, 每秒处理100万条指令): QEMU: 492.5
sec, kqemu: 28.5 sec, KVM: 25.5 sec, native: 21.5 sec.
结论
KVM仍在开发当中, 它向我们展示了其真实的潜力. 我想接下来我们会看到更多好的有关kvm的新闻.
届时当kvm集成到Linux官方内核当中, 它将变成一个日用品. 而且kvm不仅会应用到数据中心和服务器系统加固上,
而且也会应用到Linux桌面上. 非常感谢QEMU和KVM开发人员所做的工作.
参考:
Finally user-friendly virtualization for Linux
KVM: Kernel-based Virtual Machine for Linux
QEMU: open souce processor emulator
QEMU Accelerator Module
KVM: the original announcement on the linux-kernel list
Source URL: http://blog.zhaoke.com/43.html
--------------------------------------------------
分享到:
相关推荐
KVM虚拟化高级课程包括了KVM课程概述,KVM虚拟网络高级特性,KVM共享存储的动态迁移,Linux HA群集体系结构,基于NFS的KVM群集构建,基于iSCSI的KVM群集构建,基于DRBD的KVM群集构建,P2V、V2V迁移,KVM嵌套虚拟化,...
Linux内核虚拟化KVM详解
KVM虚拟化技术实-战与原理解析
linux vps新手入门教程:kvm架构通过vnc安装Debian系统.docx
kvm是linux内核虚拟化,文中指出了kvm虚拟化环境的安装搭建及使用工具。
虚拟化技术KVM
介绍Linux下开源虚拟机KVM的虚拟化架构
kvm虚拟化 基本的搭建环境和远程管理 这里提供了一种方式
基于云计算虚拟化技术KVM架构的高可用方案探讨.pdf
3.1: KVM构建及管理 、 virsh控制工具 、 镜像管理 、 虚拟机快建技术(1).docx
Linux_KVM虚拟化源代码分析文档
KVM (Kernel-based Virtual Machine,基于内核的虚拟机) 是Linux下 x86硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko提供和虚拟化核心架构和处理器规范模块。使用KVM可允许多个包括Linux和...
linux本身已经有kvm模块,想尝试自己安装的可以将 kvm虚拟化系统模块重新在linux上集成
kvm虚拟化技术:实战与原理解析 pdf扫描 图书详细介绍了kvm虚拟化技术的应用场景与原理
XEN虚拟化技术和KVM虚拟化技术
本书适合对Linux下虚拟机或云计算基础技术感兴趣的读者,包括Linux运维工程师、KVM开发者、云平台开发者、虚拟化方案决策者、KVM的用户以及其他对KVM虚拟机感兴趣的计算机爱好者。
Linux环境下KVM虚拟化平台的构建
目前主流的虚拟化技术主要有:KVM、Xen、VMware、VirtualBox,虚拟化技术也越来越广泛的应用在企业中,本篇介绍KVM虚拟化集群的搭建
Linux KVM的虚拟化性能.pdf