定义
将正在运行中的虚拟机从一台主机迁移到另一台主机的过程,迁移过程中业务不中断,用户无感知。
应用场景
1. 在进行服务器操作维护/升级操作前,系统维护人员将该服务器上的虚拟机迁移到其他服务器,降低操作维护过程中业务中断的风险。
2. 将负载较重的服务器上的虚拟机迁移到负载较轻的主机上,从而实现负载均衡和负载分担。(DRS动态资源调度)
3. 将空闲服务器上的虚拟机迁移到其他服务器,将没有负载的服务器关闭,降低业务运行成本。(DPM分布式电源管理)
迁移要求
虚拟机要求:1.虚拟机状态为运行中
2.虚拟机不能绑定图形处理器、USB等外设
3.虚拟机未绑定主机
4.每台物理机最多能同时进行8台虚拟机的热迁移
主机要求: 1.目标主机要有足够的资源(CPU、内存)
2.目标主机不能够下电、重启
3.目标主机不能进入维护模式
4.跨集群迁移时,源目主机所属集群的内存复用开关要一致
5.两个主机CPU类型不一致时,需开启集群的IMC模式
存储要求:1.源目主机的存储必须为共享存储
网络要求:1.源目主机的网络必须互通,必须是同一dvs。 若不是,需要开启vxlan
有管理网络、业务网络、存储心跳网络。迁移默认走的管理网络,如果配了存储心跳网络平面走的就是存储心跳网络
迁移过程 (原理+技术:内存分片+迭代迁移)
1. 将虚拟机配置和设备信息传送到目标主机上
2. 将虚拟机迁移时的初始内存及内存变更分片同步到目标主机上
3. 在原主机上暂停虚拟机,将最后的变更内存传到目标主机
4. 先在源主机上停止虚拟机,并在目标主机上恢复虚拟机
所有的热迁移只能是二层迁移。
要实现所谓的跨三层网络迁移,那是需要VXLAN的实现,而在我们现在FusionCompute里面,并不支持这个VXLAN。
*热迁移传送了什么数据?保存在哪?
虚拟机的内存、虚拟机描述信息(配置和设备信息)、虚拟机的状态
虚拟机的配置和设备信息:操作系统(类别、版本号)、引导方式(VM通过硬盘、光盘、U盘、网络启动)和引导次序,CPU个数、内存大小、硬盘、网卡信息(IP地址、MAC地址、网关、端口组)
保存在VRM的数据库中、CNA上的libvirt内存中、以文件的方式保存在VM系统盘所在的虚拟化数据存储上。
在更改主机的热迁移时,只变更CNA上的libvirt内存,由源CNA上的libvirt传递给目的CNA
*热迁移是否会中断业务?
会,一般中断一到两个数据包的时间,一般是一个。(会中断一下下,但是新版本不丢包!!!)虚拟机热迁移上行链路发生了改变,并且更新ARP条目所以会中断。
*VRM虚拟机可以热迁移吗?
不能。
1. VRM虚拟机是与主机绑定的
2. 热迁移本身是由VRM维持的,热迁移期间会中断一段非常短的时间,如果VRM中断就会出现故障。
*热迁移需要装Tools吗?
6.3.1之后可以不装,非必选。(KVM架构可以不装,XEN架构必须装)
*Tools的作用:
1. 提高IO性能
2. 实现一些高级功能(快照、磁盘升降配置、动态资源调整、虚拟机蓝屏检测、安全关闭虚拟机)
3. 监控虚拟机的信息(CPU、内存、网卡使用率,虚拟机的内部状态(如蓝屏))
*虚拟机热迁移失败的原因:
界面提示失败:
1. 源目主机网络中断或不通。
2. 目标主机故障、被重启或进入维护模式。
3. 源目主机的CPU类型不兼容。
4. 目标主机无法访问虚拟机的磁盘。(更改主机)
5. 需要考虑在业务的闲时操作,否则迭代迁移时脏数据增加是可能失败的
业务不通: