精华内容
下载资源
问答
  • 本文主要介绍了kvm虚拟机静态和动态迁移,具体如下: 一、kvm虚拟机静态迁移 1.静态迁移就是虚拟机在关机状态下,拷贝虚拟机虚拟磁盘文件与配置文件到目标虚拟主机中,实现的迁移。 (1)虚拟主机各自使用本地存储...
  • 云计算;虚拟机动态迁移;虚拟化;内存迁移虚拟机重现

    [1]常德成,徐高潮.虚拟机动态迁移方法[J].计算机应用研究,2013,30(04):971-976.

    综述,内存预拷贝迁移、内存后拷贝迁移、内存混合复制迁移和基于日志跟踪重现的迁移方法。

    1. 对出现的名词添加参考文献
    2. 
    

    综述
    3. 虚拟机动态迁移方法分类与分析
    4. 内存预拷贝迁移方法
    5. 内存后拷贝迁移方法
    6. 基于内存混合复制迁移方法
    7. 基于日志跟踪重现的动态迁移方法
    8. 虚拟机动态迁移方法的应用与发展

    0.

    云计算 --> 虚拟化技术 --> 虚拟机动态迁移 --> 虚拟机动态迁移的应用 --> 总结

    应用:
    a. 负载均衡
    b. 在线维护:虚拟机迁移不关机,对物理机进行维护
    c. 主动容错:对于某个可能存在故障的物理机,其上的虚拟机主动迁移到更安全的位置
    d. 资源优化和电源管理:轻负载的主机整合到重负载的主机上,迁移完毕后将被迁移的虚拟机关闭

    1. 虚拟机动态迁移方法分类与分析

    主要有三类资源需要被迁移:内存和CPU状态、网络连接和虚拟设备状态、存储。

    目前,动态迁移的研究与应用主要集中在局域网环境,主要通过 ARP 广播实现。

    数据中心更倾向于使用 NAS 等共享设备,这能够避免迁移磁盘存储,共享存储的环境中,虚拟机内存状态是最主要的迁移数据,当虚拟机正在运行实时服务时,传输方式应该考虑最小化停机时间和总迁移时间,内存传输有三个阶段

    1. 推送复制(push):源虚拟机继续运行,并主动将虚拟机复制到目的虚拟机。为保证一致性,过程中被修改的内存页面必须重新传送。
    2. 停机拷贝(stop-and-copy):源虚拟机停止运行,将虚拟机内存页面拷贝到目的虚拟机,然后启动目的虚拟机。
    3. 按需复制(pull):目的虚拟机开始运行,如果它访问到一个还没被拷贝的页面,该页面通过缺页异常的方式从源主机传递过来。

    在这里插入图片描述
    评价虚拟机动态迁移方法工作效率的性能指标

    1. 总迁移时间
    2. 停机时间
    3. 总数据传输量
    4. 应用性能损失:虚拟机内部应用执行延时或对外表现出的性能抖动

    动态迁移应该对虚拟机、运行在虚拟机内的应用程序透明。停机时间内服务不可用,较长的停机时间会导致可察觉的服务中断,引起一致性和透明性等问题。

    动态迁移的目标就是可忽略不计的宕机时间、最小的网络带宽消耗、合理的总迁移时间,而且不要因为资源争夺而干扰在同一主机内的其他应用服务。

    2. 内存预拷贝迁移方法(主流)

    应用最多,典型 VMWare 和 XenSource 分别推出的 VMotion 和 Xen-Motion。

    预拷贝迁移的工作过程:

    1. VMM 将所有内存页标记为脏页面并拷贝到目的主机上
    2. 然后迭代拷贝(采用几轮增量同步,上一轮传输过程中被修改过的页面在本次迁移,当需要传输的内存小于一个阈值或者迭代次数超过设置的最大迭代次数时停止迭代拷贝)内存页,同时虚拟机继续运行。
    3. 挂起源主机上的虚拟机,拷贝 CPU 状态和最后一轮产生的脏页面到目的主机,然后恢复目的主机上的虚拟机。

    预拷贝实现了在虚拟机运行的同时进行迁移,而且具有可靠性,如果目的主机出现故障,则终止迁移过程,继续在源主机上运行虚拟机。

    对于特定类型的虚拟机效果可能不明显:迁移CPU敏感、内存敏感、应用程序负载密集的虚拟机、网络带宽低时,虚拟机内存页面弄脏速度可能比网络传输速度快,进而延长停机时间和总迁移时间。

    优化预拷贝迁移需要考虑导致内存脏页面产生率比网络传输率大的问题。

    2.1 基于内存压缩的预拷贝迁移方法

    1. 压缩内存间接增加了用于迁移的网络带宽,压缩的脏页面在网络传输的时间减少。
    2. 由于传输数据量的减少,迁移网络流量急剧下降。

    自适应内存压缩动态迁移算法 MECOMXBRLE 动态迁移算法。

    内存页面分为三类:大量零字节组成、高相似度、低相似度。

    MECOM 算法识别页面类型,针对不同类型的页面采用不同的压缩算法:

    对于大量零字节组成的页面:只记录页面中非零字节的值和偏移等信息;
    对高相似度页面采用 WKdm 算法;
    对低相似度页面,采用具有高压缩比的通用压缩算法,如 LZO

    XBRLE 动态迁移算法

    Delta 压缩。传输内存页面改变的部分而不是整个页面。通过对当前页面和修改前页面应用异或操作计算 Delta 页(该页面被修改的部分),然后在目的端对修改前页面和 Delta 页应用异或操作得到当前页面。

    2.2 基于内存冗余数据消除策略的预拷贝迁移方法

    预拷贝迁移过程中,在每个迁移阶段都有许多重复数据的传输。

    在迁移的第一阶段,存在大量的零内存页和相同或相似内存页,在之后的迭代迁移阶段,大多数迁移内存页面只有少量的数据被修改。因此也存在很多相同或相似内存页。

    MDD 动态迁移算法将冗余数据删除策略应用于预拷贝迁移中。 MDD 根据据运行时内存镜像的自相似性来减少重复内存数据的传输:使用基于哈希的指纹发现相同或相似的内存页面,在这些内存页面之间应用抑或操作使内存页面的重复部分变成连续的零块,并采用 RLE 进行压缩,然后再传输压缩后的数据。在目的主机上进行逆向冗余数据消除以得到原本的内存镜像。
    MDD 还可通过多线程技术减少冗余数据删除带来的额外时间开销,并维护双哈希消除数据的不一致性。

    2.3 通过改变内存传输顺序优化预拷贝迁移方法

    一些内存由于频繁修改而被多次传输,会消耗网络带宽,增加总迁移时间。

    该方法思想是:使频繁修改的内存页面尽可能在最后阶段传输,从而减少内存页的重传数目。

    rapid page dirtying 方法:周期性查看当前轮的脏页面位图,只传输那些在前一轮迭代拷贝中弄脏而在扫描时还没有再次被弄脏的内存页面。该方法问题是;在相隔的两次迭代拷贝被弄脏,该页面仍需重新传输。

    **页面传输动态重排序方法:**引入页面优先级位图,将页面根据不同的页面权重组织起来,为更新频率低的页面赋予较高的优先级,按照优先级顺序传输内存页面,把更新频繁的页面留到最后传输。

    2.4 基于调节脏页面产生速率的预拷贝迁移方法

    Rouge process stunning 限制每个进程发生写故障次数,达到写故障次数限制的进程进入等待队列。

    **将 CPU 调度引入预拷贝迁移过程来控制脏页面产生率。**在迭代拷贝阶段调节分配给虚拟机的cpu时间片以控制写内存速度。该方法适用于能容忍一定程度的性能降低,而服务中断会导致严重问题的应用程序。

    2.5 通过新网络技术优化内存页面传输

    RDMA(remote direct memory access) 和 OS-bypass。

    2.6 其他预拷贝迁移优化方法

    • 对CPU依赖应用程序的虚拟机的方法

    • 对于访存密集型应用进行优化的方法

    3. 内存后拷贝迁移方法

    推迟虚拟机内存的传输。

    1. 挂起源主机上需要迁移的虚拟机,拷贝处理器状态到目的主机并在其上恢复。
    2. 然后通过网络从源主机获取内存页面——按需取页、主动推送

    主要方法:页面预取技术和动态内存气球驱动机制。

    页面预取技术:根据网络缺页异常发生的位置和空间局部性原理,预测目的主机上虚拟机的内存页面访问位置,调整主动推送页面的顺序,使得缺页异常附近的页面被虚拟机访问之前传输到目的主机。

    动态内存气球驱动机制:周期性地从虚拟机回收空闲页面,减少迁移过程中空闲页面的传输。

    4. 基于内存混合复制迁移方法

    可用于进程迁移

    1. 通过一次预拷贝将所有内存页拷贝到目的主机上
    2. 挂起虚拟机,将处理器状态和不可分页的脏页面拷贝到目的主机上,并在目的主机上恢复虚拟机
    3. 后拷贝,从源主机推送剩余的脏页面

    HybMEC 算法

    1. 全内存同步
    2. 内存位图同步
    3. 脏内存同步

    5. 基于日志跟踪重现的动态迁移方法

    伺机重现虚拟机迁移CR/TR-Motion通过日志的跟踪和重现技术同步虚拟机状态

    伺机重现虚拟机迁移:GUI 级捕获用户与应用程序间的交互,并生成相应的日志文件传输到目的主机,在目的端虚拟机中重现用户的交互行为。要求主机与源主机的虚拟机有相同的配置和初始状态,辅助使用加密哈希技术识别和传输不同的虚拟机状态。

    CR/TR-Motion:采用检查点/恢复和跟踪重现技术实现快速透明的虚拟机动态迁移。

    6. 虚拟机动态迁移方法的应用与发展

    未来研究方向:

    1. 广域网虚拟机动态迁移。在几个数据中心之间负载均衡。不仅要传输虚拟机内存,而且要传输本地持久化状态和网络连接。

    目前提出的用于广域网的动态迁移方法,主要解决在广域网下传输磁盘状态和透明的迁移网络连接。

    方法:结合预拷贝迁移和写字节流的块级解决方案,采用结合 IP tunneling 和 dynami DNS 的临时网络重定向方案解决网络连接的迁移问题。

    1. 多虚拟机同时迁移策略。当维护一个数据中心时,将它上面的虚拟机都迁移到其它数据中心。在同一位置(如在一台物理机上)的虚拟机通常有很多相同的内容,即各个虚拟机之间有许多相同的内存内容。

    冗余数据删除的方法迁移在同一位置的一组虚拟机,使用content-hashing 实现页面级和子页面级的冗余数据删除策略。

    Shrinker 是在广域网中迁移多个虚拟机的动态迁移系统。

    1. 移动云计算的迁移方法研究。移动终端的计算能力、存储大小和电源供应有限,移动网络带宽通常较低,现有的迁移方法不能直接应用到云计算中,需要根据云计算的特点和问题提出相应的迁移方法。
    展开全文
  • 2、动态迁移(热迁移):对于热迁移,比较常用,通常是这台服务器上正在跑着一些业务,而这些业务又不允许中断,那么就需要使用热迁移了,这篇博文将详细写出热迁移的步骤。 1、冷迁移 通常我们存放虚拟机磁盘的...
  • 虚拟机迁移原理

    2020-12-13 22:07:28
    好比说,虚拟机中正在运行一个程序,这个程序有源源不断的数据访问,怎么使得在不影响这些访问的情况下把虚拟机迁移到领一台服务器上呢? 尤其是当远程迁移的时候,怎么在虚拟机不崩溃的情况下迁移走所有的状态? ...

    我们常常遇到需要迁移虚拟机的问题,比如需要维护某台设备,会将设备上的一切应用迁移到另一台设备。但是如何将虚拟机进行迁移呢?好比说,虚拟机中正在运行一个程序,这个程序有源源不断的数据访问,怎么使得在不影响这些访问的情况下把虚拟机迁移到领一台服务器上呢?

    尤其是当远程迁移的时候,怎么在虚拟机不崩溃的情况下迁移走所有的状态?

    快照技术

    snapshot(快照)就是将虚拟机的各种状态全部记录下来,存进硬盘里,等待下一次开启虚拟机的时候读取,这些状态包括:

    • vCPU 状态(寄存器等)
    • I/O设备状态
    • 虚拟磁盘状态(利用写时拷贝技术)
    • 所有的内存状态(实现最困难)

    内存迁移

    内存是最难处理的,因为它一直在变化。内存实时读写,导致我们没有办法截取某一时刻对内存进行拷贝。这就形成了两种处理方法:

    pre-copy

    1. 将当前时刻所有的内存状态复制并发送到远程服务器,先不管实时更新的内存状态;
    2. 将新时刻的已改变的内存复制并发送到远程服务器:
      (1).VMM会对所有的页进行写保护,当有数据改变时,标记该页为“赃页”;
      (2).VMM将所有“赃页”拷贝进缓冲区,将缓冲区通过网络发送到远程服务器;
      (3). 由于相关联的内存的局部性,赃页的数目很小,先设为 D t ( M ) D_{t(M)} Dt(M),t为时刻,M为内存大小
      (4).要求发送内存的时间 t i = t ( D t i − 1 ) ≤ t i − 1 t_i = t(D_{t_{i-1}})\leq t_{i-1} ti=t(Dti1)ti1
    3. 重复步骤2,直到 D t i D_{t_{i}} Dti足够小
      (1).决定于可容忍的宕机时间
      (2).迁移10MB的页仅仅需要宕机几毫秒
    4. 如果赃页太多,到达了阈值,停止虚拟机,复制剩余的赃页,vcpu和内存状态
    5. 远程重启虚拟机。

    这样的话,只要宕机时间小于客户端的网络超时时间(通常设置为10s),就可以不丢失访问数据。

    post-copy

    1. 先将vCPU状态复制到远程主机
    2. 虚拟机操作将会导致页错误
    3. 一旦远程主机可以被访问,直接将错误页拷贝到远程主机

    优点:新服务器可以直接启动
    缺点:剩余页将会在原主机保存很久,原主机的虚拟机是停止的,但是内存仍在读取数据。

    展开全文
  • KVM虚拟机迁移原理分析

    千次阅读 2018-04-11 19:49:40
    KVM虚拟机在不同主机之间的迁移,是个复杂的问题,有非常多的解决方案,但是不同的解决方案都有其优点和缺点,下面来分析下当前几种可用的KVM虚拟机迁移的方案。1. 虚拟机迁移过程中数据的传输(磁盘镜像和内存数据...

    KVM虚拟机在不同主机之间的迁移,是个复杂的问题,有非常多的解决方案,但是不同的解决方案都有其优点和缺点,下面来分析下当前几种可用的KVM虚拟机迁移的方案。
    1. 虚拟机迁移过程中数据的传输(磁盘镜像和内存数据)
      通常有两种常用的数据传输方式:
      -- 基于hypervisor的传输机制,即通过host之间连接来进行数据传输
      -- 基于libvirtd的传输机制,即两个libvirtd进程之间的数据传输
    (1)基于hypervisor的数据传输
           这种传输方式具有最低的overload,因为传输的是裸数据,不支持数据的加密。另外,因为依赖于hypervisor的网络,所以需要对hypervisor networks进行一些特定的配置,比如打开某些端口。
      


    (2)基于libvirtd的数据传输
       这种传输方式支持加密,是通过libvirt内建的RPC协议来进行数据的传输的,但是缺点是除了传输裸数据外,还需要传输一些额外的数据,这对镜像尺寸很大的虚拟机来说是个大问题。优点是由于不依赖与hypervisor network,所以不需要hypervisor对network做过多的配置,仅仅打开某个指定的port即可。


      (2)虚拟机迁移过程中的控制流


      
      带有管理端的直接迁移,这种迁移方式是由一个管理客户端发起,管理客户端完全控制整个迁移流程,所以它必须能够且有权限访问源主机和目的主机上libvirtd的权限,因为外加一个管理客户端,所以不需要源libvirtd和目的libvirtd之间进行直接的交流,只需要按照管理客户端的指示来办事就好了。这种方式的优点是:
       If the client application crashes, or otherwise loses its connection to libvirtd during the migration process, an attempt will be made to abort the migration and restart the guest CPUs on the source host. There may be scenarios where this cannot be safely done, in which cases the guest will be left paused on one or both of the hosts


     带有管理端的点对点的迁移,这种迁移方式下,管理客户端至于源libvirtd交互,然后源libvirtd完全控制整个迁移过程。优点是,即使管理客户端挂掉了,迁移还是能正常完成的。

    展开全文
  • openstack虚拟机迁移详解,PDFopenstack虚拟机迁移详解,PDFopenstack虚拟机迁移详解,PDFopenstack虚拟机迁移详解,PDF
  • 实现向虚拟机迁移,需要做的只是把位于物理机磁盘上的数据拷贝到虚拟磁盘中,插入一些驱动程序,然后调整部分数据位以支持这些新的驱动。听起来很简单吧?真正的挑战在于如何执行P2V的服务器迁移,或者更确切地讲...

    P2V服务器迁移并不是什么魔术。实现向虚拟机的迁移,需要做的只是把位于物理机磁盘上的数据拷贝到虚拟磁盘中,插入一些驱动程序,然后调整部分数据位以支持这些新的驱动。

    听起来很简单吧?真正的挑战在于如何执行P2V的服务器迁移,或者更确切地讲是什么时候执行的问题。

    某些Windows操作系统和部分迁移工具可以支持在物理机运行状态下完成转换。而其它的工具则需要关闭主机电源,并通过诸如CD-Rom、iSCSI Initiator这样的特殊介质引导来实现。为了完成转化,我可以接受一定的停机时间,这样可以防止遭遇操作系统不支持在线P2V迁移的情况。因此,规划可行的停机时间非常关键。

    无论那种迁移,基本步骤是一样的:对于本地物理磁盘的处理,首先是读取文件系统占用的磁盘大小和已用空间。然后,设置虚拟磁盘的大小使其至少不小于已用空间大小,可以小于文件系统占用的物理空间。

    创建虚拟机配置文件,包括名称(跟物理服务器名称不同)、网络连接、虚拟CPU数量以及分配给虚拟机的内存空间大小。

    指定IP地址和使用诸如Sysprep等集成到虚拟化迁移工具时所必须的其它参数。

    从源文件系统以数据位为单位拷贝内容到虚拟磁盘上的目标文件系统。

    向现在使用的子OS中装入适当的驱动程序。通常包括SCSI和网络驱动。在很多情况下,仅仅包括重新定义如何访问新的虚拟磁盘。

    重启虚拟机。

    到此为止,您已经完成了在虚拟服务器迁移工具内所需的设置。但是,对于管理员而言还有一些必要步骤要完成。设置虚拟机内的IP地址。

    使用VMware平台安装VMware Tools,Xen安装XenTools等等

    测试虚拟机内的应用程序。

    完成后,关闭物理服务器。然后把虚拟机迁移到开放的网络环境。

    瞧!您已经学会了如何完成虚拟服务器迁移。

    虽然P2V迁移确实不难,但是一定要在充分理解要转化操作系统的基础上进行。因为这样的迁移即使有时完成了所有数据位的拷贝,也会出现主机无法启动的情况。通常,这是由于驱动的原因导致的,通过操作系统急救盘可以轻松修复。

    展开全文
  • 迁移描述:相比KVM虚拟机迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机迁移无需拷贝虚拟磁盘文件,但是需要迁移到的宿主机之间需要有相同的目录结构虚拟机磁盘文件,也就是共享存储,本文这部分内容通过nfs来...
  • KVM虚拟机迁移原理分析.pdf
  • 需求 2:物理机器软件系统升级,打补丁(patch),为了不影响上面跑的虚拟机,在升级和打补丁之前,需要把虚拟机迁移到别的物理机器上。 需求 3:一个物理机器上的负载太重,需要减少一些虚拟机来释放资源。 需求 ...
  • OpenStack虚拟机迁移与热迁移

    千次阅读 2018-09-04 19:58:00
    一、虚拟机迁移分析 openstacvk虚拟机迁移分为冷迁移和热迁移两种方式。 1.1冷迁移: 冷迁移(cold migration),也叫静态迁移。关闭电源的虚拟机进行迁移。通过冷迁移,可以选择将关联的磁盘从一个数据存储移动到...
  • 1. 在进行服务器操作维护/升级操作前,系统维护人员将该服务器上的虚拟机迁移到其他服务器,降低操作维护过程中业务中断的风险。 2. 将负载较重的服务器上的虚拟机迁移到负载较轻的主机上,从而实现负载均衡和负载...
  • 若要实现热迁移,那么外部共享存储服务器便是必不可少的,因为必须要保证源ESXi主机和目标ESXi主机都可访问虚拟机文件,所以在热迁移之前必须把虚拟机配置文件都迁移到外部共享存储之上。 说到外部共享就自然想到了...
  • 虚拟化环境中的迁移,可分为静态迁移(static migration,或者 冷迁移 cold migration,或者离线迁移 offline migration) 和 动态迁移 (live migration,或者 热迁移 hot migration 或者 在线迁移 online ...
  • 物理机到虚拟机迁移(Physical-to-Virtual)P2V 指迁移物理服务器上的操作系统及其上的应用软件和数据到 VMM(Virtual Machine Monitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器...
  • kvm虚拟机迁移与热迁移迁移 原理 ​ 对于静态迁移,你可以在宿主机上保存一个完整的客户机镜像快照,然后在宿主机中关闭或 者暂停该客户机,然后将该客户机的镜像文件复制到另一台宿主机中,使用在源主机中启动...
  • 文章目录目录前文列表冷迁移代码分析(基于 Newton)Nova 热迁移实现原理迁移代码分析向 libvirtd 发出热迁移指令轮询监控 libvirtd 的数据迁移状态参考资料 前文列表 《OpenStack 虚拟机的磁盘文件》 《基于 ...
  • 动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件,可以通过多种方式实现,本例采用基于共享存储动态迁移,通过NFS来实现。 实验环境 源宿主机:Ubunt...
  • 虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟化软件,用户可以在一台物理...虚拟机拥有一个杀手级的方案,就是虚拟机的在线迁移技术。所谓在线迁移,也就...
  • 基于qemu的虚拟机迁移(migration)

    千次阅读 2019-03-04 13:47:24
    在云计算中,热迁移是一项比较重要的feature。它的应用场景比较多也比较重要,比如负载...在我初次接触虚拟机迁移时发现网上的资料多事热迁移相关的,足见其在所有迁移方式中是最为重要的,但是我所调试的并非热迁...
  • 前面我们介绍了有关OpenStack的热迁移包括块迁移和共享存储迁移,对于快迁移可能有一个致命的缺点,就是他相当于一个物理对象的迁移,如果虚拟机实例比较大或者网络带宽有所限制,这可能会让用户感觉不是非常友好,...
  • 在虚拟化领域,虚机动态迁移是一个非常有趣且持续不断的话题:因为随着使用需求,客户机变得越来越大(单个虚机的vCPU和RAM越来越多)且客户机正常运行不间断的需求也变得越来越严格。本次讨论将围绕QEMU/KVM ...
  • 摘自:虚拟化迁移技术漫谈 物理机到虚拟机迁移(Physical-to-...这种迁移方式,主要是使用各种工具软件,把物理服务器上的系统状态和数据“镜像”到 VMM 提供的虚拟机中,并且在虚拟机中“替换”物理服...
  • VMware VMotion迁移原理

    万次阅读 2017-09-17 18:35:42
    用户可以手工迁移服务器上的虚拟机至另外一台服务器,从而在不间断服务的情况下,升级和维护原来的服务器。多个服务器之间可以自动迁移虚拟机,从而达到负载均衡,提高资源利用率的目的。同时,这项技术还可以实现...
  • 自2002年成立以及2003年发布以来,它允许我们将虚拟机的活动状态从一个物理ESXi主机迁移到另一个主机。如今,无缝迁移虚拟机的能力几乎是每个虚拟化部署的重要组成部分。工作负载的可移植性是真正的混合云体验的基础...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,247
精华内容 6,898
关键字:

虚拟机动态迁移原理