10.8. Gerenciamento de dispositivos SR-IOV
Um dispositivo virtual emulado freqüentemente usa mais CPU e memória do que um dispositivo de rede de hardware. Isto pode limitar o desempenho de uma máquina virtual (VM). Entretanto, se algum dispositivo em seu host de virtualização suportar Virtualização de E/S de raiz única (SR-IOV), você pode usar este recurso para melhorar o desempenho do dispositivo, e possivelmente também o desempenho geral de suas VMs.
10.8.1. O que é SR-IOV?
A virtualização de E/S de raiz única (SR-IOV) é uma especificação que permite que um único dispositivo PCI Express (PCIe) apresente vários dispositivos PCI separados, chamados virtual functions (VFs), para o sistema host. Cada um desses dispositivos:
- É capaz de fornecer o mesmo ou similar serviço que o dispositivo PCIe original.
- Aparece em um endereço diferente no barramento PCI hospedeiro.
- Pode ser atribuído a um VM diferente usando a atribuição VFIO.
Por exemplo, um único dispositivo de rede capaz de SR-IOV pode apresentar VFs a várias VMs. Enquanto todas as VFs utilizam a mesma placa física, a mesma conexão de rede e o mesmo cabo de rede, cada uma das VMs controla diretamente seu próprio dispositivo de rede de hardware, e não utiliza recursos extras do host.
Como funciona o SR-IOV
A funcionalidade SR-IOV é possível graças à introdução das seguintes funções PCIe:
- Physical functions (PFs) - Uma função PCIe que fornece a funcionalidade de seu dispositivo (por exemplo, rede) para o host, mas também pode criar e gerenciar um conjunto de VFs. Cada dispositivo capaz de SR-IOV tem uma ou mais PFs.
- Virtual functions (VFs) - Funções de PCIe leves que se comportam como dispositivos independentes. Cada VF é derivada de uma PF. O número máximo de VFs que um dispositivo pode ter depende do hardware do dispositivo. Cada VF pode ser atribuída apenas a uma única VM de cada vez, mas uma VM pode ter várias VFs atribuídas a ela.
As VMs reconhecem as VFs como dispositivos virtuais. Por exemplo, uma VF criada por um dispositivo de rede SR-IOV aparece como uma placa de rede para uma VM à qual é atribuída, da mesma forma que uma placa de rede física aparece para o sistema host.
Figura 10.1. Arquitetura SR-IOV
Benefícios
As principais vantagens de usar SR-IOV VFs em vez de dispositivos emulados são:
- Melhoria do desempenho
- Redução do uso de CPU e recursos de memória do host
Por exemplo, uma VF anexada a um VM como um vNIC tem um desempenho quase igual ao de um DNI físico, e muito melhor do que os DNIs paravirtualizados ou emulados. Em particular, quando várias VFs são usadas simultaneamente em um único host, os benefícios de desempenho podem ser significativos.
Desvantagens
- Para modificar a configuração de um PF, é necessário primeiro alterar o número de VFs expostas pelo PF para zero. Portanto, você também precisa remover os dispositivos fornecidos por essas VFs da VM à qual elas estão atribuídas.
- Uma VM com um dispositivo VFIO anexado, incluindo VFs SR-IOV, não pode ser migrada para outro host. Em alguns casos, você pode contornar esta limitação emparelhando o dispositivo designado com um dispositivo emulado. Por exemplo, você pode unir uma VF em rede atribuída a um vNIC emulado, e remover a VF antes da migração.
- Além disso, os dispositivos atribuídos pela VFIO requerem o acionamento da memória VM, o que aumenta o consumo de memória da VM e impede o uso de balonamento de memória na VM.
Recursos adicionais
- Para uma lista dos tipos de dispositivos que suportam SR-IOV, ver Seção 10.8.3, “Dispositivos suportados para a tarefa SR-IOV”.