论文部分内容阅读
计算机软件与硬件技术的飞速发展导致了计算模型的不断演化。继分布式计算、并行计算和网格计算等模型之后,计算机工业界与学术界提出了云计算模型。云计算通过互联网将超大规模的计算存储资源整合起来,形成一个虚拟的计算资源池,并以服务的形式按需提供给用户。云计算带来的服务整合与按需供给能够显著提高计算资源的利用率,降低每服务的能耗量,并且有效屏蔽计算资源的出错问题。在云计算模型中,资源是共享的并根据用户的请求进行预留。在用户的请求被批准后,云计算平台必须向用户保证严格执行服务等级协议(Service LevelAgreement,SLA)。但是,用户对资源的实际需求往往是随着时间的推移而动态改变的。例如,Web服务器在不同时间的负载量存在明显差异。如果资源预留的太早,势必造成资源的浪费。此外,在用户透明得共享资源的同时,云计算平台还需动态的平衡服务器之间的负载,避免产生热点(hotspot)。如何高效分配资源同时保证用户的SLA,是云计算需要解决的重要问题。虚拟化技术为云计算模型中的资源管理提供了一种有效的解决办法。通过将服务封装在虚拟机中并映射到各台物理服务器上,虚拟化技术能够根据负载的变化进行虚拟机和物理资源的重映射,从而动态的实现整个系统的负载均衡。虚拟机和物理资源的重映射可以借助虚拟机动态迁移技术来实现。借助运行在操作系统和物理硬件之间的虚拟机监控器,把包括操作系统在内的整个运行环境从一台物理主机迁移到另一台物理主机上,虚拟机动态迁移能够帮助管理人员进行动态的负载均衡、出错管理和在线维护。目前,虚拟机的动态迁移主要是由人手动发起的,且只能在相同类型的虚拟机监控器间进行。在云计算环境下,大规模的计算存储资源被整合在一起,这些资源可能由不同的虚拟机监控器进行管理。此外,在动态迁移被用来进行负载均衡以满足虚拟机SLA的同时,迁移本身也需要占用CPU和网络带宽等资源。如果不对动态迁移的过程加以控制,必然会造成在迁移过程中虚拟机的SLA被严重破坏。反应速度慢、容易出错和缺少动态控制,这些缺点导致传统由人工发起的迁移不能做到资源的最佳利用和保证迁移过程中虚拟机的SLA。而只能在相同类型的虚拟机监控期之间进行迁移,缺乏灵活性,又限制了动态迁移技术的广泛应用。针对云计算平台的特点,我们提出了一个将虚拟机动态迁移技术更好地运用于云计算平台的系统的解决方案。该方案优点在于:首先,能够实时监控云计算环境中资源的使用情况,自主发起动态迁移,以做到负载均衡。其次,能够在不同类型的虚拟机监控器问进行虚拟机的动态迁移,大大提高了动态迁移的灵活性。最后,能够对动态迁移的过程进行实时控制,避免迁移过程占用过多资源,从而保证虚拟机的SLA。为了验证上述方案的可行性,我们以两种具有代表性的开源虚拟机监控器Xen和KVM为基础实现了名为Vagrant的虚拟机动态迁移框架。实验结果表明,该框架能够根据负载情况,在Xen和KVM之间自主发起虚拟机动态迁移,同时能够对迁移过程进行实时控制,保证虚拟机的SLA。在性能方面,由该迁移框架发起的虚拟机动态迁移的在迁移总时间上与传统的虚拟机动态迁移基本相当,而造成的停机时间基本在2秒以内。