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_SWITCH_PORT_DELETE的 OID 集请求删除目标主机上的验证端口。 删除此端口后,会在目标主机上创建一个操作端口,并在其位置创建一个操作端口。 与操作端口OID_SWITCH_PORT_CREATE请求关联的NDIS_SWITCH_PORT_PARAMETERS结构包含用于在源主机上创建端口的相同数据。

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

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

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

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

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

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

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

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