<转>[Linux 虚拟化] Linux 中使用 KVM

eastnow 2012-03-27

听讲XEN很快就要从LINUX内核中去掉,redhat和Ubuntu也大力的在推广KVM,所以在Ubuntu下整了一下KVM,相当容易使用,基本比Vmware还要容易,但性能好上很多倍,因为他是半虚拟的,很大程序上可以直接使用真实的硬件.

RedHat红帽CTOBrianSteven在一次记者招待会说:“我们致力于Xen,RHEL5有10年的生命周期,因此会有一个较大的交叉过渡.我们将在RedHat6中全面使用KVM,但KVM目前已经准备就绪,完全可以正式投入到数据中心和云中,不用再等待了!”

KVM要使用2.6.20以上的内核才行.Ubuntu到是不用担心,它基本一直使用的是最新的内核.

需要关心一点就是,你的硬件,CPU是不是支持半虚拟(VT/AMD-V),使用下面的命令可以查看是否支持

1

grep-E'(vmx|svm)'/proc/cpuinfo

在ubuntu中安装KVM

我原来以为KVM很难装,没想到现在容易成这样了.太方便了

1

sudoapt-getinstallkvmlibvirt-binubuntu-vm-builderbridge-utilskvm-pxeuml-utilities

安装KVM在ubuntu中的GUI管理软件,象我,拿ubuntu当桌面,就不使用命令…呵呵

1

sudoapt-getinstallvirt-managervirt-viewer

需要设置一下网桥

1

sudo/etc/init.d/networkingstop

我们来修改一下配置

1

sudovim/etc/network/interfaces

静态IP和使用DHCP是不一样的,DHCP修改成下面这样

1

2

3

4

5

6

autobr0

ifacebr0inetdhcp

bridge_portseth0

bridge_stpoff

bridge_fd5

bridge_maxwait5

static:

01

02

03

04

05

06

07

08

09

10

11

autobr0

ifacebr0inetstatic

address192.168.0.xxx

network192.168.0.0

netmask255.255.255.0

broadcast192.168.0.255

gateway192.168.0.1

bridge_portseth0

bridge_stpoff

bridge_fd5

bridge_maxwait5

完事后

进入ubuntu的“应用程序”->“系统工具”->“虚拟系统管理”就可以全GUI来玩kvm啦

RedHatCentos安装KVM

在Centos中安装kvm也一样很容易,

1.安装KVM和virtinst(一个创建virtualmachines的工具)

1

yuminstallkvmkmod-kvmqemulibvirtpython-virtinst

2.装完后记的重起,重起后检查模块是否有加载

1

2

3

$lsmod|grepkvm

kvm_amd504520

kvm1092641kvm_amd

也可以使用virsh来测试

1

virsh-cqemu:///systemlist

3.安装桥接管理的工具

1

yuminstallbridge-utils

4.安装GUI的管理软件

1

yuminstallvirt-manager

KVM的高级管理

KVM现在相当成熟,在三个比较常用管理程序(我所知道的),大家平时玩玩的话,就用GUI来管理就好了,GUI都会我就不详细写了:

virt-manager:这个我最常用,是GUI的,需要xwindows的支持.这个是RedHat开发,大家想了解可以到http://virt-manager.et.redhat.com/上看看

virt-install:python写的文字介面的管理kvm的程序,这个也是RedHat开发的哦.

ubuntu-vm-builder:这个是Canonical(Ubuntu)开发的文字的管理程序.

virt-install的基本使用

(1.安装virt-install和图形化的连接软件virt-viewer

1

sudoapt-getinstallpython-virtinstvirt-viewer

详细使用可以manvirt-install

(2.virt-install安装虚拟系统

例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

$virt-install\

--connectqemu:///system\

--name=虚拟机器的名字\

--ram=设置内存的大小[MB]\

--os-type=操作系统的类型[linux]\

--os-variant=操作系统的版本[centos5.4]\

--hvm[全虚拟化(hvm)与半虚拟化(paravirt)选择其一]\

--paravirt[全虚拟化(hvm)与半虚拟化(paravirt)选择其一]\

--accelerate[KVM加速器]\

--cdrom=系统安装的CD路径[*.iso]\

--file=虚拟硬盘的路径[*.qcow2]\

--file-size=虚拟硬盘的大小[GB]\

--bridge=br0\

--vnc\

--noautoconsole\

--debug

注意Windows只能用有全虚拟化(hvm)与半虚拟化(paravirt)中选择hvm.hvm的意思是指硬件辅助的虚拟化,就是需要所谓的VT支持的.

建出来的虚拟机会在/etc/libvirt/qemu/虚拟机器名称.xml有个配置文件

(3.使用virt-install启动虚拟的机器

进入virsh中,所有virsh的操作都要先进入这个

1

virsh

管理启动

1

2

3

virsh#start虚拟机器名字

virsh#list--all

virsh#quit

(4.安装管理查看virt-install安装后的系统是否正常

1

virt-viewer--connectqemu+ssh://帐号@虚拟机实体主机IP要连接的虚拟机器名字

virt-install的其它使用

在原来的基础上复制一个新的虚拟机器

1

2

virt-clone--connect=qemu:///system\

-o旧的虚拟机器名称-n新的虚拟机器名称-f新的虚拟硬碟路径[*.qcow2]

查看所有虚拟出的机器

1

virsh#list--all

dump虚拟出的机器配置文件

1

virsh#dumpxml虚拟出的机器名称/tmp/虚拟出的机器配置文件[*.xml]

使用现有的虚拟出的机器配置文件建立虚拟新机器

1

virsh#define/etc/libvirt/qemu/虚拟出的机器配置文件[*.xml]

移除虚拟出的机器

1

virsh#undefine虚拟出的机器名称

关闭虚拟出的机器

1

virsh#shutdown虚拟出的机器名称

关掉虚拟出的机器的电源

1

virsh#destory虚拟出的机器名称

KVM的小技巧

1.提升KVM的网络和硬盘IO在linux中的性能

官方提供了一个叫kvm-guest-drivers-windows的网卡驱动很不错,虚拟机的启动参数那里加上model=virtio这个参数,界面中也是可以设置的.硬盘也有virtio的驱动,记的使用.在Virt-manager中可以选择virtiodisk.获得高性能的网络和磁盘操作

virtio的网卡驱动的地址:http://sourceforge.net/project/showfiles.php?group_id=180599&package_id=267943

virtio的硬盘驱动的地址:http://www.linux-kvm.com/sites/default/files/viostor.iso

2.和真实机器中资料共享

这个是超级方便的,不需要象VBox搞个文件夹,只要在Host的设置中直接给真实的Dev的块设备直接设定到Guest的配置中,然后在进入kvm中的系统,直接mount就行

3.转换VMWare的image让KVM能使用

我们先要安装一个小软件virt-goodies.

1

sudoapt-getinstallvirt-goodies

然后使用vmware2libvirt来给VMWareVM的基本资料vmx转成KVM可以读入的XML.如

1

vmware2libvirt-fmyvm.vmx>myvm.xml

在转VMWareVM的diskimage,使用qemu-img转成KVM能读的文件.

1

qemu-imgconvert-fvmdkmyvm.vmdk-Oqcow2myvm.qcow2

可能还需要修改一下vmx转成的xml,

disk中的targetdev,在VMWARE是ide(targetdev=’hda’bus=’ide’)可能要修改成scsi(targetdev=’sda’bus=’scsi’),我们看能不能找到ROOT就知道是不是用对了;

bridgemode,给interfacetype=’network’修改成interfacetype=’bridge’,而sourcenetwork=’default’修改成sourcebridge=’br0′.

qcow选项,则会创建QCOW(写时复制)格式

修改后给VM的配置加入到libvirtd中.

1

2

virsh-cqemu:///systemdefinemyvm.xml

virsh-cqemu:///systemlist--all

FAQ:

1.如果在安装的时候见到"FATAL:Errorinsertingkvm_intel"

这是因为没有在BIOS中打开virtualization.需要进入BIOS中打开,然后断电重起.进入系统后打modprobekvm-intel来加载模块

先在虚拟机中打开windows自己的远程桌面,然后给用户设定密码,然后运行rundll32netplwiz.dll,UsersRunDll启用windows的自动登录.(这三步必不可少,否则rdesktop是无法连上winxp的)

重新启动虚拟机,当听到winxp后台登录的声音后,即可用rdesktop远程登录:

rdesktoplocalhost:3389-u***-p***-g1280×700-rsound:local

-uwinxp的用户名,-pwinxp的密码,-rsound:local启用声音

现在可以看到桌面了吧.是不是灰常流畅呢?鼠标、键盘都非常完美啊,剪贴板也可以公用哦.堪比装了tools的virtualbox,但是比后者占用的资源要少的多.

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接:http://www.php-oa.com/2010/02/22/ubutnu-kvm-vmware.html

相关推荐