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 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 会将正确权限赋予这个设备。


配置网络

编辑你的 /etc/udev/rules.d/80-kvm-rules。
KERNEL=="kvm",          GROUP="kvm", MODE="0660" 
理论上,加以下面这行:
KERNEL=="tun",          GROUP="kvm", MODE="0660" 
虽然这是一个临时方法,但你亦可以在 /etc/rc.local 加入
除了这些,你还需要对/dev/net/tun进行正确的权限
chown root:kvm /dev/net/tun
chmod 0660 /dev/net/tun
这个只是临时的方法,你如果要对固定他,那么你可以在/etc/rc.local加入以上两行代码。

网络配置脚本

#!/bin/bash
PATH=$PATH:/usr/sbin:/sbin
sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0
sudo brctl addif br0 eth0
sudo ifconfig br0 192.168.25.251 netmask 255.255.255.0 up
sudo route add -net 192.168.25.0 netmask 255.255.255.0 br0
sudo route add default gw 192.168.25.1 br0
sudo tunctl -b -u server05
sudo ifconfig tap0 up
sudo brctl addif br0 tap0
export SDL_VIDEO_X11_DGAMOUSE=0

#sudo iptables -I RH-Firewall-1-INPUT -i br0 -j ACCEPT

sudo virsh start WinXPSP3

安装虚拟机

用 virt-install 安装,这里以安装 Windows XP SP3为例

# virt-install \
--name WinXPSP3 \
--ram 1536 \
--vcpus=2 \
--disk path=/var/lib/libvirt/boot/WinXPSP3.img,size=4 \
--network network:br0 \
--os-variant=Microsoft Windows XP (x86) \
--accelerate \
--cdrom /home/server05/zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso \
--vnc

如果需要获得 virt-install 命令的更多选项和参数,可以查看在线帮助:

# man virt-install

用 virt-viewer 打开控制台连上 Windows XP 的安装界面:

# virt-viewer WinXPSP3

也可以直接用 virt-manager 图形化安装,安装过程很简单,KVM 中没有 Xen dom0, domU 的概念,更容易理解和使用,任何用过 VMware 和 VirtualBox 的人都会很容易上手,启动 virt-manager 图形界面创建一个虚拟机,创建硬盘、配置内存网络、指定安装光盘 iso 等,一步一步傻瓜操作:

# virt-manager


配置自启动

当需要进行开机自己启动的时候,需要在/etc/rc.local中添加你的执行脚本的代码

bash /home/server05/shellscript/kvmstart.sh

重新启动OK。

这里由于我们在虚拟机中使用br0,但是由于系统启动顺序的原因,所以启动虚拟系统,那么只有通过命令行的形式启动,在/etc/rc.local中加入

virsh start "WinXPSP3"

Tips


安装完 KVM 和上面的 Windows XP 以后,以后就可以通过 virsh 命令行工具来启动、关闭、重启、进入控制台的工具来操作虚拟机了,就和在 Xen 里使用 xm 一样:

# virsh --connect qemu:///system
start WinXPSP3
console WinXPSP3
quit

如果你在客户端使用 Mac 或者 Linux 的话,而且没有 vnc viewer 之类的工具的话,可以直接用 ssh 和 X 连接到正在安装 WinXPSP3 的那个控制台上:

# ssh -X -C root@192.168.25.251
# virt-viewer WinXPSP3



参考地址:

http://wiki.centos.org/zh/HowTos/KVM?highlight=%28kvm%29



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值