Failover de VF SR-IOV e suporte à migração dinâmica

Depois que a partição filho do Hyper-V é iniciada, o tráfego de rede flui pelo caminho de dados sintético. Se o adaptador de rede física der suporte à interface SR-IOV (Virtualização de E/S de Raiz Única), ele poderá habilitar uma ou mais VFs (Funções Virtuais) PCI Express (PCIe). Cada VF pode ser anexada a uma partição filho do Hyper-V. Quando isso acontece, o tráfego de rede flui pelo caminho de dados do VF SR-IOV otimizado para hardware.

Depois que o caminho de dados do VF for estabelecido, o tráfego de rede poderá reverter para o caminho de dados sintético se qualquer uma das seguintes condições for verdadeira:

  • Uma VF foi anexada a uma partição filho do Hyper-V, mas torna-se desanexada. Por exemplo, a pilha de virtualização pode desanexar um VF de uma partição filho e anexá-lo a outra partição filho. Isso pode ocorrer quando há mais partições filho do Hyper-V em execução do que há recursos VF no adaptador de rede SR-IOV subjacente.

    O processo de failover para o caminho de dados sintéticos do caminho de dados do VF é conhecido como failover de VF.

  • A partição filho do Hyper-V está sendo migrada ao vivo para um host diferente.

A figura a seguir mostra os vários caminhos de dados com suporte em um adaptador de rede SR-IOV.

diagrama de pilha mostrando um adaptador sr-iov sob uma partição pai de gerenciamento comunicando-se usando um barramento de vm comunicando-se com a partição filho nº 1 contendo um sistema operacional convidado se comunicando usando um barramento de vm, além disso, a partição filho nº 2 está se comunicando usando um miniporto vf para o adaptador sr-iov.

O NetVSC expõe um adaptador de rede de VM (Máquina Virtual) que está associado ao driver de miniporta VF para dar suporte ao caminho de dados VF. Durante a transição para o caminho de dados sintéticos, o adaptador de rede VF é normalmente removido, se possível, do sistema operacional convidado. Se a VF não puder ser removida normalmente e atingir o tempo limite, ela será removida de surpresa. Em seguida, o driver de miniporto VF é interrompido e o NetVSC (Cliente de Serviço Virtual de Rede) é desvinculado do driver de miniporto VF.

A transição entre o VF e os caminhos de dados sintéticos ocorre com perda mínima de pacotes e impede a perda de conexões TCP. Antes que a transição para o caminho de dados sintético seja concluída, as pilhas de virtualização seguem estas etapas:

  1. A pilha de virtualização move os filtros MAC (Controle de Acesso de Mídia) e VLAN (VIRTUAL LAN) para o adaptador de rede da VM para a VPort (Porta Virtual) padrão anexada à PF (Função Física PCIe). O adaptador de rede da VM é exposto no sistema operacional convidado da partição filho.

    Depois que os filtros são movidos para o VPort padrão, o caminho de dados sintéticos é totalmente operacional para o tráfego de rede de e para os componentes de rede executados no sistema operacional convidado. O driver de miniporto PF indica pacotes recebidos no VPort PF padrão que usa o caminho de dados sintéticos para indicar os pacotes para o sistema operacional convidado. Da mesma forma, todos os pacotes transmitidos do sistema operacional convidado são roteados por meio do caminho de dados sintéticos e transmitidos por meio do VPort PF padrão.

    Para obter mais informações sobre VPorts, consulte Portas virtuais (VPorts).

  2. A pilha de virtualização exclui o VPort anexado ao VF emitindo uma solicitação de conjunto OID (Identificador de Objeto) de OID_NIC_SWITCH_DELETE_VPORT para o driver de miniporto PF. O driver de miniporta libera todos os recursos de hardware e software associados ao VPort e conclui a solicitação OID.

    Para obter mais informações, consulte Excluindo uma porta virtual.

  3. A pilha de virtualização solicita um FLR (Redefinição de Nível de Função) pcIe do VF antes que seus recursos sejam desalocados. A pilha faz isso emitindo uma solicitação de conjunto OID de OID_SRIOV_RESET_VFpara o driver de miniporto PF. O FLR coloca o VF no adaptador de rede SR-IOV em um estado quiescente e limpa todos os eventos de interrupção pendentes para o VF.

  4. Depois que o VF for redefinido, a pilha de virtualização solicitará uma desalocação dos recursos de VF emitindo uma solicitação de conjunto OID de OID_NIC_SWITCH_FREE_VF para o driver de miniporto PF. Isso faz com que o driver de miniporte libere os recursos de hardware associados ao VF.

Para obter mais informações sobre esse processo, consulte Virtual Function Teardown Sequence.