加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

对云计算环境中在线迁移技术的探索

发布时间:2021-07-01 12:48:16 所属栏目:云计算 来源:互联网
导读:1 引言 云计算技术的发展与应用已经成为现今研究的热点。云计算是一种基于互联网的大众参与的计算模式,其计算资源包括计算能力、存储能力、交互能力等。这些资源都是动态的、被虚拟化了的,并以服务的方式提供给用户。虚拟化已经成为云计算等各种新型计算模
    1 引言
 
 
    云计算技术的发展与应用已经成为现今研究的热点。云计算是一种基于互联网的大众参与的计算模式,其计算资源包括计算能力、存储能力、交互能力等。这些资源都是动态的、被虚拟化了的,并以服务的方式提供给用户。虚拟化已经成为云计算等各种新型计算模式的基础,其所具有的综合化、模块化、通用性、容错以及高可靠性等良好特性使其在云计算中发挥着重要作用。其中的迁移技术是最引人注目和最有价值的应用之一,所以如何在云计算环境中利用迁移技术,成为了极具意义的研究问题。
 
 
    虚拟机迁移技术能够透明地将运行于VMM (virtualmachine monitor)上的操作系统在物理主机间转移,管理员不需要了解操作系统本身的细节,也不需要关心操作系统上运行的服务状态,极大地方便了人们的管理操作。目前,主流的在线迁移工具都依赖于物理主机之间采用集中式共享外存设备。考虑到云计算环境中许多计算机系统各自独立拥有本地外存,现有迁移技术在这种场合下受到限制,所以有必要实现一个包括外存迁移在内的全系统在线迁移方案,从而拓宽现有迁移技术在云环境中的应用范围。
 
 
    2 在线迁移技术背景
 
 
    2.1原理及局限性
 
 
    虚拟机在线迁移技术m可以在保持虚拟机运行的同时,把其从一个物理计算机迁移到另一个物理计算机,并在目的主机上恢复运行,无缝地实现服务整合。通过在线迁移,可以更方便地实现云计算环境中服务器的在线维护、在线升级、负载均衡等,并提供了一种灾难恢复的解决方案。VMW,的迁移工具VMotion在物理主机共享外存的情况下,实现了操作系统运行状态的迁移,主要包括内存状态、外设状态、CPU寄存器状态等。宾汉姆顿大学则在Xen基础上通过在POST阶段加人对内存页的预拷贝,加快了在线迁移的速度。这些迁移技术对磁盘的处理都比较简单,主机间通过SAN (storage area network),NAS(network-attached storage)等方式共享磁盘存储,而非实现真正的磁盘迁移,如图1所示。
 
      
 
    图1 基于共享存储的虚拟机迁移
 
 
    在云计算环境中许多计算机系统并没有采用共享式外存,而是采用分散式外部存储方式,现有迁移技术在这种场合下受到限制,虚拟机迁移到目的主机后不能访问其原有外存设备,或者需要依赖于源主机为其外存访问提供支持。为了使现有迁移技术更好地应用于云环境中,有必要实现一个包括外存迁移在内的全系统在线迁移方案,使得在采用分散式本地存储的计算机环境下,仍然能够利用迁移技术转移计算环境,并且保证迁移过程中操作系统服务的可用性。
 
 
    2.2设计思路
 
 
    云环境中的全系统在线增量迁移主要分为三个阶段:Push阶段、停机拷贝阶段和Pull阶段。在Push阶段,源VM(virtual machine)仍在运行,其外存访问被VMM监控。在内存pre-copy之前采用与内存迁移同样的原理先进行外存的pre-copy。外存pre-copy结束后,进人Xen的内存pre-copy阶段,在此期间VM对外存的访问仍然被监控记录,作为后续阶段同步剩余不一致外存状态的依据。在停机拷贝阶段,源VM被挂机,传输剩余的内存状态、CPU状态等,并将VMM所记录的外存状态信息发送给目的VM。在Pull阶段。目的VM被激活,对于本地UO请求根据需要向源主机请求数据,同时源主机主动根据已记录的外存状态发送未同步完的外存数据。
 
 
[page]    3 云环境中全系统在线增量迁移的设计与实现
 
 
    3.1Push阶段的设计与实现
 
 
    Push阶段的迁移流程如图2所示。
 
      
 
 
 
    图2  Push阶段迁移流程
 
 
    首先,用户通过。migrate命令向VMM发出迁移请求,收到请求后VMM通知块设备即将开始迁移;然后,检查内存是否够用,如果不够用则先释放部分内存,以保证有足够的内存进行迁移;接着,源主机与目的主机建立socket连接。源主机请求迁移。当收到目的主机的响应之后,调用迁移主体函数正式开始迁移。
 
 
    外存pre-copy主要借鉴} Xen内存pre-copy的方法通过一个循环体将源VM的外存数据发送至目的主机,同时设置了一些相应的循环终止条件,以避免外存迁移时间过长,从而影响总体迁移时间。
 
 
    主机端需要监控VM对外存的访问。本文采用的方法是,在设备后端初始化了一个bitmap,用于记录外存块的状态变化。如果某个外存块在循环期间被写脏,就将相应的标志位置1。每轮循环首先从设备后端获取此bitmap记录,根据该记录发送前一轮发送过程中被VM写脏的外存块。第一次迁移时,由于目的主机不存在虚拟机外存的历史状态,增量迁移的外存内容为虚拟机全部外存数据,并在此时初始化设备后端中的bitmap,开始对虚拟机外存访问进行监控。此后的每一轮pre-copy,迁移进程从设备后端获取此bitmap,根据bitmap确定本轮需要发送的外存脏块,同时,VMM将bitmap清零,重新开始记录下一轮pre-copy中虚拟机的外存更新情况。外存pre-copy结束,进人Xen的内存pre-copy阶段,这期间VM对外存的访问仍然被监控并且记录,作为后续阶段同步剩余不一致外存状态的依据。
 
 
    3.2停机拷贝阶段的设计与实现
 
 
    停机拷贝阶段的设计与实现比较简单。进入停机阶段,源VM被挂起,目的VM尚未启动。从最后一轮外存pre-copy至源VM被挂起的过程中,源VM外存访问产生的脏块被设备后端记录在bitmap中,设计流程如图3所示。
 
      
 
 
 
    图3 停机拷贝阶段迁移流程
 
 
    源主机迁移进程从设备后端获取监控外存状态的bitmap,并将其发送至目的主机,目的主机启动后将根据该bitmap确定本地外存数据是否已经与源VM的外存数据一致。
 
 
    在这里,我们所加人的外存迁移对停机拷贝阶段时间的影响,主要体现在将源主机设备后端所监控记录的bitmap发送给目的主机。但通过实验表明,在外存不太大的情况下,这部分所花费的时间只有几十毫秒,对整体迁移时间的影响很有限。
 
 
    3.3Pull阶段的设计与实现
 
 
    Pull阶段由源主机和目的主机的迁移进程合作完成,包括目的VM外存访问按需向源主机请求以及源主机VM外存主动向目的主机post-copy,其设计流程如图4所示。
 
      
 
 
 
    图4  Pull阶段迁移流程
 
 
[page]    进人Pull阶段之后,从最后一轮外存pre-copy至源主机被挂起的过程中,由于源VM外存访问而被写脏的外存数据,要依次发送至目的主机。源主机向设备后端请求监控外存状态的bitmap,并根据此6itmap确定从最后一轮外存pre-copy至源VM被挂起的过程中哪些外存部分被源VM写脏,并将脏块发送至目的主机。当bitmap中标记的所有脏块都被传输至目的主机后,目的主机已经获得了所有最新的外存数据,外存迁移结束。
 
 
    此处要修改目的主机的设备后端,对其中的IO操作根据不同的类型进行不同的处理。对于目的VM访问的外存部分,如果bitmap指示外存块已在本地,则直接提交该IO请求;如果bitmap指示本地外存未在本地,对外存的写IO操作可以立即提交,读IO操作则被暂存起来,通过迁移进程向目的主机请求数据,当数据从目的主机更新至本地后,再将暂存的IO请求提交给物理设备驱动,此后的处理过程由系统自身机制进行管理,无需我们再进行干涉了。
 
    
    4 性能测试及优化
 
 
    测试在云环境中的两台物理主机A和B之间进行,两物理主机均通过网卡连接到局域网,VM从一台物理主机迁移至另一台物理主机。
 
 
    通过分析设备后端代码可知,设备后端所处理的每个磁盘块所包含的扇区是连续的。通常文件系统的块大小为4 KB,也就是8个扇区。在对2 GB外存大小的VM进行迁移时,首先以8个连续的扇区组成的磁盘块作为bitmap中一个监控单位,共进行了5次迁移实验,所得到的各阶段平均时间见表1。
 
      
 
 
 
    表1 VM迁移各阶段所用时间(8个连续扇区)
 
 
    下面分别记录了以4个、16个、32个和64个连续扇区组成的磁盘块作为bitmap中一个监控单位,分别进行5次迁移实验所得到的各阶段平均时间见表2。
 
      
 
 
 
    表2  VM迁移各阶段所用时间(4,16.32,64个连续扇区)
 
 
    通过以上实验数据可知,适当加大bitmap的监控单位并按此单位进行传输可以减少pre-copy和Pull阶段的时间,从而缩短总体迁移时间,但对停机阶段时间的影响不是很大。从16个连续扇区开始,增大连续扇区的数目并没有使pre-copy和Pull阶段的时间明显缩短,而是呈现出一种趋于稳定的状态,所以可以根据实际环境的需要选择合适的监控及传输单位。pre-copy和Pull阶段采用不同磁盘块大小所用时间的趋势如图5和图6所示。
 
      
 
 
 
    图5   pre-copy阶段采用不同连续磁盘块大小所用时间趋势
      
 
 
 
    图6  Pull阶段采用不同连续磁盘块大小所用时间趋势
 
 
    5 结束语
 
 
    本文阐述了云计算环境中Xen虚拟机在线迁移技术的基本概念和局限性。在此基础上,设计并实现了包括虚拟机外存在内的全系统增量迁移方案。从而消除了迁移对于物理主机之间共享存储的要求,进一步拓宽了迁移技术在云计算中的应用范围。通过在内存迁移之前对外存数据进行预拷贝以及在迁移后期按需向源主机请求外存数据的策略,将停机时间不断缩小,从而保证了总体迁移时间不会因为外存迁移而变得过长。通过增量式的外存迁移,缩小了迁移的外存数量,进一步缩短r总体迁移时间,改善了迁移性能。
 
 
    在以后的工作中,可以通过提高外存脏块的传输速度来进一步缩短迁移时间,并且可以开发适用于不同外存类型间的迁移版本。对于可靠性Dol要求比较高的环境,还可以考虑先对源主机的外存制作一个备份,在迁移期间一旦源主机外存发生故障,立即使用备份继续进行迁移工作。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!