Departamento de Eletrônica – Escola Politécnica
Programa de Engenharia Elétrica – COPPE
Network Virtualization:
Breaking the Performance Barrier
Rafael dos Santos Alves
http://www.gta.ufrj.br
Informações
• Autor
• Scott Rixnerr
• Publicação
• ACM QUEUE (janeiro/fevereiro de 2008)
Motivação
• Popularização da virtualização
• Exigência de redes de alto desempenho
• Consolidação de servidores
• Técnicas atuais com sobrecarga significativa
limitando o desempenho
Virtualização de rede
• VMM deve prover acesso compartilhado à interface
de rede
• VMM deve proteger uma máquina virtual das outras
Virtualização de I/O
• IBM System/360
• Duas categorias
• Dispositivos de I/O privados
• Dispositivos de I/O compartilhados
I/O privado
• Dispositivo de I/O associado à uma máquina virtual
• IBM System/360 e 370
• Channel program
• Arquitetura Power4
• LPAR (logical partitioning)
• Inicialmente, isolamento a nível de slot PCI
• IOMMU (I/O memory management unit)
IOMMU
• Restrição da memória acessada por cada dispositivo
• VMM cria tabela de páginas de I/O para cada
dispositivo
• Mapeamentos com as páginas que pertencem à
máquina virtual que controla o dispositivo
• Em cada operação de DMA
• IOMMU consulta tabela de páginas
I/O privado
• Acesso de alto desempenho
• Solução custosa
• Número de máquinas virtuais limitado
I/O compartilhado
• IBM System/360 e 370
• Máquinas virtuais fisicamente separadas
• Interface por arquivo de spool
• fornecido por máquina virtual especial
(domínio de I/O)
• Máquinas virtuais podem ler e escrever de spools
virtualizados
• Acessos a recursos remotos são passados para o
domínio de I/O
• Lógicamente idêntico ao utilizado atualmente
Software para virtualização
de rede
• Xen
• I/O compartilhado
• Dois elementos
• Hipervisor
• Domínio de driver
• Domínio de I/O
• Cada máquina virtual recebe um dispositivo de
I/O virtual
Arquitetura para virtualização
de rede no Xen
Software para virtualização
de rede - Xen
• Domínio de driver deve proteger acessos de I/O
• Deve direcionar a interface de rede somente para buffers
que possui
• Futuras versões da x86 vão incluir um IOMMU
• Sobrecarga de processamento e de comunicação significativa
• Sobrecarga devido ao escalonamento
• Entre o domínio de driver e a máquina virtual
• Gerenciamento no hipervisor
• Aumento da complexidade
• Redução da confiabilidade
Interfaces de rede de
múltiplas filas
• Placas de rede tradicionais
• 1 fila de recepção e 1 de transmissão
• Intefaces de múltiplas filas
• Sistemas multicore
• Arquiteturas específicas
• Microsoft Receive Side Scaling
• Linux Scalable I/O
• Acesso exclusivo de cada núcleo a um conjunto de filas
• Aumento do paralelismo
• Uso mais efetivo dos núcleos
Interfaces de rede de
múltiplas filas
• Utilização em virtualização
• Filas associadas aos drivers no domínio de driver
• Interface responsável por multiplexação/demultiplexação
• Vantagens
• Eliminação da sobrecarga de multiplexação no domínio de driver
• Desvantagens
• Domínio de driver deve proteger o tráfego de rede de cada máquina
virtual
• Sobrecarga e complexidade inerentes ao gerenciamento de buffers
• Problema de escolamento persiste
CDNA
• Concurrent, Direct Network Access
• Hipervisor atribui um conjunto de filas a cada máquina virtual
• Cada conjunto de filas é tratado como uma interface de rede
• Domínio de driver
• Funções de controle
• Outros dispositivos de I/O
• Eliminação da sobrecarga de comunicação entre máquinas virtuais e
domínio de driver
• Interface gera vetor de bits para interrupções
• Hipervisor checa vetor de bits e encaminha interrupções
• Redução do tempo de resposta
CDNA
CDNA
• Redução do problema de escalonamento
• O domínio de driver não precisa ser escalonado
• Entretanto, escalonamento entre múltiplas VM permanece
• Proteção de memória mais complexa
• Máquinas virtuais podem direcionar a interface de rede a posições
arbitrárias da memória
• Particularmente problemático em x86
• Exigências para o hipervisor
• Todos os buffers devem ser validados antes de serem entregues à
interface de rede
• Garantir que a propriedade dos buffers enfileirados na interface de
rede não seja alterada
CDNA
• Proteção pode ser simplificada por IOMMU
• Hipervisor cria tabelas de páginas de I/O para cada máquina virtual
• Mapeamentos para as páginas para as quais a máquina virtual pode
realizar operações de I/O
• Hipervisor atualiza tabelas sempre que propriedade de memória é
alterada
• IOMMU verifica tabela de páginas de I/O para cada transferência de
rede
• IOMMU precisa saber que máquina virtual é responsável pelo acesso
à memória realizado pela interface de rede
• PCIs atuais não fornecem modos de realizar consulta
• Espera-se que especificação de virtualização de I/O PCI resolva
esse problema
CDNA - Desempenho
Rede vs. disco
• Virtualização de rede mais complexo
• Tráfego de rede pode ser não solicitado
• Mini discos virtuais
• IBM System/360
• DASD – Direct access storage device
• IBM System/360 e IBM System/370
• Channel program
• Acesso síncrono
• Múltiplos programas em paralelo
• Somente 1 canal ativo por vez
• Técnicas de virtualização de disco impróprias para rede
• Interfaces de rede não podem ser particionadas
• Acesso assíncrono
Conclusão
• Virtualização de rede atual com degradação significativa de
desempenho
• CDNA como método promissor
Download

Apresentação do Rafael