LOGOVMCkpt:基于虚拟机的检查点技术研究LOGO提纲课题背景及意义1国内外研究现状2核心问题及策略34课题规划LOGO检查点概述定义:Checkpointisadesignatedplaceinaprogramatwhichnormalprocessingisinterruptedspecificallytopreservethestatusinformationnecessarytoallowresumptionofprocessingatalatertime(Zomaya1996).检查点用途容错及灾备(FT&HA),广泛应用于DBMS,并行高性能计算(longtime)等进程或系统的休眠、迁移,系统快速启动。程序调试LOGO课题背景项目:973子课题四,“虚拟计算系统普适化运行环境研究”支撑系统:多平台共享的虚拟用户环境(VUE)系统现状:已经实现了用户多状态可回滚的桌面虚拟环境XenserverXenserver……APPServerVCMThinClientPDADataServerIntranetDomain0DomainUXenVirtualizedPCLOGO系统母板库用户n用户1操作环境版本2操作环境版本1文件系统增量1RedhatLinux系统镜像母版文件系统增量2系统快照系统快照私有数据私有数据操作环境版本3文件系统增量3系统快照私有数据操作环境版本2操作环境版本1文件系统增量1文件系统增量2系统快照系统快照私有数据私有数据操作环境版本3文件系统增量3系统快照私有数据Windows系统镜像母版Debian系统镜像母版……操作环境版本4文件系统增量4系统快照私有数据课题背景(续)全系统检查点数据组织结构LOGO课题意义(续)亟待解决问题LOGO课题意义(续)如何提高系统的可用性和运行效率?设计和优化基于虚拟机的全系统检查点:可压缩存储、对用户透明、可增量存储、可聚合、可协作。抛开系统,实现高效的VM检查点本身意义重大。对任何应用完全透明。可迁移性好。LOGO提纲课题意义1国内外研究现状2核心问题及策略34课题规划4LOGO检查点分类(续)检查点分类(实现方式)用户层:API函数库或user-modesignalhandler•进程类:Libckpt,Thckpt,Esky,Condor•并行程序类:PM2,Score,CLIP,CoCheck系统层:systemcall,Kernelmodesignalhandler,Kernelthread•Zap,VMADump,EPCKPT,BLCR等VMM层:Hypercall•Xen,VMware,Hyper-V文件系统级:商业DBMS,Windows系统还原,Symantec的VxFS,清华的CprFSLOGO进程级检查点研究现状Libckpt:TransparentCheckpointingUnderUNIX(USENIX’95)TheDesignandImplementationofZap:ASystemforMigratingComputingEnvironments(OSDI’02)PM2:AHighPerformanceCommunicationMiddlewareforHeterogeneousNetworkEnvironments(Supercomputing’00)CLIP–ACheckpointingToolforMessage-PassingParallelPrograms(Supercomputing’97)DejaVu:TransparentUser-LevelCheckpointing,Migration,andRecoveryforDistributedSystems(IPDPS'07)Application-levelcheckpointingforsharedmemoryprogram(ASPLOS’04)ImplementationandEvaluationofaScalableApplication-levelCheckpoint-RecoverySchemeforMPIPrograms(SC’04)TransparentCheckpoint-RestartofMultipleProcessesonCommodityOperatingSystems(USENIX’07)LOGO检查点特性比较(续)类型典型代表实现难易实现粒度完全性透明性(编程/用户)可增量迁移性灵活性效率用户层Libckpt易进程或线程差很差/较好Y差差较低系统层ZAP,BLCR复杂进程或进程组差较差/较好N较好好高VMM层Xen,VMware复杂OS差很好/差N好好低VMCkpt-复杂OSandFileSystem好好/好Y好好较高LOGO基于虚拟机的检查点研究现状现有基础:XenSave/Restore,LiveMigration保存VMtransientstate,不包括文件系统,可能导致内存快照和镜像文件不一致对应用不透明,内存不可增量,每次快照都造成了很大的时空overhead。现有文献:1.CheckpointRestartofVirtualMachinesBasedonXen(HAPCWorkshop‘06)2.VirtualMachineTimeTravelUsingContinuousDataProtectionandCheckpointing(ACMOSReview2008)3.Remus:HighAvailabilityviaAsynchronousVirtualMachineReplication(NSDI‘08)LOGO虚拟机Xen检查点研究现状2基于虚拟机在线迁移的检查点技术,并提供持续的数据保护。ACMOSReview083NSDI‘08HAPCworkshop06Remus,通过虚拟机状态的异步复制和检查点技术,实现对虚拟机的透明容错,从而提高系统的高可用性。基于Xen虚拟机的Save/restore技术。美国橡树岭实验1,提出了虚拟机检查点在分布式环境中的管理框架2,分析了Xen检查点可能造成状态不一致的原因IBM海法研究实验室项目1,引入CDP(ContinuousDataProtection)不间断的数据保护存储技术2,基于虚拟机迁移技术的内存透明检查点实现英属哥伦比亚大学研究项目1,高可用性(ckpt/25ms)2,基于VMlivemigration,需要一台slave机3,频繁增量保存VM快照LOGO提纲课题意义1国内外研究现状2核心问题及策略3课题规划445LOGO核心问题及策略检查点性能指标CheckpointsizeCheckpointingdowntimeCheckpointinglatency(totaltime)Checkpointingoverhead研究问题如何减小虚拟机检查点的大小?如何利用COW技术实现透明检查点?内存镜像数据如何增量保存?VM镜像文件如何管理(删除或合并)?如何设计多机协同检查点算法?LOGO问题1(内存镜像优化)VMMVMVMD0VM文件系统系统增量内存镜像私有数据用户环境数据Intranet/Internet使用虚拟环境VMrestoreVMVMsave数据服务器512M内存镜像1000Mbit/s网卡SaveRestore单机本地18.3s14.4s单机NFS22.9s13.73s单机Samba100.2s29s如何对内存镜像进行压缩存储,优化网络传输?HWLOGO虚拟机的内存空洞问题在虚拟机保存和恢复时没有考虑内存空洞的问题,VM快照大小主要取决于预配置的内存大小,未使用的内存页面也都一并写入磁盘.符合BLCR检查点规律VM配置的内存大小内存镜像大小保存时间(s)恢复时间(s)128M137.1M4.3343.807256M265.5M7.9466.641512M524.2M18.31214.124问题1(消除内存镜像空洞)(1)ckptmemVVLOGOWWScurveforacompleterunofSPECCINT2000(512MBVM)问题1(VM内存镜像空洞)200MBLOGO如何设计内存镜像的压缩算法,消除内存空洞,减小保存和恢复的时空消耗?1.OptimizingCheckpointSizeintheC3System(IPDPS’05)利用进程应用级的语义信息来self-checkpointing.可以减少内存中对象的拷贝。2.MemoryExclusion:OptimizingthePerformanceofCheckpointingSystems(SP&E99)3.OptimizingtheMigrationofVirtualComputers(OSDI’02)利用ballooning机制来把页面内容内存换出到交换分区,然后把该页面清0,从而方便压缩。但该机制没有考虑页面属性,可能导致PF。4.Post-CopyBasedLiveVirtualMachineMigrationUsingAdaptivePre-PagingAndDynamicSelf-Ballooning(VEE’09)创新点:检测出VM内存中的所有空闲页,记录到一张线性表中,不拷贝这部份数据到磁盘。LOGO问题1(消除内存镜像空洞)虚拟机的保存:1.DomU断开与设备的连接2.Xen探测VM内存页表中未分配(free)的页面。3.记录虚拟机中MFN表中页面为free的页表项地址到一张线形表中。4.把已使用的页表MFN转化为PFN表,dump到磁盘。5.保存CPU及设备状态。6.对已经消除了内存空洞的镜像进一步进行压缩。虚拟机的恢复:1.VMM根据VM配置信息创建一个虚拟机,建立页表映射关系。2.进行PFN-MFN表的影射,把磁盘中保存的内存页面装填到内存。3.恢复设备和VCPU状态。LOGO问题1(消除内存镜像空洞)技术难点:虚拟机空闲内存页面的快速探测算法(VMM和VM之间存在语义隔阂)研究状态:已经有一定进展,分析设计工作已经完成,已经完成了部分试验。系统正在编码和调试。目标:Cluster20094.14LOGO问题2(VM透明检查点设计)关键问题:虚拟机检查点的过程会中断系统服务,downtime时间主要取决于需要保存的内存镜像大小,为了不中断用户操作,应设计一种对用户透明的检查点。1.Libckpt:TransparentCheckpointingUnderUNIX(Usenix’95)利用UNIXfork来cloneprocess,实际是利用了缓存机制。2.TransparentCheckpoint-RestartofMultipleProcessesonCommodityOperatingSystems(usenix’07)利用copy-on-write机制来保存页面3.ReducingDowntimeDuetoSystemMaintenanceandUpgrades(LISA’05)4.VirtualMachineTimeTravelUsingContinuousDataProtectionandCheckpointing(ACMOSReview2008)5.Remus:HighAvailabilityviaAsynchronousVirtualMachineReplication(NSDI‘08)LOGO问题2(VM透明检查点设计)MakeacheckpointMakeacheckpointState1State2State1文献2,3中利用Xenmigration实现的检查点滞后于触发时间方案一:方案二:LOGO问题2(VM透明检查点设计)解决方案:在拷贝内存页面到磁盘的过程中利用COW机制及缓存技术,保证检查点过程中用户数据的初始状态一致性。1.停止虚拟机的运行,保存VCPU和设备状态2.初始化虚拟机内存页面状态3.