您的位置:首页 > 运维架构 > Linux

kvm安装问题集锦

2010-06-09 12:47 417 查看
kvm的优点与缺点:

优点:

1,速度,这是我最看中的。kvm的cpu效率和磁盘效率绝对是最优秀的。

2,稳定,这也是我看中的,目前的感受是最稳定的,不比 vmware 差。virtualbox我想大家都运到过qq问题。

3,扩展性,kvm是一个新的项目,以后回逐步在图形效率,3d和硬件上面得到linux最基础的支持。

缺点:

1,使用不太方便。很多人惧怕命令行的东西,但是稍微注意一下,会发现命令行是那么的清晰和简单。

2,目前有些功能不太完善,比如图形性能,usb等。本文的最后有说明。

3,你的cpu需要支持vt技术,否则不能体现 kvm 的优势。

qemu 和 kvm 的关系。

1,kvm 不是 qemu 的插件。记住,kvm基本是一个独立的系统,只不过借用了qemu的代码和操作界面。也就是说,你在命令行中如果使用
qemu 的地方,只需要题换成 kvm,其他的参数基本都不用修改就可以运行,这样的效率是 qemu 的很多倍。所以,如果你想用好 kvm,去看看
qemu 的说明吧。

2,如果要用kvm,你的cpu必须支持 vm 技术,否则和 qemu 的效率基本相同。

如何判断你的cpu是否支持 vm 技术?

首先使用

代码:

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

如果没有任何的输出,说明你的cpu不支持,不用往下看了

如果支持,你可以在输出中找到 vmx 的字样。看看我的

代码:

xbf@xbf-laptop:~$ egrep '(vmx|svm)' /proc/cpuinfo

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr lahf_lm ida

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr lahf_lm ida

xbf@xbf-laptop:~$ egrep '(vmx|svm)' /proc/cpuinfo

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr lahf_lm ida

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr lahf_lm ida

注意,大多BIOS缺省是关掉了vt支持的,你需要首先设置你的bios,我使用的是x61,缺省就是关闭的。

KVM安装步骤:

1. 保证内核版本在2.6.20或更新,去www.kernel.org查看你的内核的发布时间,再到:
http://sourceforge.net/project/showfiles.php?group_id=180599
下载一个发布时间稍晚于你的内核的 kvm-<release>.tar.gz

注意:

linux内核的include/linux/kvm.h中定义了一个KVM_API_VERSION宏,例如2.6.22中它是12,你

下载的kvm-<release>.tar.gz中,user/kvmctl.c中定义了一
EXPECTED_KVM_API_VERSION,这个宏的值

必须和你用的内核匹配。 不过这步会在configure时检查,不用担心。

# tar zvxf kvm-<release>.tar.gz -C /usr/local/

# cd /usr/local/kvm-<release>/

2. 编译之前,需要注意的事情。(这步不做也可以,注意指定步骤3中的--kerneldir参数即可)

KVM configure时会错误的把 /lib/modules/`uname -r`/build 认为是源代码所在

目录(事实上/lib/modules/`uname -r`/source才是源代码目录,只有编译内核时没

有用O=<dir>指定输出目录,这二者才是相同的)。 因此,需要更改一下,使build

这个符号链接跟source指向的一样。

# cd /lib/modules/2.6.22/

# unlink build

# ln -sf `readlink source` build

注意:

做完<3>之后还要把build这个链接给改回来!

或者不改也可以,注意在<3>中configure时的参数。

3. configure,make,make install

# cd /usr/local/kvm-<release>/

# ./configure --prefix=/usr/local/kvm --with-patched-kernel

//如果没做<2>,就加上--kerneldir=/lib/modules/`uname -r`/source

# make

# make install

4. 加载模块

# modprobe kvm-amd //或者modprobe kvm-intel,视你的CPU而定

5.创建虚拟磁盘

# /usr/local/kvm/bin/qemu-img create -f qcow2 vdisk.img 5G

或者:

#qemu-img create -f qcow2 WindowsXP.img 10G

6. 从ISO引导

# /usr/local/kvm/bin/qemu-system-x86_64 -hda vdisk.img -cdrom
/root/windows2000.iso

-boot d -m 384

说明:

-m 384是指定384M的内存。如果机器内存不足1G,建议用192或128。

如果是Intel CPU,把"qemu-system-x86_64"改成"qemu"。

7.安装完毕后,启动虚拟机。

# /usr/local/kvm/bin/qemu-system-x86_64 vdisk.img -m 384

8.安装完后的一些问题

把你的用户加入到 kvm 组

代码:

adduser xxx kvm

如果你需要虚拟机访问物理磁盘,需要把你的用户添加到 disk 组。

代码:

adduser xxx disk

注:xxx是你的登录名。

用KVM启动虚拟机范例:

kvm -M pc -m 512 -hda /home/danny/kvm/WindowsXP.img -hdb /dev/sda5 -hdc
/dev/sda7 -hdd /dev/sda8 -r sound:remote -net nic -net user -usb
-localtime -vnc 127.0.0.1:0 -daemonize -redir tcp:3389::3389

解释一下,

1,-hda /home/danny/kvm/WindowsXP.img 你的系统虚拟磁盘

2,-hdb /dev/sda5 -hdc /dev/sda7 -hdd /dev/sda8
这个根据你自己进行选择,kvm可以加载你系统的分区。注意,分区是独享的,也就是说如果在 kvm
中加载了分区,这几个分区在宿主机(unbutu)中将无法访问。我这几个分区是Windows 下的分区,在 Ubuntu下也没有什么用。

3,-net nic -net user 使用简单网络访问,可以使得虚拟机上网,或者是访问宿主机。但是宿主机不能访问虚拟机(很奇怪的问题)。

4,-usb 使能 USB 支持,我没有成功。不知道为什么。

5,-localtime 时间同步,你不希望你的虚拟机是另外的时间吧。

6,-daemonize 后台运行,不显示图形界面,这个我后面要解释。

7,-vnc 127.0.0.1:0 打开远程桌面支持,这个可不是Windows的远程桌面哦。

8,-redir tcp:3389::3389 把虚拟机的远程桌面服务器端口映射到宿主机的端口,这个才是等同windows的远程桌面。

运行了吧,怎么突然退出而没有任何反应?因为虚拟机已经在后台运行了。你有两种方式查看虚拟机的界面。

1,使用远程桌面工具,地址 localhost , 端口 5900。

2,使用远程终端,地址 localhost 端口 3389

如果你的虚拟机还没有配置远程桌面,请现用第一种方式访问虚拟机界面,然后设定虚拟机(我的是XP)远程桌面方式,然后就可以了。

下一步是整合虚拟机到你的桌面,就和我的贴图一样,使用以下命令

代码:

rdesktop localhost:3389 -u danny -p xxxxxx -g 1024x720 -D -r sound:local

-u 后面的是用户名,-p 后面的是密码。-r sound:local 是启用声音,-D
是消除远程终端窗口的边框。怎么样,桌面出来了吧?应该还有登录的声音哦。这里也应该知道 1024x720
的道理了吧。这个值根据你自己的屏幕大小来调整。

这种方式下,可以享受 kvm 的所有效率,同时,鼠标是不是很快了。另外,几乎可以避免所有的键盘冲突。但是如果在虚拟机中看电影的話可能比较痛苦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息