动态迁移是在源虚拟机不停机且QoS能够保证的前提下,将源虚拟机的操作系统和数据迁移到目标服务器上,总的来说迁移的主要内容有:内存、磁盘、网络和设备状态。
(1)内存的迁移
内存迁移非常复杂,因为在迁移的过程中,虚拟机上的应用不会停止,也就是说内存数据会处于不断变化中,每一次内存数据的改写意味着一次内存数据的迭代传输,而迭代的过程必然增加迁移的总时间,所以动态迁移总是在迁移总时间和停机时间之间做着平衡。
内存的迁移过程一般有三个阶段:
PUSH阶段:该阶段中,源服务器首先将全部内存页传递给目的端服务器,但是在传输过程中,内存页的数据会被持续被修改,接着源物理机会将迭代传输时被改动的内存数据传输给目的物理机,直至满足迭代条件停止。
STOP-and-COPY阶段:该阶段中,源主机暂停,源物理机将最后一轮迭代中被弄脏的内存数据和CPU、I/O等设备状态数据传输给目的物理机。
PULL阶段:目的主机在最小系统下运行,当运行到某应用程序时,可能会缺失部分数据,这时目的主机会以缺页中断的形式向源主机索取缺失的数据。
常见的内存迁移方法一般包含以上三个阶段中的一个或多个,例如只有STOP-and-COPY阶段,则是静态迁移方法,只有PUSH阶段和STOP-and-COPY阶段则属于预迁移方法,只有STOP-and-COPY阶段和PULL阶段则属于后迁移方法。当然也有完全不包括上述三个阶段的迁移方法,如CR/TR-Motion方法。(www.xing528.com)
(2)磁盘的迁移
磁盘数据的特点是数据量特别大,且存储介质多种多样,在局域网内,一般不进行磁盘数据的迁移,而是采用共享存储技术,如NFS等。在NFS共享存储中,源和目的虚拟机共享NFS Server的磁盘空间,在进行迁移时就不用再进行磁盘数据的迁移了,只需要传输少量的配置文件信息。但是对于非局域网环境,存储的迁移就是一个难点了,Travostiono F[33]等提出了一种“VM Tumtablede Monstrator”的技术,使得对于磁盘数据的迁移不再只局限于局域网环境,在Travostiono F的实验中,在非局域网环境下,尽管数据量增大了1000倍以上,但是停机时间只增长了5到10倍。
(3)网络的迁移
网络迁移是为了保证在迁移后虚拟机的网络连接情况不会改变,具体的迁移数据有网络协议及IP等。对于局域网中的迁移,我们常用ARP重定向数据包,将源和目的虚拟机的IP地址进行绑定,这样就避免了网络数据的传输,并且能在对用户透明的前提下实现网络数据资源的迁移。
但是网络结构并不总是一成不变的,对于非局域网的网络资源的迁移是比较困难的,对此,Hidenobu等在文献[34]中提出了一种IP Mobility技术,也叫作全局动态IP迁移技术,这种技术可以在非局域网环境下进行网络数据的迁移,并且可以控制停机时间在Is以内。
(4)设备状态的迁移
设备状态的迁移非常重要,例如CPU状态、网络状态、图形处理器的状态等,它们保证了虚拟机在迁移后能够保持原来状态,但是它们的数据量通常都比较小,不管是在局域网环境还是在非局域网环境,传输这些数据占用的资源都比较小,传输时间也非常短。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。