VT[0] – Kernel-based Virtual Machine

KVM (Kernel-based Virtual Machine, 不是鼠标 Keyboard Video Mouse 切换器)[1] 是Linux内核虚拟化的基础结构之一。她支持提供intel VT-x AMD-V 扩展的x86处理器的天然虚拟化,已经北移植到了S390, PPC, IA64, ARM的移植正在进行中。
从2.6.20起,KVM正式进入Linux当中,她支持多种Linux发行版,BSD,Solaris,Windows等,修改过的qemu还可以运行Mac OS X
。KVM同时也支持Linux和Windows客户机使用Virtio框架,包括虚拟网卡(virtio-nic)和磁盘I/O控制器(virtio-blk),内>存伸缩设备(virtio-balloon),VGA 图形接口(spice), 虚拟串口设备(virito-serial)等。

KVM本身并不执行模拟,而是用户空间程序(QEMU)使用/dev/kvm接口设置客户机的虚拟机地址空间,放置模拟I/O和映射图形显>示到真实主机。正对KVM的修改版本QEMU-KVM独立为一个upstream 项目[2],原来的QEMU [3]到0.10.0才开始支持KVM。

Virtual-Box的虚拟化是模拟技术,跟一些游戏模拟器一样,虚拟机的请求指令会在用户态模拟的硬件(cpu,内存等)上执行>
,这里的CPU可能与主机的体系结构不一样。KVM则是让虚拟机在host正式的cpu上执行,这里所虚拟的CPU是和正式物理CPU一样的。

Xen 的功劳就是把虚拟化技术带到了,开源社区里,从而吸引更多人参与到虚拟化的设计开发、应用、商业运作当中。KVM在xen之后实现,则是避免了xen设计上的一些缺陷,更加简单一些。有两种截然不同的设计思路,一种是把一个东西设计的足够简单,让它没有明显没有复杂问题;另一种是把一个东西设计的足够复杂,让他明显没有简单问题。

关于KVM的使用,最新kernel默认编译了kvm模块,你只需要把kvm 跟 kvm_intel /kvm_amd用modprobe加载就可以,然后就是安装qemu 或者 qemu-kvm,从软件源里应该能下载到。默认使用user-space的网络 (NAT), 如果要使用桥接网络(虚拟机和主机在局域网了里是对等关系),就需要在主机上设置网桥,这个bridge就是一个虚拟的交换机,虚拟机的‘网线‘插在上面。设置完成,需要用qemu-img 创建虚拟机镜像,相当于准备‘硬盘’。然后你可以从cdrom启动安装系统,或者从网络启动使用pxe+tftp安装系统。安装完,就可以正常启动使用虚拟机了,qemu的命令行很繁多,很多新特新都需要在命令行激活,像vhost,virtio-blk,virtio-net等。这里给出一个ubuntu上KVM的设置[4] ,其他系统基本类似,这里就不重复了。

[1] http://www.linux-kvm.org/
[2] http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary
[3] http://wiki.qemu.org/Main_Page
[4] http://forum.ubuntu.org.cn/viewtopic.php?t=154792

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.