Hyper-V 可扩展交换机实时迁移支持

在 Hyper-V 实时迁移期间,子分区或虚拟机 (VM) 在一台主计算机上停止 (主机) 并迁移到另一台主计算机 (目标主机) 。 在实时迁移期间,会发生以下操作:

  • 当源主机上开始实时迁移时,可扩展交换机接口会请求基础扩展,以保存每个端口及其关联的网络适配器连接的运行时数据。

    有关此操作的信息,请参阅 Hyper-V 可扩展交换机保存操作

  • 在目标主机上完成实时迁移之前,可扩展交换机接口会请求基础扩展来还原每个端口及其关联的网络适配器连接的运行时数据。

    有关此操作的信息,请参阅 Hyper-V 可扩展交换机还原操作

在实时迁移设置阶段,源主机会创建与目标物理主机的 TCP 连接。 Hyper-V 通过此连接将源 VM 的配置数据传输到目标物理主机。 在目标主机上设置主干 VM,将内存分配给目标 VM。 此时,Hyper-V 将源 VM 的状态(包括其内存页)转移到目标 VM。

可扩展交换机接口还使用 TCP 连接在实时迁移过程中同步步骤和结果。 例如,在目标主机上运行的接口请求从源主机传输与已迁移 VM 关联的端口和网络适配器连接的运行时数据。

在目标主机上使目标 VM 联机之前,可扩展交换机接口将执行以下步骤:

  1. 通过对象标识符在目标主机上创建验证端口, (OID) 请求OID_SWITCH_PORT_CREATE。 如果成功创建端口,可扩展交换机接口将发送其他 OID 请求,以通过基础扩展验证端口策略的属性。

    如果扩展无法创建端口或使任何策略属性失效,则目标节点和交换机不会继续实时迁移。

    有关验证端口及其用法的信息,请参阅 验证端口

  2. 成功完成策略属性的验证后,通过 OID 设置请求删除目标主机上的验证 OID_SWITCH_PORT_DELETE。 删除此端口后,在目标主机上创建操作端口,并在其位置创建操作端口。 与NDIS_SWITCH_PORT_PARAMETERS端口的请求关联的 OID_SWITCH_PORT_CREATE 结构包含用于在源主机上创建端口的相同数据。

    如果成功创建了操作端口,则端口策略将添加到操作端口。

  3. 如果设置成功应用于目标主机上的操作端口,则对源主机上的操作端口发出保存操作。

  4. 如果保存操作成功完成,将按照以下方式在源主机上删除操作端口及其网络适配器连接:

    1. 首先通过 OID 设置请求断开网络连接OID_SWITCH_NIC_DISCONNECT。 完成此 OID 请求后,源主机上的网络适配器连接会通过 OID 集请求删除OID_SWITCH_NIC_DELETE。

    2. 删除网络适配器连接后,通过 OID 设置请求将操作端口OID_SWITCH_PORT_TEARDOWN。 完成此 OID 请求后,操作端口会通过 OID 集请求删除OID_SWITCH_PORT_DELETE。

  5. 通过目标主机上的 OID 设置请求为目标主机上的操作端口创建网络适配器 OID_SWITCH_NIC_CREATE。 如果此 OID 请求成功完成,则通过 OID 设置请求在关联的操作端口上建立网络适配器 OID_SWITCH_NIC_CONNECT

    如果成功建立网络适配器连接,则操作端口和网络适配器连接的运行时数据将还原到目标主机上。

    此时,基础扩展可以在网络适配器连接上执行资源预留和验证。