kvm虚拟化解决方案

什么是KVM虚拟化?
KVM(kernel-based Virtual Machine),是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。

一 : 安装KVM前的准备工作

1. 服务器cpu要支持虚拟化,进入系统可以通过命令查看服务器的CPU是否支持虚拟化
# egrep --color 'vmx|svm' /proc/cpuinfo
vmx 指的是intel的cpu cpu参数virtualization为VT-X
svm 指的是amd的cpu cpu参数virtualization为AMD-V

2.关闭sellinux , 关闭iptables防火墙

3. 准备epel yum源
# yum -y install epel-*

二: 安装KVM模块

1. Centos Rhel 安装GNOME桌面环境
# yum groupinstall "Desktop" "Desktop Platform"
# yum groupinstall "X Window System" "Graphics Creation Tools"
# vi /etc/inittab 将 id:3:initdefault: 改成 id:5:initdefault:
# reboot

2. 安装kvm模块
# yum -y install qemu-kvm qemu-img virt-viewer virt-manager libvirt python-virtinst

# yum install -y qemu-* virt-* libvirt bridge-utils python-virtinst

软件说明:
qemu-kvm #kvm只对cpu、内存虚拟化,qemu-kvm在此基础上模拟I/O设备
qemu-img #磁盘镜像管理工具
virt-manager #图形界面虚拟机管理工具
virt-viewer #连接虚拟机控制台
libvirt #提供一套管理虚拟化工具的接口,支持主流的虚拟化技术,如KVM、XEN、LXC等,用于命令行管理虚拟机
python-virtinst #python写的脚本,用于virt-install安装虚拟机

查看kvm模块是否加载成功
# lsmod |grep kvm
显示 kvm_amd 或 kvm_intel相关的数据信息,说明kvm模块安装成功。

三: 网络设置

qemu支持的网络模式
桥接:基于网桥的虚拟网卡,与主机同网段IP地址
NAT:共享主机的IP地址
主机模式:主机之间专用网络

1. 主网卡(ifcfg-eth0 )添加桥接,不配置IP信息
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-br0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:17:75:85
TYPE=Ethernet
UUID=4233feca-accd-437e-817e-a23240a809de
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0 // 添加桥接

2.创建ifcfg-br0,里面配置真实物理机IP信息
# vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
#HWADDR=00:0c:29:17:75:85
TYPE=Bridge
#UUID=4233feca-accd-437e-817e-a23240a809de
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.222
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114

3. 重启网络
# service network restart
正在关闭接口 br0: [确定]
正在关闭接口 eth0: 错误:断开设备 'eth0'(/org/freedesktop/NetworkManager/Devices/0)
失败:This device is not active
[失败]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: 错误:激活连接失败:Master connection not found or invalid
[失败]
弹出界面 br0: [确定]

解决办法:
# service NetworkManager stop
# chkconfig NetworkManager off
# service network restart
正在关闭接口 br0: [确定]
正在关闭接口 eth0: [确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: [确定]
弹出界面 br0: [确定]

原因说明:
RedHat自己开发的NetworkManager管理工具和/etc/sysconfig/network-scripts/ifcfg-ethx配置不同步造成的。
这个问题只会在安装了图形界面的centos\rendhat系统里面出现,是图形界面NetworkManager服务调用的提示。如果要消除这个提示,请关闭NetworkManager服务即可。

4. 查看网络列表
查看网络列表,必须要先启动libvirtd服务
# /etc/init.d/libvirtd start
正在关闭 libvirtd 守护进程: [失败]
启动 libvirtd 守护进程:libvirtd: relocation error: libvirtd: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
[失败]
启动libvirtd守护进程的时候提示错误 ,解决办法是# yum -y upgrade device-mapper-libs

# brctl show //查看网络列表
bridge name bridge id STP enabled interfaces
br0 8000.000c29177585 no eth0
vnet0
virbr0 8000.52540090a857 yes virbr0-nic
可以看到eth0加入br0网桥,如果没有brctl命令,请安装bridge-utils工具。当创建虚拟机时指定桥接,也会加入这个网桥br0

四: 安装远程桌面VNC,用于图形管理虚拟机

安装vnc-server软件包
# yum -y install tigervnc tigervnc-server
# chkconfig vncserver on

设置root的vnc连接口令
# vncpasswd

生成xstartup用户配置文件
# vncserver // 运行vncserver命令生成root用户的/root/.vnc/xstartup配置文件 ,不运行的话不会生成

xstartup用户名配置文件参数设置
编辑 /root/.vnc/xstartup
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session & //桌面类型设置

vncservers文件设置
编辑 /etc/sysconfig/vncservers
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768" // 去掉#号修改成此 ,若不做此配置启动vncserver服务会提示"no displays configured"错误

# service vncserver start //启动vnc server服务
# vncserver -kill :1 //关闭root的vnc连接窗口
# vncserver :1 // 启动root的vnc连接
# netstat -tulnp // 查看到5901为Xvnc的端口号
# vncserver :99 // 可以通过vncserver启动多个vnc桌面 ,vnc连接端口 1到99 即5901到5999 ,可以同时开99个vnc桌面连接。
# /sbin/iptables -I INPUT -p tcp --dport 5901 -j ACCEPT //防火墙设置

windows 客户端连接,使用vnc viewer 连接
服务器项填写ip:1 或ip:5901 ,加密方式让服务器选择(默认), 输入root的vnc连接口令(前面设置过) 就能登录到系统桌面。

ps: vnc密码与root密码可以不同。系统运行级别为3时,vnc连接的时候也可以进入图形桌面。

五: Kvm虚拟机的创建

1. vnc连接到linux桌面, 点击 应用程序——系统工具——虚拟系统管理器 。 也可以在终端里面输入virt-manager打开虚拟系统管理器。
2.虚拟系统管理器的编辑菜单——Connection Details——存储(存储池的位置保持默认)——新建卷(创建一个虚拟机可以直接使用的存储单位),名称如:win2003.img 格式选择qcow2支持快照,存储卷最大容量如204800MB ,分配0MB ——完成 。
3. 虚拟系统管理器——创建新虚拟机——虚拟机名称根据需求填写(如 win2003)、“选择本地安装介质ISO”来安装操作系统——前进——使用ISO映像:浏览系统映像iso文件(通过winscp把系统镜像文件拷贝到linux目录去,注意linux目录和镜像文件的权限便于浏览操作)、操作系统类型选择Windows、版本如Microsoft Windows Server 2003 —— 前进——虚拟机内存RAM和CPU的设置——前进——为虚拟机启用存储: 是否立即分配整个磁盘(不建议勾选)、 浏览存储 ,存储文件为我们第二步创建的存储卷文件(win2003.img),选中存储卷——前进——确认(Y)继续使用这个磁盘——详细的虚拟机配置页面——完成
4. 虚拟机系统的安装

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部