首先来看在VIC上虚拟机在不停机的情况下的整个迁移过程是来如何操作的,虽然这个过程很简单,但是正如上一篇博文所描述的那样,配置过程却是有些麻烦,特别是遇到一些让人匪夷所思的问题时,思考解决办法往往让人头疼不已。如果大家能够顺利配置好多个VMware ESX Server环境,那么下面的迁移过程就是水到渠成的了。

1)开始迁移

VMware VMotion操作过程详细图解之二:迁移与原理_VMotion

2)选择迁移对象(关键,很多错误发生在此)

VMware VMotion操作过程详细图解之二:迁移与原理_详细图解_02

3)检查迁移对象(关键,很多错误发生在此)

VMware VMotion操作过程详细图解之二:迁移与原理_VMware_03

4)后两步比较简单故省略

5)迁移成功

VMware VMotion操作过程详细图解之二:迁移与原理_VMotion_04

6)迁移前的数据映射图

VMware VMotion操作过程详细图解之二:迁移与原理_VMotion_05

7)迁移后的数据映射图

VMware VMotion操作过程详细图解之二:迁移与原理_详细图解_06

8)迁移中虚拟机Guest OS(RHEL54 : 172.18.60.249)的网络状况

VMware VMotion操作过程详细图解之二:迁移与原理_操作过程_07

从这幅图上可以看到,其实在迁移过程中网络连接是有一段时间中断的,但对于绝大多数网络应用程序所采用的TCP/IP协议通信来说,连接往往会超时重试,数据包往往会丢包重发,所以在中断时间较短的情况下,迁移并不影响虚拟机的正常网络通信.

 

VMware VMotion的重要性自然是不言而喻,VMware VMotion能够在两台正在运行的服务器之间进行实时迁移,具有零停机性能,能够大幅度提高了服务器的可用性,保证交易数据的完整性。用户可以手工迁移服务器上的虚拟机至另外一台服务器,从而在不间断服务的情况下,升级和维护原来的服务器。多个服务器之间可以自动迁移虚拟机,从而达到负载均衡,提高资源利用率的目的。同时,这项技术还可以实现双机或多机热备,保证了服务的高可用性。

那么这项技术实现的关键原理是什么呢?VMotion从一台物理服务器将虚拟机迁移到另外一台虚拟机要用到下述三项技术:

1. 虚拟机的全部状态信息被压缩在一套存储于共享存储器的文件中。作为载体的存储器类型可以是光纤通道(Fibre Channel),iSCSI存储区域网络(iSCSI Storage Area Network,SAN)或者网络附加存储器(Network Attached Storage,NAS)。VMware的群集虚拟机系统(VMFS)允许多台ESX服务器同时访问同一个虚拟机文件。

2. 虚拟机的动态内存和执行状态在一个高速的网络上进行快速传输,允许虚拟机即时地在源ESX服务器和目标ESX服务器之间进行信息交换。在迁移过程中,VMotion只是在点阵图里对信息交换进行监控,所以整个转移过程对用户来说是透明的。一旦整个内存和系统状态全部复制到目标ESX服务器中,VMotion就会自动终止源虚拟机,同时将点阵图转移到目标ESX服务器中,并在目标ESX服务器中重新启动虚拟机。上述整个操作假如是在一个千兆以太网络中进行,那么不用两秒的时间就可以完成。

3. 虚拟机使用的网络同样也会被目标ESX服务器虚拟化,确保在实时迁移之后,虚拟机的网络身份和连接能够得到保留。VMotion将MAC地址作为进程的一部分来进行管理。一旦目标机被激活,VMotion会检查网络路由器来确保它能识别虚拟机MAC地址新的物理位置。由于虚拟机使用VMotion来进行实时迁移,它的执行状态,网络身份和动态链接都能够得到保护,所以对于用户来说,整个迁移过程并没有引起服务器停机或者网络中断。

 

了解了这些以后,我们可以充分利用VMware的各项虚拟化技术,产品和解决方案来为我们的工作提供强大支持。