实时迁移是服务器虚拟化的一大亮点,以前管理员必须牺牲周末时间重新回机房进行的服务器维护共工作,现在能够在办公时间轻松维护完成,服务器应用实现不停机的实时迁移是虚拟化技术最为吸引用户的一点。比如VMware公司的VMotion,而它的竞争对手——Citrix(思杰)则有XenMotion与之相抗衡。
XenMotion概述
XenMotion是XenServer的一项功能,能够将正在运行的虚拟机从一台XenServer主机上迁移到另外一台,而不带有任何停机的危险。这就意味着在整个迁移过程中,被移动的虚拟机在任意时刻都处于正常的工作状态。XenMotion的主要目的是在某台服务器需要进行计划维修的情况下,终端用户无法觉察到应用程序出现过极短暂的中断,令整个服务过程正常顺畅。
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迁移并无法做到***的零停机,其确切的停机时间一般为100~150毫秒。但是,由于这个时间间隔很短,所以在服务器上运行的虚拟机无法觉察,就不会出现中断。而这极其短暂的停机时间大部分是花费在将网络交换设备转移到一个新的端口上。
XenMotion的系统要求
1. XenServer中的处理器必须具有相同的类型。
尽管XenMotion允许每个系统的内存,存储控制器和网络控制器可以不相同,但是其处理器却必须具有相同的类型。除了类型有硬性的规定之外,它还允许其存在一些细微的差异(比如CPU的运转速度)。举个例子,对同一个Resource Pool中的服务器来说,必须使用同一系列处理器。
2. Resource Pools中至少要有两台XenServer Enterprise服务器处于运转状态。
3. 虚拟机的存储器类型
虚拟机必须存储在远程共享的存储器中。比如与基于网络文件系统NFS(Network File System)或者iSCSI(通过iSCSI启动软件)的存储器相连接。
此外,假如Resource Pools中有某台XenServer主机被移除,那么原本在上面运行的虚拟机并没有随之被删除,而是依然存在于数据库中,不会导致数据丢失,并且对于其他的XenServer主机成员是可见的。但是这些虚拟机是处于停用状态,只有它们的虚拟磁盘被连接到共享服务器时,才可以被Resource Pools中的其他XenServer共享。因此,为了提高资源的利用率,***在共享存储器创建完成的时候,就把本地磁盘添加到共享存储器中。
4. 网络的带宽要求:推荐使用千兆位的以太网。
XenMotion的运行原理
XenMotion使用的是预复制迁移(Pre-Copy Migration)。其具体步骤如下:
1. 系统验证目标服务器的存储器和网络设置是否正确,并保留目标服务器虚拟机的资源。
源服务器和目标服务器简图
2. 当虚拟机还在源服务器上运转时,将内存镜像复制到目标服务器上。在这个过程中,XenServer依然会监视内存的任何变化。
内存镜像复制示意图
3. 在这一步完成后,大部分的内存镜像已经被复制到目标服务器上了。检查在这个阶段中,内存较复制前是否发生了变化。
内存镜像复制完成示意图
4. 假如发生了变化,那么XenServer会将发生变化的内存重新复制到目标服务器中,并覆盖掉先前的内存。在这个阶段,Xen依然会继续监视内存的变化情况。
进行有变化的内存复制
Xen依然监视内存的变化情况
5. Xen会持续这样的内存复制操作。随着复制次数的增加,所需要复制的数据就会明显减少,而复制所耗费的时间就会逐渐变短,那么内存就有可能没有足够的时间发生变化。***,当源服务器与目标服务器之间的差异可以忽略不计时,内存复制操作才会结束。
所需复制的数据越来越少
6. 内存复制完毕之后,将机器的工作状态复制到目标服务器之后,源服务器就停止工作。然后,将存储从源系统上解锁,并锁定在目标系统上。启动目标服务器,并与存储资源和网络资源相连接,同时清除源服务器的上的资源。
状态信息的复制
停止源服务器,启动目标服务器
XenMotion vs VMotion
XenMotion和VMotion都是致力于在服务器无法正常工作时,将其上正在运行的虚拟机迁移到其他候补服务器上,实现零停机。尽管如此,两者在操作,配置上还是有些许的不同的:
1. XenMotion只需要支持软件iSCSI或者NFS;VMotion则可以选择光纤(Fibre),软件或者硬件的iSCSI以及NFS。
2. 当虚拟机与内部网络相连接时,XenMotion是不可用的;对于VMotion来说,只要相互迁移的两台主机连接的是相同的网络即可,无论该网络是内部的还是外部的。
3. XenMotion需要手动操作;VMotion可以手动,也可以通过分布式资源调度程序(DRS)自动进行。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删