CentOS-6.x86_64 上安装和配置 KVM

RedHat 的下一代旗舰产品 RedHat Enterprise Linux 6 将只包含 KVM,这一点 RedHat 官方已经在很久以前、在不同场合都确认过,也可以从 RHEL 6 的 Beta 版本中得到证实。KVM 发展很快,稳定性有了很大提高,随着 RHEL 6 的正式到来,KVM 应用到生产环境的日子应该不远了。VPSee 曾经测试过 KVM,也看过一些 KVM 的学术论文,在网络性能、扩展、稳定性方面 KVM 不如 Xen,这些因素是做 VPS 的关键,所以现在很少看到 KVM VPS,不知道 RHEL 6 以后会不会多起来,目前 KVM 应用比较少的还有一个原因就是对硬件要求高(CPU 需要 Intel VT 或 AMD SVM 的支持),硬件发展速度很快,以后应该不会有这个问题。由于 KVM 支持全虚拟,所以可以在上面安装各类操作系统,和 Xen HVM 一样。在 VPSee 看来,KVM 更适合做桌面一些,Xen 更适合做数据中心解决方案。以下操作在 SUN Fire X2100 服务器和 CentOS 6上完成。对 OpenVZ 和 Xen 感兴趣的童鞋可以看:在 CentOS 上安装和配置 OpenVZ 和 在 CentOS 上安装和配置 Xen.

检查 CPU

和 Xen 不同,KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持:

# egrep 'vmx|svm' /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt
rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svmsvm
extapic cr8_legacy
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt
rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy
extapic cr8_legacy

安装 KVM

安装 KVM 所需要的软件包:

# yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager \
libvirt libvirt-Python python-virtinst bridge-utils tunctl


安装完后重启系统,然后确认一下是否安装成功:

# reboot

# lsmod | grep kvm
kvm_intel                69416  0
kvm                   226208  1 kvm_amd

# ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 Jun 25 15:56 /dev/kvm

创建镜像

如果你安装了 qemu,你现在可以用它的 create 指令来创建你的磁盘映像:

qemu-img create -f qcow2 disk.img 5G

在这个样例中,你正在创建一个可以增长至 5 GB 的映像。它只会占用实际所需的空间。而 -f qcow2 是近期 qemu 采用的标准映像格式。(-f 就是格式之意。)

如果你没有安装 qemu,你仍然可以这样来创建一个磁盘映像

dd if=/dev/zero of=disk.img bs=1G count=5

count 就是 GB 的数值。在这个样例中,不论你的客端操作系统需要多少空间,.img 这个文件仍会在你的硬盘上占用 5 GB。

假如鼠标不能在 qemu 内运作(例如通过 KVM 连接的 PS/2 鼠标),请遵照以下指引。使用手册提供了 USB 鼠标的选项,而 PS/2 是缺省的。在寻找器上你可以快速地找到 Cape Linux User Group wiki 所提供的解决方法。在引导 kvm 前,请先执行:

export SDL_VIDEO_X11_DGAMOUSE=0

这样应该能够解决鼠标的问题。
装入模块

下一步是用 modprobe 将对应你的结构的 kvm 模块装入。如果是 Intel 处理器:

modprobe kvm-intel

如果是 AMD 处理器:

modprobe kvm-amd

假如一切须利的话,你的系统现在应该已经装入了 kvm 模块。你可以执行这个指令来检查:

/sbin/lsmod | grep kvm

将那些会执行 kvm 的用户加进 kvm 群组内。假如用户的名称是 john,那么:

usermod -G kvm -a john

如果你是以 john 的身分,通过 su - 或 sudo 来转用 root 的权限并执行以上指令,你也许须要完全注销,然后再登录才会看见新的群组在指令壳内生效。

执行 modprobe 后,你可以重新开机来确定这个模块能被装入,而 /dev/kvm 设备亦被 udev 赋予正确权限。现在你应该接有 /etc/sysconfig/modules/kvm.modules 这个脚本。当开机完成后,请如上使用 /sbin/lsmod 这个指令来检查模块有否被装入。你应该同时看见一个 kvm 及一个 kvm-intel(或 kvm-amd)的模块。

假如你想避免重新开机,你可以用下列两个指令为 /dev/kvm 这个设备设置所需的权限:

chown root:kvm /dev/kvmchmod 0660 /dev/kvm

在下设开机时,udev 会将正确权限赋予这个设备。

相关推荐