Departamento de Eletrônica – Escola Politécnica Programa de Engenharia Elétrica – COPPE Live Migration of Virtual Machines Rafael dos Santos Alves http://www.gta.ufrj.br Informações • Autores • Christopher Clark • Keir Fraser • Steven Hand • Jacob Gorm Hansen • Eric Jul • Christian Limpach • Ian Pratt • Andrew Warfield • Publicação • Second Symposium on Networked Systems Design and Implementation (NSDI'05) Motivação • Balanceamento de carga • Manutenção do sistema • Separação entre hardware e software • Vantagens em utilizar máquinas virtuais • Evita dependências residuais • Permite transferência de estado na memória de forma consistente • Permite separação de preocupações entre operadores e usuários Objetivos • Minimizar tempo “fora do ar” • Tempo total de migração • Manter sem interrupções serviços ativos Abordagens Prévias • Collective • Mobilidade para usuários que utilizam diferentes hosts • Conexões lentas • Interrupção do sistema operacional • VMware • Migração de processo • Dependência residual Questões de projeto • Memória transferida • Minimizar tempo “fora do ar” e tempo total de migração • Recursos locais • Memória • Disco • Interfaces de rede • ... Memória transferida • Três fases de transferência • Push • Máquina fonte continua executando • Páginas são transferidas e em caso de modifcação retransferidas • Stop-and-copy • Simples • Tempo “fora do ar” inaceitável • Pull • Nova máquina executa • Páginas faltantes são puxadas pela rede Abordagem utilizada • Uma fase push iterativa e limitada • n rodadas • Páginas modificas na rodada i-1 transferidas na rodada i • Uma pequena fase stop-and-copy • Pequeno conjunto de páginas frequentemente modificadas Recursos locais • Recursos de rede • Manter conexões abertas • Respostas ARP não solicitadas • Armazenamento local • Assume NAS (Network Attached Storage) Visão geral Writable Working Sets (WWS) • Maior influência no desempenho • Sobrecarga de transferência de memória • Conjunto de páginas frequentemente alteradas • Devem ser transferidas via stop-and-copy Medição do WWS Medição do WWS (2) Medição do WWS (3) Medição do WWS (4) Medição do WWS (5) Questões de implementação • • • • Migração gerenciada vs. Automigração Limitação dinâmica de taxa Alteração frequente das páginas Otimizações para paravirtualização • Interrupção de processos “trapaceiros” • Liberação páginas Migração gerenciada • Daemons na VM de gerenciamento • Dirty bitmap • Páginas sombra • Tabelas de páginas marcadas como somente leitura • Tentativas de modificação interceptadas pelo Xen • Reiniciadas ao final de cada iteração Automigração • Realizado pelo SO sendo migrado • Dificuldade em definir um checkpoint • Solução: stop-and-copy de dois estágios • Interrupção dos processos (exceto os de migração) • Páginas alteradas são enviadas para o dirty bitmap • Transferência das páginas alteradas no primeiro estágio Limitação dinâmica de taxa • Altas taxas de transferência • Impacto nos serviços • Adaptação da largura de banda • 1ª fase de pré-cópia com menor banda possível • Para cada fase seguinte cálculo da taxa de alteração de páginas • Banda para próxima rodada igual a taxa de alteração mais uma constante (50 Mb/s) • Fase stop-and-copy com banda máxima Alteração frequente das páginas • Algumas páginas com alta frequência de alteração • Páginas modificadas na última rodada não são transferidas na rodada atual • Alteração de páginas em aglomerados • Varredura da memória física em ordem pseudoaleatória Otimizações para parvitualização • Interrupção de processos “trapaceiros” • Alteram a memória mais rápido do que o processo de pré-cópia • Thread de monitoramento • Processos com mais de 40 faltas de páginas movidos para o modo suspenso • Não deve interromper serviços importantes Interrupção de processos Otimizações para parvitualização • Liberação de páginas • SO típicos possuem páginas livres • Não precisam ser copiadas • Caso sejam necessárias • Faltas de páginas • Transferidas do disco • Aumento do custo Avaliação • 2 servidores Dell PE-2650 • Dual Xeon 2 GHz • Somente 1 CPU utilizada • HyperThreading habilitado • 2 GB de memória RAM • Interface de rede Broadcom TG3 • Comutador Gigabit Ethernet • Servidor NAS NetApp F840 • XenLinux 2.4.27 Servidor web simples • Apache 1.3 • Memória alocada de 800 MB Servidor web complexo • SPECweb99 • 30% geração de conteúdo dinâmico • 16% operação HTTP POST • 0,5% de scripts CGI • Geração de logs • QoS • Banda agregada de 320 kb/s Servidor web complexo (2) Servidor de baixa latência • Quake 3 • Memória alocada de 64 MB • Seis jogadores Servidor de baixa latência (2) Servidor de baixa latência (3) Carga “diabólica” • Mmuncher • Escrita em memória mais rápida que a transferência pela rede • Memória alocada de 512 MB • Programa em C escreve em área de 256 MB Carga “diabólica” 3,5 segundos de downtime Trabalhos Futuros • Gerenciamento em clusters • Redirecionamento em WANs • Migração de blocos de disco