虚拟化方案之--kvm简单教程

包括qemu-kvm的编译安装、网桥及tap配置、半虚拟化驱动(virtio)的使用方式等。

原文:http://forum.ubuntu.com.cn/viewtopic.php?f=65&t=154792

安装

网络配置

特别注意,大部分不能桥接无线网卡。。。只能桥接PCI网卡。。。。

如果同时运行多个GUEST OS ,则网络设置要改一下,在/etc/network/interfaces 里加几个tap界面就行了,每个GUEST OS单独使用一个TAP。

比如说现在要同时运行3个GUEST OS ,则配置文件如下:

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm             # lm是用户名,在这里换为你的用户名

auto tap1
iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm

auto tap2
iface tap2 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm

auto br0
iface br0 inet static       # 当然这里也可以使用DHCP分配
bridge_ports eth0 tap0 tap1 tap2
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1

KVM的使用方法

创建虚拟磁盘

mkdir kvm;cd kvm
/usr/local/kvm/bin/qemu-img create -f qcow2 winxp.img 10G

创建虚拟机

sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,cache=writeback \
-localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no \
-boot d -cdrom /home/lm/iso/winxp.iso -smp 2 -soundhw es1370

启动虚拟机

磁盘性能改进

现在已经找到了原来磁盘性能糟糕的原因,按照以往的方法是用 -hda disk.img 的方法来使用虚拟磁盘,现在版本更新以后时候 -drive file=/home/lm/kvm/winxp.img,cache=writeback 来使用虚拟磁盘,请广大使用KVM的用户注意这里的变化。

半虚拟化驱动

WIN系统需要下载的驱动程序:http://www.linux-kvm.com

在左手边有一个Windows Guest Drivers,下载cdrom image和floppy image

使用半虚拟化驱动(virtio)可以得到更好的磁盘性能和网络性能,使用半虚拟化驱动的时候,KVM的启动参数如下(安装WIN时):

sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,if=virtio,boot=on,cache=writeback \
-localtime -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no \
-boot d -cdrom /home/lm/iso/winxp.iso -fda=/disk/virtio-win-1.1.11-0.vfd -smp 2

# 在file=/home/lm/kvm/winxp.img,if=virtio,boot=on,cache=writeback中:if=virtio,通过virio来使用磁盘
# 在-net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01中:model=virtio,通过virtio来使用网络
# -fda=/disk/virtio-win-1.1.11-0.vfd: 驱动程序的软盘镜像,-fda为添加一个软盘驱动器

在安装WINDOWS的时候需要注意:在虚拟机启动从光盘引导启动WINDOWS安装的时候(最开始的时候)会提示你,按F6选择第三方驱动程序,按F6以后过几秒钟,它会出现选择第三方驱动的画面,按下S,会让你选择你要加载的第三方驱动。参考:http://www.linux-kvm.org/page/WindowsGuestDrivers/viostor/installation

在WINDOWS安装完成以后,还要安装virtio网络驱动程序,修改KVM启动参数:

sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,if=virtio,boot=on,cache=writeback \
-localtime -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no \
-boot c -cdrom /home/lm/iso/virtio-win-1.1.11-0.iso -smp 2

启动虚拟机,启动好WIN系统以后,在WIN中安装网卡驱动程序(在设备管理器中安装),驱动程序就在虚拟机的光驱中。有时在安装过程中会出现问题,那么去掉cache=writeback重新安装试试。

现在主流的LINUX系统的内核都集成了virtio驱动,所以在使用半虚拟化驱动安装LINUX的时候可以直接安装,无需加载virtio驱动来安装。

virt-manager

这时可以ifconfig看以下br0有没有出现你设定的IP地址,也可以用brctl show来看一下eth0有没有桥接到br0。

这里要使用超级用户身份启动,所以要在终端里使用sudo命令启动,如果直接点GNOME菜单中的虚拟系统管理器,那么只能链接到用户模式(除非你新建一个链接,使用SSH方式从本机链接到本机)。