Avaliação do Desempenho
da Migração de Máquinas Virtuais em Xen
Guilherme Piegas Koslovski , Márcio Parise Boufleur , Andrea Schwertner Charão
1
Laboratório de Sistemas de Computação (LSC)
Curso de Ciência da Computação – Universidade Federal de Santa Maria (UFSM)
Campus UFSM – 97105-900 – Santa Maria – RS – Brasil
{guilherm, boufleur, andrea}@inf.ufsm.br
Resumo. No contexto do gerenciamento de sistemas computacionais, ferramentas de virtualização são vantajosas pois possibilitam executar múltiplos
sistemas operacionais em um mesmo computador hospedeiro, permitindo satisfazer diferentes necessidades de usuários e aplicações. Além disso, a independência de hardware obtida com a virtualização permite que uma máquina
virtual em execução migre entre computadores, sem interromper os processos
em execução. A fim de explorar avanços recentes nesta área, este trabalho
apresenta uma avaliação do mecanismo de migração do monitor de máquinas
virtuais Xen. Para isso, analisou-se seu desempenho em diferentes casos tı́picos
de sistemas em rede, buscando reproduzir, em outra plataforma de software e
hardware, os resultados divulgados pelos desenvolvedores da ferramenta. Nossos resultados confirmam a eficiência do mecanismo de migração de máquinas
virtuais de Xen, oferecendo subsı́dios para administradores de sistemas interessados em explorar esta ferramenta de virtualização.
1. Introdução
A virtualização de recursos computacionais aparece como um tema recorrente em diversas
áreas da computação. No contexto do gerenciamento de sistemas, a abstração oferecida
pela utilização de máquinas virtuais permite que diversos sistemas operacionais executem
sobre uma mesma arquitetura, compartilhando seus recursos de hardware e software de
forma transparente. Em um ambiente virtualizado, as tarefas de gerenciamento, escalonamento e alocação dos recursos disponı́veis são executadas por um Monitor de Máquinas
Virtuais (MMV). Este monitor oferece uma interface individual para cada máquina virtual, permitindo desta forma uma execução transparente e independente de uma arquitetura especı́fica.
Dentre os monitores de máquinas virtuais existentes, o sistema Xen
[Barham et al. 2003] destaca-se por permitir a migração de máquina virtual entre computadores, sem a necessidade de interromper seus sistemas e processos em execução. A
migração de máquinas virtuais é uma ferramenta vantajosa para administradores de sistemas, permitindo por exemplo a transferência de servidores de um computador para outro,
para fins de manutenção ou distribuição de carga.
O mecanismo de migração foi incorporado a Xen recentemente [Clark et al. 2005]
e, portanto, existem poucos resultados experimentais sobre o desempenho de tal recurso.
Desta forma, este trabalho tem por objetivo contribuir para a avaliação do desempenho da
migração de máquinas virtuais em Xen, analisando aspectos relevantes como tempo total
de migração e tempo de indisponibilidade dos serviços em execução sobre uma máquina
virtual migrante. Em particular, buscou-se reproduzir os resultados publicados pelos autores do mecanismo de migração [Clark et al. 2005], utilizando-se outra plataforma de
hardware e software. Esta abordagem de repetição de experimentos foi utilizada em outro trabalho de avaliação de Xen [Clark et al. 2004] e justifica-se como uma importante
forma de transferência de tecnologia e de ampliação de resultados experimentais.
Este artigo está organizado da seguinte forma: na seção 2 descreve-se o funcionamento e as principais caracterı́sticas de um monitor de máquinas virtuais, enquanto na
seção 3 apresenta-se o mecanismo de migração de máquinas virtuais em Xen. A principal
contribuição deste artigo encontra-se na seção 4, onde apresenta-se a metodologia e os
resultados da avaliação de desempenho realizada sobre a migração das máquinas virtuais
em Xen. Na seção 5 apresenta-se as considerações finais sobre o trabalho desenvolvido.
2. Monitores de máquinas virtuais
A virtualização de recursos computacionais é um conceito que foi bastante difundido
no inı́cio da década de 70 [Goldberg 1974], permitindo o compartilhamento e melhor
aproveitamento do poder computacional dos mainframes existentes. Atualmente, fatores
como aumento de desempenho dos computadores e utilização de ambientes interligados
impulsionaram novamente a utilização de ambientes virtualizados.
Virtualizar um recurso significa oferecer uma camada entre os programas e os
recursos virtualizados, permitindo que cada programa acesse de forma individual a arquitetura existente, sem a necessidade do conhecimento dos demais processos em execução.
A tarefa de gerenciar estas máquinas virtuais é feita por um sistema MMV, responsável
pelo escalonamento e alocação dos recursos.
Um MMV oferece, aos sistemas em execução sobre suas máquinas virtuais,
um ambiente eficiente e semelhante à arquitetura original do computador, permitindo a
execução normal do software virtualizado. A eficiência de um monitor é medida de acordo
com a intrusividade necessária para interceptar e manipular as instruções virtualizadas.
Os monitores de máquinas virtuais podem ser classificados de acordo com
a sua implementação, sendo divididos em monitores de virtualização hospedada ou
virtualização clássica [Smith and Nair 2005]. Na primeira implementação, o monitor
é instalado sobre um sistema operacional hospedeiro, e suas máquinas virtuais são
executadas sobre essa camada de software oferecida. Um exemplo desse modelo de
implementação é utilizado pelo sistema VMware [Sugerman et al. 2001], que permite
a virtualização e execução de sistemas operacionais através da utilização de tradução
binária em tempo de execução.
Na implementação de virtualização clássica, o monitor de máquinas virtuais é instalado diretamente sobre o hardware, permitindo que a execução do monitor ocorra com
o nı́vel mais alto de privilégio. Desta forma todas as interrupções e chamadas de sistema
solicitadas pelos sistemas operacionais virtualizados devem ser interceptadas e manipuladas pelo monitor. Este modelo de implementação apresenta uma limitação perante aos
computadores atuais que utilizam arquiteturas semelhantes à Intel IA-32, onde um sistema operacional, embora virtualizado, ainda consegue executar instruções em um nı́vel
de maior privilégio.
Xen [Barham et al. 2003] é um monitor de máquinas virtuais implementado com
virtualização clássica e que utiliza a técnica de paravirtualização para contornar o problema arquitetural e oferecer a virtualização de recursos em arquiteturas da famı́lia Intel
x86. Utilizando paravirtualização, a interface virtual apresentada para o sistema operacional difere em alguns pontos da interface real do computador, sendo necessária a adaptação
de parte do sistema operacional virtualizado. Um exemplo de adaptação é a alteração do
nı́vel de privilégio de execução, já que o sistema operacional virtualizado não executará
mais nenhuma comunicação direta com o hardware.
Utilizando a técnica de paravirtualização, o monitor Xen consegue efetuar uma
virtualização completa, não necessitando a alteração dos programas em execução sobre o
sistema operacional virtualizado.
3. Migração em Xen
A virtualização oferecida pelo monitor Xen resulta em uma máquina virtual independente
do hardware existente, que pode ser encapsulada e migrada entre computadores interligados em rede. Assim, a migração em Xen permite migrar uma instância completa de um
sistema operacional em execução, incluindo todos os seus processos internos. Esta abordagem de migração é uma ferramenta útil na administração de sistemas formados por
vários computadores potencialmente heterogêneos. Em particular, este recurso permite
lidar facilmente com falhas e interrupções para manutenção do sistema, pois serviços
crı́ticos podem ser dinamicamente migrados de um servidor para outro. Além disso, a
migração pode auxiliar na distribuição dinâmica de carga entre computadores, permitindo
um melhor aproveitamento dos recursos computacionais disponı́veis.
Durante o processo de migração de um sistema operacional é necessário que o
monitor de máquinas virtuais em execução no computador de destino ofereça no mı́nimo
o mesmo conjunto de recursos oferecidos no computador de origem. As seções seguintes
descrevem os pontos crı́ticos que influenciam no resultado deste processo, descrevendo
as soluções adotadas pelo mecanismo de migração implementado em Xen.
3.1. Migração de arquivos e conexões de rede
A implementação atual de Xen não utiliza nenhum método de migração de sistemas de
arquivos, supondo que os sistemas operacionais virtualizados empreguem um sistema de
compartilhamento de arquivos e diretórios, tal como NFS (Network File System). Esta
solução permite que os sistemas operacionais utilizem um sistema de arquivos remoto,
que conseqüentemente não será migrado junto com a máquina virtual.
Durante a migração, as conexões de rede do sistema operacional devem permanecer ativas, sem a interrupção dos serviços disponibilizados. Para migrar o sistema operacional e manter o mesmo endereço de rede de suas interfaces virtuais a implementação
do monitor Xen optou por enviar um ARP reply [Plummer 1982] informando que o
endereço IP correspondente foi movido para uma nova localização. Neste modelo de
implementação, não é necessário a execução de nenhuma etapa de redirecionamento de
pacotes, diminuindo a dependência residual entre a máquina virtual migrada e o computador de destino.
3.2. Migração da memória principal
A transferência dos dados localizados na memória principal é uma etapa importante no
processo de migração, pois permite que o sistema operacional migrado mantenha ativo
todos os seus processos, sem a necessidade de reinı́cio após a migração.
Fatores como tempo total de migração e tempo de indisponibilidade do serviço
devem ser considerados pelo monitor de máquinas virtuais na escolha da forma de
implementação. Em uma migração efetuada unicamente por demanda, onde os dados
são transferidos de acordo com a sua utilização, o tempo total de migração resultante é
muito alto, interferindo diretamente no desempenho dos serviços. Já a migração através
de uma etapa única de stop-and-copy, onde a execução da máquina virtual é interrompida
enquanto os dados são transferidos, resulta em um tempo de indisponibilidade elevado.
Buscando efetuar uma migração eficiente, Xen implementa o processo de live migration [Clark et al. 2005], onde uma máquina virtual é migrada em iterações e combina
os dois modelos de implementação citados. Na fase inicial de pré-cópia é utilizada a
reserva de largura de banda, para permitir que os serviços oferecidos pelo sistema operacional continuem em execução. Nas fases seguintes, a transferência dos dados é realizada
por demanda, onde somente os dados alterados durante o perı́odo da última iteração são
transferidos.
Durante as iterações, o algoritmo de live migration busca identificar uma condição
onde a suspensão da máquina virtual e a ativação no computador de destino resulte em
um tempo de indisponibilidade mı́nimo. Caso não seja possı́vel identificar uma condição
satisfatória para a migração e o número de iterações ocorridas seja alto, a execução da
máquina virtual é suspensa para que a migração seja concluı́da, evitando que o tempo
total de migração resultante seja elevado.
3.3. Etapas do processo de live migration
O monitor Xen optou por implementar o processo de live migration em etapas para permitir a execução de uma migração segura que possua um mı́nimo de tolerância a falhas.
De acordo com as decisões de implementação referentes à migração dos recursos locais e
memória principal, a migração em um ambiente virtualizado com o monitor Xen ocorre
em cinco etapas principais.
As duas etapas iniciais do processo consistem em uma comunicação entre os computadores de origem e destino, onde ocorre uma verificação e reserva de recursos. Em um
primeiro momento, o monitor em execução no computador de origem verifica se os recursos utilizados pela máquina virtual estão disponı́veis no computador de destino para
posteriormente efetuar a solicitação da reserva de uma máquina virtual no computador de
destino com o mesmo conjunto de recursos necessários.
Na terceira etapa, o processo de transferência dos dados alocados na memória
principal é inicializado, ocorrendo através de iterações. Na primeira iteração a memória
utilizada pela máquina virtual no computador de origem é totalmente transferida, sem
interromper a execução do sistema operacional. Nas iterações posteriores, apenas o conjunto alterado de dados é transferido.
Nas duas etapas finais ocorre a conclusão da migração e ativação da máquina
virtual no computador de destino. O recebimento da imagem do sistema operacional é
confirmado, ocasionando a suspensão da execução no computador de origem e o inı́cio
da execução na nova máquina virtual. Por fim, o ARP reply é enviado informando que o
endereço IP foi movido.
A migração do sistema operacional efetuada pelo mecanismo de live migration
oferece um mı́nimo de tolerância a falhas pois em todas as etapas existe no mı́nimo uma
imagem completa do sistema operacional. Caso a execução de alguma etapa seja abortada,
os dados já transferidos são descartados a execução normal da máquina virtual original é
retomada.
4. Avaliação de desempenho
Os testes apresentados nesta seção tiveram como objetivo avaliar o desempenho da
migração dos sistemas operacionais em um ambiente virtualizado utilizando o monitor
Xen. Nesta avaliação, as principais métricas consideradas foram o tempo de indisponibilidade de um serviço, o tempo de resposta de um servidor virtualizado e tempo total
de migração. Todas estas métricas influenciam diretamente na qualidade dos serviços em
execução.
No artigo que originalmente apresenta o mecanismo de migração em
Xen [Clark et al. 2005], estas métricas foram obtidas em uma plataforma de
experimentação composta por duas máquinas servidoras Dell PE-2650 interligadas por
uma rede Gigabit Ethernet. Cada máquina possuı́a dois processadores Xeon a 2 GHz e
2 GB de memória principal. No presente trabalho, buscou-se verificar se resultados compatı́veis poderiam ser obtidos em uma plataforma de hardware com configurações mais
modestas.
Desta forma, foi criado um ambiente de experimentação utilizando cinco estações
Compaq Pentium 4, com memória de 512MB, cache de 512KB, utilizando o sistema operacional Ubuntu Linux versão 5.10. Das cinco estações, três foram usadas para hospedar
as máquinas virtuais, uma como servidor de arquivos NFS e outra utilizada para métricas
externas, quando necessário. Para interligar os computadores, utilizou-se uma rede FastEthernet a 100Mb/s.
Neste ambiente de experimentação realizou-se uma seqüência de experimentos visando avaliar aspectos crı́ticos na migração de máquinas virtuais. Primeiramente, efetuouse uma avaliação sobre a taxa de transferência de um arquivo entre uma máquina virtual e
o servidor de arquivos. Em seguida, analisou-se o tempo de migração de um servidor Web
sobrecarregado. Também avaliou-se a migração de um servidor de jogos, que constitui
um caso em que a baixa latência e o tempo de indisponibilidade são aspectos importantes.
4.1. Taxa de transferência de um arquivo
Na figura 1, apresenta-se a taxa de transferência de um arquivo de 512MB sendo transferido de uma máquina virtual enquanto a mesma é migrada para outro hospedeiro. Um
processo servidor aceitava requisições em uma porta na máquina virtual, enquanto um
processo cliente executando em outra estação requisitava um arquivo e anotava a quantidade de dados transferidos, bem como o intervalo de tempo, durante a transação.
A curva possui formato semelhante àquela obtida pelos autores do mecanismo de
migração de Xen [Clark et al. 2005]. Em nosso experimento, no entanto, observamos um
tempo de negação de resposta um pouco maior, devido ao fato de utilizarmos uma rede a
100Mb/s.
Figura 1. Taxa de transferência de um arquivo de 512MB
A taxa de transferência se mantém constante até o inı́cio da migração, que se dá
no vigésimo segundo, onde ocorre uma queda na taxa, devido à reserva de banda utilizada
pelo mecanismo de live migration para efetuar a migração. Do quinquagésimo segundo
ao quinquagésimo sétimo segundo, podemos perceber uma queda brusca na taxa de transferência, revelando-se o tempo de parada da máquina virtual e realocação da mesma no
hospedeiro de destino.
4.2. Migração de um servidor Web
Este cenário de teste representa a migração de um servidor de páginas Web em execução
sobre um sistema operacional virtualizado. O benchmark http load [Laboratories ] foi
utilizado para simular a conexão de 700 usuários em um servidor executando Apache Web
Server 2.0.
A execução de um servidor Web exige um grande número de acessos a memória
em um reduzido intervalo de tempo, além de uma quantidade considerável de requisições
através da rede. Estes fatores influenciam diretamente no tempo de migração de uma
máquina virtual.
A figura 2 apresenta as vinte e oito iterações necessárias para concluir a migração
do servidor, apresentando a taxa de transferência (em verde) e a taxa em que os dados são
alterados na memória principal (em azul) ao longo de cada iteração. Na iteração inicial é
transferido um volume grande de informações, representando a fase de pré-cópia utilizada
pelo live migration. Durante este processo é possı́vel observar a interferência da reserva
de banda sobre o desempenho final do servidor de páginas.
Após o estágio inicial da migração, o tempo de cada iteração diminui, para auxiliar
na identificação do conjunto mı́nimo de dados alterados durante o tempo decorrido. A
identificação do conjunto mı́nimo de dados é um importante fator para o mecanismo de
live migration, já que o tempo total de indisponibilidade é diretamente proporcional ao
tempo necessário para transferir esse volume de dados.
Embora o algoritmo de migração utilize várias iterações para buscar este conjunto
mı́nimo, o número de acessos a memória permaneceu alto, chegando a um momento em
que a suspensão do serviço e a conclusão da migração é apropriada, considerando o tempo
total de migração como um fator determinante.
Figura 2. Migração de um servidor Web
4.3. Migração de um servidor de baixa latência
A avaliação da latência durante a migração de uma máquina virtual é importante nos casos
em que uma demora no tempo de resposta pode comprometer a computação final. Para
avaliarmos o comportamento da latência em uma máquina virtual, utilizamos um servidor
de jogos Quake 2.
Nesta avaliação, utilizou-se uma máquina virtual com 128MB de memória servindo 3 jogadores simultâneos. Foram utilizados pacotes de 64KB a uma taxa de amostragem de 1 pacote por 100ms.
Figura 3. Tempo de resposta do servidor
Conforme a figura 3, a realocação da máquina virtual se inicia no décimo segundo,
ocasionando uma pequena queda no tempo de resposta dos pacotes. O tempo de resposta
aumenta nos 15 segundos seguintes, devido à reserva de banda. No vigésimo terceiro
segundo, há uma nova queda na taxa de transferência, referente à parada da máquina no
servidor de origem e a seguinte inicialização no servidor de destino.
Ao final da avaliação, não verificou-se a perda de nenhum pacote e do ponto de
vista dos jogadores, não foi percebida alteração nenhuma na jogabilidade.
5. Conclusão
Este trabalho investigou algumas métricas relevantes referentes à migração de sistemas
operacionais em execução sobre um ambiente virtualizado. Com o conjunto de testes
realizados, pôde-se confirmar que a sobrecarga imposta para efetuar a migração e manter
os serviços ativos é baixa, mesmo em uma plataforma com recursos modestos. De fato,
métricas como a reserva de banda e o tempo necessário para desativação da máquina
virtual e ativação no computador de destino mostraram não comprometer o desempenho
final dos serviços, o que torna viável a adoção do mecanismo de migração de Xen na
plataforma considerada.
Desta forma, confirma-se a utilização de migração de máquinas virtuais em ambientes virtualizados como uma importante ferramenta para administradores de sistemas,
auxiliando na manutenção e distribuição de carga entre os computadores do ambiente.
Referências
Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt,
I., and Warfield, A. (2003). Xen and the art of virtualization. In Proc. 19th ACM Symposium on Operating Systems Principles (SOSP ’03), pages 164–177, Bolton Landing,
USA. ACM.
Clark, B., Deshane, T., Dow, E., Evanchik, S., Finlayson, M., Herne, J., and Matthews,
J. N. (2004). Xen and the art of repeated research. In USENIX Annual Technical
Conference, FREENIX Track, pages 135–144. USENIX.
Clark, C., Fraser, K., Hand, S., Hansen, J. G., Jul, E., Limpach, C., Pratt, I., and Warfield,
A. (2005). Live migration of virtual machines. In Proc. 2nd Symposium on Networked
Systems Design and Implementation (NSDI ’05), Boston, USA. Usenix.
Goldberg, R. (1974). Survey of virtual machine research. IEEE Computer, 7(6):34–45.
Laboratories, A. http load - multiprocessing http test client.
Plummer, D. C. (1982). Ethernet Address Resolution Protocol: Or converting network
protocol addresses to 48 bit Ethernet address for transmission on Ethernet hardware.
RFC 826 (Standard).
Smith, J. E. and Nair, R. (2005). The architecture of virtual machines. IEEE Computer,
38(5):32–38.
Sugerman, J., Venkitachalam, G., and Lim, B.-H. (2001). Virtualizing I/O devices on
VMware workstation’s hosted virtual machine monitor. In Proc. 2001 Usenix Annual
Technical Conference, pages 1–14. Usenix Assoc.
Download

Avaliaç ˜ao do Desempenho da Migraç ˜ao de Máquinas Virtuais em