UNIVERSIDADE DO ESTADO DE SANTA CATARINA … · Emulação de sistemas operacionais: as...
Transcript of UNIVERSIDADE DO ESTADO DE SANTA CATARINA … · Emulação de sistemas operacionais: as...
UNIVERSIDADE DO ESTADO DE SANTA CATARINA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO
ANALISAR MÁQUINAS VIRTUAIS UTILIZANDO XEN SERVER 6 E O KVM
PARA COMPARAR SEUS IMPACTOS NO PROCESSAMENTO E USO DO DISCO
UTILIZANDO MYSQL SERVER.
Bruno Joenk
Matheus Felipe Garcia
Michel Pabst
Moisés Pabst
PROFESSOR CHARLES CHRISTIAN MIERS
Sistema Operacionais
Joinville, Junho de 2015
UNIVERSIDADE DO ESTADO DE SANTA CATARINA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO
ANALISAR MÁQUINAS VIRTUAIS UTILIZANDO XEN SERVER 6 E O KVM
PARA COMPARAR SEUS IMPACTOS NO PROCESSAMENTO E USO DO DISCO
UTILIZANDO MYSQL SERVER.
Bruno Joenk
Matheus Felipe Garcia
Michel Pabst
Moisés Pabst
PROFESSOR CHARLES CHRISTIAN MIERS
Sistema Operacionais
Joinville, Junho de 2015
LISTA DE ILUSTRAÇÕES
Figura 1. Representação gráfica em camadas da virtualização completa, segundo as
formas de virtualização...................................................................................................12
Figura 2. Histórico do XenServer, descrita em uma linha do tempo.............................20
Figura 3. XenServer - Diagrama de arquitetura envolvendo os componentes...............21
Figura 4. Representação da arquitetura geral do KVM..................................................25
LISTA DE TABELAS
Tabela 1. Apresentação do Histórico do XenServer........................................................18
Tabela 2. Apresenta o tempo para execução dos processos com 1 thread......................28
Tabela 3. Apresenta o tempo para execução dos processos com 2 thread......................29
Tabela 4. Apresenta o valor de informações trocados com disco rígido com 1 thread...30
Tabela 5. Apresenta o valor de informações trocados com disco rígido com 2 thread...30
RESUMO
Virtualização é um conceito empregado para a criação de maquinas virtuais, as quais
estão sendo utilizadas diariamente em servidores. Ela é empregada para que ocorra um
melhor aproveitamento do hardware e aumente o custo benefício da empresa. Para que
ocorra a virtualização é necessário que exista uma ferramenta que faça o monitoramento
dessas máquinas virtuais, algumas dessas ferramentas seriam os monitores de máquinas
virtuais Citrix XenServer e o KVM, estas duas ferramentas funcionam de forma
diferente, ambas são monitores de máquinas virtuais, e controlam e monitoram as
máquinas virtuais. Ao se criar máquinas virtuais é necessário também entender qual o
impacto que elas causam no hardware e no processador da máquina, é nesse ponto que
entram softwares de benchmark como o Sysbench. Software como esse tem a função de
analisar os impactos causados pelas máquinas virtuais através da utilização dele se
conseguem simular eventos e conseguir que demonstram de forma gráfica como é a
evolução do processamento. Através desses dados é possível chegar a melhor conclusão
de qual monitor de máquinas virtuais é melhor para cada situação de uso.
Palavras-chave: Virtualização. Máquinas Virtuais. Citrix XenServer. KVM. Sysbench.
ABSTRACT
Virtualization is a concept used to create virtual machines, which are being used daily in
servers. It is used to occur a better use of hardware and increase the cost benefit of the
company. For virtualization to occur there needs to be a tool that makes monitoring of
these virtual machines, some of these tools would be the virtual machine monitors
Citrix XenServer and KVM, these two tools work differently, both are virtual machine
monitors, and control and monitor virtual machines. When creating virtual machines is
also necessary to understand what impact they have on the hardware and system CPU is
at this point entering benchmark software such as Sysbench. Software like this serves to
analyze the impacts of virtual machines by using it if they can simulate events and get
that demonstrate graphically how the evolution of processing. Through these data it is
possible to reach the best conclusion of which virtual machine monitor is best for each
use situation.
Key-words: Virtualization. Virtual Machines. Citrix XenServer. KVM. Sysbench.
SUMÁRIO
INTRODUÇÃO ...................................................................................................................... 7
CAPITULO 1 - CONHECIMENTO ............................................................................................. 8
1.1 MÁQUINAS VIRTUAIS .......................................................................................................... 8
1.1.1 Virtualização ................................................................................................................. 8
1.1.2 Classificação ............................................................................................................... 10
1.1.3 Funcionamento .......................................................................................................... 13
1.1.4 Ferramentas de medição ........................................................................................... 13
1.2 - MYSQL ............................................................................................................................. 14
1.2.1 Histórico ..................................................................................................................... 15
1.2.2 Características ............................................................................................................ 15
1.3 Considerações Parciais ................................................................................................. 16
CAPITULO 2 - CONHECIMENTO ........................................................................................... 17
2.1 XEN .................................................................................................................................... 17
2.1.1 Histórico ..................................................................................................................... 17
2.1.2 Arquitetura ................................................................................................................. 20
2.1.3 Funcionalidades .......................................................................................................... 21
2.1 KVM ................................................................................................................................... 23
2.2.1 Histórico ..................................................................................................................... 23
2.2.2 Arquitetura ................................................................................................................. 24
2.2.3 Funcionalidades .......................................................................................................... 25
CAPÍTULO 3 - COMPARATIVOS ........................................................................................... 27
3.1 Plataforma Experimental .................................................................................................. 27
3.2 Testes Realizados .............................................................................................................. 27
3.2 Teste de Carga do Processador ......................................................................................... 27
3.3 Teste de Carga do Disco Rígido ......................................................................................... 28
3.4 Considerações Finais ......................................................................................................... 29
CONCLUSÃO ...................................................................................................................... 31
REFERÊNCIA ...................................................................................................................... 32
7
INTRODUÇÃO
A virtualização e a utilização de máquinas virtuais, o qual é um ponto muito
importante para o entendimento inicial deste trabalho, que tem por objetivo a análise e
comparação entre duas ferramentas de virtualização. O Conceito de virtualização é
amplamente construído e repetido no decorrer do trabalho, por esta razão ele é discutido
como parte dos conceitos iniciais do trabalho, desde seu início na década de 60, no seu
declínio e retorno nos anos 90. As formas como elas funcionam para a construção da
virtualização, e o controle das máquinas virtuais é um ponto realmente importante para
o entendimento do estudo aqui realizado.
As duas ferramentas utilizadas para a virtualização, XenServer e KVM, têm
diferentes formas de virtualizar e funcionam de maneiras completamente distintas, por
essa razão foram escolhidas. O que se busca com esse estudo é entender como funciona
seus procedimentos e como eles impactam no processamento da máquina, sempre
levando em conta os pontos positivos e negativos das duas ferramentas para o resultado
final do estudo.
8
CAPITULO 1 - CONHECIMENTO
Este capítulo apresenta os termos e tecnologias de virtualização e banco de
dados, explana as características das tecnologias que justifica o porque do seu uso.
Conhecimentos iniciais para compreensão do que é virtualização e diferenças entre
virtualização completa e paravirtualização. Ainda nesse capitulo é descrito a história das
tecnologias e sua evolução e como é empregada no mercado de trabalho.
1.1 MÁQUINAS VIRTUAIS
Máquina virtual tem por princípio simular um ou mais computadores sobre um
hardware físico. Visa criar ambientes para testes, simulações, programação
multiplataforma, otimização de servidores, entre outros. Sendo assim, ao invés de
utilizar um hardware para cada estação de trabalho ou servidor, é possível virtualizar
esse hardware sobre uma máquina física e executar diferentes sistemas operacionais
sobre o mesmo hardware físico (LAUREANO, 2009). As máquinas virtuais podem ser
utilizadas para diversos propósitos, como banco de dados, servidores, estações de
trabalhos, ambientes de teste, entre outros. Independente do cenário em que a máquina
virtual está sendo utilizada, seu impacto no hardware físico deve ser analisado para se
buscar o melhor método de virtualização (GONÇALVES, 2008).
O texto contém algumas características importantes para a compreensão do
projeto e dos capítulos subsequentes. Começando com conceitos básicos de
virtualização, um breve hitórico da evolução da virtualização e os tipos de virtualização.
1.1.1 Virtualização
Virtualização consiste em utilizar um hardware físico e através dele configurar
diversos outros hardwares virtuais ou ainda configurar e coordenar diversos sistemas
operacionais. Seguindo esse conceito, tem-se a praticidade de não mais precisar adquirir
uma máquina para cada sistema operacional, reduzindo assim custos em aquisição de
novos hardwares e concentrando melhor as informações importantes (RODRIGUES,
2009).
9
O conceito de virtualização, teve seu surgimento na década de 60 pela IBM, essa
tecnologia se tornou mais difundida com o lançamento do sistema operacional da IBM o
M44/44X neste período também ocorreu o lançamento de vários sistemas comerciais
que suportavam a virtualização, entre eles pode-se citar o OS/370. Nessa época, o
conceito de virtualização era fornecer para cada usuário um ambiente monousuário
fazendo com que assim cada um tivesse seu próprio ambiente para utilização
(LAUREANO, 2009).
Com a chegada da década de 80, o interesse pela virtualização teve uma pequena
queda, pois o custo benefício era maior na compra de uma máquina para cada pessoa do
que trabalhar com o conceito de virtualização. Foi somente na década de 90 que ele
voltou a ter destaque, com a entrada da linguagem Java no mercado e o aumento do
desempenho dos hardwares (LAUREANO, 2009). O aumento no desempenho dos
hardwares foi um dos fatores para a volta do conceito de virtualização para o mercado,
pois os hardwares que eram utilizados na década de 80 não apresentavam bom
desempenho para virtualizar várias máquinas, com o aumento de desempenho nos
hardwares a partir da década de 90 foi possível melhorar o desempenho para o uso das
máquinas virtuais, e assim foi possível retornar o uso da virtualização.
O objetivo primário para o desenvolvimento de um ambiente virtual isolado era
voltado a diferentes usuários, sendo possível cada usuário ter seus softwares e
aplicações de sua escolha (LAUREANO, 2009). Analisando o mercado e as
necessidades das pessoas, a virtualização é utilizada para um único usuário que
necessita de diversos ambientes seja ele para qualquer propósito.
As máquinas virtuais são executadas pelos Virtual Machine Manager (VMM),
que é o software responsável por manipular a memória utilizada, dispositivos de entrada
e saída, recursos de compartilhamento entre máquinas virtuais. O VMM também é
responsável por organizar qual máquina virtual estará sendo executada no momento
(GONÇALVES, 2008). Alguns cenários em que a virtualização pode ser utilizada
(GONÇALVES, 2008):
● Consolidação de servidores: este conceito diz respeito a distribuição de
arquivos entre máquinas físicas sobre diversos sistemas operacionais,
aumentando assim a economia de energia, um melhor aproveitamento do
hardware e ainda proporciona um melhor gerenciamento e manutenção.
10
● Consolidação de aplicações: conseguir emular máquinas e softwares que
não iriam executar sobre as configurações do hardware disponível no
momento.
● SandBoxing: criar um ambiente isolado para execução de um software
que não seja considerado seguro. Utilizando, assim, da virtualização para
construir uma forma de proteção.
● Migração de Máquinas Virtuais: a distribuição de máquinas virtuais
sobre diversas máquinas físicas.
A utilização de máquinas virtuais permite a personalização do ambiente virtual.
Sendo assim, possibilita atender diversos cenários, dos mais exigentes ao menos
exigentes em questão de hardware, isolar ambientes de teste ou ainda executar sistemas
legados.
A virtualização foi criada para que se tivesse um maior número de máquinas
disponíveis para os usuários e passou por diversas mudanças em seu objetivo principal.
Na sua criação na década de 60 voltou-se para multiusuários utilizando de um mesmo
hardware físico com vários ambientes e sistemas operacionais, agora tem o foco ao
monousuário que necessita ou quer testar diversos sistemas operacionais sem a
necessidade de possuir diversos hardwares. Suas aplicações no mercado são voltadas
principalmente para servidores ou teste de configurações de softwares. Prosseguindo a
seções, vem a descrição da organização e classificação de uma máquina virtual.
1.1.2 Classificação
Antes de classificar, é interessante listar algumas formas de realizar a
implementação da virtualização, sendo elas (LAUREANO, 2009) (RODRIGUES,
2009):
● Virtualização Completa: um sistema operacional completo e suas
aplicações.
● Emulação de sistemas operacionais: as aplicações de um sistema
operacional sendo executados em outro sistema operacional sobre a
mesma plataforma de hardware.
● Tradução dinâmica: as instruções de uma aplicação são traduzidas
simultaneamente para outras instruções.
11
● Replicação de hardware: são criadas várias cópias de um mesmo
hardware real, cada um com o seu sistema operacional.
● Paravirtualização: é similiar a virtualização completa porém exige que o
sistema operacional seja alterado para realizar chamadas e receber
interrupções do hypersivor.
Sendo assim, o termo virtualização é utilizado nesse trabalho como referência a
prática de virtualização de máquinas. Essa técnica consiste em executar um ou mais
sistemas operacionais em cima de um único hardware. Deste modo, cada sistema é
executado de forma completa sem interferir na memória, processador ou espaço de
armazenamento dos outros sistemas operacionais também alocados no mesmo
hardware. Existem diversas formas de como a virtualização pode ser classificada. A
virtualização completa é quando tudo é virtualizado memória, hardware, quantidade de
espaço em disco (GONÇALVES, 2008). A Figura 1 ilustra o funcionamento da
Virtualização Completa.
Figura 1. Representação gráfica em camadas da virtualização completa, segundo
as formas de virtualização.
Fonte: produção do próprio autor
Começando a leitura da imagem de baixo para cima, pode-se observar, na Figura
1, o funcionamento da virtualização completa, com a camada de hardware físico em
primeiro, e em seguida na camada 2 o software do monitor de máquinas virtuais,
responsável por controlar as máquinas virtualizadas, na camada 3 o sistema virtualizado
12
com hardwares emulados e por fim as aplicações sobre os sistema virtualizado na
camada 4. Essa descrição em camadas é utilizada para entende a hierarquia das seções.
A outra forma de virtualização é a paravirtualização, para utilizar o sistema
operacional em uma máquina virtual é necessário que o sistema sofra alterações em seu
código fonte para adaptar-se a tecnologia de paravirtualização. Com essas alterações se
obtém um melhor desempenho dos sistemas operacionais, pois o sistema operacional se
adequa ao hipervisor, havendo assim um ganho de desempenho (GONÇALVES, 2008).
Na paravirtualização existe a presença de uma nova característica, que diz
respeito as alterações do sistema operacional que foram definidas. Outra forma de
classificar, diz respeito ao nível de similaridade entre interfaces de hardware do sistema
integrado e real (GONÇALVES, 2008). São elas:
● Interfaces Equivalentes: a interface virtual reproduz a interface de
hardware do sistema real, permitindo assim execuções de aplicações em
tempo real.
● Interfaces Distintas: as interfaces não tem relação, assim é implementado
um conjunto de instruções distintas que é interpretado pelo hypervisor.
Outras formas de classificar a virtualização dizem respeito ao que se busca
virtualizar, em relação a hardware ou o software (LAUREANO, 2009):
● Virtualização do hardware: a virtualização interpreta o hardware físico
como abstrato.
● Virtualização do sistema operacional: a virtualização interpreta o sistema
operacional como uma abstração de um sistema especifico.
● Virtualização de uma linguagem de programação: a camada de
virtualização cria uma aplicação no topo do sistema operacional.
Essas são algumas formas de classificação de acordo com o ambiente
virtualizado ou especificações, outras questões que são interessante destacar é a
classificação de acordo com o que se pretende com a virtualização. Sendo assim, é
necessário analisar o sistema executado na máquina virtual, e classificar como
(LAUREANO, 2009):
● Máquinas virtuais de aplicação: são criadas para suportar apenas um
processo ou aplicação específica.
● Máquinas virtuais de sistemas: elas são criadas para suportar um sistema
operacional completo e não somente uma aplicação.
13
Sendo assim, descritas as formas como uma máquina virtual pode ser
classificada e como é o funcionamento da virtualização total e paravirtualização, já se
tem o entendimento de como ela interage e quais os seus propósitos. Segue na subseção
1.1.3 com a descrição de aspectos do funcionamento da virtualização.
1.1.3 Funcionamento
Ao analisar o conceito de virtualização, dividindo ele em camadas, partindo da
parte mais baixa (camada 1) se tem o hardware. A camada acima (camada 2) representa
o Hipervisor, o Hipervisor coordena e organiza os sistemas operacionais, nesta camada
ficam armazenadas as configurações das máquinas virtualizadas. Em seguida (camada
3) os sistemas operacionais que estão virtualizados, portanto essa camada pode ser
dividida de acordo com o número de sistemas operacionais que se pretende virtualizar
(LAUREANO, 2009). A paravirtualização, funciona de forma similar a virtualização
total, porém na paravirtualização o sistema operacional sofre alterações em seu código
fonte para receber chamadas de sistema e receber interrupções do Hipervisor.
Levando em conta a compreensão da virtualização e máquina virtual, tem-se a
necessidade de descrever as ferramentas que medem o desempenho das máquinas
virtuais e os seus impactos na memória o no processamento. Saber essa distinção entre
camadas auxilia no entendimento de como as máquinas virtuais afetam o hardware e
sobre quais condições.
1.1.4 Ferramentas de medição
Ao trabalhar com virtualização, o usuário deve saber qual ferramenta de
virtualização se adapta melhor a sua necessidade, para isso existem ferramentas que
avaliam as informações sobre impactos da virtualização para a máquina virtual. As
ferramentas a disposição para esse teste são OSDB, DBT2, FlexAsnch e o Sysbench.
Por recomendação da MySql é utilizada a Sysbench para testes na plataforma de banco
de dados MySql (BENCHMARK, 2015). Alguns dos fatores que são analisados pela
ferramenta no projeto (BENCHMARK, 2015) (KOPYTOV, 2009):
14
● A taxa de utilização do processador: sendo o percentual por segundo no
qual o sistema utiliza do processador.
● Desempenho em arquivo: no qual ele realiza o teste baseando em um
arquivo maior do que a sua memória RAM para realizar os testes.
Estes critérios foram selecionados para análise de desempenho de processador e
entrada e saída de dados, nas estruturas de virtualização Citrix XenServer e KVM.
Diversas ferramentas como Sysbench dão auxílio para testes de desempenho de banco
de dados, elas servem os dados necessários para que haja um fator de comparação entre
sistemas operacionais e ferramentas de virtualização (BENCHMARK, 2015).
Softwares como esses são utilizados para verificar impactos e possíveis
problemas na utilização de máquinas virtuais. Tendo em vista o entendimento da seção,
ainda há a necessidade de descrever outros softwares utilizados para aumentar a
utilização dos sistemas operacionais virtualizados, para conseguir testar as máquinas
virtuais enquanto executam mais processos.
1.2 - MYSQL
O MySQL é um sistema gerenciador de banco de dados (SGBD). Quando
planejado, visava atender projetos de pequeno e médio porte, mas com o tempo foi
aprimorado e atende aplicações de grande porte. Reconhecido por entidades da área de
tecnologia da informação como um dos sistemas banco de dados Open Source de maior
capacidade, concorrendo com bancos de código fechado (MILANI, 2007).
Por ser um SGBD de fácil utilização e por possuir um grande grupo de
sustentação, como a Cisco e a Motorola, o Mysql é usado por grandes empresas como a
NASA, HP, Bradesco, Sony, entre outras. Sua interface simples, e também sua
capacidade de ser executado em diversos sistemas operacionais, são alguns dos motivos
para este programa ser tão difundido (PACIEVITCH, 2015).
O MySQL sofre uma reestruturação na equipe de desenvolvimento, com a saída
de alguns de seus programadores que se juntaram e criaram o MariaDB, com intuito de
concorrer com o MySQL. O MariaDB é um software de banco de dados parecido com o
MySQL com algumas melhorias (MARIADB, 2015).
15
MySQL é uma ferramenta que condiz com que se busca produzir com o projeto.
Nas seções 1.2.1 e 1.2.2, estão descritas outras informações sobre o MySQL como
histórico e algumas de suas características que o tornam tão util.
1.2.1 Histórico
Desenvolvido na década de 90 após surgir a necessidade de uma interface SQL
que fosse compatível com rotinas ISAM1 utilizados no projeto dos desenvolvedores
David Axmark, Allan Larsson e Michael Widenius. Para suprir a necessidade da equipe
foi utilizado o mSQL mas a ferramenta possuía problemas de desempenho na aplicação.
Após isso, decidiram então desenvolver uma API em C e C++ que deu origem ao
MySQL. (MILANI, 2007).
Essa API trouxe resultados satisfatórios aos desenvolvedores, então o MySQL
teve alta aceitação e começou a ser difundido, surgiu então a criação da empresa para
manutenção da ferramenta. O MySql ganhou popularidade e com suas características de
rápido acesso. Foram então surgindo novas versões atendendo aos pedidos e
necessidades de seus utilizadores (PACIEVITCH, 2015).
Com recursos como portabilidade, multitarefas, velocidade e segurança, o
MySql estabeleceu seu lugar no mercado e a capacidade para competir com bancos de
dados privados mais populares como Microsoft SQL Server e Oracle (MYSQL, 2015)
(MILANI, 2007). O MySQL tem então a capacidade de suportar grandes estruturas de
dados e que necessite de agilidade de acesso as informações, é um SGBD para uso de
estudos e profissional, se adapta a várias linhas de atividades.
1.2.2 Características
Algumas das características do MySQL em relação a outros bancos de dados, do
mesmo porte, são a facilidade de programação, possui funções simples a serem
implementadas e são totalmente modificáveis (NEVES, 2005) (MYSQL, 2015). Outras
características que fazem o MySQL ser um dos bancos mais utilizados são:
1 Método de armazenamento que permite ma rápida recuperação de dados para leitura(IBM, 2015).
16
● Suporte multiplataforma, compatível com diferentes sistemas
operacionais como, Apple Mac OS X Server, GNU/Linux, FreeBSD, Unix e
MS-Windows.
● Suporte a múltiplos processadores.
● Capacidade de manipular bancos com até 50 milhões de registros
● Suporte a 16 índices por tabela. Sendo possível a criação de tabelas de
até 4GB.
● Software livre, permite utilizá-lo para qualquer propósito, tendo seu
código-fonte aberto para alterações e livre distribuição.
● Comercial, permite embutir o MySQL dentro de suas aplicações
comerciais, obter suporte diferenciado ou pacotes com mais ferramentas.
Tendo conhecimento das características do MySql, e da ferramenta de medição
benchmark Sysbench, é possível realizar os testes de desempenho dos sistemas
operacionais utilizando o MySql nos sistemas operacionais virtualizados pelo Citrix
XenServer 6 e KVM.
1.3 Considerações Parciais
Ao fim do Capítulo 1, compreende-se a história das máquinas virtuais, a ideia da
máquina virtual no primeiro momento nos anos 60, as necessidades e problemas nos
anos 80 para disseminar a tecnologia, como ocorreu a evolução e a diferença entre a
virtualização total e a paravirtualização, exemplificado em forma de camadas. Ainda
descrito no Capítulo 1, a história do MySql, as características do sistema gerenciador de
banco de dados MySql, e por fim a ferramenta de benchmark Sysbench, utilizado para
realização de testes de desempenho nos ambientes virtualizados sobre o XenServer 6 e
KVM. Por esta razão no próximo capítulo está descrito informações sobre as
ferramentas de virtualização utilizadas, o Citrix XenServer 6 e o KVM.
17
CAPITULO 2 - CONHECIMENTO
Esse capítulo apresenta um estudo das ferramentas utilizadas para a
virtualização, abordando suas principais características, sendo a história, arquitetura e as
funcionalidades, o que as diferem no mercado atual e a expansão do segmento em que
atuam o Citrix XenServer e o KVM. Com essas informações é possível dar procedência
a analise final que tem por objetivo este trabalho, e é por isso importante conhecer essas
características e no que elas influenciam no resultado final.
2.1 XEN
O XenServer é uma ferramenta que tem como objetivo propor uma solução para
empresas que necessitam de servidores e máquinas virtuais. Com sua solução voltada
para computação em nuvem. O XenServer proporciona uma boa redução de custos pois
torna datacenters físicos em datacenters virtuais com facilidade de uso e dinamismo.
Possui um console intuitivo e um hypervisor de 64-bit, que facilitam seu uso. Além
disso possui diversas funcionalidades que garantem seu fácil gerenciamento, segurança
e praticidades em um único console (CITRIX, 2015).
2.1.1 Histórico
Para facilitar e otimizar a descrição do histórico do XenServer está demonstrado
em forma de tabela, conforme pode ser analisado na Tabela 1.
Tabela 1. Apresentação do Histórico do Citrix XenServer
Ano Evolução
1990 O Xen foi criado em 1990 por Keir Fraser e Ian Pratt, a intenção da
criação do projeto, era para um trabalho de pesquisa na
Universidade de Cambridge (inclusive, este trabalho ainda está nos
servidores web da Universidade). O hypervisor Xen possui código
aberto, para que todos os outros acadêmicos, pesquisadores e
desenvolvedores, pudessem agregar melhorias para o projeto.
2003 A primeira versão do Xen, foi anunciada na USENIX, em uma
18
conferência que ocorreu no ano de 2003, considerado o lançamento
oficial do Xen.
2004 Em 2004, foi lançada a versão 1.0 da versão, seguido da versão 2.0
em pouco tempo, Ian Pratt e outras pessoas do grupo começaram
pensar em alterar o Xen de uma ferramenta de pesquisa para um
produto que fosse lançado no mercado e então utilizado pelas
empresas, além disso, mantiveram a ideia de o produto continuar
sendo de código aberto (open source).
2005 No ano de 2005, o Xen passou a ser bastante conhecido quando a
Red Hat, Novell, Sun e outras marcas famosas, aderiram o mesmo
como a solução para máquinas virtuais, inclusive, estas
comunidades ajudaram para otimizar e lançar a versão 3.0. Além
disso, a comunidade Xen, inspirou a VMWare e a Microsoft com a
paravirtualização.
2007 A corporação Citrix adquiriu em agosto de 2007 o XenServer, pelo
preço de 500 milhões de dólares. Foi um grande marco para os
fundadores do projeto e para a Citrix.
2008 Então o XenServer começou a ser bem conhecido, inclusive em
2008 a Samsung Electronics criou o projeto Xen ARM.
2009 Em 2009 quando a computação em nuvem estava entrando em
evidencia, o Xen adotou essa tecnologia também e a incorporou no
produto, o chamado Xen Cloud Platform.
2010 O Xen 4.0 foi lançado em 2010 e já neste mesmo ano e em junho,
foi feito um concurso na comunidade para decidir qual mascote
seria utilizado.
No ano de 2010, a comunidade Xen entregou a primeira versão do
Cloud Platform Xen. Onde também passou a dar suporte completo
para Xen Dom0 e DomU. Neste mesmo ano foi criado o projeto
Kronos para entrega-lo a XCP, com o apoio Debian e Ubuntu como
Dom0. Além disso foi apresentado o protótipo Xen para XenARM
usando Cortex A15.
2012 O projeto Xen Cloud Platform foi liberado em 2012.
19
2013 Em 2013, a porta Xen ARM tornou-se funcional. O Xen passa a
fazer parte da Fundação Linux como uma Fundação Colaborativa
do Projeto Linux. O site da comunidade que era Xen.org torne-se
um site mais moderno, com o endereço XenProject.org, e a nova
marca "Xen Project" é emitida para a Fundação Linux.
O primeiro evento verdadeiramente centrado no usuário é mantido,
chamado de Cúpula do usuário Xen Project.
2014 Já no ano de 2014, o número de pessoas no conselho consultivo se
expande e o Mirage O.S 2.0 é liberado.
Fonte: XenProject (2015)
Na tabela 1 temos o histórico do XenServer dididido por anos e o que foi
marcante naquele ano para o software, outra forma de analisar seu histórico é de
acordo com a linha do tempo, conforme figura 2.
Figura 2. Histórico do XenServer, descrita em uma linha do tempo
Fonte: XenProject.org
O XenServer foi se moldando e se construindo de acordo com as necessidades
que iam aparecendo ao decorrer dos anos, sempre buscando melhorar o desempenho
das máquinas que estariam sendo administradas. Na seção 2.1.2 está descrito sua
arquitetura, a forma como ele trabalha e coordena as máquinas virtuais.
20
2.1.2 Arquitetura
O XenServer é um componente instalados diretamente no hardware e em cima
dele que sao instalados os sistemas operacionais (BOSING, 2012)(KAUFMANN,
2012). Ele foi desenvolvido e é distribuído gratuitamente pela Citrix (BOSING,
2012)(KAUFMANN, 2012).
O Xen Hypervisor (Monitor de máquina virtual ou VMM) é um dos principais
componentes do XenServer, sendo a sua função principal a de controlar os processos
das máquinas virtuais que estão sendo virtualizadas. Este hypervisor é inicializado
depois do bootloader (CITRIX, 2015). Na Figura 3 temos uma representação da
arquitetura envolvendo componentes, onde engloba principalmente o processo do
hypervisor (console) e suas ações com os outros componentes da arquitetura, como o
Toolstack por exemplo.
Figura 3. XenServer - Diagrama de arquitetura envolvendo os
componentes.
Fonte: XenProject.org
Outro componente que faz parte da arquitetura do XenServer e que é preciso
para executa-lo, é o Domain Control (chamado também de controle de domínio ou
Dom0), a qual se trata de um VM com permissões para acessar diretamente o hardware,
sendo assim, o Dom0 consegue gerenciar a entrada e saída no sistema e ainda se
21
comunicar com outras máquinas virtuais (FERREIRA, 2012). O Dom0 fica disponível
em uma interface para acesso e controle de suas funções, sendo inicializado logo após o
inicio do sistema (XENPROJECT, 2015).
As ferramentas que gerenciam o hypervisor são os toolstack, reesposáveis por
realizar as operações das VMs, como a criar, destruir e gerenciar. Estão instaladas no
controle de domínio (Dom0). Estando disponível em três tipos de interfaces, sendo elas:
linhas de comando, interface web e interface Cloud (FERRÃO, 2014).
Tendo conhecimento sobre o arquitetura da ferramenta, é possível entender as
funcionalidades do XenServer. Na seção 2.1.3 está descrito algumas das
funcionalidades do XenServer desde a parte de criação de máquinas virtuais até a parte
de controle e recuperação de dados.
2.1.3 Funcionalidades
Possuir vários servidores físicos, é nitidamente mais caro para as empresas que
necessitam deste tipo de serviço hoje em dia. Porem com as maquinas virtuais no
mercado isso pode ser uma solução, o Citrix XenServer é uma opção favorável e que
possui diversas funcionalidades, que agregam para o serviço final ao cliente (CITRIX,
2015). Dentre algumas delas é possível citar:
● Console de gerenciamento XenServer: o XenServer disponibiliza uma
interface com diversas funcionalidades que contribuem para o
gerenciamento e controle geral das maquinas virtuais, o que facilita ao
usuário o controle de diversas máquinas virtuais.
● Virtual switching distribuído: ele disponibiliza para o usuário criar uma
estrutura de rede multi-tenant2 de fácil manipulação. Esta estrutura
assegura que a configuração de rede das maquinas virtuais siga a
máquina virtual quando vier a sair de dentro de um pool3 de recursos.
Essa estrutura é baseadas nas politicas que são definidas no nível da rede
virtual, assim os requisitos de rede são atendidos sem depender das
configurações das máquinas virtuais.
● Balanceamento dinâmico da carga de trabalho: o XenServer melhora o
uso do sistema e o desempenho dos aplicativos ao deixar as máquinas
2 Quando uma única instância ou instalação é capaz de atender vários clientes
3 Recurso que auxilia no processo de conexão e acessos a dados.
22
virtuais balanceadas automaticamente, com base nas configurações que
foram escolhidas pelo usuário, para colocação inicial e operações
contínuas.
● Alta disponibilidade: caso ocorra alguma falha nas máquinas virtuais, o
XenServer irá reiniciar a máquina virtual seja a nível do hypervisor ou
no servidor. Assim o XenServer trabalha como uma blindagem para os
aplicativos virtuais, favorecendo altos níveis de disponibilidade.
● Gerenciamento de energia: ele utiliza dos recursos que o hardware
disponibiliza para que assim ele possa alterar dinamicamente as
máquinas virtuais, conseguindo assim ligar e desligar os hosts.
● Recuperação de desastres: o XenServer trás esse recursos através de um
esquema site-to-site4 ele garante a recuperação de arquivos em caso de
perdas de arquivos. O XenServer fornece também testes frequentes para
assegurar estabilização dos ambientes virtualizados.
● IntelliCache: ele guarda arquivos como cache e imagens de boot,
diminuindo assim o volume do fluxo no storage5, para instalação do
XenDesktop.
● Otimização de memória: ele realiza a distribuição entre as máquinas
virtuais das memórias que não estão sendo utilizadas nos servidores,
melhorando assim o desempenho da memória e proteção dos aplicativos.
● Administração baseada em funções: este recurso mantém uma estrutura
acessível a camadas com níveis de permissão, aumentando a segurança e
permite acesso delegado, controle e uso.
● Proteção e recuperação das máquinas virtuais: O XenServer garante a
proteção de dados, ele executa essa funcionalidade tirando prints
periódicos e salvando esse prints em locais seguros, para caso ocorra
problemas na máquina virtual que resulte na perda de dados.
● vAPPs: é quando uma ou várias máquinas representam uma único
aplicativo. O vAPPs combina as máquinas virtuais em um único
dispositivo virtual, os quais são controlados pelo XenServer.
4 Também pode ser conhecida como conexão roteador roteador, ela permite, desde que estejam em uma
mesma rede, que se tenha uma conexão entre roteadores de locais independentes. 5 Hardware responsável com slots para diversos discos, responsável por armazenar dados.
23
Essas são algumas das funcionalidades que tornam o XenServer útil para a
virtualização, descrito um pouco sobre o XenServer deixando claro o objetivo e o
proposito de usa-lo. Na seção 2.1 está descrito sobre o KVM. O KVM é o Hypervisor
que foi utilizada para realizar a comparação com o Citrix XenServer.
2.1 KVM
KVM é uma ferramenta de virtualização que veio com o propósito de substituir
o Qemu, surgiu no ano de 2007, e está no mercado desde então. Ele é uma ferramenta
de código aberto, e traz ao mercado um modelo de virtualização que é baseado no
kernel (SAHA, 2007). Ele é uma ferramenta de fácil manipulação que busca um alto
desempenho na máquina virtual com um baixo impacto no hardware físico
(MORIMOTO, 2011).
2.2.1 Histórico
O KVM foi inventado com a finalidade de acelerar o Qemu. O Qemu seria um
programa de virtualização parecido mais com um emulador do que com um software de
virtualização. Qemu perde em desempenho comparado a outras ferramentas de
virtualização como o XenServer, VMWare e precisava de um novo módulo para
concorrer a altura com eles (MORIMOTO, 2011).
O primeiro plano para poder melhor o desempenho do Qemu foi lançado em
2005, com o nome de Kqemu, que melhorou alguns aspectos, como ser capaz de
visualizar instruções, favorecendo um maior desempenho, porem ainda continuou
abaixo do esperado (MORIMOTO, 2011). Em 2006 foi anunciado pela LinusTorvalds o
KVM(Kernel Virtual Machine Monitor) e então foi lançado em 2007, sendo um sistema
de virtualização incluso direto no kernel, rodando em hardware x86 contendo extensões
de virtualização (Intel VT ou AMD-V) com código aberto, e disponível a partir da
versão 2.6.20(SAHA, 2007).
Desta maneira o KVM foi o substituo do Kqemu e a partir de então, foram feitas
diversas melhorias e evolução constantemente, se tornando um bom concorrente para
ser usado em servidores, competindo com outros do segmento, como o Xen. Na seção
2.2.2 é descrito um pouco da arquitetura de funcionamento do KVM.
24
2.2.2 Arquitetura
O KVM que utiliza a tecnologia de virtualização assistida por hardware, torna o
kernel linux o seu hypervisor apenas carregando um modulo de kernel (A transformação
do kernel linux em um hypervisor ocorre quando é instalado o módulo kernel KVM). O
modulo utilizado faz a exportação de um dispositivo que se chama /dev/kvm, o qual da
permissão de modo guest6do kernel. Com o /dev/kvm a máquina virtual possui seu
espaço de endereço, diferente do espaço do kernel ou de outra máquina virtual que
esteja sendo executada (JONES, 2007).
De maneira que o kernel linux é o hypervisor, ele consegue ter os benefícios
com as mudanças feitas no kernel padrão (como o suporte de memória por exemplo).
Melhorias para esses componentes do Linux ajudam tanto o hypervisor como os SOs
guest Linux (JONES, 2007). Aumentando assim a velocidade e diminuindo a
redundância da execução. Na prática um driver KVM interage com o kernel e age como
interface entre eles (SAHA, 2007), conforme Figura 4.
Figura 4. Representação da arquitetura geral do KVM
Fonte: IBM. Descubra a Máquina Virtual do Kernel Linux
Nesta figura é possível ver como ocorre a virtualização utilizando do KVM. Na
parte do hardware, pode ser feita a virtualização (processador Intel VT ou AMD-SVM).
O hypervisor (o kernel Linux com o módulo kvm) fica no hardware vazio, que está
sendo executado. Esse hypervisor é parecido com um kernel linux normal, que tem a
6 Nível de permissão visitante.
25
possibilidade de executar qualquer outro aplicativo. Porem esse kernel oferece suporte a
SOs guest, carregados pelo utilitário KVM. Portanto, um SO guest consegue dar suporte
aos mesmos aplicativos que o SO do host suporta (JONES, 2007).
A KVM é parte de uma solução de virtualização. O processador concede o
suporte para a virtualização de forma direta (sendo capaz de virtualizar o processador
para vários SOs) (JONES, 2007). As versões mais novas do KVM vem um dispositivo
que controla as entradas e saídas esse processo é chamado de QEMU ligeiramente
alterado (é feito uma copia dele e executada com cada processo do SO guest) (SAHA,
2007).
QEMU é uma solução que permite virtualizar um computador completo,
contendo dispositivos de rede, adaptadores gráficos e discos. Todo pedido de entrada e
saída de um sistema operacional guest são roteado para o modo usuária que será
emulado pelo processo QEMU (JONES, 2007).
A KVM é capaz de fornecer virtualização de memória pelo dispositivo
/dev/kvm. Quando um guest é instanciado ele tem seu próprio espaço de endereço. A
memória física mapeada no processo, trata-se da mesma memória virtual mapeada no
processo (JONES, 2007). Para ser feita a conversão de endereços físicos guest em
endereços físicos host a KVM mantem um conjunto de tabelas de páginas com sombra
para poder dar suporte a está operação. Além disso o processador também é capaz de
ajudar no processo de conversão de memória através do hypervisor (kernel
host)(JONES, 2007).
2.2.3 Funcionalidades
Com o amadurecimento das tecnologias de virtualização fica evidente que as
ferramentas estejam acompanhando essa evolução. Por essa questão as ferramentas de
virtualização incrementam novas funcionalidades a cada versão. O KVM sempre foi
conhecido pela escalabilidade, desempenho a nível empresarial e segurança
(SARATHY, 2013). Tendo isso em mente algumas funcionalidades que seriam
relevantes citar sobre essa ferramenta seriam:
● Maior escalabilidade: o usuário tem a opção de conectar as máquinas
virtuais a dispositivos de armazenamento.
26
● Conjunto de comandos padrões: o KVM fornece um conjunto de
comandos SCSI padrão, com isso ele consegue simplificar a utilização
para o usuário.
● Dispositivos para nomeação padrão: discos utilizam os mesmo caminhos
simplificando assim a migração de dados entre máquinas físicas para
virtuais ou virtual para virtual.
● Segurança reforçada: A Segurança de virtualização (sVirt) foi construído
em SELinux e aplica-se etiquetas de segurança para máquinas virtuais de
usuário externos (convidados ou também chamado guest) e seus
recursos. O isolamento do guest é alcançado com SELinux através de
controles de acesso obrigatórios, que protege contra guest não confiável
na máquina virtual, contra os guest mal configurados e impede o acesso a
usuários não autorizado tanto de um usuário guest como o de um host
sendo assim implementada este nível recurso de segurança ao KVM.
Essas são algumas funcionalidades baseadas nos pontos fortes da ferramenta.
Tendo esses conceitos definidos sobre a ferramenta, se tem o conhecimento necessário
para entender a comparação que está demonstrada no capitulo 3.
27
CAPÍTULO 3 - COMPARATIVOS
Esse capítulo apresenta os estudos sobre o desempenho do servidor MySQL
instalados em máquinas virtuais com o sistema operacional CentOS hospedadas nos
monitores de máquinas virtuais Citrix XenServer 6 e KVM-88. É descrito ainda os
resultados obtidos através da ferramenta de benchmark Sysbench e as especificações do
hardware dispostas para as máquinas virtuais.
3.1 Plataforma Experimental
Para realizar os testes foi utilizado um desktop com o hardware, AMD Phenom
II X4 de 3.4Ghz, 4 Gb de memória ram dual chanel, 1 HD de 500Gb Seagate 7200
rotações por minuto. E as máquinas virtuais criadas no Citrix XenServer 6 e KVM-88
possuem a configuração de 2 processadores, 2 GB de memória ram, 80 GB de
armazenamento em disco e sendo executado sobre o sistema operacional CentOS versão
6.6.
3.2 Testes Realizados
É executado dois tipos de testes nas máquinas virtuais, sendo eles o teste de
carga do processador o CPU Bound e o que avalia o desempenho do disco rígido em
processos de entrada e saída aleatório I/O Bound. Cada teste é executado 3 vezes e os
valores apresentados são médias das 3 ocorrências realizadas.
3.2 Teste de Carga do Processador
Ao realizar o teste de carga de processador foram utilizados 3 cenários com
valores de 20, 60 e 120 mil processos para serem executados com 1 thread ativa. Para
esse teste quanto menor for o tempo de execução dos processos, melhor é desempenho
do processador no monitor de máquinas virtuais em teste.
28
Tabela 2. Apresenta o tempo para execução dos processos com 1 thread.
Fonte: Autor
No teste de carga de processador com apenas 1 thread ativa, o monitor de
máquinas virtuais KVM apresentou melhor desempenho que o Citrix XenServer.
Apresentado na tabela 2, para o teste de carga com 120 mil processos, a diferença
alcança 18 segundos no tempo de execução dos processos. O mesmo teste de carga de
processador é repetido nas máquinas virtuais, porém apresentado na tabela 3 com 2
threads ativas.
Tabela 3. Apresenta o tempo para execução dos processos com 2 threads.
Fonte: Autor
O tempo de execução do teste de carga com 2 threads ativas reduziu
aproximadamente pela metade nos dois monitores de máquinas virtuais (Tabela 3). O
KVM manteve o melhor desempenho com o uso de 2 threads. Devido ao numero de
processadores alocados para as máquinas virtuais, não foi realizado testes com maior
numero de threads.
3.3 Teste de Carga do Disco Rígido
Para o teste de disco rígido é criado duas bases, uma de 20 Gb de dados e outra
de 40Gb de dados, e então é feito entrada e saída de informações de forma aleatória. A
29
tabela 4 representa o valor de informações que o teste executa por segundo com 1 thread
ativa. Neste teste quanto maior o valor, melhor é o desempenho do monitor de máquinas
virtuais, pois ele consegue manipular um maior numero de informações no disco rígido
por segundo.
Tabela 4. Apresenta o valor de informações trocados com disco rígido com 1
thread.
Fonte: Autor
Ao avaliar os valores da tabela 4, o teste de carga do disco rígido com 1 thread
ativa, o XenServer obtém melhor desempenho para a troca de informações com o disco
rígido pois possui um maior valor de informações executadas por segundo. As mesmas
bases foram utilizadas para realizar os testes com 2 threads ativas.
Tabela 5. Apresenta o valor de informações trocados com disco rígido com 2
threads.
Fonte: Autor
Ao analisar os dados da tabela 5 com 2 threads ativas, o XenServer manteve o
melhor desempenho de disco. A base de dados de 40GB de informações aproximou-se a
1 Mb de informação a mais por segundo que o monitor de máquinas virtuais KVM.
Sendo assim, para o teste de carga do disco rígido, o Citrix XenServer tem maior
desempenho que o KVM.
3.4 Considerações Finais
30
Após realizado os testes de desempenho da CPU e disco rígido nas máquinas
virtuais gerenciadas pelos monitores de máquinas virtuais Citrix XenServer 6 e KVM-
88, foi possível verificar uma diferença que embora seja pequena se repetiu em todos os
testes que foram administrados. À medida que o número de processos ou o tamanho
fosse aumentando, o tamanho dessa disparidade também aumentava, levando em
consideração esse resultado, pode se observar que quantos mais se era solicitado da
máquina mais o XenServer ficava em melhor posição do que o KVM.
Podendo assim concluir que o XenServer tem um melhor desempenho e por isso
é melhor recomendado para a utilização de banco de dados MySQL, pois os valores de
transmissão de dados em disco demonstraram um melhor desempenho em comparação a
outra ferramenta de virtualização estudada no trabalho.
31
CONCLUSÃO
Tendo em vista as necessidades do mercado atual, com a necessidade de procura
e demanda em relação a servidores, se vê muito forte a utilização de máquinas virtuais,
ai se entra no problema de qual é a melhor ferramenta de virtualização. Analisar as
ferramentas de virtualização é importante para conseguir definir qual se encaixa melhor
para o seu problema.
Vendo por esse âmbito o estudo aqui desenvolvido levou em consideração essas
questões para analisar duas ferramentas de virtualização, que funcionam de formas
distintas, para descobrir qual apresenta melhor desempenho. As ferramentas escolhidas
para essa pesquisa foram o XenServer e o KVM, elas foram utilizadas para criar
máquinas virtuais e testar sua utilização sobre testes massivos no MySQL.
Os estudos conseguiram demonstrar a diferença das duas ferramentas sob
diferentes solicitações de sistema, demonstrando assim que o XenServer demonstra um
melhor desempenho em comparação ao KVM. Com isso o Citrix XenServer é
recomendado quando for optado pela empresa o uso do banco de dados MySQL.
32
REFERÊNCIA
CALHEIROS, Rodrigo N., RODRIGUES, Guilherme, FARRETO, Tiago, ROSE César
A. F. De. Avaliando o Ambiente de Virtualização Xen Utilizando Aplicações de
Bancos de Dados. Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS),
2007.
BENCHMARK, MySQL Benchmark Tool, Disponível em:
<https://dev.mysql.com/downloads/benchmarks.html> Acessado em: 7 de maio 2015
GONÇALVES, Tiago Schievenin. Virtualização de Servidores Utilizando XEN, São
Paulo: Universidade de São Francisco, 2008.
KOPYTOV, Alexey, SysBench manual, 2009.
ISAM, Informix C-ISAM, Disponível em:
<http://www-03.ibm.com/software/products/pt/imformixcisam> Acesso em: 08 de
junho 2015.
LAUREANO, Marcos Aurelio Pchek,MAZIERO, Carlos Alberto. Virtualização:
Conceitos e Aplicações em Segurança. Centro Universitário Franciscano (UNIFAE),
2008.
MARIADB, MariaDB.org. Dísponivel em : <https://mariadb.org/pt-br/> Acesso em:
03 de Junho 2015.
MILANI, André. MySQL - Guia Do Programador, 2007.
MYSQL, Overview of the MySQL Database Management System, Dísponivel em:
<https://dev.mysql.com/doc/refman/5.0/en/what-is.html> Acesso em: 03 de Junho 2015.
33
NEVES, Pedro, RUAS, Rui, O Guia Prático do MYSQL, 2005.
PACIEVITCH, Yuri. MySQL. Disponível em:
<http://www.infoescola.com/informatica/mysql>. Acesso em: 13 maio 2015.
RODRIGUES, Elder de Macedo, Realocação De Recursos Em Ambientes
vistualizados. Universidade Católica do Rio Grande do Sul,2009.
CITRIX XENSERVER, Citrix XenServer Ferramentas de virtualização,
automatização e gerenciamento avançado para o datacenter, Disponível em:
<https://www.citrix.com/content/dam/citrix/en_us/documents/products-solutions/citrix-
xenserver-product-overview-br.pdf> Acessado em: 1 de junho 2015.
FERREIRA, Anderson Soares. MO801 - Tópicos em Arquitetura e Hardware -
Máquinas Virtuais, Instituto de Computação - Unicamp, 2012.
FERRÃO , Vinícius. Virtualização OpenSource com Citrix XenServer, Instituto
Ifnet, 2014.
JONES, Tim. Descubra a Máquina Virtual do Kernel Linux,
Disponivel em: <https://www.ibm.com/developerworks/br/library/l-linux-kvm/>
Acessado em 9 de junho 2015.
MARIMOTO, Carlos E., KVM: uma opção fácil ao VirtualBox e ao VMware,
Disponivel em:<http://www.hardware.com.br/dicas/kvm-facil.html> Acessado em 9 de
junho 2015.
SAHA, Amit, Virtude profunda, Linux Magazine, , Disponivel em
<http://www.linuxnewmedia.com.br/images/uploads/pdf_aberto/LM38_KVM.pdf >
Acessado em 8 de junho de 2015.
34
SARATHY, Bhavna, KVM Capabilities and New Features, Disponivel
em<https://openvirtualizationalliance.org/news-events/blogs/2013/07/kvm-capabilities-
and-new-features> Acessado em 10 de junho 2015.
XENPROJECT, History, Disponível em:
<http://www.xenproject.org/about/history.html> Acessado em: 3 junho 2015.