实验环境
- 主机硬件: i7-8550u
- 主机内存:8G
- 主机操作系统:Win10
- 虚拟化软件:Vmware Workstation 15 Pro
- 客户机系统:Centos7 x86_64
- 虚拟机KVM 1 : 192.168.1.68
- 虚拟机KVM 2 : 192.168.1.65
- 虚拟机NFS : 192.168.1.67
- 安装介质:CentOS-7-x86_64-Minimal-1810.iso , CentOS-7-x86_64-DVD-1810.iso
实验目标
通过一台笔记本来实现KVM虚拟机的热迁移操作环境。
实验过程
通过在笔记本上启动三个虚拟机,一个是NFS服务端(192.168.1.67),一个是热迁移的源头(192.168.1.65),另一个是热迁移的目标环境(192.168.1.68)。 如下图所示:
搭建NFS服务端环境
复制一份上述安装完成的虚拟机,用作NFS服务器端,IP设为192.168.1.67 .
安装相关软件包:
配置NFS
在/etc/exports 文件中添加下面内容: 注:这里设置的是对所有IP段开放,可根据实际缩小范围。
创建相关目录:
开机启动NFS服务:
启动服务:
检测状态:
开放防火墙端口:
也可以直接关闭防火墙:
禁用防火墙:
注:为了节约资源,可以将此虚拟机关闭图形界面,默认不启动图形桌面
为了节约资源,也可以将此虚拟机的内存缩小至1.3G。
部署KVM虚拟机环境
这里属于Vmware虚拟机中安装KVM虚拟机,是双层的嵌套,注意要在Vmware中开启VT虚拟化支持,如下图所示:
遇到的问题:
上述挂载的命令不能成功返回,使用下面命令, 错:
原因是服务端防火墙导致的,在NFS服务器上执行:
或者直接关闭防火墙:
创建桥接 卡
修改文件:/etc/sysconfig/network-scripts/ifcfg-ens33 注:其中ens33是有线 卡的名字 注释掉 络IP信息,并添加最后一行,如下所示:
然后,再创建文件:/etc/sysconfig/network-scripts/ifcfg-br0 内容:
关闭Selinux
将/etc/sysconfig/selinux 中的enforcing 改为disabled
重启机器 。
复制虚拟机
此时将源主机192.168.1.65 , 复制出一份,IP设为192.168.1.68,主机名改为kvm68host 注:此时复制,保证了两个环境具有相同的NFS存储池信息,相同的 卡设备。SELinux已被关闭。
安装虚拟机
在192.168.1.65环境上安装客户机,文件系统存放在NFS存储池中
安装客户机系统
这里的客户机就是迁移对象,即Vmware虚拟机中的KVM虚拟机。 为了测试方便,这里选择安装最小版的centos系统。
安装过程略去。
创建虚拟机过程遇到的问题:
权限不足的问题:
使用测试环境上的NFS仍有此问题,可见是本地环境的问题导致的,
继续排查
解决办法:关闭Selinux
将/etc/sysconfig/selinux 中的enforcing 改为disabled
重启机器 。
重新创建虚拟机,安装正常进行。
配置热迁移源环境
这里源环境就是192.168.1.65虚拟机。
在virt-manager中建立192.168.1.68上的远程连接
菜单:文件–> 添加连接
输入正确的密码之后,可以看成功添加远程的连接了,如下图:
源环境上会暂停一下虚拟机:
迁移结束。 此时,再打开该虚拟机,仍是之前运行的状态:

迁移成功 。
遇到的问题:
查看防火墙设置,停止防火墙
通过virsh进行迁移操作
此次操作的源主机是192.168.1.68,
迁移的目标主机是192.168.1.65:
热迁移操作:
迁移完成后,成功返回。
遇到的问题:
- 问题一:
从提示信息来看,虚拟机的磁盘必须使用缓存。
有两种方式来设置这个缓存 :
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!