KVM虚拟机是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。

KVM 虚拟机(Kernel-based Virtual Machine)是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于 Xen,其核心源码很少。KVM 已成为学术界的主流 VMM 之一。

KVM虚拟机是什么  第1张

KVM 的虚拟化需要硬件支持(如 Intel VT 技术或者 AMD V 技术)。是基于硬件的完全虚拟化。而 Xen 早期则是基于软件模拟的 Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但 Xen 本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件 VMware ESX 系列是基于软件模拟的 Full-Virtualization。

安装方法

一、安装准备

1.确定机器有 VT

终端输入命令: grep vmx /proc/cpuinfo (INTEL 芯片)

grep svm /proc/cpuinfo (AMD 芯片)

不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo

如果 flags: 里有 vmx 或者 svm 就说明支持 VT;如果没有任何的输出,说明你的 cpu 不支持,将无法成功安装 KVM 虚拟机。

2. 确保 BIOS 里开启 VT

Intel(R) Virtualization Tech [Enabled]

如有必要,还需在 BIOS 中开启 VT-d

3. 确保内核版本较新,支持 KVM

用 uname -r 查看内核版本,如果在 2.6.20 以下的 linux 版本,需升级内核。

二、安装 KVM

下面就 Ubuntu 和 CentOS 下安装使用 KVM 虚拟机做介绍:

Ubuntu 中用 guest 登陆,安装 KVM 的命令为:

sudo apt-get install kvm qemu qemu-kvm virt-manager kernel-package linux-source kqemu-source build-essential

kvm 安装成功后会有/dev/kvm,如果无需图形管理器,只需要安装前三个即可。

再来查看下 KVM 是否安装成功,执行:virsh -c qemu:///system list

如果输入结果像下面这样的,那么成功了:

Connecting to uri: qemu:///system

Id Name State

----------------------------------

注 1:CentOS 中安装时,先要选择 Selinux 为 enable,使用命令

#system-config-securitylevel-tui

可查看或修改 selinux 的状态。

注 2: CentOS 中用 root 登陆时则安装命令为:

yum install kvm kmod-kvm qemu

再装入 kvm 模块:modprobe kvm-intel (Intel 机器) 或者 modprobe kvm-amd (amd 机器)

注 3:可以用以下命令来检查是否装入 kvm 模块:

/sbin/lsmod | grep kvm

如果输出关于 kvm 版本的信息则已装入 kvm 模块

注 4: 安装好后,可使用 qemu-kvm 命令,输入该命令,如果系统显示未知的命令,可查看/usr/libexec 中是否有 qemu-kvm 可执行文件,如果有,将其拷贝到/bin 目录下即可。如果确实按照上面的步骤进行了,却在/bin,/usr/libexec,/usr/bin,/usr/sbin 里都找不到 qemu-kvm 可执行文件,可执行以下命令:

#yum provides "*/qemu-kvm"

注 5:安装新内核后,可能有部分软件版本过低,不兼容。比如 firefox 因版本过低,无法启动。

CentOS 下可使用如下命令更新该软件(以 firefox 为例):

#yum update firefox

三、在 KVM 下安装虚拟机

1.用 QEMU 创建磁盘镜像

sudo qemu-img create –f qcow windows.img 8G

注:在 CentOS 和新版 Qemu 中为:qemu-img create –f qcow2 windows.img 8G

2.使用 KVM 安装 Guest VM

光盘安装:

sudo kvm –localtime –cdrom /dev/cdrom -m 512 -boot d win2.img

硬盘安装:

sudo kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –clock –rtc –no-acpi

注:官方推荐使用 -no-acpi 参数,原因是 qemu/kvm 不太支持,可能造成 cpu 的占用偏高。

注 1:CentOS 下硬盘安装为 qemu-kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –no-acpi 即需要去掉了-clock rtc 选项,否则会出现无法初始化时钟。

注 2:CentOS quest mouse: export SDL_VIDEO_X11_DGAMOUSE=0 可解决 VM 中无法识别 USB 鼠标的问题。

注 3: 安装 win 7 时,不能使用-no-acpi 选项。

使用

KVM 启动 Guest

① sudo kvm –boot c –m 512

–hda windows.img

② sudo kvm -boot c

-m 512

-hda /home/lm/kvm/winxp.img

-localtime

-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no

-clock rtc

-soundhw es1370

-smp 2

注意:在 KVM-87 下,请去掉 df=h

-m 512 分配 512MB 的内存

-hda /home/lm/kvm/winxp.img

-localtime 使用本地时间(一定要加这个参数,不然虚拟机时间会有问题)

-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tapo,script=no

使用网络,并连接到一个存在的网络设备 tap0,注意 mac 地址一定要自己编一个,特别是如果你虚拟了多个系统并且要同时运行的话,不然就 MAC 冲突了,在 KVM-87 下去掉 df=h

-boot d 从光盘启动 (从镜像启动也是用这个。从硬盘启动则为 -boot c )

-smp 2 smp 处理器个数为 2 个,如果你是 4 核处理器,后面的数字就为 4

-clock rtc

使用 rtc 时钟(如果不开启此选项,WINXP 可能会很慢)