Departamento de Eletrônica – Escola Politécnica Programa de Engenharia Elétrica – COPPE Black-box and Gray-box Strategies for Virtual Machine Migration Rafael dos Santos Alves http://www.gta.ufrj.br Informações • Autores • Timothy Wood • Prashant Shenoy • Arun Venkataramani • Mazin Yousif • Publicação • 4th Symposium on Networked Systems Design and Implementation (NSDI) – 2007. Motivação • Data centers • Hospedagem de sites web • Sistemas empresariais • E-commerce • Múltiplas aplicações por servidor • Alocação de recursos para atender SLAs • Popularização da virtualização Data centers • Flutuação dinâmica da carga de trabalho • Crescimento incremental • Dependência do momento no dia • Flash crowds Virtualização em data centers • • • • Redução da complexidade de gerenciamento Isolamento entre aplicações Consolidação de servidores Habilidade de remapeamento de servidores virtuais • Tratamento de carga dinâmica • Detecção de hotspots e início de migração realizados manualmente Objetivo da proposta • Automação • Monitoramento dos recursos do sistema (CPU, memória, rede) • Detecção de hotspot • Determinação do novo mapeamento de máquinas virtuais • Duas técnicas • Caixa preta • Caixa cinza Sandpiper • Sistema para migração automatizada de servidores virtuais • Premissas – Cluster de servidores heterogêneos – Recursos das máquinas físicas conhecidos – Cada PM (Physical Machine) executa um monitor de máquina virtual – Cada VM (Virtual Machine) executa uma aplicação ou um componente de uma aplicação – Armazenamento num sistema de arquivos em rede – Existência de um mecanismo de migração • Implementado no Xen Sandpiper - arquitetura Sandpiper - arquitetura • Nucleus – Responsável por coleta de estatísticas de uso de recursos em um servidor físico • Monitoring engine – Coleta de estatísticas de CPU, interface de rede e swap de memória em cada servidor virtual • Daemons nas máquinas virtuais – No caso de abordagem caixa cinza – Coleta de estatísticas em nível de SO e possivelmente de aplicação • Plano de controle – Executado num servidor separado Sandpiper – plano de controle • Responsável pela inteligência do sistema • Recebe informações periódicas de cada nucleus • Componentes – Profile engine • Construção de perfis de utilização de recursos de máquinas físicas e virtuais – Hotspot detector • Análise dos perfis em busca de utilização agregada de algum recurso por um período suficientemente grande – Migration manager • Escolha das máquinas virtuais a serem migradas, para onde movê-las e quanto recurso alocar a cada máquina virtual Monitoramento – caixa preta • CPU – XenMon • Análise da utilização da CPU no domínio 0 – Entretanto, sobrecarga provocada por processamento de requisições de I/O de disco e de rede não são capturadas – À carga de cada VM é adicionado um fator equivalente ao montante de operações de I/O realizadas • Rede – Monitoramento interface /proc/net/dev Monitoramento – caixa preta • Memória – Desafio • Hipervisor só conhece a alocação total de memória da VM – Solução possível • Monitoramento com tabelas de páginas sombra • Alta sobrecarga – Solução • Inferência • Baseada na atividade de swap Monitoramento – caixa cinza • Daemon instalado no sistema hóspede • Monitoramento da interface /proc da VM – Estatísticas em nível de SO de utilização de memória, CPU e rede • Daemon de aplicação – Possível em alguns casos – Estatísticas a partir de logs de aplicação – Possibilidade de detecção explícita de violações de SLA Geração de perfis • Perfil – Descrição compacta da utilização dos recursos de um servidor num janela de tempo W – Distribuição e série temporal • Caixa preta – 3 perfis por servidor • Caixa cinza – 4 perfis adicionais • Utilização de memória, tempo de serviço, taxa de drop de requisições, taxa de chegada de requisições Geração de perfis • Distribuição – Distribuição de probabilidade da utilização do recurso na janela W • Ex.: histograma normalizado – Captura variações da utilização de recursos – Utilizado pelo migration manager para estimar picos de utilização de recursos • Série temporal – Lista de todas as observações reportadas numa janela de tempo W – Captura correlação temporal da utilização de um recurso – Utilizado pelo hotspot detector para observar tendências de utilização Geração de perfil Detecção de Hotspots • Implícita • Por servidor físico • CPU, rede ou swap de memória excedem limiar • Explícita • Por servidor virtual • Utilização de memória, taxa de pacotes descartados ou tempo de resposta excede limiar • Hotspot sinalizado se • k observações acima do limiar nas últimas n observações • Previsão de hostpot na próxima iteração Detecção de Hotspots • Predição • Utiliza séries temporais Provisão de recursos – black box • Descoberta dos recursos necessários para as VMs sobrecarregadas • CPU e rede • Pico de utilização para cada VM sobrecarregada • Perfil de distribuição • Percentil 95, por exemplo • Escalonador do Xen é work-conserving • Entretanto, se todas as VMs sobrecarregadas distribuição não fornece bons resultados • Subestimativa da necessidade de CPU Provisão de recursos – black box • Exemplos • 2 VMs • VM1 utilza 70% e VM2 20% • Perfil de distribuição infere corretamente necessidade de CPU • 2 VMs • VM2 utiliza 50% e VM1 precisa de 70% • Xen aloca 50% para cada VM • Perfil infere necessidade subestimada • Quando CPU (ou rede) é totalmente utilizada Sandpiper adiciona um valor ∆ à estimativa Provisão de recursos – black box • Memória • Utilização de memória não acessível no domínio 0 • Utilização inferida a partir da frequência de swap • Adição de um fator ∆m à alocação de memória da máquina virtual Provisão de recursos – gray box • Estimativa do pico de taxa de chegada requisições (λpeak) • A partir do perfil de distribuição • CPU • Aplicação modelada como uma fila G/G/1 λcap: taxa de chegada requerida, d: tempo médio de resposta, s: tempo médio de serviço das requisições, σa: desvio-padrão do tempo entre chegadas de requisições, σb: desvio-padrão do tempo de serviço Provisão de recursos – gray box • d – fornecido pelo SLA • λcap capacidade atual da máquina virtual • λpeak/ λcap fator de escala da necessidade de CPU Provisão de recursos – gray box • Rede • Produto entre λpeak e tamanho médio do arquivo requerido (b) • Montante de dados transferido na rede no período de pico Migração de hotspots • Determinação de novo mapeamento entre máquinas virtuais e servidores físicos evitando violações de limiares • NP-hard • Solução: utilização de heurística com redução da sobrecarga de migração • Migração de carga do servidor mais carregados para os menos carregados • Capturando cargas multidimensionais Migração de hotspots • Fase de migração • PMs ordenados - volume • VMs ordenados - VSR (volume-to-size ratio) • Migração do máximo volume por unidade movida • Minimização da sobrecarga • VM com maior VSR do PM com maior volume • É possível alocação no PM com menor volume? • Em caso negativo tentar PM com 2º maior volume • Se nenhum PM pode abrigar VM com maior VSR então segundo VSR é selecionado • Em seguida, PM com segundo maior volume Migração de hotspots • Fase de troca • Utilizada se não existem recursos para reduzir carga de servidores e eliminar hotspots • Troca de uma VM com VSR alto com VMs com VSRs baixos de outros PMs com baixa carga • Possível se dois PMs podem abrigar as VMs candidatas do outro sem exceder limiares • Pode requerer um terceiro servidor de rascunho Implementação e avaliação • Plano de controle • Daemon executado no nó de controle • Profile engine • 200 medidas • Hotspot detector • k = 3, n = 5, limiar = 75% • 750 linhas de código python Implementação e avaliação • Nucleus • Xen’s Python management API • I = 10 segundos • Daemons – caixa cinza • Informações a partir da interface /proc • Apache • Analisador de log e dispatcher em tempo real • 650 linhas de código python Efetividade de migração • Scripts PHP intensivos em CPU • Tráfego gerado com httperf • Três fases causando hotspots em diferentes máquinas físicas Efetividade de migração Troca de VMs • • • • VM1 e VM2: 384 MB de RAM VM3 e VM4: 256 MB de RAM Carga de VM1 incrementada de forma gradual Memória do nó de controle utilizada como rascunho Cargas em múltiplos recursos • • • • 2 PMs com 2 VMs cada Cada PM com Cada VM com 256 MB de RAM VMs em PM1 – Intensivo em rede – Transferência de arquvivos grandes • VMs em PM2 – Intensivo em CPU – Apache com scripts PHP dinâmicos – VM2 executa um banco de dados • Crescimento da utilização de memória no tempo • ∆m = 32 MB Cargas em múltiplos recursos Cargas em múltiplos recursos Gray v. Black – memória • • • • • • SPECjbb 2005 1 VM com 256 MB de RAM PM com 384 MB de RAM PM adicional com 1 GB de RAM Carga incrementada a cada 2 minutos Cinza – Hotspot sinalizado sempre que RAM livre menor que 32 MB Gray v. Black – memória 756 706 RAM (MB) 656 606 556 506 456 406 Black-box Gray-box 356 306 256 0 200 400 600 800 Time (sec) 1000 1200 1400 Gray v. Black – Apache • 3 PMs e 4 VMs – VM1, VM2 e VM3 em PM1, e VM4 em PM2 • httperf • Em t=80s taxa de requisição incrementada rapidamente em VM1 e VM2 – Necessidade de CPU alcança 70% • VM3 e VM4 requerem constantemente 33 e 7% de CPU • I = 6s Gray v. Black – Apache Gray v. Black – Apache Gray v. Black – data center • 16 PMs e 35 VMs • Aplicações – – – – – 5 VMs com LAMP com RUBis 5 VMs com Apache 5 VMs servidores de streaming 2 VMs com banco de dados 15 VMs com scripts PHP e arquivos html grandes • cargas gerados – – – – 14 VMs com hotspots 4 PMs com hotspots de CPU e 2 com hotspots de rede 4 PMs com 45% de utilização de pelo menos um recurso 6 PMs entre 25 e 40% de utilização de recusos Gray v. Black – data center 12 180 Static Sandpiper Static Sandpiper 160 140 Time (intervals) # of Hotspots 10 8 120 100 6 4 2 80 60 40 20 0 1 11 21 31 Time 41 51 0 Overloaded Sustained Sobrecarga e escalabilidade • Nucleus – rede – CPU • 1% de sobrecarga – Apache • negligenciável Sobrecarga e escalabilidade • Plano de controle Estabilidade • Simulação – 50 PMs com 3 VMs cada – Número de hotspots simultâneos entre 20 e 45 – Utilização média • 85% e 45% 0.45 Utilization 0.4 0.35 0.3 0.25 0.2 0.15 PM1 PM2 0.1 0.05 0 0 50 100 150 200 Time (sec) 250 300 Conclusão • Virtualizção possibilita migração de máquinas virtuais • Sandpiper – Automação das tarefas ligadas à migração • Caixa cinza vs. caixa preta