虚拟机迁移原理

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

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

快照技术

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

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

内存迁移

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

pre-copy
  1. 将当前时刻所有的内存状态复制并发送到远程服务器,先不管实时更新的内存状态;
  2. 将新时刻的已改变的内存复制并发送到远程服务器:
    (1).VMM会对所有的页进行写保护,当有数据改变时,标记该页为“赃页”;
    (2).VMM将所有“赃页”拷贝进缓冲区,将缓冲区通过网络发送到远程服务器;
    (3). 由于相关联的内存的局部性,赃页的数目很小,先设为 D t ( M ) D_{t(M)} D
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值