# Live Migration

热迁移是一个很有技术含量的话题，也是在实际使用中会常常运动的特性。最近做了一些学习，记录在此。

在研究代码之前，我们先来看看要做一次热迁移是如何操作的。

[从用法说起](https://richardweiyang-2.gitbook.io/understanding_qemu/00-lm/01-migrate_command_line)

接下来我们开始从代码层面研究：

[整体架构](https://richardweiyang-2.gitbook.io/understanding_qemu/00-lm/02-infrastructure)

在上文整体架构篇中限于篇幅，我们跳过了一个非常重要的结构。所以干脆把VMStateDescription单独拿出来讲：

[VMStateDescription](https://richardweiyang-2.gitbook.io/understanding_qemu/00-lm/03-vmsd)

了解了总体结构后，就该研究具体的设备是如何迁移的了。在众多设备中，内存是关键的内容之一，所以第一个要研究的就是内存了。

[内存热迁移](https://richardweiyang-2.gitbook.io/understanding_qemu/00-lm/04-ram_migration)

内存迁移中运用了很多有意思的技术，大部分在[内存热迁移](https://richardweiyang-2.gitbook.io/understanding_qemu/00-lm/04-ram_migration)中描述了。但其中有一个非常重要而且有意思的技术叫postcopy。正是因为其特殊性，且不仅适用于内存，故单列一节。

[postcopy](https://richardweiyang-2.gitbook.io/understanding_qemu/00-lm/05-postcopy)
