Network Virtualization: Breaking the Performance Barrier
description
Transcript of Network Virtualization: Breaking the Performance Barrier
Network Virtualization:Breaking the Performance
Barrier
Departamento de Eletrônica – Escola PolitécnicaPrograma de Engenharia Elétrica – COPPE
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çãode 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çãode rede no Xen
Software para virtualizaçãode 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 demú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 demú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