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
Download

Apresentação do Rafael