一、概念
1、静态迁移
静态迁移也叫做冷迁移,虚拟机关机状态下,将虚拟机磁盘镜像文件和配置文件复制到另一台宿主机上,整个迁移过程系统出于关闭状态, 当然也无法提供服务。该场景只能应用于可以停机的系统环境下
2、动态迁移
动态迁移也叫做热迁移,指的是将正在运行的虚拟机迁移到另一台宿主机上,迁移期间整个系统应出于运行状态, 业务系统仍可以提供服务(网络连接会有秒级的中断)。该场景适用于对业务可用性要求比较高的系统。
二、静态迁移
1、环境信息
主机地址 | 主机名 | 角色 |
10.12.17.10 | src | 宿主机(源主机) |
10.12.17.20 | des | 宿主机(目标主机) |
2、关闭虚拟机
在宿主机源主机上关闭虚拟机
virsh shutdown 1050a #关闭主机
virsh destroy 1050a #强制关闭
3、虚拟机磁盘文件
1)列出虚拟机磁盘文件
在宿主机源主机查看虚拟机的磁盘文件
[root@src ~]# virsh domblklist 1050a
目标 源
------------------------------------------------
vda /data/1050a.qcow2
hda -
2)将虚拟机磁盘文件复制到另一台宿主机
将源主机上的虚拟机磁盘文件复制到目标主机上
scp /data/1050a.qcow2 root@des:/data/1050a.qcow2
4、虚拟机配置信息
1)导出虚拟机配置信息
在源主机上导出虚拟机配置信息
virsh dumpxml 1050a >1050a.xml
2)将虚拟机配置文件复制到另一台宿主机
将源主机上的虚拟机配置文件复制到目标主机上
scp 1050a.xml root@host2:/data/
5、定义虚拟机信息
在目标主机上定义生成虚拟机信息
virsh define /data/1050a.xml
注意磁盘文件存放的位置,如果目标主机与源主机存放位置不同则需要更改磁盘文件的配置信息
6、启动测试
在目标主机上查看并启动虚拟机
[root@des ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- 1050a 关闭
[root@des ~]# virsh start 1050a
域 1050a 已开始
三、动态迁移
1、添加hosts解析
在源主机与目的主机分别添加hosts解析
[root@src ~]# cat /etc/hosts
10.12.17.10 src
10.12.17.20 des
2、搭建NFS文件共享服务
1)安装
yum install nfs-utils
2)配置NFS共享目录
注意共享目录需要配置为虚拟机磁盘文件所在目录, 目的是将源主机上的虚拟机磁盘文件共享的目标主机上
vim /etc/exports
/data 10.12.17.0/24(rw,no_root_squash,sync)
3)启动服务
systemctl restart nfs-server.service
4)检查共享配置
[root@src ~]# showmount -e 10.12.17.10
Export list for src:
/data 10.12.17.0/24
5)挂载nfs
在目标主机上挂载nfs共享目录
mount -t nfs -o vers=3,nolock,proto=tcp 10.12.17.60:/data /data
3、开始迁移
virh migrate --live 1050a --unsafe --verbose qemu+ssh://10.12.17.20/system
root@10.12.17.20's password: #在此输入目标主机的密码
迁移: [100 %]
1)迁移命令说明
- virsh migrate 迁移命令固定格式
- live 热迁移 1050a 虚拟机的名称
- unsafe 不进行安全审查
- verbose 迁移过程以百分比显示
- qemu+ssh://$ip/system 配置目标主机
4、查看虚拟机状态
在目标主机上查看虚拟机状态,已经迁移完成
[root@des ~]# virsh list
Id Name State
----------------------------------------------------
3 1050a running