转:操作系统虚拟化之KVM

操作系统虚拟化之KVM

KVM(Kernel-basedVirtualMachine)是一个全虚拟化的解决方案,它自2.6.20以后正式成为Linux内核的一部分,也就是说,它是Linux内核官方支持的一个虚拟化方案。KVM的硬件需求是CPU必须支持虚拟化,对于IntelCPU来说是IntelVT,AMDCPU则是AMD-V。如何确定你的CPU支持硬件虚拟化呢?

egrep'(vmx|svm)'/proc/cpuinfo

vmx是IntelCPU的,svm则是AMDCPU的。我的CPU返回如下:

flags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36

clflushdtsacpimmxfxsrssesse2sshttmpbesyscallnxlmconstant_tscarch_perfmonpebs

btsrep_goodpnidtes64monitords_cplvmxsmxesttm2ssse3cx16xtprpdcmsse4_1

xsavelahf_lmidatpr_shadowvnmiflexpriority

flags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36

clflushdtsacpimmxfxsrssesse2sshttmpbesyscallnxlmconstant_tscarch_perfmonpebs

btsrep_goodpnidtes64monitords_cplvmxsmxesttm2ssse3cx16xtprpdcmsse4_1

xsavelahf_lmidatpr_shadowvnmiflexpriority

在Ubuntu下面需要安装下面的软件:

sudoapt-getinstallkvmqemu-kvm

加入个人用户到kvm组,以保证个人用户可以读写/dev/kvm,否则,以个人用户无法运行kvm:

sudoadduser$USERkvm

如果想使用物理磁盘,则需要加个人用户到disk组:

sudoadduser$USERdisk

现在最好重启一下计算机!

下面开始安装操作系统,我安装了WindowsXP和Windows7,下面以WindowsXP为例开始安装。

先准备好一个磁盘文件,有2种常用的格式,一个是qemu的qcow2格式,一个是raw格式,前者是可以增长的文件格式,后者实际是磁盘上一个连续区域。

qcow2:

qemu-imgcreate-fqcow2winxp.img10G

Raw:

ddif=/dev/zeroof=winxp.imgbs=1024Kcount=10000

下面开始安装,准备好安装光盘文件winxp.iso,下面是安装的指令:

kvm-m1024-cdrom=winxp.isowinxp.img-bootd-localtime

XP安装很快,20分钟左右就可以安装好,Win7大约需要40分钟。下面开始以下后面的工作,会涉及更多的参数。

配置硬盘和网络的virtio模式,virtio是个半虚拟化的模式,速度比传统方式还要快些,根据Usingvirtio_netForTheGuestNIC一文的测试,virtio还是很有优势的。

在虚拟机里面下载virtiowindowsguest驱动:Storagedriver和Networkdriver,其中已经包含了xp、win7等的驱动。

根据bootfromvirtioblockdevice一文的介绍,用以下方式进行安装驱动。

建一个临时的磁盘文件:

qemu-imgcreate-fqcow2fake.img1G

启动虚拟机:

kvm-drivefile=winxp.img,if=ide,boot=on-drivefile=fake.img,if=virtio-m1024

-localtime-netnic,model=virtio-netuser-usb-usbdevicetablet

在启动的虚拟机里,会找到virtio设备,然后安装这两个驱动。安装完毕后,关机。以下面方式重新启动:

kvm-drivefile=winxp.img,if=virtio,boot=on-m1024-netnic,model=virtio-netuser

-usb-usbdevicetablet-soundhwes1370

下面配置远程桌面对Windows的访问,首先需要在虚拟机的Windows里面开启远程桌面,而且必须给用户加上密码,WindowsXP和Windows7需要是Professional以上版本。然后运行mmc继续配置远程桌面访问参数。

打开mmc后,“添加/删除管理单元“->“添加”->“组策略对象编辑器”->“本地计算机”。在里面配置:“计算机配置”->“管理模板”->“Windows组件”->“终端服务”->“限制最大颜色深度”,设置为24位,原来默认是16位。

关机,重新以可以以新的模式后台运行:

kvm-Mpc-drivefile=winxp.img,if=virtio,boot=on-localtime-m1024-soundhwes1370

-netnic,model=virtio-netuser-vnc127.0.0.1:0-daemonize-redirtcp:3389::3389

-nameWindowsXP-usb-usbdevicetablet

-vnc127.0.0.1:0表示以vnc模式运行,-daemonize表示kvm以后台运行,-redirtcp:3389::3389表示将虚拟机的3389端口映射为宿主机的3389端口上,这样rdesktop本机就可以进行远程桌面访问了。如果想实时查看状态,可以使用vncviewer或者vinagre查看。

现在可以rdesktop进行访问了,下面是rdesktop的参数:

rdesktoplocalhost-uusername-ppassword-f-D-z-P-rsound:local-clipboard

这里-z参数可以保证鼠标运行速度不缓迟,-f表示全屏。

虚拟机如何使用USB设备呢,首先要保证用户可以访问USB设备,qemu支持usb设备在虚拟机里面的拔插,在qemu界面里(或者vnc访问的界面里),Ctrl+Alt+2进入qemumonitor命令行控制模式,然后

usb_addhost:vid:pid

查看usb设备:

infousb

Windows7的运行和访问参数与WindowsXP类似。

下面是我的一些截屏:

WindowsXP:

Windows7:

rdesktop启用Windows7字体平滑功能

由何勃亮在星期五,2010-04-0209:36发表。

rdesktop连接上Windows7以后,一般是不开启字体平滑功能,因此,字体不是特别好看,可以通过加入下面的参数来连接,就启用字体平滑功能了,而且原来的Win7桌面也保留了,不像之前连接后出现的黑色桌面,还需要自己再设置下。

rdesktoplocalhost-x0x80-uusername-ppassword-f-D-z-P-rsound:local-clipboard

主要是加入-x0x80选项。

http://www.heboliang.cn/archive/kvm-windows.html

相关推荐