您的位置:首页 > 其它

Citrix XenServer动态迁移(XenMotion)技术解析

2013-04-06 14:56 232 查看
实时迁移是服务器虚拟化的一大亮点,传统架构下需要到机房进行的服务器维护工作,现在能够在办公时间轻松维护完成,服务器应用实现不停机的实时迁移是虚拟化技术最为吸引用户的一点。

XenMotion概述

XenMotion是XenServer的一项功能,能够将正在运行的虚拟机从一台XenServer主机上迁移到另外一台,而不带有任何停机的危险。这就意味着在整个迁移过程中,被移动的虚拟机在任意时刻都处于正常的工作状态。XenMotion的主要目的是在某台服务器需要进行计划维修的情况下,终端用户无法觉察到应用程序出现过极短暂的中断,令整个服务过程正常顺畅。



XenMotion与Resource Pools(资源池)

XenMotion与Resource Pools协同工作。Resource Pools的功能是收集在一组资源中相互连接的多个相似XenServer Enterprise服务器。这种统一的管理单元(Resource Pools)能够使与之相连接的虚拟机共享远程存储和网络资源。对于同一个Resource Pool来说,它允许其中的虚拟机进行实时迁移。当Resource Pools与共享存储器共同工作时,只要XenServer主机的容量足够大,那么就虚拟机就可以在这些主机中任意启动。

这就为XenMotion创造了一定的条件。如果有某一台正在运行的服务器超负荷或者发生了故障,那么管理员就可以立刻在Resource Pool中选择另一台服务器进行虚拟机的迁移。虽然没有进行明确的规定,但是每一个Resource Pool一般最多可以支持16台XenServer主机。

值得注意的是,XenMotion并不仅仅在服务器出现故障,无法正常工作的情况下才进行迁移。当服务器超负荷的时候,XenMotion就会将 一部分的操作系统,包括上面正在运行的应用程序原封不动地迁移到候补服务器上。因此,XenMotion能够合理地分配Resource Pool中XenServer的工作量,大大提高了资源利用率和工作效率。

XenMotion的运行原理

XenMotion使用的是预复制迁移(Pre-Copy Migration)。其具体步骤如下:

1. 系统验证目标服务器的存储器和网络设置是否正确,并保留目标服务器虚拟机的资源。

2. 当虚拟机还在源服务器上运转时,将内存镜像复制到目标服务器上。在这个过程中,XenServer依然会监视内存的任何变化。

3. 在这一步完成后,大部分的内存镜像已经被复制到目标服务器上了。检查在这个阶段中,内存较复制前是否发生了变化。

4. 假如发生了变化,那么XenServer会将发生变化的内存重新复制到目标服务器中,并覆盖掉先前的内存。在这个阶段,Xen依然会继续监视内存的变化情况。

5. Xen会持续这样的内存复制操作。随着复制次数的增加,所需要复制的数据就会明显减少,而复制所耗费的时间就会逐渐变短,那么内存就有可能没有足够的时间发生变化。最后,当源服务器与目标服务器之间的差异可以忽略不计时,内存复制操作才会结束。

6. 内存复制完毕之后,将机器的工作状态复制到目标服务器之后,源服务器就停止工作。然后,将存储从源系统上解锁,并锁定在目标系统上。启动目标服务器,并与存储资源和网络资源相连接,同时清除源服务器的上的资源。

注:事实上,XenMotion迁移并无法做到百分之百的零停机,其确切的停机时间一般为100~150毫秒。但是,由于这个时间间隔很短,所以在服务器上运行的虚拟机无法觉察,就不会出现中断。而这极其短暂的停机时间大部分是花费在将网络交换设备转移到一个新的端口上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: