如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

目的:
虚拟机的迁移,和多用户
环境:
本次实验主要在有界面的centos7环境下进行的安装操作,*面的和这稍有差异,另外采用的是硬件虚拟化技术,需要CPU能够支持虚拟化,这在下面的文章中将会进行设置
KVM:2.6.20放到linux内核里面的内核
1 KVM前身就是QEMU(全虚拟化软件)
主要负责:虚拟CPU,内存(通过/dev/kvm访问内核实现虚拟化)
2 QEMU:通过半虚拟化虚拟化I/o(硬件辅助 virtio)
3 tools

具体操作:
安装
yum -y install qemu-kvm python-virtinst virt-manager virt-top virt viewer libvirt libvirt-client virt-install brifge-utils

1 打开CPU虚拟开关(注意必须在关机的状态下才能够设置)

进入虚拟机设置>处理器>虚拟化引擎勾选第二项
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

查看是否设置成功( grep vmx /proc/cpuinfo)

如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

2) 确保BIOS里开启虚拟化功能,即查看是否加载KVM模块

如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
2 NAT/桥接方式开启虚拟机
采用命令 ping baidu.com 查看网络是否能够连接成功
3 设置网桥(后面做也可以)
下载brctl
yum -y install bridge-utils
首先设置网卡信息主要是让网卡使用br0,我这里网卡地址是ens33
输入命令nmcli con show 查看网卡连接信息

vi /etc/sysconfig/network-scripts/ifcfg-ens33

如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
TYPE=Ethernet
BRIDGE=br0
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=51977ca2-4de6-4ae0-8c27-da915457fbf6
DEVICE=ens33
ONBOOT=yes

设置网桥配置文件,将下面的内容全部编辑进去

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.168(桥接模式下的本机IP)
NETMASK=255.255.255.0
GATEWAY=192.168.1.1(桥接模式下所处的网关)
DNS1=114.114.114.114
ONBOOT=yes
BOOTPROTO=static

查看网桥是否搭建完成

如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

查看当前IP信息

如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

=可以看到现在的IP是在br0网卡上的说明网桥搭建成功可以采用ping命令查看网络是否正常连接

安装

yum -y install libcanberra-gtk2 qemu-kvm.x84_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 libiscsi-1.7.0-5.e16.x86_64 dbus-devel virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst

启动libvirt并设置开机启动

systemctl enable libvirtd
syatemctl start libvirtd

传送镜像文件

方法一:dd if=/dev/cdrom of=/data/centos7u4_x86_64.iso

方法二:可以将window下的镜像文件传送到虚拟机上,方便安装(用rz传)

KVM已经安装完成接下来介绍如何搭建虚拟机

第一步:进入到应用程序>系统工具>虚拟系统管理器
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
第二步:右键选择新建
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
第三步:按照操作步骤前进
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

=此步选择上传的镜像文件

如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

=设置CPU的内存,具体多少根据个人虚拟机的内存定义
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

=设置虚拟机内存,根据实际情况定义
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
=最后一步点击安装即可后续的安装过程和在vmware上安装虚拟机的过程相同

我们在一台虚拟以上安装了另外一台虚拟机,此时一开始的虚拟机我们称为物理机,建好的称为虚拟机,VNS相当于一个远程访问虚拟机的一个客户端需要在虚拟机上进行安装和配置

安装VNC server/VNC客户端

关闭防火墙和selinux

systemctl stop firewalld
setenforce 0

下载

yum -y install tigervnc-server tigervnc vnc vnc-server

配置VNC连接

修改配置文件
vi /usr/lib/systemd/system/[email protected]
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
设置密码:
vncpasswd
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
重新加载
systemctl daemon-reload
启动VNC并设置开机启动
systemctl enable [email protected]:1.service
systemctl start [email protected]:1.service
(用来验证tightvncserver是否安装成功,成功能运行否则不能运行)
vncserver -geometry 1024x768
客户端进行连接(是window上的应用程序,大家可以下载一下)
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

总结

整体下来还是比较艰难的,因为是第一次做,很多地方都不熟悉,也遇到了很多问题,下面将问题规整一下

问题一 桥接模式下ping网络不通

首先查看你是什么模式,一般在NAT模式下的网络或自动分配一个IP地址不会和其他网路冲突,如果是桥接模式,可能IP地址被占用,另外下面箭头处应设置成你当前所处网络环境下的网关
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接
在window下查看网关
如何在虚拟机中用KVM搭建虚拟机再用VNC进行连接

问题二 在用KVM安装虚拟机时进行到最后一步时卡在那里

原因一:由于镜像文件太大, 物理机无法加载
解决方法:尝试用小一些的镜像文件
原因二:当用镜像小的文件时和一开始物理机的镜像发生冲突
解决方法:物理机和虚拟机的镜像文件尽量保持一致