热迁移
热迁移(Live Migration),又称动态迁移或实时迁移,是一种虚拟机保存/恢复的技术。它能够将虚拟机的运行状态完整保存,并快速恢复到原有的或不同的硬件平台上,使得虚拟机能够在迁移后继续保持平稳运行,用户几乎感觉不到任何变化。
技术原理
Hyper-V热迁移(Hyper-V Live Migration)是微软Hyper-V自版本2.0开始支持的一项技术,旨在实现物理机与虚拟机之间的热迁移。这种迁移通常是在计划内的宕机情况发生时,如硬件升级或替换。Hyper-V热迁移并不是针对故障状态下发生的非计划宕机。热迁移过程分为几个步骤:
1. 在源和目标计算机之间建立连接,以确保通信速度和效率。在源服务器或目标服务器负载过高的情况下,可能会出现WMI调用clusres.dll超时失败的情况,这种情况在PRO调用热迁移过程中会导致虚拟机长时间处于挂起状态。微软官方提供了相应的补丁,需要在所有节点上部署。
2. 传输虚拟机的配置和设备信息,这些信息不是来自虚拟机目录中的XML配置文件,而是从注册表中获取。这两步完成了迁移的准备工作,向目标服务器传达了虚拟机所需资源的信息,并为其分配资源。
3. 传输虚拟机的内存,这是迁移的核心技术部分。无论是威睿还是Hyper-V,都无法回避此问题。尽管有些服务商声称服务不断线,但从技术角度来看,这只是断线时间从秒级降至毫秒级。具体而言,内存传输过程如下:
锁定Guest主机内存,并将该部分信息传输到目标服务器。
Guest主机继续运行,在Host主机中创建一个新的内存分区为Guest主机提供服务。该分区只保存更改的内容。
新内存分区继续分片锁定并传输。
重复第2-3步,直到操作1中的内存传输完成,以确保源HOST服务器与目标HOST服务器之间的内存差异在一个非常小的时间范围内。
4. 暂停(挂起)源虚拟机并传输状态。这部分包含了三个操作:
挂起源虚拟机。
传输最后的源虚拟机内存更改片段。
通知存储,将存储挂载到目标服务器。
第四步是迁移时间的关键所在。关键在于实时内存状态的保存。在Hyper-V 1.0中,快速迁移采用了挂起源虚拟机后再处理内存的方法,因此迁移过程中宕机时间与虚拟机消耗的内存呈正相关。而在热迁移中,宕机时间不再取决于迁移虚拟机消耗的内存,而是取决于一个相对较小时钟周期内的内存变更片段。根据实际测试,在热迁移操作中,ping包监视显示根据系统负载的不同,丢包率在2%至6%之间,足以满足大多数企业的高可用性需求。
发展现状
服务器虚拟化技术是当前的热点,而虚拟机的“热迁移(Live Migration)”技术则是虚拟化技术当中的热点。热迁移技术是指可以把一个虚拟机从一台物理服务器迁移到另一台物理服务器上,威睿公司在05年通过VMotion(虚拟机的迁移代理程序)、虚拟中心管理软件(Virtual Center management)首先进入到了这一领域。因为VMware将其虚拟机文件系统(VMFS)覆盖了存储系统来允许虚拟机之间的热迁移,因此VMotion只能在两台访问同一个VMFS的服务器上进行虚拟机的热迁移。XenSource公司,这家提供开源Xen Hypervisor的供应商,宣布了其产品的热迁移特性。下个月,XenSource公司将在XenEnterprise 4.1当中内置XenMotion,并将通过赛门铁客的维尔软件来提供存储管理能力。XenSource公司的资深副总裁Gordon Mangione表示,Xen与赛门铁客构成了绝妙的组合,因为很多Xen的使用者都在使用赛门铁客的维尔文件系统,这就不必强迫用户采用新的文件管理系统。微软公司也计划在其开发代号为的Veridian hypervisor当中提供虚拟机的热迁移功能,但微软并没有给出确切的日期。不过,微软公司Windows服务器分公司高级产品经理Patrick O'Rourke表示会在以后的升级中将其添加进去。虚拟机的热迁移技术最初是被用于双机容错或者负载均衡,从而在应用上有很多优势。首先是可伸缩性比较强,在晚上或周末,IT管理者可以让运行某些关键业务的服务器适当减少工作量,以便进行更新操作系统,给应用程序打补丁等。而到了白天,又可以弹性地进行大负载量的运算。其次,数据中心都追求环保节能,工作量负载大的应用程序必然会令服务器能耗增加,有了虚拟机热迁移技术,当一台物理服务器负载过大时,系统管理员可以将其上面的虚拟机迁移到其他服务器,可有效减低数据中心服务器的总体能耗,再通过冷却系统将数据中心的温度保持在正常水平。但是,进行虚拟机的热迁移也有不少的限制。例如,VMotion在进行迁移之前,管理软件会检测目标服务器的X86架构是否与原服务器兼容。包括存储设备以及处理器,虚拟机必须放到共享的存储里,CPU的类型也要一样,不仅不能一个是英特尔,一个是AMD,甚至相同厂商不同产品线的CPU也不行,比如英特尔至强和奔腾。不过,处理器厂商正在试图解决这一问题。AMD已经找到了一种方法并将其加入到处理器架构之中,帮助虚拟机监控器分辨正在使用的X86指令。AMD虚拟化技术解决方案总监Tim Mueting说:“我们的目标是让虚拟机在不同的处理器之间进行迁移。”而在08年6月12日,英特尔宣布,将在下半年推出两项新的虚拟化技术。其中一项名为“FlexMigration”,可将虚拟机转移到其他物理服务器,这一硬件级别的热迁移技术被业界普遍看好,并被认为是威睿 VMotion的主要竞争对手。据悉,英特尔将在45纳米制程的Penryn处理器当中内嵌FlexMigration技术,该技术可支持跨代迁移。这样,虚拟机就可以在基于Penryn处理器的服务器和其他双核、四核处理器之间任意迁移。
应用领域
计算机共享
在公共场合,用户需要共享计算机,但由于不同的系统配置和软件设置,需要花费大量时间进行配置和恢复。此时,使用虚拟机的保存/恢复技术可以有效地解决这个问题。用户可以在虚拟机中执行所有工作,需要暂停时将虚拟机保存到文件中。下次使用时,可以通过先前的文件恢复虚拟机继续工作。
数据库备份
对于大型、关键的数据库应用,备份是一项重要且复杂的任务。虚拟机的保存/恢复技术可以使数据库在虚拟机中运行,需要备份时只需保存虚拟机,这样数据库中的所有数据和状态都会得到备份。如果数据库崩溃,可以通过恢复虚拟机来恢复整个数据库。
环境重现
在进行性能测试或程序调试时,需要重现当时的环境,而这往往需要重新启动、配置软件,并耗费一定的时间。使用虚拟机的保存/恢复技术,可以将已重现的环境保存起来,未来测试时只需恢复即可。一个512MB内存的虚拟机只需要几秒钟就能完成保存/恢复,显著缩短了重现时间。
系统硬件维护
许多操作系统都能稳定支持7x24小时运行,但硬件需要定期维护。利用虚拟机的动态迁移技术,可以将虚拟机从需要维护的物理机器迁移到备用机器,等待维护完成后,再将其迁回原始物理机器。所有系统服务和应用程序在恢复后仍能正常运行,用户不会感觉到因硬件维护而导致的服务中断。
参考资料
OpenStack虚拟机冷迁移与热迁移.天翼云.2024-10-29
openStack动态迁移.CSDN博客.2024-10-29
什么是 Hyper.Microsoft.2024-10-29