KVM下桥接的设置(ubuntu)

前天把KVM装上了,但是发现其网络链接方式为NAT模式,很是不爽,因为本人经常要打站,在几个不同的虚拟机之间要进行测试,所以今天研究了一下其桥接的模式。

KVM的安装详见:

http://blog.db89.org/kvm-virtual-machine/

环境:Ubuntu12.04+KVM

首先:要停止网络服务

其次:修改网络配置文件

如果想手动设置ip等请将以下代码复制到编辑的文件中,注意:IP等设置自己按照需要修改。

如果想自动从DHCP获取,请将一下代码复制到编辑的文件中。

最后:重新启动网络服务便可

网卡的配置完成了,还要对虚拟机进行一下设置.

打开虚拟机控制器:

将虚拟机的网络属性更改为:br0

有图为例:

通过以上步骤的设置KVM的桥接问题解决了,但是还是有问题的, 无线网卡桥接是不成功的,默认的是有线网卡!

使用过程中如果有问题欢迎交流!

 

KVM虚拟机

KVM虚拟机简介

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

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

前期准备

1.确定机器有VT

终端输入命令:

(INTEL芯片)

(AMD芯片)

不知道芯片的生产厂商则输入:

如果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的命令为:

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

注:kqemu-source这个包在Ubuntu12.04中是没有的,但是不影响使用。

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

注:使用该命令一定也要用root权限.

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

Connecting to uri: qemu:///system

Id Name State

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

#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

1. sudo kvm –boot c –m 512

–hda windows.img

2. 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可能会很慢)

 

Xen与KVM的比较

Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中。Xen的实现方法是,运行支持Xen功能的kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个 kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核, 而且,稍有设置不慎,系统就无法启动。

相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小,所以,出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。

不难看出,xen和KVM是linux下两个重要的虚拟化解决方案。xen的工作方式是直接修改kernel,变成一个xen kernel,也就是Domain 0.然后在这个Domain 0的控制下虚拟出多个Domain u的方式,可以看出这种方式其实是在kernel与硬件之间加了一个xen控制层,来实现虚拟化。Virtual machines are created by a software layer called the virtual machine monitor (VMM)。linus对于这种方法看来很抵触。而kvm的实现方法却有所不同,它首先是需要CPU虚拟功能的支持,本身是以模块的形式加入到kernel中,你可以把KVM理解为一个绿色软件。KVM是后起之秀,在目前的功能和应用上还远不及Xen,不过可以预见,不久的将来,以及各大厂商,特别是intel对于虚拟化的重视,虚拟化的实现更多依赖于CPU,KVM的简洁和绿色将会更加成功。