Skip to content

Latest commit

 

History

History
24 lines (12 loc) · 2.31 KB

vm_migration.md

File metadata and controls

24 lines (12 loc) · 2.31 KB

虚拟机迁移

任务描述:

虚拟机迁移是指将虚拟机从一个平台迁移到另一个平台,可以依照停机时间分为静态迁移(冷迁移)和动态迁移(热迁移)。静态迁移虚拟机会被挂起或关机,之后通过网络服务将非运行状态的虚拟机信息发送到新的平台,由新平台完成虚拟机调度或启动流程。虚拟机动态迁移能够将运行状态的虚拟机从源平台迁移至新的平台,迁移期间虚拟机会持续产生状态变动,动态迁移程序需要有能力跟踪虚拟机的状态变化,并在有限的停机时延内,完成虚拟机状态信息的最终更新。

虚拟机迁移相关的功能可以分为多个子任务:虚拟机快照、虚拟机克隆、虚拟机静态迁移、虚拟机动态迁移。其中虚拟机快照应完成虚拟机状态冻结与保存、快照文件生成与管理、虚拟机状态还原等功能。虚拟机克隆可以基于快照来实现虚拟机的克隆,也可以通过创建虚拟机完全副本来实现虚拟机完全克隆。虚拟机静态迁移可以视为虚拟机克隆的功能扩展,后者通常是在同一机器上创建虚拟机副本,而前者更多是要将虚拟机从一个机器移动到另一个机器,并且前者可能还需要传输虚拟机的运行状态。相较于虚拟机静态迁移,动态迁移的虚拟机处于运行过程中,会持续产生新的状态从而修改内存数据,因此动态迁移需要追踪内存数据的变动,并在迁移的不同阶段将脏页(被修改了的内存页)传输到迁移的目的机器中,直至内存脏页数量收敛至设定的规模。

任务要求:

  1. 【基础】基于ArceOS,完成其中一个架构(aarch64, x86, riscv)Hypervisor支持虚拟机快照、虚拟机克隆,要求代码可扩展性强(如果有余力,鼓励完成多个架构的实现)。

  2. 【进阶】在完成【基础】要求功能的基础上,进一步让Hypervisor支持静态迁移。

  3. 【挑战】在完成【进阶】要求功能的基础上,进一步让Hypervisor支持动态迁移。

任务考核:

  1. 详细的开发和设计文档,代码有清晰的注释。

  2. 现场演示:演示各个功能的展示效果,打印出相关信息。

  3. 测试:需要测例的功能应提供不少于两个测例。