O documento descreve a instalação e configuração do hipervisor Xen PVM no Ubuntu 12.04 LTS, incluindo a criação de máquinas virtuais e testes de desempenho com as ferramentas Iperf, Bonnie++ e Sysbench. Os resultados dos testes mostraram que a máquina física teve melhor desempenho em relação à máquina virtual na transmissão de pacotes de rede e cálculo de primos.
1. Hipervisor Xen PVM
Autores: Francisco Renato Cavalcante Araújo
Fernando Pessoa Oliveira de Sousa
Professor: Paulo Antônio Leal Rego
2. Virtualização
Surgiu por volta de 1960 com a IBM;
Técnica que permite instalar um sistema operacional dentro de outro;
Melhor aproveitamento dos recursos da máquina;
Utiliza-se de hipervisores para gerenciar as máquinas virtuais.
3. Tipos de Virtualização
VIRTUALIZAÇÃO TOTAL
Primeiro tipo de virtualização a surgir;
Proporcionava uma abstração completa do hardware;
SO não sabia que era executado em hardware emulado;
Usava tradução binária para comunicação entre máquina virtual e física.
4. Tipos de Virtualização
PARAVIRTUALIZAÇÃO
Kernel do SO convidado é modificado;
SO convidado sabe que está sendo executado sobre hardware simulado;
Combina tradução binária com chamadas de sistema (hyper calls) para comunicação entre as máquinas;
Melhor desempenho;
Acesso parcial ao hardware.
5. Tipos de virtualização
VIRTUALIZAÇÃO A NÍVEL DE SISTEMA OPERACIONAL
Baseia-se em containers ou partições;
SO convidados devem possuir o mesmo kernel do SO da máquina física;
6. Tipos de Virtualização
VIRTUALIZAÇÃO ASSISTIDA POR HARDWARE
Apoiado pelos hardwares atuais que implementam uma nova arquitetura;
Anel -1, onde é instalado o hipervisor;
Máquina virtual executa no anel 0, ao lado do SO hospedeiro;
Acesso direto ao hardware.
7. Hipervisor Xen PVM
O Xen é um framework de virtualização originalmente desenvolvido pela University of Cambridge (UK) e está
mantido pela XenSource, Inc. (parte da Citrix). Ele usa paravirtualização, um método de virtualização que envolve
alto grau de cooperação entre hosts virtualizados e máquinas virtuais (GUTIERREZ, 2014).
8. Vantagens do Hipervisor Xen PVM
Elevado desempenho na execução das maquinas virtuais;
Flexibilidade Recursos de administração de uma máquina virtual em tempo real sem necessidade de reiniciá-la;
Migração em tempo real;
Pode ser instalado em infraestrutura heterogênea, na qual pode haver processadores que não tenham suporte a
virtualização assistida por hardware.
9. Desvantagens do Hipervisor Xen PVM
A paravirtualzação é menos flexível, pois carece de modificações no sistema operacional convidado, para que
este possa trabalhar perfeitamente
10. Trabalhos Relacionados
SCHMIDT, A. H. et al. Análise de Desempenho da Virtualização de Redes nos Sistemas Xen e OpenVZ. p. 1–8,
2007.
AZEVEDO, E. et al. Nuvem pública versus privada: Variações no desempenho de infraestrutura para elasticidade.
p. 110–123, 2012.
11. Instalação Xen PVM no Ubunto 12.04 LTS
Para instalar o hipervisor Xen PVM e suas dependências utilize o comando:
sudo apt-get install xen-hypervisor-4.3-amd64 xen-utils-4.3 xenwatch xen-tools xen-utils-common xenstore-utils
Após isso instale a biblioteca virt com o commando:
sudo apt-get install virtinst virt-viewer virt-manager
12. Instalação Xen PVM no Ubunto 12.04 LTS
Entre no arquivo de configuração do xen, que fica no diretório “/etc/xen/xend-config.sxp”, e configure-o para
que o hipervisor possa usar uma rede bridge descomentando a linha (network-script network-bridge) e ative o
acesso HTTP ao servidor xen descomentando as linhas abaixo:
#(xend-http-server yes)
#(xend-unix-server yes)
13. Instalação Xen PVM no Ubunto 12.04 LTS
Abra o arquivo “/etc/xen-tools/xen-tools.conf” e adicione no fim do arquivo a seguinte linha:
pygrub=1
Edite o arquivo “/etc/default/grub” e modifique o grub para iniciar o Xen por padrão. Para tanto é necessário
modificar as seguintes linhas:
GRUB_DEFAULT=“Xen 4.1-amd64”
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
14. Instalação Xen PVM no Ubunto 12.04 LTS
Entre na pasta “/etc/grub.d” e renomeie o arquivo 10_linux para 50_linux e atualize o grub utilizando os
comandos abaixo:
cd /etc/grub.d
sudo mv 10_linux 50_linux
sudo update-grub
15. Instalação Xen PVM no Ubunto 12.04 LTS
Entre no arquivo “/etc/network/interface” para criar a interface bridge que funcione com DHCP. Como segue:
auto lo
iface lo inet loopback
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0
bridge_maxwait 0
16. Instalação Xen PVM no Ubunto 12.04 LTS
Após criar a interface bridge é necessário que você levante a interface com o comando abaixo:
sudo ifup xenbr0
Entre no arquivo “/etc/init.d/rc.local” e adicione a linha “ifup xenbr0” no final do arquivo, para a interface subir
junto com a inicialização do sistema operacional.
Para ter certeza de que a sua interface bridge está funcionando, verifique se ela consta na saída do comando
abaixo:
sudo brctl show
Caso não esteja configurada ainda, reinicie o serviço de rede com o comando a seguir:
/etc/init.d/networking restart
17. Instalação e Configuração de Máquinas Virtuais
Para criar máquinas virtuais no hipervisor xen, você precisa passar como parâmetros: nome, distribuição,
tamanho do disco, tamanho do swap, rede estática ou por DHCP, tamanho da memória RAM, diretório destino
para criar a imagem e um parâmetro que possibilita a criação de um senha do usuário no processo de criação
da máquina virtual:
Ex: sudo xen-create-image –-hostname=gerente -–dist=precise –-size=4Gb -–swap=512Mb -–dhcp –-
memory=1024Mb -–dir=/xen -–role=udev --passwd
18. Instalação e Configuração de Máquinas Virtuais
Após criar a imagem da máquina virtual, é preciso criar um domínio para essa máquina. A imagem criada é um
arquivo com o nome “hostname.cfg”. No caso do exemplo citado, ficaria “gerente.cfg”. Para criar tal domínio
execute o comando:
sudo xm create NomeDoDomínio.cfg
Por motivos de melhor assimilação utilize tanto para a imagem, quanto para o domínio o mesmo nome.
19. Instalação e Configuração de Máquinas Virtuais
Com o domínio criado, a máquina virtual já pode ser iniciada. O usuário padrão é “root” e a senha, é a que você
escolheu no momento em que criou a imagem.
Para acessar a máquina virtual execute o comando a seguir:
sudo xm console “domínio”
Caso seja necessário pausar e depois iniciar a máquina pausada, execute os seguintes comandos
respectivamente:
sudo xm pause gerente
sudo xm unpause gerente
20. Instalação e Configuração de Máquinas Virtuais
Para salvar a máquina virtual, é preciso especificar o domínio, e um arquivo de saída para ser salva uma cópia da
imagem da máquina virtual. Execute o comando abaixo para salvar uma máquina:
sudo xm save –c gerente /home/domínioBackup
Para deletar uma máquina precisamos primeiro apagar seu domínio, e em seguida podemos deletar a imagem
da máquina virtual. Passando o nome da imagem a ser deletada e o diretório do domínio da imagem. Abaixo foi
usado como exemplo uma máquina virtual e domínio de nome “teste”.
sudo xm destroy teste
sudo xen-delete-image teste –dir=/xen
21. Instalação e Configuração do Iperf
Para instalar o iperf execute os seguintes comandos:
sudo apt-get update
sudo apt-get install iperf
Depois de instalar os pacotes nas duas máquinas vamos executar o comando abaixo para realização do teste na
máquina servidor e na máquina cliente respectivamente. A sintaxe do segundo comando executado no cliente,
200.129.39.86 é o endereço IP do servidor, -w tamanho do pacote, -i intervalo de 1 segundo, -t tempo para
transmitir:
Iperf -s
Iperf –c 200.129.39.86 –w 64k –I 1 –t 60
22. Instalação e Configuração do Bonnie++
Execute o comando abaixo para instalar a ferramenta usada para testar discos rígidos e performance do sistema
de arquivos:
sudo apt-get install bonnie++
Com a ferramenta instalada vamos aos testes de desempenho. Na máquina virtual é preciso criar um usuário
para poder executar a ferramenta, por exemplo “admin”. Na máquina física basta executar o segundo comando.
Então basta executar o comando bonnie++, porém o comando roda com os valores padrão (Default).
Especificamos os parâmetros –r 100, tamanho de memória RAM em megabytes que será usada na execução, e o
parâmetro –s 200, tamanho dos arquivos para o teste de entrada e saída em megabytes. É recomendado usar o
dobro da quantidade de memória RAM, para o teste ficar mais realista.
23. Instalação e Configuração do Bonnie++
Execute os comandos abaixo para criar o usuário na máquina virtual e em seguida para executar o teste com o
bonnie++:
adduser admin
bonnie++ -r 100 –s 200
24. Instalação e Configuração do Sysbench
Para instalar a aplicação na máquina utilize o comando:
sudo apt-get install sysbench
Com a ferramenta instalada, vamos fazer os testes de desempenho da CPU. Neste modo é calculado o número
de primos até o valor especificado pela opção --cpu-max-prime. Nós usamos o número 20000 como exemplo.
sysbench -–test=cpu -–cpu-max-prime=20000 run
25. Resultados Obtidos Iperf
Ao analisarmos o Gráfico 1, correspondente a máquina virtual e o Gráfico 2 correspondente a máquina física,
observamos que os testes foram feitos no tempo total de 60 segundos (eixo X), e usamos um tamanho fixo do
pacote a ser enviado na rede de 64k, com intervalos para envio de 1 segundo.
Notamos que a máquina física se manteve nove vezes por mais de um segundo com taxa de transmissão de
94,5 Mbits/s e não se manteve nenhuma vez com taxas abaixo de 93,5 Mbits/s por mais de um segundo.
Enquanto a máquina virtual se manteve com transmissões de 94,5 Mbits/s por mais de um segundo apenas três
vezes, e com o mesmo valor de vezes para taxas de transmissões de 93,5 Mbits/s por mais de um segundo.
Apesar da analise ter sido feita em um espaço curto de tempo, podemos observar um melhor desempenho na
transmissão de pacotes e uso da rede, por parte da máquina física, como mostram os gráficos a seguir.
27. Resultados Obtidos Bonnie++
Se um teste é concluído em menos de 500ms, então a saída será exibida como “+ + + +”, pois o resultado de
teste não pode ser calculado com precisão devido a erros de arredondamento e os desenvolvedores da
ferramenta preferiram exibir nenhum resultado, para não mostrar resultados errados.
As tabelas a seguir mostram o desempenho da máquina física e virtual respectivamente:
31. Resultados Obtidos Sysbench
Na análise dos resultados na ferramenta sysbench, assumindo que o número máximo de primos calculado no
teste de CPU foi 20000, em ambas as máquinas, verificamos que o tempo total de execução na máquina física
foi de 23.8280 segundos e na máquina virtual foi de 23.9419 segundos, uma diferença de 0,1139 segundos para
a máquina física que se mostrou mais rápida no cálculo dos primos.
As tabelas a seguir mostram as estatísticas de desempenho de cada máquina.
32. Referências Bibliográficas
AZEVEDO, E. et al. Nuvem pública versus privada: Variações no desempenho de infraestrutura para elasticidade.
p. 110–123, 2012.
GUTIERREZ, F. .XEN no Ubuntu 12.04 LTS. Lipe.82. 2012. Disponível em:
<htpps://sites.google.com/site/lipe82/Home/diaadia/xen>. Acesso em: 24 abr. 2014.
REGO, P. A. L. Installing Xen 4.3 on Ubuntu 12.04 LTS. Lost of stuff. 2012. Disponível em: <pauloalr.wordpress.com>.
Acesso em: 28 abr. 2014.
SEO, C. E. Virtualização–Problemas e desafios. IBM Linux Technology Center, v. 1, n. 008278, p. 1–19, 2009.
SCHMIDT, A. H. et al. Análise de Desempenho da Virtualização de Redes nos Sistemas Xen e OpenVZ. p. 1–8, 2007.