Kernel-based Virtual Machine (1)
这是wiki对于KVM的定义. http://en.wikipedia.org/wiki/Kernel-based_Virtual_MachineKernel-based Virtual Machine (KVM) 是Linux 核心的架构下的一部份,目前KVM 支援native virtualization 的架构.native virtualization (也有人称为hardware
这是wiki对于KVM的定义.
http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
Kernel-based Virtual Machine (KVM) 是Linux 核心的架构下的一部份,目前KVM 支援native virtualization 的架构.native virtualization (也有人称为hardware-assisted virtualization) 是由CPU 来支援的虚拟化技术Intel 叫做VT (Virtualization Technology) 或者AMD 的V Pacifica.在Linux 这两种CPU 透过两个不同的module 来支援KVM (INTEL: kvm-intel.ko AMD: kvm-amd.ko).在RHEL5 update4 会自动依据/proc /cpuinfo 的flag 来选择出适合的CPU 模组,这script 档储存在 /etc/sysconfig/modules/kvm.modules
对于paravirtualization 的支援,目前像是他同时支援Linux 和Windows 的Paravirtual network 装置驱动程式,以及balloon (关于记忆体的技术VMM - virtual memory manager) 还针对Linux Guest 的CPU 做最佳化.
目前KVM 只能运作在i386 / x86_64 的CPU 系统上,像是s390,[3] PowerPC,[4] and IA64 都还在开发阶段.Linux 的核心小组在Linux 2.6.20 (February 2007) 版本就将KVM 包括进去.至于Linux 的兄弟FreeBSD 也支援KVM 以Kernel module 方式来支援.
最重要的Guest OS支援基本上是囊阔市面上的作业系统了,虽然有一些我连听都没听过都有支援.像是Linux, BSD, Solaris, Windows, Haiku, ReactOS和AROS Research Operating System连Mac OS X都在特定版本的KVM有支援.可以上KVM的关网查询Guest OS的支援. http://www.linux-kvm.org/page/Guest_Support_Status
不过光靠KVM还无法将虚拟化的工作完成,还须配合QEMU做一些装置模拟以及下列的GNU的软体.
KVM kernel module: GPL v2
KVM user module: LGPL v2
QEMU virtual CPU core library (libqemu.a)和QEMU PC system emulator: LGPL
Linux user mode QEMU emulator: GPL
BIOS files (bios.bin, vgabios.bin and vgabios-cirrus.bin): LGPL v2 or later
KVM 目前是由一家叫做Qumranet 公司的Avi Kivity 来做维护,不过目前已转移给Red Hat 来使用所以在未来RHEL 的版本都会以KVM 为主.
不过让我比较好奇的是KVM 只是Linux 核心的一部份,那就不会像是传统使用VMM(Virtual machine monitor) 来管理分配Guest 的资源.那是由谁来管理分配,那Linux 的Kernel 也会被安置在Root mode 吗??看一下KVM 的运作原理.
但是透 Intel (VT) and AMD (AMD-V) 的支援,Linux 的核心(就是VMM)再加上KVM 的功能,就可以直接实现虚拟化的环境,其实KVM 的运作方式和Xen 的Full virtualization 类似,除了原本的Kernel 和User 模式外还多了一个Guest mode 模式(这模式可以让Guest OS 自己拥有Kernel 和User 模式),每一个Virtual Machine 对Linux 而言就如同一个 Process(行程).
更多推荐
所有评论(0)