<转>[Linux 虚拟化] Linux 中使用 KVM
听讲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