全球旧事资料 分类
杂3。当今只有precopy和postcopy两种算法较好地实现了内存的迁移。
precopy算法的核心思想如下:源主机将虚拟机的所有内存页面复制传送到目的主机,在此期间虚拟机不间断运行;复制之后再次被更改的内存页面称为脏页面,虚拟机开始会对后续的脏页面进行迭代复制。在每轮发送完成后检查当前是否符合stopa
dcopy条件,如满足则进入stopa
dcopy阶段,在源主机上虚拟机被暂停运行,最后的少量内存页面被复制到目的主机,此时目的主机和源主机的虚拟机内存页面达到一致,目的主机使虚拟机接管工作,删除源主机上的虚拟机数据。与静态迁移相比,precopy缩短了总迁移时间和停机时间,在负载较轻的情况下,precopy可以把停机时间控制在不到02s的范围之内,很好的实现了迁移的透明性。而在负载偏高的情况下,虚拟机的内存页面修改较为频繁,使得脏页面不停地产生,因而必须进行迭代复制和判断。这就造成了较大的系统开销,引起很长的停机时间和总迁移时间。
postcopy算法和precopy算法相反,它让源主机一开始就停止虚拟机的运行,在暂停期间将虚拟机的CPU和IO信息复制到目的主机上,由于数据量很小,所以目的主机立即便能够启动虚拟机接管工作;在目的虚拟机运行过程中,一旦访问到相关内存产生缺页错误,就会向源主机发送页面请求,令其将这些内存页面传送过来。直到目的虚拟机访问了所有的内存页面,才能停止源虚拟机释放资源。postcopy相比precopy算法,进一步缩短了停机时间,但总的迁移时间则更长。如果多个虚拟机需要并发的动态迁移,源主机上会因为等待内存迁移而消耗大量的计算和存储资源,并且很长时间无法得到释放,导致整体的效率降低。
3研究热点
目前主流的热迁移技术都有其局限性和不足之处,precopy算法的总迁移时间过长,而时间越长,迁移所占用的资源就越多,使迁移中的虚拟机遭受长时间的服务性能下降。特别是如果脏页面生成的速率高于内存复制的速率,迁移过程就会更长,直到耗时超过阈值,导致服务中断。为了改善上述问题,Bradford等人设计了一种名为Memoryballoo
的机制4,通过消除一些无用的内存数据来减少首轮复制所需要传输的数据量,从而缩短热迁移的总时间;Surie等人通过不断的记录用户行为信息,并且将行为在目标主机上重现的方式来减少虚拟机迁移过程中产生的整体开销5。
标准的postcopy算法首先传送vCPU和IO信息,然后使目标虚拟机接管工作,接下来的内存读取基于“按需取页”的思路,由于缺页而向原虚拟机索取。由于网络延r
好听全球资料 返回顶部