Introduction
这篇是以MichaelR. Hines等人在2009年所写的Post-Copy Based Live VirtualMachine Migration Using Adaptive Pre-Paging and Dynamic Self-Ballooning来讨论。
Live Migration的技术在[1]的时候就几乎已经完备了,而现在有人提出post-copy的方法来与pre-copy的方法做比较,两种方法有好有坏,分别适用于不同的情境之下。
Pre-copy的技术是为了能够尽量地减少downtime,并且不影响服务的运作,而post-copy的技术则是为了减少total migration time且让程序能够持续的执行。
Design
Post-copy是由一小段stop-and-copy phase和pull-phase相结合的(相较于pre-copy的push-phase和stop-and-copy-phase),以下是post-copy执行的四个步骤:
( 1 ) Stopthe VM on source host
( 2 ) Copyprocessor state to the destination host
( 3 ) Resumethe VM on destination host
( 4 ) Beginfetching memory pages over the network from the source
其中,( 4 )很明显的是整个算法中的bottleneck,而此篇论文主要的目的也是在于如何改善第四个步骤,作者们提出了四个方法:
(1 )Demand paging
也就是一般pull phase的步骤,当在destination的VM执行时遇到page fault,就向sourcehost发出需求,此时source host会传回造成错误的page。属于被动的传输,除了有长时间的residual
dependency外,每一次的page fault都会造成VM的performance降低。唯一的好处是能够确保每一个page都只被传一次。
(2 )Active Push
为了改善( 1 )所带来的问题,除了造成page fault的页面必须先传输外,source host会从第一页page开始,不停的传送pages到destination端。变成主动的传输,能够有效的改善residual
dependency的问题。
(3 )Pre-paging
改善( 2 )的方法,由于要预测page fault产生的情形相当困难,所以作者们利用读取memory常常读取一大块block的特性,由造成fault的那页page邻近的pages作为传输的依据,能够大幅的改善page fault的情形。
作者提出一个bubbling algorithm来作为pre-paging的算法。
首先,在还没有fault发生的情况下,从第一页page开始往下传输。
接着,在发生page fault后,从发生fault的那页page开始往前后两个方向传输。
另外,当发生多次的page fault时,可以从不同的地方分别开始传送page,当有两个方向的传输碰面的时候,就停止该方向的传输。此算法会一直持续到所有的page都被传送到destination端为止。
(4 )Dynamic self-ballooning ( DSB )
在migration的过程中,有许多的”free”memory是不需要被传送的,这些free memory的量可大可小,可是如果能够避免传送这些page,是可以大幅提升migration效率的。作者利用[2]提出的Ballooning机制来找出这些free
page。
Ballooning机制是说,在guest kernel放进一个ballooning driver,这个driver会经由一个private channel 与hypervisor沟通,hypervisor可以藉由调整balloon的压力来调整给guest memory的大小。当为这个balloon充气(inflate)的时候,guest
memory会认为自己拿到的memory太多,于是balloon driver就能够回收pages并且将这些pages归还给hypervisor。相反的,当balloon消气(deflate)的时候,balloon driver可以向hypervisor要求增加memory。
作者们利用这个机制来设计DSB,构成DSB的机制如下:
(1 )Inflate the balloon:
主动将balloon充气,让balloon driver开始回收free memory并归还给hypervisor。
(2 )Detect Memory Pressure
由于DSB执行的过程中,VM仍然在执行,所以有可能会有process需求memory,DSB必须主动的去侦测,且在发现的情况下将balloon消气来要求memory page。
(3 )Deflate the balloon
将balloon消气,然后重复的执行此三个步骤。
在migration之前,让VM执行DSB,能够主动的将free page归还给hypervisor,而根据作者的实验,free page的归还率可以达到95%。DSB的技术除了用在post-copy之外,也能改善pre-copy的算法,使得pre-copy算法变得更有效率。作者在paper的后面有提出实验证明。
Evaluation
( 1 )Stress testing
从图4可以看出,不管是使用pre-copy还是post-copy,DSB的使用都能够明显的减少total migration time。在大部分指令是读取memory的情况下,pre-copy能够比post-copy有更好的performance;但是在大部分指令是写入的情况下,post-copy则明显的比pre-copy好很多。这是因为在传送memory
page的次数上,post-copy只需要传一次,而pre-copy会因为需要传送大量的dirty memory,所以造成performance下降。
根据图4,我们还可以了解到post-copy对应用类型是不可知的。由于写密集的应用产生脏页的速率可能会比传输速率更大,所以pre-copy对其是非常敏感的。而由于实现机制不同,post-copy则没有这么敏感,在total migration
time方面表现得非常平稳。
从图5我们可以得知,不论是针对写密集抑或读密集应用,DSB的运用可以大幅降低post-copy的downtime,小幅降低pre-copy的downtime。而对pre-copy的downtime影响最大的因素还是应用的类型。
图6告诉我们,DSB能够大幅减少post-copy和pre-copy的总传输页面。
表2表示的是pre-paging算法在post-copy中的用处。它可以把大量的network faults转换为minor faults。
( 2 )Degradation,Bandwidth, and Ballooning
为了量化migration对running service的影响,作者做了一个有趣的实验:在2台物理机之间来回迁移一个正在执行内核编译的VM。实验结果图7表示,VM执行内核编译,在no-migration,post-copy, pre-copy
DSB, pre-copy w/o DSB四种方法的影响下的完成时间。很明显,无论是pre-copy还是post-copy,DSB都可以大幅减少对running service的影响。因为DSB减少了需要传输的总页面,继而减小了migration对网络资源的竞争,迁移页面可以尽快地传输到target host。因为内核编译并不是非常倾向于写密集的应用,所以post-copy和pre-copy的表现并没有太大差异。
众所周知,Netperf是一个持续的占用高带宽的网络应用,有较高的脏页率。同样的,如图8所示,虽然DSB能减少migration对running service的影响,但是post-copy的表现比pre-copy是略好的。
图9和10分别表示了post-copy和pre-copy对网络带宽的影响,实验的running service为Netperf。结果显示,对于脏页率高的service,pre-copy的迭代次数多,需要传输的脏页过多导致对带宽的影响更久更高。
图11显示balloon interval对kernel compile的完成总时间的影响。根据实验,对于该service,4-10秒的时间间隔比较折衷。越频繁的balloon,对VM的负载(running service)影响越大。
Conclusion
Pre-copy的优势在于能够让使用者几乎没有migration的感觉,像是在on-line game这样的环境中也能有相当好的表现。Post-copy虽然在total migration time有较好的表现,但是在pull phase最一开始的阶段,performance会大幅下降,这是个致命伤。
此外,根据paper,post-copy目前还不是reliable的,一旦在migration的途中,destination host 发生crash,则有可能会失去这台VM内的数据。Pre-copy则不会,pre-copy在所有的stage中,都至少会有一份完整且一致的memory
and processorstate存在。这也是post-copy需要改善的地方。
分享到:
相关推荐
《MATLAB实现基于Bio-geography-based Krill-Herd-Migration (BBKH) 磷虾种群迁移优化算法详解》 在优化算法领域,自然界的生物行为常常被用来启发新的算法设计。其中,磷虾种群的迁移行为,由于其高效的信息交流和...
微软虚拟化重要资料----Live Migration 大型IT部门,必看! 其中包括了动态vhd, Enhanced Processor support: Enhanced Networking support
《全面解析WordPress迁移插件:All-in-One WP Migration File Extension》 在WordPress的世界里,数据迁移是一项常见的任务,无论是为了网站备份、迁移至新的主机,还是进行开发测试,都需要高效且可靠的工具。All-...
《全面了解WordPress备份与恢复:All-in-One WP Migration插件详解》 在WordPress的世界里,数据的安全性至关重要。为了防止意外的数据丢失或网站崩溃,定期备份成为了一个必要且明智的操作。All-in-One WP ...
tomcat升级为10.x版本以后,由于JavaEE更名为Jakarta,原有的javax.*命名空间迁移为jakarta.x,原有项目如需迁移到...jar jakartaee-migration-0.2.0.jar <source> 命令,将新生成的war包放到webapps下即可正常使用
HG-SABRE V4.1.4 , 支 持 图 形 化 迁 移 。 用 来 实 现Oracle|MySQL|SQLServer|DB2|KingbaseV7|KingbaseV8|DM7|DM8|HIGHGO 数 据 库 到 HIGHGO|PostgreSQL 数据库迁移的自动化。
描述中提及的“kvm迁移”特指使用Linux内核虚拟机(Kernel-based Virtual Machine, KVM)技术的虚拟机迁移。KVM是一种开源的虚拟化技术,它允许Linux操作系统直接运行Linux或Windows等不同操作系统的虚拟机。KVM的...
《全面解析WordPress文件上传插件:All-in-One WP Migration》 在WordPress的众多插件中,All-in-One WP Migration是一款非常实用的工具,专为WordPress网站的备份、迁移和恢复而设计。它允许用户轻松地将整个...
all-in-one-wp-migration.7.48.zip
PGConf.CN2019大会资料 培训PPT--JD--pg12features_migration_considerations
这包括VMotion、Storage VMotion和Cold Migration,分别用于实时迁移、存储迁移和无网络连接的迁移。 5. **高可用性(HA)与容错(FT)**:vSphere 5.1的HA功能能在物理主机故障时自动重启虚拟机,确保业务连续性。...
虚拟机迁移技术是云计算和数据中心管理中的关键技术之一,它涉及到如何在不中断服务的情况下,将运行在一台物理服务器上的虚拟机(Virtual Machine, VM)移动到另一台物理服务器上。这项技术对于资源调度、负载均衡...
### Live_Migration虚拟化实战知识点解析 #### 一、Live Migration 概述 - **定义**: Live Migration(实时迁移)是指在不影响虚拟机运行的情况下,将其从一台物理服务器迁移到另一台物理服务器上的过程。 - **...
《全面解析WordPress中的All-in-One WP Migration Multisite Extension插件在WooCommerce中的应用》 在WordPress的庞大生态系统中,有许多优秀的插件为用户提供各种功能和服务,其中All-in-One WP Migration(全站...
HG-Sabre-Migration_V4.0.3 , 支 持 图 形 化 迁 移 。 用 来 实 现Oracle|MySQL|SQLServer|DB2|KingbaseV7|KingbaseV8|DM7|DM8|HIGHGO 数 据 库 到 HIGHGO|PostgreSQL 数据库迁移的自动化。
《全面解析WordPress插件All-in-One WP Migration File Extension》 在WordPress的世界里,插件扮演着至关重要的角色,它们能够极大地扩展网站的功能,使用户无需深入编程就能实现各种复杂的需求。今天,我们要聚焦...
《全面解析WordPress插件All-in-One WP Migration File Extension》 在WordPress的世界里,插件是扩展网站功能的重要工具。今天我们将深入探讨一个名为"All-in-One WP Migration File Extension"的插件,它是一款...
NDN-4-VMM 论文“Supporting Seamless Virtual Machine Migration via Named Data Networking in Cloud Data Center”的模拟代码安装和配置 ndnsim; 确保运行命令“./waf configure --enable-examples”,以便构建...
"All In One WP Migration" 插件正是为此而生,它为用户提供了一种简单、高效的解决方案,实现了WordPress网站的无限制导入与导出功能。这款插件由马里奥·马尔科维奇(Mario Markovic)开发,其最新版本为6.77,以...
### 虚拟机迁移(Live Migration of Virtual Machines) #### 技术背景 虚拟机迁移是一种先进的技术,它允许在不同的物理主机之间移动完整的操作系统实例及其所有应用,而无需中断服务或只造成极短的服务中断时间...