KVM 的预拷贝在线迁移过程详解,摘自:虚拟机迁移技术漫谈

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

               图 1. 源服务器和目标服务器 
             

           


2.当虚拟机还在源服务器上运转时,第一个循环内将全部内存镜像复制到目标服务器上。在这个过程中,KVM 依然会监视内存的任何变化。 
      图 2. 内存镜像复制示意图  
                
 

 
3.以后的循环中,检查上一个循环中内存是否发生了变化。 假如发生了变化,那么 VMM 会将发生变化的内存页即 dirty pages 重新复制到目标服务器中,并覆盖掉先前的内存页。在这个阶段,VMM 依然会继续监视内存的变化情况。
            图 3. 进行有变化的内存复制
              

 

4.VMM 会持续这样的内存复制循环。随着循环次数的增加,所需要复制的 dirty pages 就会明显减少,而复制所耗费的时间就会逐渐变短,那么内存就有可能没有足够的时间发生变化。最后,当源服务器与目标服务器之间的差异达到一定标准时,内存 复制操作才会结束,同时暂停源系统。
               图 4. 所需复制的数据在减少
                    

 

5.在源系统和目标系统都停机的情况下,将最后一个循环的 dirty-pages 和源系统设备的工作状态复制到目标服务器。 
              图 5. 状态信息的复制 
                  


6.然后,将存储从源系统上解锁,并锁定在目标系统上。启动目标服务器,并与存储资源和网络资源相连接。 
                 图 6. 停止源服务器,启动目标服务器