35
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 … · Emulação de sistemas operacionais: as aplicações de um sistema operacional sendo executados em outro sistema operacional sobre

  • Upload
    donhi

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

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.