KVM你问我答 FAQ (二)

如果我的没有root权限,怎么使用KVM呢?

最简洁的做法就是创建一个组,比如kvm组,然后把将要使用kvm的用户添加到组里面。然后用chown命令把/dev/kvm的所有组改成kvm。如果你的系统里安装了udev,你还可以通过配置udev的方式使得linux自动把新创建的设备设成正确的组。比如在ubuntu的/etc/udev/rules.d/40-permissions.rules文件中增加一行:
KERNEL==”kvm”, GROUP=”kvm”

 



怎么做才能得到kvm的最佳性能呢?

See the Tuning KVM page.



KVM稳定吗?

KVM非常稳定而且已经用于工作生产环境之中。对于所有的开始工程,开发版的稳定性总是逊于稳定发行版。建议使用稳定发行版。KVM已经被使用比较长一段时间,模拟常用的操作系统和配置。一但有问题出现,开发者会在第一时间修复。参看Guest Support Status,列举了目前运行良好的操作系统。zausiu’s blog http://blog.ykyi.net



KVM真的可以用于生产环境吗?

为了稳定性,强列建议你使用你使用的发行版提供的KVM模块。如前面所述,及早使用新特性总是令人开心的事情。但是,你常常要要承担一定的风险,一些未知的问题可能在使用时暴露出来。在生产环境中,最好使用你使用的发行版提供的稳定版,而开发版本,如果你愿意,可以使用在不是那么重要的环境下。



如果我用kill -9杀掉VM进程会发生什么事呢?

From the guest’s perspective, it is as if you yanked the power cord out. From the host’s perspective, the process is killed and all resources it uses are reclaimed.
从客户虚拟机的立场来看,这就如同被拨掉了电源。从Host机的立场看,仅仅是VM进程被杀死了,这个VM进程所申请的所有系统资源被回收给操作系统。如前文所说,对于linux内核,VM进程就是一个普通的进程。



请帮助我设置客户机的网络。

可以参考这里 Networking 设置网站,也可以找找QEMU的网络设置相关文档。



哪里有更多KVM的文档呢?

绝大多数问题都在QEMU的 documentation中被提到了,还有部分在扩展FAQ ( 已经废弃的老板 FAQ).

 


KVM你问我答FAQ (一)

使用KVM需要哪些准备?

你需要一台运行Linux的x86的机器。它的CPU是有VT技术支持的英特尔cpu或者有SVM(又常被称为AMD-V)支持的AMD的CPU.



KVM支持64位的处理器吗?

KVM支持64位的处理器!此时,你可以运行32位或者64位的客户机。



What is Intel VT / AMD-V / hvm?

英特尔VT,是什么?AMD-V又是什么?hvm是什么?

Intel VTAMD’s AMD-V 都指的是指令集扩展。它们在硬件层面帮助实现虚拟机管理技术。这种技术使得在虚拟机上运行的速度接近直接在真实机器上运行的速度。HVM是硬件虚拟机的缩写(Hardware Virtual Machine )则是一个生产商中立的词汇(vendor-neutral term),它常常用来指代x86指定集扩展。



从哪里得到KVM内核模块呢?

可以从这里获得 http://www.linux-kvm.org/page/Getting_the_kvm_kernel_modules



我如何知道我的CPU支持Intel VT技术或者AMD-V技术呢?

如果你的Linux操作系统比较新,尝试以下的指令:
. egrep ‘^flags.*(vmx|svm)’ /proc/cpuinfo

如果出现一些文字,那说说你的CPU支持虚拟化。你也可以在/proc/cpuinfo文件中找到处理器模块的名字,然后到供应商的网站上查询。
注意:
1. 如果安装了Xen hypervisor,为了防止被劫持,你在dom0和domU中都得不到这些输出。dom0和domU是Xen hypervisor的术语。如果你没有安装Xen,直接忽略。
2. 一些产商默认在BIOS定设中禁用了CPU的虚拟化支持。你需要先在BIOS中打开虚拟化支持。
3. 如果你用的是intel cpu,对于内核版本2.6.15以前的Linux,你得不到这样的输出。如果你用的是amd cpu,对于内核版 本2.6.16以前的linux,你得不到这样的输出。如果你不确定你的Linux内核版本,用#uname -r 命令查看。



出现 “KVM: disabled by BIOS” error 错误

Check if there is an option to enable it in the BIOS. If not, look for a more recent BIOS on the vendor’s web site.
在BIOS设定在找找看有没有启用cpu虚拟化的选项,如果没有,去到主板厂商的网站上面看看有没有新的BIOS发布并支持打开cpu虚拟化,那么你需要刷新BIOS.
注意:
1.对于部分硬件(如 HP nx 6320),你需要先关掉主机电源,再打开主机电源才能使BIOS中启用cpu虚拟化支持生效。
2.BIOS的部分设定有可能与启用CPU虚拟化冲突。比如在Thinkpad T500上,启用Intel AMT技术会出现冲突。这样kvm-intel在载入时会抱怨”disabled by bios”错误。
3. 在一些Dell的硬件中,你还需要禁用”Trusted Execution”,否则不能打开VT。

 



你该怎么使用AMD-V扩展呢?

在根用户权限下敲入:modprobe kvm-amd

 



KVM使用什么样的用户空间工具。(User space tools)

KVM使用稍稍修改过的QEMU作为用户空间工具来管理创建的虚拟机。执行QEMU以后,从linux内核的视角来看,每个虚拟机仅仅是一个普通的进程。你可以用经典的Unix命令,如top, kill, taskset等等来操作虚拟机。



KVM使用何种类型的虚拟磁盘。

QEMU支持的多种磁盘格式如raw images,qcow2(QEMU原生磁盘格式),VMWARE format,等等,KVM都支持(KVM inherits a wealth of disk formats support from QEMU)。