论文部分内容阅读
随着云计算[1]的迅猛发展,虚拟化技术作为其中的一项重要技术也随之而与时俱进。完全虚拟化、超虚拟化技术已经不能满足如今云计算中所有应用场景的需求。因为这些技术更倾向于让每个虚拟化环境都拥有一份相对独立的系统资源,为每个虚拟化环境提供相对完全的独立性支持,但是这种策略造成处于不同虚拟机内的应用程序间实现相互操作非常困难,于是基于容器的虚拟化技术出现了。容器完美解决了程序独立性和资源共享的问题[2]。同时资源调度是云计算中的一个关键问题,如何做到资源的有效分配,如何动态的为虚拟机分配合适的物理主机也是云计算研究领域的一大热点和难点。近年来基于各类目标的虚拟机调度研究虽然很多,但是很少有实现了虚拟机调度的开源系统。因此研究和实现基于应用容器的云资源调度系统有着重要的理论和实践意义。本文的主要工作包括以下几点:第一,介绍了主流的虚拟化技术。其中包括完全虚拟化、超虚拟化以及最近兴起的基于容器的轻量级虚拟化技术(操作系统虚拟化)。第二,研究了常用的系统迁移技术。其中包括物理主机到虚拟机的迁移(p2v)、虚拟机到物理主机的迁移(v2p)、虚拟机到虚拟机的迁移(v2v),并且重点阐述了v2v的虚拟机动态迁移与静态迁移[3]。第三,对Linux下主流虚拟化工具的可靠的C函数库libvirt[4]进行了分析。第四,在此基础上设计了通用的虚拟机调度系统框架。本文最终实现了一个基于应用容器的云资源调度系统框架,包括虚拟机迁移时机判断、目标主机选择、被迁移虚拟机的确定三个核心模块。系统通过配置和扩展相应接口实现相应的调度目标和算法,具有良好的扩展性。为了验证系统的有效性,论文最终实现了以能耗为目标的原型系统并给出了测试过程并对测试结果分析总结,测试结果表明系统从功能上能够根据用户配置的算法实现虚拟机的动态迁移过程。