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