论文阅读之Live Migration of Virtual Machines

Live Migration of Virtual Machines

论文结构

  • Abstract
    操作系统实例的迁移是数据中心和集群管理员非常重要的工具,它可以实现软硬件之间的完美分离,用于实现错误管理,负载均衡以及低级系统维护。
    本文作者将研究重点放在数据中心和集群环境下有服务运行的操作系统迁移的设计选项,作者引入了可写工作集的概念,并提供了在Xenp虚拟机管理器上面的设计、实现以及性能评估。
  • Introduction
    介绍了虚拟化技术带来了很多好处,在线系统迁移就是其中之一,系统迁移可以避免进程级别迁移带来的各种困难,其次系统迁移可以让整个内存状态得到转移,这意味着可以迁移一个在线的游戏服务器和流媒体服务器,第三,在线迁移能够将用户和数据中心或集群管理员的注意力分开。
  • Realated Work
    Collective projects研究了虚拟机迁移作为一个工具,但是不提供热迁移功能。进程迁移由于存在很多剩余的依赖问题而没有很好的解决,因此采用整个操作系统实例迁移是一个更好的办法。
  • Design

    • Migrating Memory
      内存迁移分为三个过程:推、停止与拷贝、拉
      将一部分内存页传输到目的机器;
      停止机器,并将一部分内存拷贝到目的机器
      新机器开始运行,并将没有转移的内存pull过来

      也有单纯停止与拷贝、按需迁移,它们分别会导致整体拓机和迁移时间过长、整体迁移时间过长的问题。

    • Local Resource
      虚拟机中的网络资源和本地存储的迁移是两个最重要的问题。
      迁移过程中要保持所有的网络连接数据都在新机器上面重现,需要在已经迁移的机器上面发出一个ARP回复,告诉其他机器,该IP地址已经改变了,其他机器将会把IP数据报发送到新的机器。但是有的路由器拒绝接受APR回复,所以该方案不适用于所情况。在交换机网络,迁移机器可以保持它的MAC地址,交换机可以检测到它迁移到了另外的端口。
      本文没有解决本地化磁盘迁移的问题,但是提出了几种可能的解决方案。
    • Design Overview
      作者为了达到使虚拟机迁移之后的失败几率减小,将两台虚拟机之间的迁移当作事务。

      • 预先迁移:
      • 保护
      • 迭代预先拷贝
      • 停止与拷贝
      • 提交
      • 激活
    • Stage0:Pre-Migration

      • Stage1:Reservation
      • Stage2:Iterative Pre-Copy
      • Stage3:Stop-and-Copy
      • Stage4:Commitment
      • Stage5:Activation
  • Writable Working Sets
    预拷贝最重要的问题是如何决定什么时候停止预拷贝。
    对于内存页面,作者分为两类,一类是基本上不会变化或者变化很少的,另一类是经常会改变的,作者将这个称之为可写工作集。
    • Measuring Writable Working Sets
      通过测试发现,可写工作集在不同的子基准测试程序之间变化很大。
    • Estimating Migration Effectiveness
      通过测试显示,提高网络带宽对于减少虚拟机拓机时间非常有帮助。
  • Implementation Issues
    • Managed Migration
      这种迁移是通过运行在源和目的主机中运行的管理虚拟机中的迁移守护程序来实现的。
    • Self Migration
      自我迁移是指迁移的主要功能都是在被迁移的机器本身。实现的难点在于传输一个一直的系统监测点。而且系统必须运行来保证传输它的最终状态。作者通过停止与拷贝两个阶段来解决这个难题。
    • Dynamic Rate-Limiting
      通过预拷贝过程中脏页的数量来决定下一轮预拷贝的带宽,得到了最佳的带宽是50Mbit/sec,在最后的停止与拷贝阶段,可以通过最大化内存传输速度最小化服务停止时间。
    • Rapid Page Dirtying
      操作系统中有一部分内存页的更新频率非常高,它们不仅具有时间的局部性,而且这些脏页一般具有物理聚集性(空间局部性),如果未检测到群中一页没有修改,则认为该群中的所有页都没有修改,为了避免这种弊端,可以采用假随机的顺序来检测虚拟机的物理页。
    • Paravirtualized Optimizations
      半虚拟化技术可以让操作系统感知到实际和虚拟环境的差别,就迁移而言它可以通过通知系统本身需要进行迁移而进行一些优化,例如发现一些异常进程、释放缓存页等。
  • Evaluation

    • Test Setup
      两台一样的Dell PE-2650服务器 2个双核至强2GHzCPU 2GB内存 BroadcomTG3网卡
      通过万兆以太网连接

    • Simple Web Server
      通过一台运行Apache1.3提供静态内容的虚拟机进行迁移测试,实验结果表明,高负载的服务器可以在对现有服务影响少以及较短拓机时间条件下进行迁移。

    • Complex Web Workload:SPECweb99
      SPECweb99具有更加复杂的页面请求,实验结果表明,一个具有重负荷的服务器只需要71s的时间进行迁移,而且没有对系统的服务质量造成影响。这进一步证明了迁移作为按需在线服务管理员的一个工具。
    • Low-Latency Server:Quake3
      多人在线游戏服务器也是一个具有代表性的服务环境,作者对一个运行了Quake3的服务器进行了在线迁移,实验结果除了迁移的数据量比较少之外,其他的与SPECweb99结果一致,作者也从用户的角度考虑了迁移对于用户的影响,结果表明,迁移会导致50毫秒的延时,
    • A Diabolical Workload:MMuncher
      这是一个极端的工作负载情况,一个512MB内存的虚拟机上面运行了一个C程序,这个C程序的功能是持续向256MB的区域写入内容。在第二个阶段,由于脏页产生的速度比网络的适配速度要高,作者的算法直接停止了第二阶段,进入第三阶段,导致了3.5秒的停机时间。但是实际情况中,不会有这样极端的负载情况。
  • Future Work
    • Cluster Management
      集群管理软件的一个挑战就是放置和移动虚拟机,作者目前正在着手开发一个基于Xen系统的集群控制器。
    • Wide Area Network Redirection
      本文实验是在万兆网络中进行了,如果跨局域网,则会导致延迟很大。有人提出可以在TCP层解决链接迁移的问题。
    • Migrating Block Devices
      NAS在现代数据中心占据了主要的位置,有些集群还会有本地存储。虚拟机集群本地存储的有效管理是作者希望将来进行深入研究的东西。
  • Conclusion
    通过在Xen虚拟机管理器中加入了热系统迁移,作者实现了集群和数据中心交互工作负载的迁移。作者的动态网络带宽适应保证了迁移工作对于正在运行的服务的影响最小以及将拓机时间减少至最低。
ZHANGCHI wechat
关注微信号进一步交流