在CentOS6.3上安装配置KVM和创建虚拟机1.安装KVMKVM(Kernel-basedVirtualMachine,即内核级虚拟机)是一个开源的系统虚拟化模块,是使用于Linux核心中的虚拟化基础建设,KVM在2007年2月被导入Linux2.6.20核心中,它也被引入FreeBSD。它使用Linux自身的调度
在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
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
大功告成!!!