2024年6月14日发(作者:)

虚拟化方案之kvm简单教程 网络桥接方案绝对可用更新到kvm-87 研究了很久的

KVM感觉是我用过的最快的虚拟机。对比常用的虚拟机Vmware的功能全面设置简

单但其速度不是很好VirtualBox的效率虽然比Vmware高一些但是存在不少缺点感觉

在运行时比较抢CPU而且好像还没有对SMP的支持还没有研究出来如果有请告诉我

方法KVMKernel-based Virtual Machine基于内核的虚拟机是我用过的最快的虚拟机

需要CPU支持虚拟化技术并且在BIOS里打开虚拟化选项效率可达到物理机的80以

上对SMP的支持很好。所以现在强烈吐血卖命推荐KVM。 没有废话以下是在

UBUNTU 804 下的方法 获得KVM KVM的网站 下载最新的

解压 代码: tar -xzvf 需要用到的包 代码: sudo apt-get

install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config

libgnutls-dev libpci1 pciutils-dev 三步曲 代码: cd kvm-87 ./configure

--prefix/usr/local/kvm make sudo make install 安装好以后加载KVM模块 代码: sudo

modprobe kvm sudo modprobe kvm-intel //如果你的是INTEL处理器就用这个 sudo

modprobe kvm-amd //如果你的是AMD处理器就用这个 这样就装好了。 下面介绍配

置KVM桥接网络的方法 特别注意大部分不能桥接无线网卡。。。只能桥接PCI网

卡。。。。 安装桥接工具 代码: sudo apt-get install bridge-utils 安装创建TAP界面的

工具 代码: sudo apt-get install uml-utilities 编辑网络界面配置文件 代码: sudo vi

/etc/network/interfaces 根据你的情况加入以下内容 代码: auto eth0 iface eth0 inet

static 这里可以为DHCP address 192.168.1.2 netmask 255.255.255.0 gateway

192.168.1.1 auto tap0 iface tap0 inet manual up ifconfig IFACE 0.0.0.0 up down ifconfig

IFACE down tunctl_user lm lm是我的用户名在这里换为你的用户名 auto br0 iface

br0 inet static 当然这里也可以使用DHCP分配 bridge_ports eth0 tap0 address

192.168.1.3 netmask 255.255.255.0 network 192.168.1.1 broadcast 192.168.1.255

gateway 192.168.1.1 激活tap0和br0: //有些时候会不奏效但重启后就行了 代码: sudo

/sbin/ifup tap0 sudo /sbin/ifup br0 好了以后ifconfig看一下多了一个tap0和br0 br0上的

IP地址就是你本机的IP地址。 KVM的使用椒?KVM的使用方法具体可以参考 代码:

/usr/local/kvm/bin/qemu-system-x86_64 --help 下面具体举几个例子 创建虚拟磁盘用

qemu-img命令 代码: mkdir kvm cd kvm /usr/local/kvm/bin/qemu-img create -f qcow2

10G 创建虚拟机 代码: sudo /usr/local/kvm/bin/qemu-system-x86_64 -m

512 -hda /home/lm/kvm/ -localtime -net nicvlan0macaddr52-54-00-12-34-01

-net tapvlan0dfhifnametap0scriptno -boot d -cdrom /home/lm/iso/ -smp 2

-clock rtc -soundhw es1370 注意在KVM87下请去掉dfh 这里对各个参数说明一下

代码: -m 512 分配512MB的内存给GUEST OS 代码: -hda /home/lm/kvm/

使用虚拟磁盘的文件和路径 代码: -localtime 使用本地时间一定要加这个参数不然

虚拟机时间会有问题 代码: -net nicvlan0macaddr52-54-00-12-34-01 -net

tapvlan0dfhifnametaposcriptno 使用网络并连接到一个存在的网络设备tap0注意mac

地址一定要自己编一个特别是如果你虚拟了多个系统并且要同时运行的话不然就

MAC冲突了在KVM87下去掉dfh 代码: -boot d 从光盘启动 从硬盘启动则为 -boot

c 代码: -cdrom /home/lm/iso/ 使用的光盘镜像如果要使用物理光驱的话

就是 -cdrom /dev/cdrom 代码: -smp 2 smp处理器个数为2个如果你是4核处理器后面

的数字就为4如果不开启此选项则只能以单核模式运行 代码: -clock rtc 使用rtc时钟

如果不开启此选项WINXP可能会很慢 开始启动装系统了吧是不是非常的快如果你

机器可以的话大概在15分钟左右就把XP装好了。 启动昂玫男槟饣芗虻ド厦娴拿

罡牧礁霾问托?代码: sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -hda

/home/lm/kvm/ -localtime -net nicvlan0macaddr52-54-00-12-34-01 -net

tapvlan0dfhifnametap0scriptno -boot c -smp 2 -clock rtc -soundhw es1370 注意在

KVM87下请去掉上面参数中的dfh 然后在客户端里设置好IP地址就可以使用了但

是KVM的显卡能力不行可以通过rdesktop远程连接解决 代码: rdesktop

192.168.1.4:3389 -u administrator -p -g 1280x750 -D -r sound:local 分辨率可以自行

设定是不是比VirtualBox的无缝连接模式要爽 补充 如果同时运行多个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 lm是我

的用户名在这里换为你的用户名 auto tap2 iface tap2 inet manual up ifconfig IFACE

0.0.0.0 up down ifconfig IFACE down tunctl_user lm lm是我的用户名在这里换为你的

用户名 auto br0 iface br0 inet static 当然这里也可以使用DHCP分配 bridge_ports

eth0 tap0 tap1 tap2 address 192.168.1.3 netmask 255.255.255.0 network 192.168.1.1

broadcast 192.168.1.255 gateway 192.168.1.1 启动GUEST OS 代码: sudo

/usr/local/kvm/bin/qemu-system-x86_64 -m 512 -hda /home/lm/kvm/

-localtime -net nicvlan0macaddr52-54-00-12-34-01 -net tapvlan0dfhifnametap0scriptno

-boot c -smp 2 -clock rtc -soundhw es1370 注意在KVM86下请去掉参数中的dfh 把

ifnametap0换为你要tap1或者tap2就行了MAC也要改噢。。 要注意系统重启后要重

新加载kvm内核模块 代码: sudo modprobe kvm sudo modprobe kvm-amd //如果使用

AMD处理器 sudo modprobe kvm-intel //如果是用INTEL处理器 当然你也可以修改

系统相关设置在启动时自动加载该模块。 同理可以用此方法安装LINUX。装完了

可以对比一下是不是比VB和VM要爽得多呢 其他比如像USB连接问题可以参考论

坛里的帖子 但是现在KVM还有很多的缺点我还没有成功在KVM上安装SOLARIS

系统可能时钟不同步导致还有有些时候WINDOWS在KVM里会有系统时钟不同步

的问题会导致WINDOWS GUEST运行很慢。 我已经在我的系统里同时运行了4个

CentOS 4.6 1个winxp sp3 1个win2003 sp2 5个FreeBSD 7.0 速度太快了难以置信。 系

统配置为Athlon X2 5000 4G RAM 跑的Ubuntu 8.04.1 64bit 其实KVM的安装和使用

都很方便简单的大家要理解KVM各个参数的含义。最关键的就是KVM的网络桥接

的设置参考了网上很多的东西都没有效果最终还是参考了VIRTUALBOX的官方的

用户使用文档的网络桥接设置部分才成功的在这里大家要多看软件自身的文档会有

很大的帮助。VIRTUALBOX的网络桥接的设置也可以参考这里的网络桥接的方法。

KVM/QEMU桥接网络设置 配置kvm的网络有2种方法。其一默认方式为用户模式网

络Usermode Networking数据包由NAT方式通过主机的接口进行传送。其二使用桥接

方式Bridged Networking外部的机器可以直接联通到虚拟机就像联通到你的主机一

样。我着重介绍桥接方式并在ubuntu10.10上测试通过。主要参 考了

/community/KVM/Networking 。 第一用户模式 虚拟机可以

使用网络服务但局域网中其他机器包括宿主机无法连接它。比如它可以浏览网页但

外部机器不能访问架设在它里面的web服务器。 默认的虚拟机得到的ip空间为

10.0.2.0/24主机ip为10.0.2.2供虚拟机访问。你可以ssh到主机10.0.2.2可以用scp来拷贝

文件。 第二桥接模式 这种模式允许虚拟机就像一台独立的主机一样拥有网络。这

种模式需要网卡支持一般的有线网卡都支持绝大部分的无线网卡都不支持如

ipw3945我的T400上无线网卡 A 在主机上创建一个网络桥 1安装bridge-utils sudo

apt-get install bridge-utils 2我们将改变网络设置先停止网络 sudo invoke-rc.d

networking stop 如果是用远程连接进行设置我们需要将之后的设置完了然后重启网

络sudo invoke-rc.d networking restart如果中途有一步错误你将不能连接上去了。。 3

修改/etc/network/interfaces可以直接用下面的替换。 a 静态ip模式 auto lo iface lo

inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address

192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255

gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 b

DHCP模式 auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface

br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 4重启网络

sudo /etc/init.d/networking restart B 随机生成一个KVM的MAC地址

MACADDR52:54:dd if/dev/urandom count1 2/dev/null md5sum sed

s//..//..//..//.././/1:/2:/3:/4/ echo MACADDR 你也可以指定一个mac地址但要注意第一

个字节必须为偶数如0052等不能为奇数01否则会有不可预料的问题。因为奇数保留

为多播使用。如KVM可以接收ARP包并回复但这些回复会使其他机器迷惑。这是以

太网的规则而非KVM的问题。 我直接将网卡地址设置为

MACADDR32:32:32:32:32:32 C 将以前安装的虚拟机网络改为桥接方式或者安装新

的虚拟机使用桥接网络 我写了一个脚本文件 start USERIDwhoami

MACADDR32:32:32:32:32:32 modele1000e ifacesudo tunctl -b -u USERID kvm -net

nicvlan0macaddrMACADDR -net tapvlan0ifnameiface sudo tunctl -d iface end

使用iso文件安装winxp运行如下命令 sudo ./ -m 512 -hda

-cdrom

/home/software/zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x1

-boot d 运行安装完的虚拟机运行如下命令 sudo ./ -m 512

-hda -boot c