CN110096332A - 一种面向基站任务的迁移方法和系统 - Google Patents

一种面向基站任务的迁移方法和系统 Download PDF

Info

Publication number
CN110096332A
CN110096332A CN201810097140.3A CN201810097140A CN110096332A CN 110096332 A CN110096332 A CN 110096332A CN 201810097140 A CN201810097140 A CN 201810097140A CN 110096332 A CN110096332 A CN 110096332A
Authority
CN
China
Prior art keywords
dirty pages
containing dirty
virtual machine
base station
buffering area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810097140.3A
Other languages
English (en)
Inventor
杨俊�
孙茜
田霖
石晶林
王园园
郭亭亭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201810097140.3A priority Critical patent/CN110096332A/zh
Publication of CN110096332A publication Critical patent/CN110096332A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

本发明公开了本发明公开了一种面向基站任务的迁移方案,针对现有的迁移方案未充分考虑基站协议栈的运行特点和实时性需求,无法满足其迁移停机时间小于50ms的要求。针对该问题,提出基于按位异或的重复脏页面检测和多线程压缩技术,可以在不影响正常业务处理情况下,实现基站协议栈无缝迁移。实验结果表明,在多种业务负载测试场景下,本发明提出的迁移机制可以有效地减少基站协议栈迁移的总时间和停机时间,符合基站协议栈迁移要求。

Description

一种面向基站任务的迁移方法和系统
技术领域
本发明涉及通信技术领域,特别涉及一种面向基站任务的迁移方法和系统。
背景技术
无线业务负载在时间和空间存在不均匀性,随着用户的移动,系统流量负载呈现随时间迁徙的“潮汐效应”。如图1所示,居民区和商务区24小时话务量可以看出,在工作时段(9-17点),大量用户从居住地移动到办公区,商业写字楼等办公场所移动流量急剧增加;而在其余时段(20-23点),用户从办公区移动到居住地,居民区的移动流量急剧增加,而商业区移动流量明显下降。移动网络固有的潮汐效应现象造成基站处理资源的极大浪费,处于空载或者零星负载的基站必须和高负载的基站消耗同样的功率,网络的平均负载远低于忙时负载。针对当前移动通信中的潮汐效应、资源利用率低等问题,新一代网络架构——集中式接入网是一种有效解决途径。集中式接入网通过采用虚拟化等技术将基站的处理资源进行水平池化,从而可以对物理集中的基站处理资源进行封装抽象,生成逻辑功能完整的虚拟基站,实现基站逻辑功能与物理实体的分离。虚拟基站间的资源可以动态共享和按需分配,打破了分布式网络架构中不同的基站间软硬件资源不能共享的瓶颈。例如,在移动通信业务繁忙时,1个服务器的处理资源全部被某基站使用;而当业务空闲的时候,该服务器的处理资源可以被多个基站使用。此时,就可以将其他服务器上运行的基站迁移到同一个服务器,从而关闭不使用的服务器,提高资源利用率,降低系统能耗。因此,虚拟基站迁移是集中式接入网架构中实现虚拟基站高效管理的核心技术之一。
基站协议栈作为虚拟基站的重要组成部分,本发明将以基站协议栈为例,研究虚拟基站的迁移机制。当前,业界首先实现了基站协议栈在通用处理平台上的集中式处理,方案是在底层协议硬件资源的基础上,增加资源虚拟化层,在其上通过创建多个虚拟机承载基站协议栈的运行,采用虚拟机动态迁移技术实现基站协议栈的迁移。在基于KVM(Kernel-based Virtual Machine,缩写为KVM)虚拟化的基础上,当前存在两种动态迁移机制:预拷贝算法(Pre-copy)和后拷贝算法(Post-copy),首先简要介绍Pre-copy,其次介绍Post-copy:
Pre-copy算法。Pre-copy算法是由Clark等人提出并实现的动态迁移机制,其核心思想是在虚拟机迁移到目的端之前,先进行内存页面的迭代传输,其算法主要步骤:
第一步:首先将虚拟机的所有的内存页标记为脏页面并从源端传输到目的端,在传输过程中,虚拟机仍在源端不间断的运行;
第二步:然后开始迭代传输上一轮传输过程中被修改且至本轮还没被修改的内存页面,在每一轮迭代传输完成后,都需要判断是否满足停机条件(剩余内存脏页小于最大的脏页数据量,其中最大的脏页数据量由事先预设的停机时间与迁移实时带宽相乘所得),如果不满足就继续进行迭代传输,否则进入停机拷贝阶段;
第三步:在这个阶段,虚拟机首先暂停在源端运行,并将剩余的内存脏页、CPU运行状态、IO状态复制到目的端,传输完成后,虚拟机就在目的端运行。
Post-copy算法。Post-copy迁移算法是由Hines等人针对Pre-copy收敛性问题而提出并实现的动态迁移机制。其算法的核心是将内存的同步推迟到虚拟机在目的端恢复运行之后。其算法主要步骤:首先暂停源端虚拟机运行,向目的端传输最小工作集(CPU、IO运行状态等),然后在目的端立即恢复虚拟机的运行,由于前一阶段并没有同步内存数据,当虚拟机在目的端恢复运行后,通过按需取页的方式从源端同步内存页面。
在基于KVM虚拟化技术的基础上,采用Pre-copy迁移机制,当基站协议栈处理数据量大时,会造成较大的停机时间。而采用Post-copy迁移机制时,在基站协议栈迁移过程中,如果网络出现故障时,会造成迁移失败,进而基站协议栈无法重新运行,并且在迁移过程中需要频繁的从源端取页,造成了基站协议栈反复中断,难以正常处理业务。而针对基站协议栈迁移机制的实现,将主要面临以下问题:
(1)基站协议栈的实时性要求高。迁移过程不可避免会存在一定的停机时间,进而造成用户业务中断,当业务中断达到一定时间,用户认为无线链路连接失败,进而需重新建立与基站的连接。所以,迁移的停机时间小于用户建立无线链路失败的阈值时,能够在不影响用户正常通信时完成迁移。当前业界普遍认为将无线链路重建的定时器(T310)设为50ms时,即迁移停机时间小于50ms将不会影响用户正常业务。
(2)迁移方案要尽可能减小总迁移时间,在迁移的过程中,如果迁移时间过长,会耗费较大的带宽及相应的硬件资源。
目前,关于虚拟机动态迁移机制的研究有很多,主要是基于Pre-copy机制的基础上进行改进,大体分为以下几个方向:
①基于多线程内存压缩的方法
其核心思想是采用多个线程压缩传输压缩后待传输的内存页面,主要的改进:
第一步:对所有的标记为脏页面进行多个线程压缩,将压缩后的页面从源端传输到目的端;第二步:获取上一轮传输过程中被修改且至本轮还没被修改的内存页面,对该页面采用多个线程压缩,将压缩后的页面从源端传输到目的端。
②基于脏页历史数据的方法
由于采用Pre-Copy算法需进行多次迭代才能有效收敛内存脏页面,每次迭代与前一次迭代相比会有部分内存页面被重复传输了,基于脏页历史数据核心思想是设定内存页面被修改次数(阈值),根据阈值判断页面是否传输。第一步:首先将虚拟机的所有的内存页标记为脏页面并从源端传输到目的端;第二步:根据脏页被修改的频繁程度,只传输修改不频繁的内存页面(低于阈值的内存脏页面),当满足停机条件后,才传输高于阈值的内存页面。
以上技术存在的不足包括:
(1)由于压缩内存页面及传输压缩后的内存页面所耗费的时间小于直接传输内存页面所需时间,基于多线程内存压缩的方法在很大的程度上减少了基站协议栈总迁移时间。但由于其未考虑到协议栈程序存在的时间局部性和空间局部性,存在对重复的内存页重复压缩传输,增大基站协议栈总迁移时间。并且所采用的Zlib压缩算法对CPU资源占用高,在迁移的过程中消耗一定的CPU资源,影响其他业务。
(2)基于脏页历史数据的方法虽考虑到基站协议栈程序存在的时间局部性和空间局部性,在一定的程度上减少了基站协议栈总迁移时间。但其主要缺点是难以准确判断哪些脏页被修改了,并且难以准确设置脏页的频繁修改程度。
现有的虚拟机迁移及其改进算法大部分是针对CPU密集型、内存密集型等计算的任务进行设计与实现的,并没有考虑到基站实体中基站协议栈任务运行特点。另外,在集中式基站架构下,基站协议栈迁移对停机时间要求高,因为在停机时间内,协议栈无法处理用户任何数据。
本发明联合考虑集中式基站系统中基站协议栈软件的特有运行属性以及基站协议栈实时性要求,提出了一种面向集中式接入网的基站协议栈迁移机制。在满足基站协议栈在迁移过程中,除了能正常处理业务的情况下,还尽可能减少迁移基站协议栈的停机时间与总时间。
发明内容
本发明的目的本发明的目的在于克服上述现有技术的缺陷,提出了基于前后内存页面位异或和多线程压缩的虚拟机动态迁移机制(bit XOR in front and back memorypages and multi thread compression,简称BXORMC),BXORMC主要思路是在迁移第一阶段采用多个线程压缩传输所有的内存页,在进行迭代传输第二阶段通过对前后相同的脏页面进行按位异或,通过采用多个线程压缩传输经按位异或后的内存脏页面,以及未在上一轮变脏的且新产生的脏页面。重点改善协议栈迁移两个方面的问题:
①难以避免重写内存页的重复传送,造成总迁移时间大,带宽浪费;
②基站协议栈处理数据量的增大,会造成总迁移时间和停机时间相应增加。
具体本发明公开了一种面向基站任务的迁移方法,其中包括:
步骤S1、将基站的源端虚拟机中内存页标记为脏页面并存入第一缓冲区;
步骤S2、根据多线程压缩算法,将该第一缓冲区中的脏页面压缩后传输到目的端,判断是否满足停机条件,若满足,则执行步骤S4,否则执行步骤S3,传输过程中该源端虚拟机仍在源端持续运行;
步骤S3、将该源端虚拟机新产生脏页面存入第二缓冲区,并将该第二缓冲区中的脏页面转移至该第一缓冲区,执行该步骤S2,其中在新产生脏页面存入该第二缓冲区前,判断当前新产生脏页面是否已存在于该第二缓冲区,若是,则将该当前新产生脏页面和其对应已存在于第二缓冲区的脏页面进行按位异或,并加入标志位后存入该第一缓冲区,执行该步骤S2,否则将该当前新产生脏页面存入该第二缓冲区;
步骤S4、传输源端虚拟机中剩余的内存页至该目的端,以在该目的端的主机上运行目的端虚拟机。
该面向基站任务的迁移方法,其中该步骤S1包括:通过对源端的客户机页表写保护,开启内存脏页记录,并根据该内存脏页记录,将内存页标记为该脏页面。
该面向基站任务的迁移方法,其中步骤S2中该多线程压缩算法为QuickLZ压缩算法。
该面向基站任务的迁移方法,其中该步骤S3包括:根据预设周期,周期性将新产生脏页面存入该第二缓冲区,并根据该预设周期,将该第二缓冲区中的脏页面周期性的转移至该第一缓冲区。
该面向基站任务的迁移方法,其中步骤S2中该停机条件为源端虚拟机中剩余的内存页小于最大的脏页数据量,其中最大的脏页数据量由预设的停机时间与迁移实时带宽相乘所得。
该面向基站任务的迁移方法,其中该步骤S4包括:停止该源端虚拟机的运行,传输源端虚拟机中剩余的内存脏页、CPU状态、I/O状态至该目的端的主机,将该源端虚拟机中寄存器状态和共享内存配置信息发送该目的端,目的端向源端发送已全部收到剩余内存脏页的信息,源端主机确认后,销毁该源端虚拟机。
本发明还提出了一种面向基站任务的迁移系统,其中包括:
脏页面标记模块,用于将基站的源端虚拟机中内存页标记为脏页面并存入第一缓冲区;
停机条件判断模块,用于根据多线程压缩算法,将该第一缓冲区中的脏页面压缩后传输到目的端,判断是否满足停机条件,若满足,则调用虚拟机运行模块,否则调用按位异或模块,传输过程中该源端虚拟机仍在源端持续运行;
按位异或模块,用于将该源端虚拟机新产生脏页面存入第二缓冲区,并将该第二缓冲区中的脏页面转移至该第一缓冲区,调用该停机条件判断模块,其中在新产生脏页面存入该第二缓冲区前,判断当前新产生脏页面是否已存在于该第二缓冲区,若是,则将该当前新产生脏页面和其对应已存在于第二缓冲区的脏页面进行按位异或,并加入标志位后存入该第一缓冲区,调用该停机条件判断模块,否则将该当前新产生脏页面存入该第二缓冲区;
虚拟机运行模块,用于传输源端虚拟机中剩余的内存页至该目的端,以在该目的端的主机上运行目的端虚拟机。
该面向基站任务的迁移系统,其中该脏页面标记模块包括:通过对源端的客户机页表写保护,开启内存脏页记录,并根据该内存脏页记录,将内存页标记为该脏页面。
该面向基站任务的迁移系统,其中该多线程压缩算法为QuickLZ压缩算法,且该按位异或模块包括:根据预设周期,周期性将新产生脏页面存入该第二缓冲区,并根据该预设周期,将该第二缓冲区中的脏页面周期性的转移至该第一缓冲区。
该面向基站任务的迁移系统,其中停机条件判断模块中该停机条件为源端虚拟机中剩余的内存页小于最大的脏页数据量,其中最大的脏页数据量由预设的停机时间与迁移实时带宽相乘所得;
该虚拟机运行模块包括:停止该源端虚拟机的运行,传输源端虚拟机中剩余的内存脏页、CPU状态、I/O状态至该目的端的主机,将该源端虚拟机中寄存器状态和共享内存配置信息发送该目的端,目的端向源端发送已全部收到剩余内存脏页的信息,源端主机确认后,销毁该源端虚拟机。
本发明通过在第一阶段压缩传输内存页面,第二阶段通过按位检测重复脏页机制,和运用基于QuickLZ的多线程压缩技术,大幅减少迁移的内存页面,从而可以极大的减少总迁移时间;而针对停机时间的优化,主要考虑到影响停机时间主要因素是剩余的内存脏页面,在第二阶段进行内存页迭代传输,在满足停机条件后,对剩余的内存脏页面采用QuickLZ压缩以减少数据量,从而在一定程度上减小停机时间。
为此,进行了相关的仿真实验,在基站协议栈处理空载、音频流、视频流、20Mbit/sUDP数据报负载情况下,BXORMC相比于Pre-copy迁移机制,其总迁移时间分别下降了66.6%、66.8%、66.8%、60.4%,停机时间分别下降了50%、45.5%、72%、70.6%。
采用BXORMC迁移算法,在进行基站协议栈迁移时,除了停机造成基站协议栈处理业务短暂中断外,整个迁移过程基站协议栈一直在正常稳定的处理业务,此外由于迁移停机时间足够小,所以并没有因基站协议栈停机造成业务中断而影响到用户正常通信。
下面是基站协议栈迁移的仿真环境及相应实验结果:
(1)实验环境:
为了进行基站协议栈迁移实验,本节搭建了基于KVM虚拟化的仿真实验平台,在创建的虚拟机上运行由中科院无线中心开发的面向集中式接入网的LTE基站协议栈软件。对基站协议栈迁移来说,主要迁移的是基站协议栈的主控制模块、I/O分发模块、协议处理模块、调度模块。基站协议栈迁移实验在3台支持Intel VT-x技术的计算机上进行,这3台机器配置如下表1
表1两台机器配置表:
名称 配置信息
CPU Intel(R)Core(TM)i5-4570@3.2GHz
内存 4GB DDR3 1600HZ
磁盘 500GB
软件 操作系统:64位操作系统Ubutnu14.04
网络连接 1000Mbps以太网
实验在安装了KVM的Ubutnu14.04系统上进行,在下面的实验中,若无特殊说明,所有的虚拟机都是分配了4个VCPU、512M的内存、20GB的磁盘空间通过桥接模式连到网络,其中一节点运行NFS服务。
实验方案设计:
为了测试不同业务对基站协议栈迁移的影响,同时验证BXORMC迁移优化机制是否有效减少总迁移时间和停机时间,进行四种业务下的基站协议栈迁移实验
①虚拟机运行基站协议栈软件,协议栈不处理任何业务;
②虚拟机运行协议栈软件,通过iperf向基站协议栈发送音频流的数据,模拟终端的音频业务;
③虚拟机运行协议栈软件,通过iperf向基站协议栈发送视频流的数据,模拟终端的视频业务;
④虚拟机运行协议栈软件,通过iperf向基站协议栈发送20Mbit/s UDP数据报,模拟终端的下载数据任务。
(2)仿真实验结果:
在实验过程中,虚拟机最大停机时间预设为30ms,表2和表3分别给出了Pre-copy和BXORMC机制下的基站协议栈迁移的总时间、停机时间及传输内存量的实验数据。
表2基于Pre-copy的基站协议栈迁移性能统计:
表3基于BXORMC的基站协议栈迁移性能统计:
附图说明
图1为全天移动网络负载示意图;
图2为本发明的BXORMC迁移机制流程图;
图3为本发明采用多个线程进行压缩所有传输内存页的流程图;
图4为本发明先异或后压缩的压缩模块图。
具体实施方式
本发明BXORMC算法的核心思想是基于位异或与多线程压缩相结合,主要目标是减少总迁移时间和停机时间。图2为BXORMC迁移机制流程图。
BXORMC迁移机制分为4主要部分。将分别进行阐述:
步骤1、采用多线程压缩算法压缩并传输所有内存页面。将源端虚拟机中所有的内存页标记为脏页面并存入缓冲区,将该缓冲区的脏页面经过多线程压缩后传输到目的端,在传输过程中,源端虚拟机仍在源端不间断的运行。
步骤1.1、获取全部内存脏页。通过传递KVM内存脏页日志KVM_MEM_LOG_DIRTY_PAGES给KVM设置使用内存区域KVM_SET_USER_MEMORY_REGION这个ioctl调用,就可以开启内存脏页记录,本质上是通过对客户机页表写保护(Write protection),其中客户机等于虚拟机,源端等于宿主机等于源主机,当客户机写内存页时,会产生写错误write fault,从而记录脏页。通过KVM_GET_DIRTY_LOG获取脏页位图信息的接口,即ioctl调用,以获取虚拟机的的脏页位图migration_bitmap。
步骤1.2、将所有的内存脏页标记为脏页。获取全部内存脏页,放置于命名为QEMUFile缓冲区,即第一缓冲区中,并用脏页位图migration_bitmap记录脏页信息。在随后的迁移过程中会用到该脏页位图,后续传输的内存脏页面根据该脏页位图而得。脏页就是修改了内存页面,kvm可以认为是qemu和kvm内核两个层次,I/O主要是在qemu层次进行的,那qemu层可能会有大量的内存的修改。kvm内核也可能发生少量的内存的修改。这样,kvm就需要在两个层次都要维持各自的脏页位图,并且要将这两层的位图进行同步。kvm两个层次维护了三套位图:
一是kvm内核维护的脏页位图memslot->dirty_bitmap,这个位图记录kvm内核中的脏页,kvm内核中所有的对内存页面的修改都会对应着修改这个位图的位;
二是qemu层次维护的一个脏页位图ram_list_phys_dirty[],qemu层次对内存页面的修改都会相应的修改这个位图的位,并且它还会通过系统调用获取内核中的位图,并进行同步修改;
三是迁移时具体使用的位图migration_btimap,这也是在qemu层的,但是它是复制ram_list_phys_dirty[]的相应位。
步骤1.3、初始化内存压缩模块。初始化多个压缩线程fc,初始化5,通过压缩算法QuickLZ压缩(qlz_compress(src,dst,len,state_compress)),其中len指向QEMUFile中缓冲区buf。解压线程FD,设定根据解压缩线程数(FD)=某时刻内存脏页数(p)*实时带宽(B)/预设的停机时间(t)*压缩线程数(fc),通过qlz_decompress(src,dst,state_decompress)解压。
步骤1.4、多线程压缩内存脏页,传输压缩的内存页至目的端。其中多线程模块与解压缩模块的关系,如图3所示。
步骤2、采用先异或,后压缩迭代传输内存脏页面。
2.1在迭代拷贝阶段,将内存脏页放到新缓冲区XOR.cache即第二缓冲区,创建一个定时器time(),在本实施例中time()为1ms,以1ms周期获取内存脏页,并进行标记脏页面;标记的内容包括周期获取内存脏页,以记录这个内存脏页是哪一次获取的,以判断是否是最近的一次,主要的目的是得到ppre
2.2判断当前新产生脏页面是否与上次页面相同,若不同,将其同步导入QEMUFile缓冲区,并执行步骤1,若相同,则执行步骤2.3;
2.3如果当前新产生脏页面同样存在于XOR.cache缓冲区,通过xb_encode_buffer(uint8_t*old_buf,uint8_t*new_buf,int slen,uint8_t*dst,int dlen)对这两个页面进行按位异或,并加入一个标志位flag,然后执行步骤1。在目的端解压后根据标志位flag,通过xb_decode_buffer还原内存脏页。下面将通过一个例子对第二种情况下,前后存在相同的内存脏页面进行说明,假设ptran表示待传输的内存页面,ppre代表前一个已经被传输的内存页面,psour表示一个内存页在比特位上的变化或者没有变化的部分,那么可计算得到psour
由于psour存在许多零比特的位,利用QuickLZ算法可以高效压缩并传输到目的端。在迁移的目的端,虚拟机内存解压模块首先解压网络上得到的内存数据,然后利用QuickLZ解压算法进行解压得到psour,由于ppre之前己经被传输到目的端,所以可以通过逆运算得到ptran,即源端需传输的内存脏页面。
基于虚拟机的协议栈动态迁移内存压缩模块的流程图如图4所示:
步骤3、判断停机条件,即剩余内存脏页小于最大的脏页数据量。
3.1在获取每轮变化的内存脏页(TempM)后,根据上一轮的传输量(TempM)与上一轮的时间(T)之比计算出迁移实时带宽(B),将TempM复制到M至下一轮迭代。
3.2KVM迭代拷贝的终止条件,只有当期望时间expected_time小于最大迁移停机时间migrate_max_downtime时,才会结束迭代拷贝,expected_time=ram_save_remaining()*TARGET_PAGE_SIZE/bwidth;其中migrate_max_downtime为最大停机时间,用户可以自己输入设定,KVM虚拟机中默认的最大停机时间为30ms;剩余脏页量为ram_save_remaining()*TARGET_PAGE_SIZE的值;最大剰余脏页量为migrate_max_downtime*B。
步骤4、在满足停机拷贝后,传输最后剩余的内存页,完成在目的端恢复的过程。
步骤4.1,迭代拷贝终止条件被触发,进入停机拷贝阶段。首先停止源端上虚拟机的运行,包括停止各种I/O设备。
步骤4.2,传送剩余的内存页至目的主机。这里的剩余内存页包括最后剩余的内存脏页、CPU状态、I/O状态。
步骤4.3,保存各种寄存器状态和共享内存配置信息,并发送给目的端,其中“目的端”与“目的主机”等价,只是表达方式不同。
步骤4.4,目的端向源端发送已全部收到剩余内存脏页的信息,源主机确认后,销毁虚拟机。
步骤4.5,虚拟机在目的主机上恢复运行,内存迁移已全部完成。在停机拷贝阶段,虚拟机是不可用的,所以这个阶段时间即为停机时间。基站协议栈动态迁移的停机时间主要由三个部分构成,即源端停机操作时间、数据传输时间和目的端恢复时间。其中源端停机操作时间、目的端恢复时间很短暂;主要是数据传输时间为主,而数据包括两部分:剩余的内存脏页以及CPU、外设板卡状态。CPU、外设板卡状态是某些寄存器的信息,数据量极少,往往在几KB左右,因此剩余内存脏页将对停机时间起决定性作用,最后一轮进行停机拷贝时,会采用基于QuickLZ的多线程压缩并传输剩余的内存脏页,显然优化了的基站协议栈停机时间。本发明采用QuickLZ作为最优实施例,但并不以此为限,若采用其他压缩算法也可以完成压缩,但对压缩速度、迁移有影响,基站迁移实时性高,里面有许多定时器,如果在目的端(目的主机)解压太慢造成缺页中断,影响基站协议栈运行,此外也对迁移性能有影响。QuickLZ是一个解压缩速度最快的压缩库,并且也是个开源的压缩库,其遵守GPL 1,2或3协议。
以下为与上述方法实施例对应的系统实施例,本实施系统可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施系统中依然有效,为了减少重复,这里不再赘述。相应地,本实施系统中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种面向基站任务的迁移系统,其中包括:
脏页面标记模块,用于将基站的源端虚拟机中内存页标记为脏页面并存入第一缓冲区;
停机条件判断模块,用于根据多线程压缩算法,将该第一缓冲区中的脏页面压缩后传输到目的端,判断是否满足停机条件,若满足,则调用虚拟机运行模块,否则调用按位异或模块,传输过程中该源端虚拟机仍在源端持续运行;
按位异或模块,用于将该源端虚拟机新产生脏页面存入第二缓冲区,并将该第二缓冲区中的脏页面转移至该第一缓冲区,调用该停机条件判断模块,其中在新产生脏页面存入该第二缓冲区前,判断当前新产生脏页面是否已存在于该第二缓冲区,若是,则将该当前新产生脏页面和其对应已存在于第二缓冲区的脏页面进行按位异或,并加入标志位后存入该第一缓冲区,调用该停机条件判断模块,否则将该当前新产生脏页面存入该第二缓冲区;
虚拟机运行模块,用于传输源端虚拟机中剩余的内存页至该目的端,以在该目的端的主机上运行目的端虚拟机。
该面向基站任务的迁移系统,其中该脏页面标记模块包括:通过对源端的客户机页表写保护,开启内存脏页记录,并根据该内存脏页记录,将内存页标记为该脏页面。
该面向基站任务的迁移系统,其中该多线程压缩算法为QuickLZ压缩算法,且该按位异或模块包括:根据预设周期,周期性将新产生脏页面存入该第二缓冲区,并根据该预设周期,将该第二缓冲区中的脏页面周期性的转移至该第一缓冲区。
该面向基站任务的迁移系统,其中停机条件判断模块中该停机条件为源端虚拟机中剩余的内存页小于最大的脏页数据量,其中最大的脏页数据量由预设的停机时间与迁移实时带宽相乘所得;
该虚拟机运行模块包括:停止该源端虚拟机的运行,传输源端虚拟机中剩余的内存脏页、CPU状态、I/O状态至该目的端的主机,将该源端虚拟机中寄存器状态和共享内存配置信息发送该目的端,目的端向源端发送已全部收到剩余内存脏页的信息,源端主机确认后,销毁该源端虚拟机。
本发明根据LTE(Long Term Evolution,长期演进)基站协议栈的内存管理机制,即初始化阶段需要预先分配100M大小的内存空间,在基于KVM虚拟化的Pre-copy算法的基础上,着重减少基站协议栈的总迁移时间和停机时间,引入基于QuickLZ压缩算法的多线程压缩技术。本发明考虑到LTE基站协议栈存在1ms调度要求,如果无法在指定时间内获取数据,将造成基站协议栈无法正常处理数据。为保证目的端基站协议栈能够及时获取源端数据并且CPU资源消耗最小,用压缩级别来控制压缩速率和压缩比例,压缩级别越高,压缩比率就越大,与此同时也会消耗更多的时间,为了提高压缩速速率,采用多个线程对数据进行压缩以减少传输的数据量,并且加入动态因子,根据协议栈运行时脏页量的变化合理设置解压缩线程数。
本发明针对LTE基站协议栈在处理用户数据的过程中,总是重复修改相同的内存区域,即基站协议栈执行的过程中表现出时间局部性和空间局部性。为了有效监测这些反复被基站协议栈修改的内存脏页面,在迁移模块设置一个内存缓冲区,根据基站协议栈的运行特点及资源占用情况,至初始值为100MB,缓冲区内存放上一次被修改的内存页面,根据基站协议栈MAC层1ms调度周期,设置一个定时器(1ms周期),进行实时更新,当缓冲区满时,按旧的内存页被新的内存页替换这一策略进行更新。在迁移的第二阶段,对于每一次新产生的内存脏页面,首先与缓冲区内存页面进行比对,如果缓冲区内没有相同的内存脏页面,则仍采用第一阶段的多线程压缩机制进行传输,如果存在相同的内存脏页面,则通过对前后传输的内存脏页进行按位异或,对按位异或得到的页面进行标记后,再进行多线程QuickLZ压缩并传输,最后在目的端进行多线程解压。
本发明还可有其他多种实施例,在不脱离本发明的构思和范围内,任何本领域的技术人员,可以在本发明的基础上做一些完善和更改,故本发明的保护范围当视权利要求书所界定的范围为准。

Claims (10)

1.一种面向基站任务的迁移方法,其特征在于,包括:
步骤S1、将基站的源端虚拟机中内存页标记为脏页面并存入第一缓冲区;
步骤S2、根据多线程压缩算法,将该第一缓冲区中的脏页面压缩后传输到目的端,判断是否满足停机条件,若满足,则执行步骤S4,否则执行步骤S3,传输过程中该源端虚拟机仍在源端持续运行;
步骤S3、将该源端虚拟机新产生脏页面存入第二缓冲区,并将该第二缓冲区中的脏页面转移至该第一缓冲区,执行该步骤S2,其中在新产生脏页面存入该第二缓冲区前,判断当前新产生脏页面是否已存在于该第二缓冲区,若是,则将该当前新产生脏页面和其对应已存在于第二缓冲区的脏页面进行按位异或,并加入标志位后存入该第一缓冲区,执行该步骤S2,否则将该当前新产生脏页面存入该第二缓冲区;
步骤S4、传输源端虚拟机中剩余的内存页至该目的端,以在该目的端的主机上运行目的端虚拟机。
2.如权利要求1所述的面向基站任务的迁移方法,其特征在于,该步骤S1包括:通过对源端的客户机页表写保护,开启内存脏页记录,并根据该内存脏页记录,将内存页标记为该脏页面。
3.如权利要求1所述的面向基站任务的迁移方法,其特征在于,步骤S2中该多线程压缩算法为QuickLZ压缩算法。
4.如权利要求1所述的面向基站任务的迁移方法,其特征在于,该步骤S3包括:根据预设周期,周期性将新产生脏页面存入该第二缓冲区,并根据该预设周期,将该第二缓冲区中的脏页面周期性的转移至该第一缓冲区。
5.如权利要求1所述的面向基站任务的迁移方法,其特征在于,步骤S2中该停机条件为源端虚拟机中剩余的内存页小于最大的脏页数据量,其中最大的脏页数据量由预设的停机时间与迁移实时带宽相乘所得。
6.如权利要求1所述的面向基站任务的迁移方法,其特征在于,该步骤S4包括:停止该源端虚拟机的运行,传输源端虚拟机中剩余的内存脏页、CPU状态、I/O状态至该目的端的主机,将该源端虚拟机中寄存器状态和共享内存配置信息发送该目的端,目的端向源端发送已全部收到剩余内存脏页的信息,源端主机确认后,销毁该源端虚拟机。
7.一种面向基站任务的迁移系统,其特征在于,包括:
脏页面标记模块,用于将基站的源端虚拟机中内存页标记为脏页面并存入第一缓冲区;
停机条件判断模块,用于根据多线程压缩算法,将该第一缓冲区中的脏页面压缩后传输到目的端,判断是否满足停机条件,若满足,则调用虚拟机运行模块,否则调用按位异或模块,传输过程中该源端虚拟机仍在源端持续运行;
按位异或模块,用于将该源端虚拟机新产生脏页面存入第二缓冲区,并将该第二缓冲区中的脏页面转移至该第一缓冲区,调用该停机条件判断模块,其中在新产生脏页面存入该第二缓冲区前,判断当前新产生脏页面是否已存在于该第二缓冲区,若是,则将该当前新产生脏页面和其对应已存在于第二缓冲区的脏页面进行按位异或,并加入标志位后存入该第一缓冲区,调用该停机条件判断模块,否则将该当前新产生脏页面存入该第二缓冲区;
虚拟机运行模块,用于传输源端虚拟机中剩余的内存页至该目的端,以在该目的端的主机上运行目的端虚拟机。
8.如权利要求6所述的面向基站任务的迁移系统,其特征在于,该脏页面标记模块包括:通过对源端的客户机页表写保护,开启内存脏页记录,并根据该内存脏页记录,将内存页标记为该脏页面。
9.如权利要求6所述的面向基站任务的迁移系统,其特征在于,该多线程压缩算法为QuickLZ压缩算法,且该按位异或模块包括:根据预设周期,周期性将新产生脏页面存入该第二缓冲区,并根据该预设周期,将该第二缓冲区中的脏页面周期性的转移至该第一缓冲区。
10.如权利要求6所述的面向基站任务的迁移系统,其特征在于,停机条件判断模块中该停机条件为源端虚拟机中剩余的内存页小于最大的脏页数据量,其中最大的脏页数据量由预设的停机时间与迁移实时带宽相乘所得;
该虚拟机运行模块包括:停止该源端虚拟机的运行,传输源端虚拟机中剩余的内存脏页、CPU状态、I/O状态至该目的端的主机,将该源端虚拟机中寄存器状态和共享内存配置信息发送该目的端,目的端向源端发送已全部收到剩余内存脏页的信息,源端主机确认后,销毁该源端虚拟机。
CN201810097140.3A 2018-01-31 2018-01-31 一种面向基站任务的迁移方法和系统 Pending CN110096332A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810097140.3A CN110096332A (zh) 2018-01-31 2018-01-31 一种面向基站任务的迁移方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810097140.3A CN110096332A (zh) 2018-01-31 2018-01-31 一种面向基站任务的迁移方法和系统

Publications (1)

Publication Number Publication Date
CN110096332A true CN110096332A (zh) 2019-08-06

Family

ID=67442914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810097140.3A Pending CN110096332A (zh) 2018-01-31 2018-01-31 一种面向基站任务的迁移方法和系统

Country Status (1)

Country Link
CN (1) CN110096332A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112241305A (zh) * 2020-10-21 2021-01-19 海光信息技术股份有限公司 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质
WO2021057759A1 (zh) * 2019-09-25 2021-04-01 阿里巴巴集团控股有限公司 内存迁移方法、装置及计算设备
WO2021189857A1 (zh) * 2020-09-23 2021-09-30 平安科技(深圳)有限公司 任务状态检测方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110099318A1 (en) * 2009-10-23 2011-04-28 Sap Ag Leveraging Memory Similarity During Live Migrations
CN106095532A (zh) * 2016-06-12 2016-11-09 北京大学 一种云环境中虚拟机负载均衡安全调度方法
CN106227580A (zh) * 2016-07-18 2016-12-14 浪潮(北京)电子信息产业有限公司 一种虚拟机的动态迁移方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110099318A1 (en) * 2009-10-23 2011-04-28 Sap Ag Leveraging Memory Similarity During Live Migrations
CN106095532A (zh) * 2016-06-12 2016-11-09 北京大学 一种云环境中虚拟机负载均衡安全调度方法
CN106227580A (zh) * 2016-07-18 2016-12-14 浪潮(北京)电子信息产业有限公司 一种虚拟机的动态迁移方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
向军: "基于Remus的双机热备份优化机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
潘晓东: "基于内存压缩的虚拟机实时迁移机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021057759A1 (zh) * 2019-09-25 2021-04-01 阿里巴巴集团控股有限公司 内存迁移方法、装置及计算设备
WO2021189857A1 (zh) * 2020-09-23 2021-09-30 平安科技(深圳)有限公司 任务状态检测方法、装置、计算机设备及存储介质
CN112241305A (zh) * 2020-10-21 2021-01-19 海光信息技术股份有限公司 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质
CN112241305B (zh) * 2020-10-21 2023-01-31 海光信息技术股份有限公司 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US10156986B2 (en) Gang migration of virtual machines using cluster-wide deduplication
Zhang et al. A survey on virtual machine migration: Challenges, techniques, and open issues
CN102821158B (zh) 一种实现虚拟机迁移的方法和云系统
WO2022021176A1 (zh) 云边协同网络资源平滑迁移与重构方法及系统
CN103955399B (zh) 一种虚拟机迁移方法和装置及物理主机
EP3200393B1 (en) Method and device for virtual network function management
CN103294521B (zh) 一种降低数据中心通信负载及能耗的方法
CN101741912A (zh) 一种处理计算任务的方法、网络设备及分布式网络系统
CN110096332A (zh) 一种面向基站任务的迁移方法和系统
US10860353B1 (en) Migrating virtual machines between oversubscribed and undersubscribed compute devices
CN105183554A (zh) 高性能计算与云计算混合计算系统及其资源管理方法
CN114861911B (zh) 深度学习模型的训练方法、装置、系统、设备和介质
CN109151045A (zh) 一种分布式云系统及监控方法
CN106959893A (zh) 加速器、用于加速器的内存管理方法以及数据处理系统
US10628198B2 (en) Hypervisor management of migration notification and response messages for virtual machines
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
Xiong et al. An energy-optimization-based method of task scheduling for a cloud video surveillance center
CN110780974B (zh) 一种移动边缘计算环境下面向工作流的容错调度方法
CN113760541B (zh) 边缘资源分配的方法及装置
Abdullaziz et al. Enabling mobile service continuity across orchestrated edge networks
Satpathy et al. A service sustainable live migration strategy for multiple virtual machines in cloud data centers
CN105718320A (zh) 一种时钟任务处理方法、装置及设备
JP2011209811A (ja) 仮想マシンシステムおよび仮想マシン配置方法
CN108241487A (zh) 能够改善移动设备性能的系统架构
Yuan et al. To deploy new or to deploy more?: an online SFC deployment scheme at network edge

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination