Upload
internet
View
106
Download
0
Embed Size (px)
Citation preview
Black-box and Gray-box Strategies for Virtual Machine
Migration
Departamento de Eletrônica – Escola PolitécnicaPrograma de Engenharia Elétrica – COPPE
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
256
306
356
406
456
506
556
606
656
706
756
0 200 400 600 800 1000 1200 1400
Time (sec)
RA
M (
MB
)
Black-box
Gray-box
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
0
2
4
6
8
10
12
1 11 21 31 41 51
Time
# o
f H
ots
po
ts
Static
Sandpiper
0
20
40
60
80
100
120
140
160
180
Overloaded Sustained
Tim
e (i
nte
rval
s)
Static
Sandpiper
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
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0 50 100 150 200 250 300
Time (sec)
Uti
liza
tio
n
PM1
PM2
Conclusão
• Virtualizção possibilita migração de máquinas virtuais
• Sandpiper– Automação das tarefas ligadas à migração
• Caixa cinza vs. caixa preta