> CentOS > CentOS教程 >

CentOS 6.3安装kvm虚拟机并安装Windows系统

在CentOS 6.3 上安装配置KVM和创建虚拟机

1. 安装KVM
KVM(Kernel-based Virtual Machine,即内核级虚拟机)是一个开源的系统虚拟化模块,是使用于 Linux 核心中的虚拟化基础建设,KVM 在 2007 年 2 月被导入 Linux 2.6.20 核心中,它也被引入 FreeBSD。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
l 它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko (kvm-intel.ko 或  kvm-AMD.ko)。
l kvm还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制 和界面。
l kvm能在不改变linux或windows镜像的情况下同时运行多个虚拟机,并为 每一个虚拟 机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
l 在主流的linux内核,如2.6.20以上的内核均包含了kvm核心。
1) 检查cpu
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化
# egrep 'vmx|svm'   --color=always/proc/cpuinfo
如果输出的结果包含VMX,是Intel处理器虚拟机技术标志:如果包含SVM,是AMD处理器虚拟机技术的标志,如果什么都没有得到,那系统并没有支持虚拟化的处理,不能使用KVM。
2) 安装KVM
直接在线安装KVM:
# yum install -y  kvm-qemu-img libvirt bridge-utils
安装完成后关闭selinux,然后重启linux
#vi /etc/sysconfig/selinux
SELINUX=disabled
#reboot
重启后确认libvirtd是否正常启动、重启
# /etc/init.d/libvirtd restart
Stopping libvirtd daemon:                               [OK]
Starting libvirtd daemon:                                [OK]

检查KVM是否加载成功
# lsmod | grep kvm
kvm_intel              52570  6
kvm                   314739  1 kvm_intel
检查KVM是否成功安装
# virsh  list   --all
Id    名称                    状态
----------------------------------------------------
KVM版本查询
#qemu-kvm -version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2), Copyright (c) 2003-2008  Fabrice  Bellard
# virt-install  --version
0.600.0
# virsh --version
0.9.10
配置网络桥接
[root@gb02 network-scripts]#vi ifcfg-br0
DEVICE="br0"
BOOTPROTO=static
HWADDR="00:25:90:04:07:22"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=10.10.102.2
NETMASK=255.255.0.0
GATEWAY=10.10.77.254
DNS1=8.8.8.8

[root@gb02 network-scripts]#Vi ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
BRIDGE="br0"
HWADDR="00:25:90:04:07:22"
IPADDR="10.10.102.2"
NETMASK="255.255.0.0"
GATEWAY="10.10.77.254"
IPV6INIT="no"
MTU="1500"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
UUID="2bed6be5-7a7a-48f9-aba9-151642659da8"
DNS1="8.8.8.8"

重启网络
[root@gb02 network-scripts]# service network restart

查看桥接网络
[root@gb02 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.002590040722 no eth0
virbr0 8000.525400083a76 yes virbr0-nic

至此KVM安装完成,注意使用KVM命令时是qemu-kvm -[option] 而不是kvm -[option] !!

2. 安装VNC-server、VNC-viewer组件
vncserver 是一个为了满足分布式用户共享服务器上面的资源,而在服务器上开启的一项服务,对应的客户端软件为vncviewer;它也可以是不同的操作系统,比如利用windows远程访问linux系统资源的一种远程访问方式。在通过KVM创建虚拟机的过程中我们可以在客户端利用VNC-viewer连接到服务器的VNC-server相应端口,进入图形化界面安装。
目前VNC主要有两个版本,即realVNC和tigerVNC,关于服务器安装VNC-server,两种版本都可以,但客户端的VNC-viewer,建议安装tigerVNC-viewer,因为realVNC-viewer会在创建虚拟机的端口如590x由于连接加密的问题连接不上服务器。
本次VNC安装采用服务器端realVNC-server和客户端tigerVNC-viewer。

1) yum源里面没有realVNC,首先要下载realVNC,本系统为64位的centOS6.3,所以下载了64位的版本5.0.5。
http://www.realvnc.com/download/vnc/
2) 压缩包解压后会有两个rpm,服务器上仅安装server端
# rpm -ivh VNC-Server-5.0.5-Linux-x64.rpm
如果发现缺少什么包,就用yum安装,实测centos6.3没缺任何包。

3) 安装序列号,进行注册
# /usr/bin/vnclicense -add VKUPN-MTHHC-UDHGS-UWD76-6N36A
这里贡献部分license
VKUPN-MTHHC-UDHGS-UWD76-6N36A
69NCN-JRLBC-QD28Y-5KLY2-UEE6A
6GQQQ-HXLBS-U2H8Q-B6UB7-R7R6A
8XWCU-ZRJBF-U7BXZ-G5EAE-ZPQ2A
6XQQQ-WXL4Q-NN4KX-NUTC6-8ZK6A
PGUFQ-HTZBB-WNHU7-YHDQC-A7R6A
至此服务器端的安装已经完成

4) 客户端安装tigerVNC-viewer
首先下载tigerVNC,本客户端采用64位win7,所以下载64位的windows 版本
http://sourceforge.net/projects/tigervnc/
这里仅安装客户端tigerVNC-viewer
然后就可以用vnc viewer远程桌面连接了,这里要用系统帐号的密码登录, 默认端口为5900,远程桌面连接端口则是5900+n(n是vncserver命令指定的)

3. 创建虚拟机
所有组件已经安装好,接下来我们创建虚拟机,分别创建centOS6.3和windows7虚拟机各一个。
1) 创建centOS虚拟机

通过qemu-img创建一个10G的映像文件
#qemu-img create -f qow2 centos.img 10G

通过/usr/libexec/qemu-kvm创建一个虚拟机,内存1024,从CentOS-6.3.iso安装
#qemu-kvm -m 1024 -cdrom CentOS-6.3.iso -drive file=centos6.3.img -boot d -net nic  -nographic -vnc :2(vnc与:2之间有空格,默认5900端口被占用,使用5900+n端口吧)

通过vncviewer观察安装进度
连接端口处写10.10.102.2:5902,连接上之后出现安装界面,继续安装即可。


2) 安装windows7虚拟机

下载virtio驱动,因为win默认不支持virtio驱动,而通过openstack管理虚拟机是需要virtio驱动的。需要两个virtio驱动,一个是硬盘的,一个是网卡的,即:virtio-win-0.1-30.iso和virtio-win-1.1.16.vfd,下载后放到工作目录下。
通过kvm-img或者qemu-img创建一个20G左右的映像文件
#qemu-img create -f raw win7.img 10G
通过/usr/libexec/qume-kvm创建一个虚拟机,内存1024,从windows7.iso安装
#qume-kvm –m 1024 -cdrom windows7.iso –drive file=win7.img,if=virtio,boot=on  -fda  virtio-win-1.1.16.vfd -boot d -nographic -vnc :3
通过vncviewer观察安装进度,用vnc安装win7,因为默认没有virtio驱动,所以识别 不了硬盘,需要手动选择,整个过程如下:























设置开启远程桌面


查看网卡驱动类型


先关机!!!再次启动虚拟机,使用以下命令:
kvm -m 1024 -drivefile=win7.img,if=virtio,boot=on -cdrom virtio-win-0.1-30.iso -net nic,model=virtio -net user -boot c -nographic -vnc 10.1.6.228:8


修改网卡驱动类型









可以看到网卡驱动类型已经更换掉,再次关机!!!
上传win7镜像
glance add name="windows7"is_public=truecontainer_format=ovf disk_format=qcow2 < win7.img



设置安全策略,因为要通过远程桌面连接win7,所以要放开3389端口


启动一个名为win7的虚拟机,第一次启动比较慢,因为要把win7镜像从镜像服务器传送到计算节点上。



通过dashboard的vnc登录



发现一个杯具的事情,那就是dhcp分配的IP并没有生效,那我们就手动配置一下


通过本机自带的mstsc登录win7虚拟机:10.1.200.4





大功告成!!! 


(责任编辑:IT)