SlideShare ist ein Scribd-Unternehmen logo
1 von 13
As Origens do Xen e Sua Linha do Tempo
   O hipervisor do Xen se originou no Laboratório de Computação da Universidade de
Cambridge como parte do projeto XenoServer em andamento em 2001. Esse projeto tinha
como objetivo criar uma infra-estrutura pública para computação distribuída por amplas áreas.
A intenção do projeto era criar um sistema onde plataformas de execução do XenoServer
estariam espalhadas pelo planeta para uso por qualquer membro no público-alvo. Quando a
infra-estrutura do XenoServer estiver completa, seus usuários enviarão um código para ser
executado e serão cobrados posteriormente pelos recursos utilizados durante a execução.
Garantir que cada um dos nós físicos seja usado em sua máxima capacidade possível exige um
hipervisor de alta performance capaz de hospedar múltiplos sistemas operacionais comuns
num único servidor baseado em x86. Para cumprir tal papel, o Xen foi criado para ser o núcleo
de cada nó do XenoServer. Ele permite estabelecer a responsabilidade pelo consumo de
recursos, auditoria e, o mais importante, o gerenciamento de recursos necessário para a infra-
estrutura do XenoServer. Para maiores informações a respeito do projeto, veja
http://www.xenoservers.net/.
    O Xen foi apresentado ao público pela primeira vez num artigo acadêmico aceito nos
procedimentos de 2003 da Associação de Equipamentos de Computação (ACM, Association for
Computing Machinery) para o Simpósio de Princípios em Sistemas Operacionais (SOSP,
Symposium on Operating System Principles). A afirmação de ter a capacidade de executar
virtualização rápida em máquinas x86 comuns criou um grande interesse na comunidade acadêmica.
Essa afirmação foi verificada independentemente em ambientes acadêmicos, o que serviu para
fortalecê-la. Em breve, um grande número de grupos se interessou por essa nova abordagem de
virtualização. Nos anos seguintes a essa publicação inicial do Xen, muitas atualizações significativas
ocorreram no projeto, permitindo melhorias na funcionalidade, confiabilidade e performance.
    É digno de nota que, durante o desenvolvimento do Xen 1.x, a divisão de Pesquisas
Microsoft, em colaboração com a Universidade de Cambridge, desenvolveu parte do Windows
XP para o Xen. Essa adaptação se tornou possível em parte por causa do Programa de
Licenciamento Acadêmico da Microsoft. Infelizmente, devido aos termos dessa licença, a
adaptação nunca foi publicada, embora tenha sido mencionada no artigo original na SOSP
sobre o Xen.
    Uma empresa em separado, a XenSource, foi fundada em 2004 para promover a ampla
adoção dos hipervisores de código aberto Xen pelo mundo empresarial. Essa empresa
concentrou seus negócios em dar suporte ao desenvolvimento de
                     O Legado da Virtualização18 Capítulo 1 Xen–Básico sobre Plano de Fundo e Virtualização
todo o núcleo de código aberto do Xen, enquanto ao mesmo tempo vendia para
outras corporações pacotes e softwares de gerenciamento. Enquanto a XenSource
liderava e coordenava os esforços de desenvolvimento, contribuições foram feitas
por uma grande variedade de empresas e organizações incluindo IBM, Sun, HP,
Red Hat, Intel, AMD, SGI, Novell, a NSA, a Marinha dos EUA, Samsung, Fujitsu,
Qlogic e muitas outras, incluindo nesse grupo pesquisadores de muitas universida-
des. Juntos, produziram um padrão em que todos podem confiar, que reduziu os
riscos e acelerou o desenvolvimento para todos os participantes.
    Durante o final do ano de 2004, o Xen 2.0 entrou em cena. A nova versão
conseguiu grande flexibilidade na configuração de dispositivos virtuais de E/S dos
sistemas operacionais hóspedes. Nesse ponto do desenvolvimento do Xen, os usu-
ários podiam configurar regras de firewall arbitrárias, roteamento e pontes de in-
terfaces hóspedes virtuais de rede. Suporte adicional foi acrescentado para volumes
LVM de cópia-durante-gravação bem como para arquivos de retorno (loopback) para
manter imagens de disco de sistemas operacionais hóspedes. O Xen 2.0 inclui suporte
para multiprocessamento simétrico, embora imagens de hóspedes continuem com
processadores únicos. A melhoria mais impressionante do ponto de vista da
demonstração foi a adição da migração ativa (live migration), que permite que uma
instância em execução de um sistema operacional seja movida entre hardwares
conectados via rede sem interrupção perceptível no serviço. O Xen introduziu uma
função de migração de hóspedes muito solicitada que impressionou muitos hackers
casuais interessados em open source.
    Durante o ano de 2005, uma comunidade cada vez maior de grupos interes-
sados se formava em torno do Xen. Essa tendência era notável, tanto no mundo
acadêmico quanto no empresarial, e no início de 2006 o Xen tinha conseguido
uma participação significativa no total das virtualizações em uso. Grandes
distribuidores de Linux ficaram cada vez mais interessados em se aproveitar da
tecnologia do Xen para uso de seus clientes, e o suporte ao Xen se tornou padrão
para muitos deles. O hipervisor do Xen 2.0 também suportava mais hóspedes do
que antes, incluindo o Linux, o Open-Solaris, Plan 9 e muitas variantes do BSD.
    Em 2006, o Xen 3.0 introduziu uma camada de abstração para tecnologias de
virtualização de hardware oferecidas pelas implementações do Vanderpool da Intel
e do Pacifica da AMD. Isso permitiu que hóspedes sem alteração (chamados de
Máquinas Virtuais de Hardware, hóspedes HVM, Hardware Virtual Machines) além
dos hóspedes paravirtualizados tradicionais. O Xen 3.0 também incluiu suporte
para sistemas hóspedes de multiprocessamento simétrico (SMP, Symmetric
MultiProcessing) – incluindo CPUs virtuais de conexão dinâmica, suporte para
grandes quantidades de memórias, para módulos de plataforma segura (TPM,
Trusted Platform 19
Modules) e uma versão para a arquitetura IA64. Versões seguintes do Xen incluíam um
novo agendador para CPUs com suporte para pesos, limites e balanceamento de carga SMP
automática, bem como ferramentas de medida (Xen-oprofile), que permitiria aos
desenvolvedores usuários de Xen otimizar código para obter ainda melhor desempenho no
futuro. Outras características notáveis incluíam aumento na performance de rede graças a
redução de carga de segmentação de pacotes, suporte melhorado para a IA64 e a primeira
versão para a arquitetura de processadores Power.
Em 2007, a Citrix comprou a XenSource e esta se tornou o Grupo do Produto XenServer
Citrix. Também em 2007, o Xen 3.1 foi lançado. Ele dava suporte à XenAPI, uma interface de
programação para comandos Xen que permitia a integração de ferramentas de gerenciamento
de terceiros, incluindo as baseadas no Modelo Comum de Informações da Força Tarefa de
Gerenciamento Distribuído (DMTF CIM, Distributed Management Task Force’s Common
Information Model) que está se tornando um padrão para gerenciamento de agrupamentos de
máquinas heterogêneas. Ela também possui capacidades de salvar/restaurar/migrar e controle
dinâmico de memória para hóspedes HVM. A versão atual do Xen está disponível em
http://xen.org/download/. Quando este livro estava a ponto de ser publicado, a versão
liberada mais recente do Xen era a 3.2.




Por que Virtualizar?
Foi em junho de 1959 que Christopher Strachey apresentou à International
Conference on Information Processing na UNESCO em New York o paper
'Time Sharing in Large Fast Computers' e estabeleceu um novo conceito de
utilização de máquinas de grande porte visando produtividade dos recursos
computacionais. Este novo conceito atraiu o interesse de empresas de
grande porte, pois, virtualizar naquela época era sinônimo de economia de
hardware, de espaço físico entre outras.
Aí hoje você se pergunta: "Por que virtualizar nos dias atuais? Já que o
custo de hardware diminuiu drasticamente nos últimos anos.". É exatamente
esta e outras respostas que pretendemos esclarecer para que você se
assegure da necessidade da virtualização nos dias atuais.
Uma pergunta que você deve fazer a si mesmo para optar por virtualização:
Quanto de recurso de seu Data Center é atualmente utilizado?
A resposta mais interessante para esta pergunta foi respondida por
empresas de grande influência mundial como a Microsoft Corporation© e a
Sun Microsystems© através de estudos realizados. Quanto a utilização
média de Data Centers, estas empresas chegaram a um resultado comum
de 5% a 15%. Consolidar a fatia restante é economicamente interessante
tanto da visão comercial quanto técnica.

Isolamento de hardware
Não podemos negar que o custo de um equipamento de grande porte hoje é
infinitamente inferior comparado a 50 anos atrás. Na mesma linha, e
inversamente proporcional, está o desempenho desses novos
equipamentos, que anteriormente ocupavam uma sala inteira; hoje
simplesmente cabem na palma da mão, com desempenho e complexidade
superior.
Isto é uma realidade. Nos últimos anos equipamentos têm caído de preço
consideravelmente, mas estão cada vez mais complexos necessitando de
novos drivers , novos sistemas operacionais, novos softwares, etc...
Para instalar seu novo servidor um workload default para instalação de um
novo servidor significa normalmente instalar um Sistema Operacional,
configurar novos dispositivos, instalar seus programas e ter esperança que
esteja tudo correto na validação das funcionalidades antes de colocar o
servidor em produção.
Adicionar um novo servidor em seu data center será muito mais simples que
no modelo convencional. A idéia de manipular fisicamente um equipamento
ocorrerá somente quando houver necessidade de adicionar mais hardware
em seu cluster de máquinas virtuais. Caso se deseje adicionar apenas um
Sistema Operacional para ativar um determinado serviço, você poderá
simplesmente reservar uma 'fatia' de recursos nos equipamentos existentes
em seu cluster obtendo virtualização de todos os recursos necessários para
o funcionamento do Sistema Operacional como dispositivos de rede,
memória, processamento e disco rigido.
Máquinas Virtuais irão reduzir suas dores de cabeça em na adição de novos
“servidores” no seu parque de TI como eles não precisam lidar diretamente
com o hardware em si , você tem um hardware virtual pré-definido para sua
maquina onde sempre serão os mesmos drivers . Software para
manutenção ou adição de funcionalidades etc... “servidores” esses onde
você pode criar imagens pré-definidas também conhecida como Virtual
Appliances para um melhor provisionamento de suas máquinas virtuais com
isso você pode reduzir drasticamente o tempo consumido para instalação
de seu servidor usando Virtualização.
Visão Histórica da Virtualização
O conceito de virtualização é antigo: Data os anos 60, com o uso mais
precoce realizado no antigo IBM 7044 CTSS (Compatible Time-Share System –
Sistema Compatível com Compartilhamento de Tempo); Segundo JONES
(2006)
este equipamento foi denominado "Projeto Atlas", oriundo de um estudo
realizado
em conjunto com o MIT (Massachusetts Institute of Technology – Instituto de
Tecnologia do Massachusetts), a Ferranti Ltd. e a University of Manchester
(universidade de Manchester), no qual foi utilizado um mainframe IBM 704
M44/44X
com implementação de chamadas supervisoras.
O sistema operacional deste mainframe (na época chamado "Supervisor")
executava duas máquinas virtuais, uma para o sistema e uma para execução
de
programas, servindo de base para outros computadores que viriam após ele.
Assim, com base nesta tecnologia, em 1966 foi lançado o mainframe IBM
System/360 modelo 67, onde o hardware do equipamento era inteiramente
acessado através de uma interface chamada VMM (Virtual Machine Monitor). O
VMM funcionava diretamente no hardware básico do equipamento, permitindo
então
a execução de máquinas virtuais. Cada máquina virtual poderia ser uma nova
instância do mesmo sistema operacional base em prévia execução.
19
Com essa funcionalidade, o antigo termo "Supervisor" foi então
denominado "Hypervisor". Ou seja, um software que provê ambiente de
virtualização
para o sistema operacional rodando acima dele.
No início da década de 70, a IBM anunciou a série de mainframes
System/370, e em 1972 anunciou o sistema operacional VM/370, que permitia
a
criação de múltiplas máquinas virtuais para os mainframes desta série. O
VM/370 foi
atualizado em conjunto com toda a linha de mainframes da IBM, e hoje é
conhecido
como IBM z/VM, um dos sistemas operacionais para os mainframes da série
System/Z, e mantém compatibilidade total com os aplicativos desenvolvidos
ainda
para o System/370.

Figura 3: Hypervisor
Segundo SIQUEIRA (2007), este modelo como hypervisor obtém
preferência para os ambientes virtualizados, pois, os hóspedes sabem
perfeitamente
25
que rodam em um ambiente virtual. Para isso, os guests precisam ser
corrigidos, o
que só é possível de conseguir em sistemas de código aberto7.
Uma vez que os sistemas operacionais sejam adaptados, a interação
entre as máquinas virtuais e a máquina física é otimizada, o que aumenta o
desempenho. Porém, a grande desvantagem deste modelo continua sendo a
dependência da alteração do sistema operacional de gerenciamento e dos
guests,
para que possam interagir com o hypervisor ao invés do hardware físico.

Hardware requerido
Atualmente, o Xen roda nos computadores da plataforma x86, sendo
necessário algum processador P6 (de sexta geração), como um Pentium Pro,
Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon (Duron), Athlon
64 e
Opteron. Multi-processamento é suportado, e existem portes em andamento
para as
plataformas Intel IA64 (processador Itanium) e Power (processadores PowerPC
e
POWER).
O Xen, por padrão, suporta até de 4GB de memória RAM em modo de
execução 32 bits. Como é uma quantidade pequena para os servidores nos
dias
atuais, existe o suporte para as extensões PAE11, da Intel, que permite que
sistemas
operacionais x86 de 32bits possam endereçar até 64GB de memória Ram. O
Xen
3.0 também suporta as arquiteturas x86/64 bits.




Vantagens e Desvantagens
Existem diversas vantagens na virtualização, a seguir serão citadas as principais [5]:
a) Segurança: Usando máquinas virtuais, pode ser definido qual é o melhor ambiente
para
executar cada serviço, com diferentes requerimentos de segurança, ferramentas
diferentes e o sistema operacional mais adequado para cada serviço. Além disso, cada
máquina virtual é isolada das demais. Usando uma máquina virtual para cada serviço, a
vulnerabilidade de um serviço não prejudica os demais.
b) Confiança e disponibilidade: A falha de um software não prejudica os demais
serviços.c) Custo: A redução de custos é possível de ser alcançada com a consolidação
de pequenos
servidores em outros mais poderosos. Essa redução pode variar de 29% a 64% [5].
d) Adaptação às diferentes cargas de trabalho: Variações na carga de trabalho podem
ser
tratadas facilmente. Ferramentas autônomas podem realocar recursos de uma máquina
virtual para a outra.
e) Balanceamento de carga: Toda a máquina virtual está encapsulada no VMM. Sendo
assim é fácil trocar a máquina virtual de plataforma, a fim de aumentar o seu
desempenho.
f) Suporte a aplicações legadas: Quando uma empresa decide migrar para um novo
Sistema Operacional, é possível manter o sistema operacional antigo sendo executado
em uma máquina virtual, o que reduz os custos com a migração. Vale ainda lembrar que
a virtualização pode ser útil para aplicações que são executadas em hardware legado,
que está sujeito a falhas e tem altos custos de manutenção. Com a virtualização desse
hardware, é possível executar essas aplicações em hardwares mais novos, com custo de
manutenção mais baixo e maior confiabilidade.
Por outro lado, existem as desvantagens da virtualização, sendo as principais:
a) Segurança: Segundo Neil MacDonald, especialista de segurança da Gartner, hoje em
dia, as máquinas virtuais são menos seguras que as máquinas físicas justamente por
causa do VMM [2]. Este ponto é interessante, pois se o sistema operacional hospedeiro
tiver alguma vulnerabilidade, todas as máquinas virtuais que estão hospedadas nessa
máquina física estão vulneráveis, já que o VMM é uma camada de software, portanto,
como qualquer software, está sujeito a vulnerabilidades.
b) Gerenciamento: Os ambientes virtuais necessitam ser instanciados, monitorados,
configurados e salvos [2]. Existem produtos que fornecem essas soluções, mas esse é o
campo no qual estão os maiores investimentos na área de virtualização, justamente por
se tratar de um dos maiores contra-tempos na implementação da virtualização. Vale
lembrar que o VMWare é a plataforma mais flexível e fácil de usar, mas ainda apresenta
falhas que comprometem a segurança, assim como as demais plataformas [2].
c) Desempenho: Atualmente, não existem métodos consolidados para medir o
desempenho
de ambientes virtualizados. No entanto, a introdução de uma camada extra de software
entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de
processamento superior ao que se teria sem a virtualização. Outro ponto importante de
ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas
por processador, sem que haja o prejuízo da qualidade de serviço.
Virtualização total e para-virtualização
Existem duas formas de implementação dos monitores de máquina virtual: a
virtualização
total e a para-virtualização.
A virtualização total tem por objetivo fornecer ao sistema operacional visitante uma
réplica
do hardware subjacente. Dessa forma, o sistema operacional visitante é executado sem
modificações sobre o monitor de máquina virtual (VMM), o que traz alguns
inconvenientes. O
primeiro é que o número de dispositivos a serem suportados pelo VMM é extremamente
elevado.
Para resolver esse contratempo, as implementações da virtualização total usam
dispositivos
genéricos, que funcionam bem para a maioria dos dispositivos disponíveis, mas não
garantem o uso
da totalidade de sua capacidade. Outro inconveniente da virtualização total é o fato de o
sistema
operacional visitante não ter conhecimento de que está sendo executado sobre o VMM,
então as
instruções executadas pelo sistema operacional visitante devem ser testadas pelo VMM
para que
depois sejam executadas diretamente no hardware, ou executadas pelo VMM e
simulada a
execução para o sistema visitante. Por fim, o último inconveniente da virtualização total
é o fato de
ter que contornar alguns problemas gerados pela implementação dos sistemas
operacionais, já que
esses foram implementados para serem executados como instância única nas máquinas
física, não
disputando recursos com outros sistemas operacionais. Um exemplo desse último
inconveniente é
uso de paginação na memória virtual, pois há a disputa de recursos entre diversas
instâncias de
sistemas operacionais, o que acarreta em uma queda do desempenhoA para-
virtualização é uma alternativa à virtualização total. Nesse modelo de virtualização,
o sistema operacional é modificado para chamar o VMM sempre que executar uma
instrução que
possa alterar o estado do sistema, uma instrução sensível. Isso acaba com a necessidade
de o VMM
testar instrução por instrução, o que representa um ganho significativo de desempenho.
Outro ponto
positivo da para-virtualização é que os dispositivos de hardware são acessados por
drivers da
própria máquina virtual, não necessitando mais do uso de drivers genéricos que inibiam
o uso da
capacidade total do dispositivo.
Embora a para-virtualização apresentasse um ganho de desempenho significativo frente
à
virtualização total, essa disparidade tem sido superada devido à presença de instruções
de
virtualização nos processadores Intel e AMD, que favorecem a virtualização total. A
tecnologia de
virtualização da Intel é a IVT (Intel Virtualization Technology), codinome Vanderpool.
A da AMD
é a AMD-V (AMD-Virtualization), codinome Pacífica. Embora tenham sido
desenvolvidas para o
mesmo propósito, foram desenvolvidas de maneira independentes. Por esse motivo, há
alguns
problemas na portabilidade de máquinas virtuais de uma arquitetura Intel para a
arquitetura AMD e
vice-versa.
Portanto, tendo em vista as técnicas de virtualização, a decisão de qual melhor a técnica
de
virtualização para um dado ambiente está intimamente ligada a qual o processador da
máquina
física que vai hospedar as virtuais, bem como se o processador possui ou não uma
extensão no seu
conjunto de instruções que suporte a virtualização.



Xen
O Xen é um dos mais populares exemplos de para-virtualização. Na virtualização total,
o
sistema operacional visitante tenta executar tarefas protegidas e, por estarem no espaço
de aplicação
do sistema operacional hospedeiro, não podem ser executadas. No entanto, o VMM
intervem e
executa ou simula a execução dessas, o que reduz o desepenho da virtualização total. Já
a paravirtualização
apresenta-se como uma alternativa a isso, na medida em que o sistema operacional
visitante é modificado para não tentar executar diretamente na CPU as tarefas
protegidas, mas
entregar essas ao VMM. Este tipo de virtualização tem um ganho de desempenho
significativo
frente à total.
Uma das maiores vantagens do uso do Xen como VMM na para-virtualização é o fato
de
que este apresenta um desempenho melhor do que os produtos de virtualização total,
quando a
máquina física hospedeira não tem instruções de hardware de suporte a virtualização.
No entanto,
há a necessidade de que o sistema visitante seja portado para o Xen, o que não chega a
ser uma
desvantagem, já que os sistemas operacionais mais comuns no mercado têm versões
para o Xen.
Alguns dos sistemas suportados pelo Xen são Linux, FreeBSD e Windows XP.
A tecnologia de virtualização provida pelo Xen difere da tecnologia do VMWare. O
Xen
segue o conceito da para-virtualização, que fornece um conjunto de abstrações
(processador virtual,
memória virtual, rede virtual etc.) sobre o qual diferentes sistemas podem ser portados
[7]. As
abstrações não são necessariamente similares ao hardware da máquina física
hospedeira.
Para entender como o Xen implementa a para-virtualização, é importante salientar dois
conceitos: o de domínio e o de hypervisor. Os domínios são as máquinas virtuais do
Xen. Essas
podem ser de dois tipos, privilegiadas (domínio 0) e não-privilegiadas (domínio U). O
hypervisor é
o responsável por controlar os recursos de comunicação, de memória e de
processamento das
máquinas virtuais, mas não possui os drivers para manipular os dispositivos
diretamente.
Quando a máquina hospedeira é iniciada, uma máquina virtual do domínio 0,
privilegiado,
é criada. Esse domínio acessa uma interface de controle e executa aplicações de
gerenciamento. As
máquinas virtuais dos domínios U só podem ser criadas, iniciadas e desligadas através
do domínio
0. Na máquina virtual do domínio 0, é executado um Linux com núcleo modificado, que
pode
acessar os recursos da máquina física, já que possui privilégios especiais, e ainda se
comunicar com
as outras máquinas virtuais, domínio U.
O sistema operacional do domínio 0 tem que ser modificado para possuir os drivers de
dispositivo da máquina física e dois drivers que tratam requisições de acessos à rede e
ao disco
realizadas pelas máquinas virtuais do domínio U. Em suma, só a máquina virtual do
domínio 0 tem
acesso direto aos recursos da máquina física, enquanto que as demais máquinas virtuais
têm acesso
a uma abstração dos recursos, que para serem acessados, as máquina virtuais dos
domínios U têm
que acessar através do domínio 0.


Para a virtualização da memória, o Xen reserva para cada máquina virtual uma
determinada quantidade de memória, que pode ser alterada a qualquer momento sem a
necessidade
de terminar ou reiniciar a máquina virtual. Cada máquina virtual pode ter uma ou mais
interfaces de
rede virtuais. A comunicação entre as interfaces é implementada por dois token rings,
um para
enviar e outro para receber [7].
Atualmente, o Xen conta também com um domínio no qual é feita a virtualização total,
o
que permite que sistemas operacionais não modificados sejam executados sobre o
hypervisor Xen.
Inicialmente, a escolha pela para-virtualização justificava-se pelo fato de que o ganho
em
desempenho era muito maior do que com a virtualização total. No entanto, com o
advento das
arquiteturas AMD-V e Intel VT, arquitetura que dão o suporte de hardware para a
virtualização, a
virtualização total passou a obter resultados de desempenho melhores que os da para-
virtualização.
Vale ressaltar que o domínio de virtualização total disponível no Xen a partir da sua
versão 3.0, só
pode ser usado nas máquinas hospedeiras que possuam suporte de hardware à
virtualização.

Uso da virtualização
 Consolidação de Servidores
Um pensamento comum entre administradores de rede é de ter um servidor por serviço.
Esta medida garante uma maior segurança e maior disponibilidade dos serviços na rede,
já que a
falha de um servidor só afeta um serviço e a vulnerabilidade de um serviço só expõe um
servidor.
No entanto, a taxa de utilização dos recursos de hardware de um servidor é
extremamente baixa, o
que indica uma subutilização de seus recursos.
A consolidação de servidores consiste em usar uma máquina física com diversas
máquinas
virtuais, sendo uma para cada servidor. Essa nova abordagem garante o isolamento dos
servidores e
apresenta as vantagens de aumentar a taxa de utilização de servidores, reduzir os custos
operacionais, criar ambientes mais flexíveis e reduzir custos de administração de TI. O
ponto mais
importante da consolidação de servidores é o melhor aproveitamento dos recursos, já
que se existem
n servidores com uma taxa de utilização x, tal que x < 100%, é menos custoso e mais
vantajoso
consolidar os n servidores em apenas um, com taxa de utilização de n.x, desde que n.x <
100%.
Outro ponto a ser levantado é que a consolidação permite ocupar menos espaço físico
com
servidores, pois estes passam a ser apenas uma máquina física. Isso propicia menos
gastos com
eletricidade, já que o número de máquinas é menor, e com manutenção de máquinas.
Vale ainda
lembrar que a virtualização aumenta a flexibilidade, pois pode-se instalar diversos
ambientes em
uma mesma máquina, por exemplo, ter serviços que são executados em ambiente
Windows,
coexistindo em uma mesma máquina física, mas em máquinas virtuais distintas, que
serviços que
são executados em ambiente Linux.
 Virtualização da Infra-estrutura de TI
A virtualização da infra-estrutura de TI diferencia-se da consolidação de servidores na
medida em que a consolidação só prevê o isolamento dos servidores em máquinas
virtuais,
enquanto a virtualização da infra-estrutura de TI vai mais além. A virtualização da infra-
estrutura de
TI prevê a virtualização de toda a estrutura da rede, com a criação de comutadores,
roteadores e
outros equipamentos virtuais, interconectado às máquinas virtuais. Outro ponto de
distinção entre a
consolidação e a virtualização da infra-estrutura é que esta permite a alocação dinâmica
de recursos
para as máquinas virtuais, levando a um processo de automação da infra-estrutura de TI.
 Laboratórios de ensino
A aplicação da virtualização em laboratórios de ensino tem por objetivo criar um
ambiente
que isole o estudante da máquina física. O estudante tem acesso a uma instância de uma
máquina
virtual, que pode ser facilmente recuperada de uma falha após o seu uso. Também é
interessante
notar que em ambientes virtualizados, a introdução de mais um sistema operacional no
laboratório,
não envolve a reinstalação das máquinas, mas somente a cópia dos arquivos de
configuração e
controle da máquina virtual do novo sistema operacional para as máquinas hospedeiras.
Em suma, a virtualização de laboratórios de ensino tem como vantagens a redução dos
custos de manutenção, aumento da flexibilidade e aumento da segurança.
 Desenvolvimento de Software
Em um ambiente de desenvolvimento de software, o uso de ambientes virtuais tem dois
objetivos principais. O primeiro é fornecer ambientes distintos, com sistemas
operacionais
diferentes ou de diferentes versões, para que se possa testar o software e verificar o seu
comportamento em outros ambientes, concomitantemente. O segundo é criar ambientes
isolados no
qual uma falha do software que está sendo desenvolvido não comprometa o sistema
operacional da
máquina hospedeira. Se o software em desenvolvimento vier a comprometer o sistema
da máquina
virtual, este pode ser recuperado copiando os arquivos de outra máquina, ou
recuperando os
arquivos da máquina comprometida do último backup.
Conclusão
A virtualização é uma técnica que está cada vez mais presente na área de TI. Isso vem
sendo revelado pelo grande número de empresas que surgem com soluções de gerência
de
ambientes virtualizados e pelo aumento sucessivo nos investimento na área [2]. Essa
técnica não é
recente, mas após a popularização do PC, ela perdeu um pouco de destaque no cenário
da TI. No
entanto, esse destaque que vem sendo dado à virtualização recentemente é fruto do
aumento do
poder computacional, que não foi seguido pela taxa de utilização dos computadores, o
que gerou
muitos recursos ociosos. A fim de aproveitar esses recursos, a idéia da virtualização
retornou ao
cenário da TI.
Embora a técnica da virtualização pareça ser a solução para grande parte dos problemas
de
infra-estrutura de TI, sua aplicação deve ser estudada e devem ser avaliados os
transtornos que
podem ser gerados. A aplicação da técnica da virtualização traz consigo uma mudança
de
paradigma e, portanto, deve ser avaliada como um projeto de longo prazo. A sua adoção
implicará
na mudança de política de compras e instalação de novos sistemas.
Outro ponto a ser destacado na adoção da técnica de virtualização é qual vertente deve
ser
seguida, a virtualização total ou a para-virtualização. Cada uma tem sua especificidade e
a escolha
de qual é melhor para o ambiente de trabalho está intimamente ligada a qual será o
hardware
subjacente às máquinas virtuais. Caso seja um hardware com suporte à virtualização, ou
seja, da
arquitetura AMD-V ou Intel VT, o mais aconselhável é o uso do virtualização total.
Caso contrário,
o aconselhável é o uso da para-virtualização, que obteve melhores resultados de
desempenho em
teste realizados com hardware sem suporte à virtualização [7].
Em suma, a proposta da virtualização é muito atraente e traz diversos benefícios.
Entretanto, como todo sistema computacional, está sujeito a falhas. A adoção da
virtualização como
paradigma a ser seguido é uma decisão que deve ser tomada avaliando uma série de
fatores e
ponderando os riscos e os benefícios. Portanto, para empregar a técnica de virtualização,
o mais
correto a ser feito é um projeto de longo prazo, que adote a virtualização em pequenos
passos.
Para finalizar, vale lembrar que esta é uma área que está em crescimento e que novos
produtos surgem a todo o momento. Portanto, existem questões que ainda não estão
completamente
resolvidas, tais como a migração de máquinas, a configuração automática de máquinas
virtuais,
facilidades de backup e a recuperação de falhas [2].

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação Windows Server 2012 R2
Apresentação Windows Server 2012 R2Apresentação Windows Server 2012 R2
Apresentação Windows Server 2012 R2Invent IT Solutions
 
Instalação do Windows Server 2008
Instalação do Windows Server 2008Instalação do Windows Server 2008
Instalação do Windows Server 2008Guilherme Lima
 
Windows Server 2008 - Marcio
Windows Server 2008 - MarcioWindows Server 2008 - Marcio
Windows Server 2008 - MarcioAnderson Favaro
 
Hyper-V - avançado
Hyper-V - avançadoHyper-V - avançado
Hyper-V - avançadoFabio Hara
 
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...Lucas Vinícius
 
Windows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvemWindows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvemFabio Hara
 
Apresentação VDI com VMware View
Apresentação VDI com VMware ViewApresentação VDI com VMware View
Apresentação VDI com VMware ViewBlue Solutions
 
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...Joao Galdino Mello de Souza
 
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaVirtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaAugusto Giles
 
Introdução ao windows server
Introdução ao windows serverIntrodução ao windows server
Introdução ao windows serverGuiTelmoRicardo
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOAllan Reis
 
Configurando o serviço dhcp no windows server 2012
Configurando o serviço dhcp no windows server 2012Configurando o serviço dhcp no windows server 2012
Configurando o serviço dhcp no windows server 2012Mario Kleber
 
Virtualização Teste
Virtualização TesteVirtualização Teste
Virtualização Testegabrielca200
 
vSpace - Especificações Técnicas
vSpace - Especificações TécnicasvSpace - Especificações Técnicas
vSpace - Especificações TécnicasScanSource Brasil
 

Was ist angesagt? (20)

Apresentação Windows Server 2012 R2
Apresentação Windows Server 2012 R2Apresentação Windows Server 2012 R2
Apresentação Windows Server 2012 R2
 
Hyper-V
Hyper-VHyper-V
Hyper-V
 
Windows server
Windows serverWindows server
Windows server
 
Consolidação Mic&Mac Soluções em TI
Consolidação Mic&Mac Soluções em TIConsolidação Mic&Mac Soluções em TI
Consolidação Mic&Mac Soluções em TI
 
Instalação do Windows Server 2008
Instalação do Windows Server 2008Instalação do Windows Server 2008
Instalação do Windows Server 2008
 
Cap4 v2
Cap4 v2Cap4 v2
Cap4 v2
 
Windows Server 2008 - Marcio
Windows Server 2008 - MarcioWindows Server 2008 - Marcio
Windows Server 2008 - Marcio
 
Hyper-V - avançado
Hyper-V - avançadoHyper-V - avançado
Hyper-V - avançado
 
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
 
Windows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvemWindows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvem
 
Apresentação VDI com VMware View
Apresentação VDI com VMware ViewApresentação VDI com VMware View
Apresentação VDI com VMware View
 
Windows server 2012
Windows server 2012Windows server 2012
Windows server 2012
 
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
 
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaVirtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
 
Introdução ao windows server
Introdução ao windows serverIntrodução ao windows server
Introdução ao windows server
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
 
Configurando o serviço dhcp no windows server 2012
Configurando o serviço dhcp no windows server 2012Configurando o serviço dhcp no windows server 2012
Configurando o serviço dhcp no windows server 2012
 
Linux ad
Linux adLinux ad
Linux ad
 
Virtualização Teste
Virtualização TesteVirtualização Teste
Virtualização Teste
 
vSpace - Especificações Técnicas
vSpace - Especificações TécnicasvSpace - Especificações Técnicas
vSpace - Especificações Técnicas
 

Andere mochten auch (14)

sheers
sheerssheers
sheers
 
valerin flores
valerin flores valerin flores
valerin flores
 
Splatter_Final PDF
Splatter_Final PDFSplatter_Final PDF
Splatter_Final PDF
 
Arriagada genero y politica publicas
Arriagada genero y politica publicasArriagada genero y politica publicas
Arriagada genero y politica publicas
 
Guia
GuiaGuia
Guia
 
RedEditorial.PDF
RedEditorial.PDFRedEditorial.PDF
RedEditorial.PDF
 
Presentation_NEW.PPTX
Presentation_NEW.PPTXPresentation_NEW.PPTX
Presentation_NEW.PPTX
 
brianlane.postshowrecapPDF
brianlane.postshowrecapPDFbrianlane.postshowrecapPDF
brianlane.postshowrecapPDF
 
BohemianSister.Marketing.PDF
BohemianSister.Marketing.PDFBohemianSister.Marketing.PDF
BohemianSister.Marketing.PDF
 
UrbanFrontier.editorial.PDF
UrbanFrontier.editorial.PDFUrbanFrontier.editorial.PDF
UrbanFrontier.editorial.PDF
 
Rubrica
RubricaRubrica
Rubrica
 
shirtologi
shirtologishirtologi
shirtologi
 
Karol tatiana chacon 602 jt
Karol tatiana chacon 602 jtKarol tatiana chacon 602 jt
Karol tatiana chacon 602 jt
 
Rccp
RccpRccp
Rccp
 

Ähnlich wie 33333907 tcc-virtualizacao-xen-neto

Filsol CE 2011 - Overview XCP - Xen Cloud Platform
Filsol CE 2011 - Overview XCP - Xen Cloud PlatformFilsol CE 2011 - Overview XCP - Xen Cloud Platform
Filsol CE 2011 - Overview XCP - Xen Cloud PlatformLorscheider Santiago
 
Curso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao PauloCurso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao PauloGrupo Treinar
 
Virtualização e consolidação de servidores
Virtualização e consolidação de servidoresVirtualização e consolidação de servidores
Virtualização e consolidação de servidoresRuy Mendonça
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalAnderson Favaro
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Marcel Cattaneo
 
Virtualização com Citrix XENSERVER
Virtualização com Citrix XENSERVERVirtualização com Citrix XENSERVER
Virtualização com Citrix XENSERVERImpacta Eventos
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura AndroidMaycon Viana Bordin
 
Maximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerMaximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerLorscheider Santiago
 
O que é virtualização
O que é virtualizaçãoO que é virtualização
O que é virtualizaçãoWILSON GOMES
 
Windows 2003 guia_completo
Windows 2003 guia_completoWindows 2003 guia_completo
Windows 2003 guia_completocleanrail
 
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...Bruno Grange
 
O que é OpenShift ?
O que é OpenShift ?O que é OpenShift ?
O que é OpenShift ?Raul Leite
 

Ähnlich wie 33333907 tcc-virtualizacao-xen-neto (20)

Filsol CE 2011 - Overview XCP - Xen Cloud Platform
Filsol CE 2011 - Overview XCP - Xen Cloud PlatformFilsol CE 2011 - Overview XCP - Xen Cloud Platform
Filsol CE 2011 - Overview XCP - Xen Cloud Platform
 
Curso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao PauloCurso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao Paulo
 
Virtualização e consolidação de servidores
Virtualização e consolidação de servidoresVirtualização e consolidação de servidores
Virtualização e consolidação de servidores
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema Operacional
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.
 
snto
sntosnto
snto
 
Virtualização com Citrix XENSERVER
Virtualização com Citrix XENSERVERVirtualização com Citrix XENSERVER
Virtualização com Citrix XENSERVER
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura Android
 
Apresentacao Suse
Apresentacao SuseApresentacao Suse
Apresentacao Suse
 
Maximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerMaximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServer
 
O que é virtualização
O que é virtualizaçãoO que é virtualização
O que é virtualização
 
Xen.org Overview Portuguese
Xen.org Overview PortugueseXen.org Overview Portuguese
Xen.org Overview Portuguese
 
Artigo
ArtigoArtigo
Artigo
 
Citrix XenServer
Citrix XenServerCitrix XenServer
Citrix XenServer
 
Zeus Framework
Zeus FrameworkZeus Framework
Zeus Framework
 
Aula01
Aula01Aula01
Aula01
 
Windows 2003 guia_completo
Windows 2003 guia_completoWindows 2003 guia_completo
Windows 2003 guia_completo
 
Windows 2003 guia_completo
Windows 2003 guia_completoWindows 2003 guia_completo
Windows 2003 guia_completo
 
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
 
O que é OpenShift ?
O que é OpenShift ?O que é OpenShift ?
O que é OpenShift ?
 

33333907 tcc-virtualizacao-xen-neto

  • 1. As Origens do Xen e Sua Linha do Tempo O hipervisor do Xen se originou no Laboratório de Computação da Universidade de Cambridge como parte do projeto XenoServer em andamento em 2001. Esse projeto tinha como objetivo criar uma infra-estrutura pública para computação distribuída por amplas áreas. A intenção do projeto era criar um sistema onde plataformas de execução do XenoServer estariam espalhadas pelo planeta para uso por qualquer membro no público-alvo. Quando a infra-estrutura do XenoServer estiver completa, seus usuários enviarão um código para ser executado e serão cobrados posteriormente pelos recursos utilizados durante a execução. Garantir que cada um dos nós físicos seja usado em sua máxima capacidade possível exige um hipervisor de alta performance capaz de hospedar múltiplos sistemas operacionais comuns num único servidor baseado em x86. Para cumprir tal papel, o Xen foi criado para ser o núcleo de cada nó do XenoServer. Ele permite estabelecer a responsabilidade pelo consumo de recursos, auditoria e, o mais importante, o gerenciamento de recursos necessário para a infra- estrutura do XenoServer. Para maiores informações a respeito do projeto, veja http://www.xenoservers.net/. O Xen foi apresentado ao público pela primeira vez num artigo acadêmico aceito nos procedimentos de 2003 da Associação de Equipamentos de Computação (ACM, Association for Computing Machinery) para o Simpósio de Princípios em Sistemas Operacionais (SOSP, Symposium on Operating System Principles). A afirmação de ter a capacidade de executar virtualização rápida em máquinas x86 comuns criou um grande interesse na comunidade acadêmica. Essa afirmação foi verificada independentemente em ambientes acadêmicos, o que serviu para fortalecê-la. Em breve, um grande número de grupos se interessou por essa nova abordagem de virtualização. Nos anos seguintes a essa publicação inicial do Xen, muitas atualizações significativas ocorreram no projeto, permitindo melhorias na funcionalidade, confiabilidade e performance. É digno de nota que, durante o desenvolvimento do Xen 1.x, a divisão de Pesquisas Microsoft, em colaboração com a Universidade de Cambridge, desenvolveu parte do Windows XP para o Xen. Essa adaptação se tornou possível em parte por causa do Programa de Licenciamento Acadêmico da Microsoft. Infelizmente, devido aos termos dessa licença, a adaptação nunca foi publicada, embora tenha sido mencionada no artigo original na SOSP sobre o Xen. Uma empresa em separado, a XenSource, foi fundada em 2004 para promover a ampla adoção dos hipervisores de código aberto Xen pelo mundo empresarial. Essa empresa concentrou seus negócios em dar suporte ao desenvolvimento de O Legado da Virtualização18 Capítulo 1 Xen–Básico sobre Plano de Fundo e Virtualização
  • 2. todo o núcleo de código aberto do Xen, enquanto ao mesmo tempo vendia para outras corporações pacotes e softwares de gerenciamento. Enquanto a XenSource liderava e coordenava os esforços de desenvolvimento, contribuições foram feitas por uma grande variedade de empresas e organizações incluindo IBM, Sun, HP, Red Hat, Intel, AMD, SGI, Novell, a NSA, a Marinha dos EUA, Samsung, Fujitsu, Qlogic e muitas outras, incluindo nesse grupo pesquisadores de muitas universida- des. Juntos, produziram um padrão em que todos podem confiar, que reduziu os riscos e acelerou o desenvolvimento para todos os participantes. Durante o final do ano de 2004, o Xen 2.0 entrou em cena. A nova versão conseguiu grande flexibilidade na configuração de dispositivos virtuais de E/S dos sistemas operacionais hóspedes. Nesse ponto do desenvolvimento do Xen, os usu- ários podiam configurar regras de firewall arbitrárias, roteamento e pontes de in- terfaces hóspedes virtuais de rede. Suporte adicional foi acrescentado para volumes LVM de cópia-durante-gravação bem como para arquivos de retorno (loopback) para manter imagens de disco de sistemas operacionais hóspedes. O Xen 2.0 inclui suporte para multiprocessamento simétrico, embora imagens de hóspedes continuem com processadores únicos. A melhoria mais impressionante do ponto de vista da demonstração foi a adição da migração ativa (live migration), que permite que uma instância em execução de um sistema operacional seja movida entre hardwares conectados via rede sem interrupção perceptível no serviço. O Xen introduziu uma função de migração de hóspedes muito solicitada que impressionou muitos hackers casuais interessados em open source. Durante o ano de 2005, uma comunidade cada vez maior de grupos interes- sados se formava em torno do Xen. Essa tendência era notável, tanto no mundo acadêmico quanto no empresarial, e no início de 2006 o Xen tinha conseguido uma participação significativa no total das virtualizações em uso. Grandes distribuidores de Linux ficaram cada vez mais interessados em se aproveitar da tecnologia do Xen para uso de seus clientes, e o suporte ao Xen se tornou padrão para muitos deles. O hipervisor do Xen 2.0 também suportava mais hóspedes do que antes, incluindo o Linux, o Open-Solaris, Plan 9 e muitas variantes do BSD. Em 2006, o Xen 3.0 introduziu uma camada de abstração para tecnologias de virtualização de hardware oferecidas pelas implementações do Vanderpool da Intel e do Pacifica da AMD. Isso permitiu que hóspedes sem alteração (chamados de Máquinas Virtuais de Hardware, hóspedes HVM, Hardware Virtual Machines) além dos hóspedes paravirtualizados tradicionais. O Xen 3.0 também incluiu suporte para sistemas hóspedes de multiprocessamento simétrico (SMP, Symmetric MultiProcessing) – incluindo CPUs virtuais de conexão dinâmica, suporte para grandes quantidades de memórias, para módulos de plataforma segura (TPM, Trusted Platform 19
  • 3. Modules) e uma versão para a arquitetura IA64. Versões seguintes do Xen incluíam um novo agendador para CPUs com suporte para pesos, limites e balanceamento de carga SMP automática, bem como ferramentas de medida (Xen-oprofile), que permitiria aos desenvolvedores usuários de Xen otimizar código para obter ainda melhor desempenho no futuro. Outras características notáveis incluíam aumento na performance de rede graças a redução de carga de segmentação de pacotes, suporte melhorado para a IA64 e a primeira versão para a arquitetura de processadores Power. Em 2007, a Citrix comprou a XenSource e esta se tornou o Grupo do Produto XenServer Citrix. Também em 2007, o Xen 3.1 foi lançado. Ele dava suporte à XenAPI, uma interface de programação para comandos Xen que permitia a integração de ferramentas de gerenciamento de terceiros, incluindo as baseadas no Modelo Comum de Informações da Força Tarefa de Gerenciamento Distribuído (DMTF CIM, Distributed Management Task Force’s Common Information Model) que está se tornando um padrão para gerenciamento de agrupamentos de máquinas heterogêneas. Ela também possui capacidades de salvar/restaurar/migrar e controle dinâmico de memória para hóspedes HVM. A versão atual do Xen está disponível em http://xen.org/download/. Quando este livro estava a ponto de ser publicado, a versão liberada mais recente do Xen era a 3.2. Por que Virtualizar? Foi em junho de 1959 que Christopher Strachey apresentou à International Conference on Information Processing na UNESCO em New York o paper 'Time Sharing in Large Fast Computers' e estabeleceu um novo conceito de utilização de máquinas de grande porte visando produtividade dos recursos computacionais. Este novo conceito atraiu o interesse de empresas de grande porte, pois, virtualizar naquela época era sinônimo de economia de hardware, de espaço físico entre outras. Aí hoje você se pergunta: "Por que virtualizar nos dias atuais? Já que o custo de hardware diminuiu drasticamente nos últimos anos.". É exatamente esta e outras respostas que pretendemos esclarecer para que você se assegure da necessidade da virtualização nos dias atuais. Uma pergunta que você deve fazer a si mesmo para optar por virtualização: Quanto de recurso de seu Data Center é atualmente utilizado? A resposta mais interessante para esta pergunta foi respondida por empresas de grande influência mundial como a Microsoft Corporation© e a Sun Microsystems© através de estudos realizados. Quanto a utilização média de Data Centers, estas empresas chegaram a um resultado comum
  • 4. de 5% a 15%. Consolidar a fatia restante é economicamente interessante tanto da visão comercial quanto técnica. Isolamento de hardware Não podemos negar que o custo de um equipamento de grande porte hoje é infinitamente inferior comparado a 50 anos atrás. Na mesma linha, e inversamente proporcional, está o desempenho desses novos equipamentos, que anteriormente ocupavam uma sala inteira; hoje simplesmente cabem na palma da mão, com desempenho e complexidade superior. Isto é uma realidade. Nos últimos anos equipamentos têm caído de preço consideravelmente, mas estão cada vez mais complexos necessitando de novos drivers , novos sistemas operacionais, novos softwares, etc... Para instalar seu novo servidor um workload default para instalação de um novo servidor significa normalmente instalar um Sistema Operacional, configurar novos dispositivos, instalar seus programas e ter esperança que esteja tudo correto na validação das funcionalidades antes de colocar o servidor em produção. Adicionar um novo servidor em seu data center será muito mais simples que no modelo convencional. A idéia de manipular fisicamente um equipamento ocorrerá somente quando houver necessidade de adicionar mais hardware em seu cluster de máquinas virtuais. Caso se deseje adicionar apenas um Sistema Operacional para ativar um determinado serviço, você poderá simplesmente reservar uma 'fatia' de recursos nos equipamentos existentes em seu cluster obtendo virtualização de todos os recursos necessários para o funcionamento do Sistema Operacional como dispositivos de rede, memória, processamento e disco rigido. Máquinas Virtuais irão reduzir suas dores de cabeça em na adição de novos “servidores” no seu parque de TI como eles não precisam lidar diretamente com o hardware em si , você tem um hardware virtual pré-definido para sua maquina onde sempre serão os mesmos drivers . Software para manutenção ou adição de funcionalidades etc... “servidores” esses onde você pode criar imagens pré-definidas também conhecida como Virtual Appliances para um melhor provisionamento de suas máquinas virtuais com isso você pode reduzir drasticamente o tempo consumido para instalação de seu servidor usando Virtualização.
  • 5. Visão Histórica da Virtualização O conceito de virtualização é antigo: Data os anos 60, com o uso mais precoce realizado no antigo IBM 7044 CTSS (Compatible Time-Share System – Sistema Compatível com Compartilhamento de Tempo); Segundo JONES (2006) este equipamento foi denominado "Projeto Atlas", oriundo de um estudo realizado em conjunto com o MIT (Massachusetts Institute of Technology – Instituto de Tecnologia do Massachusetts), a Ferranti Ltd. e a University of Manchester (universidade de Manchester), no qual foi utilizado um mainframe IBM 704 M44/44X com implementação de chamadas supervisoras. O sistema operacional deste mainframe (na época chamado "Supervisor") executava duas máquinas virtuais, uma para o sistema e uma para execução de programas, servindo de base para outros computadores que viriam após ele. Assim, com base nesta tecnologia, em 1966 foi lançado o mainframe IBM System/360 modelo 67, onde o hardware do equipamento era inteiramente acessado através de uma interface chamada VMM (Virtual Machine Monitor). O VMM funcionava diretamente no hardware básico do equipamento, permitindo então a execução de máquinas virtuais. Cada máquina virtual poderia ser uma nova instância do mesmo sistema operacional base em prévia execução. 19 Com essa funcionalidade, o antigo termo "Supervisor" foi então denominado "Hypervisor". Ou seja, um software que provê ambiente de virtualização para o sistema operacional rodando acima dele. No início da década de 70, a IBM anunciou a série de mainframes System/370, e em 1972 anunciou o sistema operacional VM/370, que permitia a criação de múltiplas máquinas virtuais para os mainframes desta série. O VM/370 foi atualizado em conjunto com toda a linha de mainframes da IBM, e hoje é conhecido como IBM z/VM, um dos sistemas operacionais para os mainframes da série System/Z, e mantém compatibilidade total com os aplicativos desenvolvidos ainda para o System/370. Figura 3: Hypervisor Segundo SIQUEIRA (2007), este modelo como hypervisor obtém preferência para os ambientes virtualizados, pois, os hóspedes sabem perfeitamente 25 que rodam em um ambiente virtual. Para isso, os guests precisam ser corrigidos, o que só é possível de conseguir em sistemas de código aberto7. Uma vez que os sistemas operacionais sejam adaptados, a interação entre as máquinas virtuais e a máquina física é otimizada, o que aumenta o
  • 6. desempenho. Porém, a grande desvantagem deste modelo continua sendo a dependência da alteração do sistema operacional de gerenciamento e dos guests, para que possam interagir com o hypervisor ao invés do hardware físico. Hardware requerido Atualmente, o Xen roda nos computadores da plataforma x86, sendo necessário algum processador P6 (de sexta geração), como um Pentium Pro, Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon (Duron), Athlon 64 e Opteron. Multi-processamento é suportado, e existem portes em andamento para as plataformas Intel IA64 (processador Itanium) e Power (processadores PowerPC e POWER). O Xen, por padrão, suporta até de 4GB de memória RAM em modo de execução 32 bits. Como é uma quantidade pequena para os servidores nos dias atuais, existe o suporte para as extensões PAE11, da Intel, que permite que sistemas operacionais x86 de 32bits possam endereçar até 64GB de memória Ram. O Xen 3.0 também suporta as arquiteturas x86/64 bits. Vantagens e Desvantagens Existem diversas vantagens na virtualização, a seguir serão citadas as principais [5]: a) Segurança: Usando máquinas virtuais, pode ser definido qual é o melhor ambiente para executar cada serviço, com diferentes requerimentos de segurança, ferramentas diferentes e o sistema operacional mais adequado para cada serviço. Além disso, cada máquina virtual é isolada das demais. Usando uma máquina virtual para cada serviço, a vulnerabilidade de um serviço não prejudica os demais. b) Confiança e disponibilidade: A falha de um software não prejudica os demais serviços.c) Custo: A redução de custos é possível de ser alcançada com a consolidação de pequenos servidores em outros mais poderosos. Essa redução pode variar de 29% a 64% [5]. d) Adaptação às diferentes cargas de trabalho: Variações na carga de trabalho podem ser tratadas facilmente. Ferramentas autônomas podem realocar recursos de uma máquina virtual para a outra. e) Balanceamento de carga: Toda a máquina virtual está encapsulada no VMM. Sendo assim é fácil trocar a máquina virtual de plataforma, a fim de aumentar o seu desempenho. f) Suporte a aplicações legadas: Quando uma empresa decide migrar para um novo Sistema Operacional, é possível manter o sistema operacional antigo sendo executado
  • 7. em uma máquina virtual, o que reduz os custos com a migração. Vale ainda lembrar que a virtualização pode ser útil para aplicações que são executadas em hardware legado, que está sujeito a falhas e tem altos custos de manutenção. Com a virtualização desse hardware, é possível executar essas aplicações em hardwares mais novos, com custo de manutenção mais baixo e maior confiabilidade. Por outro lado, existem as desvantagens da virtualização, sendo as principais: a) Segurança: Segundo Neil MacDonald, especialista de segurança da Gartner, hoje em dia, as máquinas virtuais são menos seguras que as máquinas físicas justamente por causa do VMM [2]. Este ponto é interessante, pois se o sistema operacional hospedeiro tiver alguma vulnerabilidade, todas as máquinas virtuais que estão hospedadas nessa máquina física estão vulneráveis, já que o VMM é uma camada de software, portanto, como qualquer software, está sujeito a vulnerabilidades. b) Gerenciamento: Os ambientes virtuais necessitam ser instanciados, monitorados, configurados e salvos [2]. Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores investimentos na área de virtualização, justamente por se tratar de um dos maiores contra-tempos na implementação da virtualização. Vale lembrar que o VMWare é a plataforma mais flexível e fácil de usar, mas ainda apresenta falhas que comprometem a segurança, assim como as demais plataformas [2]. c) Desempenho: Atualmente, não existem métodos consolidados para medir o desempenho de ambientes virtualizados. No entanto, a introdução de uma camada extra de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de processamento superior ao que se teria sem a virtualização. Outro ponto importante de ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas por processador, sem que haja o prejuízo da qualidade de serviço. Virtualização total e para-virtualização Existem duas formas de implementação dos monitores de máquina virtual: a virtualização total e a para-virtualização. A virtualização total tem por objetivo fornecer ao sistema operacional visitante uma réplica do hardware subjacente. Dessa forma, o sistema operacional visitante é executado sem modificações sobre o monitor de máquina virtual (VMM), o que traz alguns inconvenientes. O primeiro é que o número de dispositivos a serem suportados pelo VMM é extremamente elevado. Para resolver esse contratempo, as implementações da virtualização total usam dispositivos genéricos, que funcionam bem para a maioria dos dispositivos disponíveis, mas não garantem o uso da totalidade de sua capacidade. Outro inconveniente da virtualização total é o fato de o sistema operacional visitante não ter conhecimento de que está sendo executado sobre o VMM, então as instruções executadas pelo sistema operacional visitante devem ser testadas pelo VMM para que depois sejam executadas diretamente no hardware, ou executadas pelo VMM e simulada a execução para o sistema visitante. Por fim, o último inconveniente da virtualização total é o fato de
  • 8. ter que contornar alguns problemas gerados pela implementação dos sistemas operacionais, já que esses foram implementados para serem executados como instância única nas máquinas física, não disputando recursos com outros sistemas operacionais. Um exemplo desse último inconveniente é uso de paginação na memória virtual, pois há a disputa de recursos entre diversas instâncias de sistemas operacionais, o que acarreta em uma queda do desempenhoA para- virtualização é uma alternativa à virtualização total. Nesse modelo de virtualização, o sistema operacional é modificado para chamar o VMM sempre que executar uma instrução que possa alterar o estado do sistema, uma instrução sensível. Isso acaba com a necessidade de o VMM testar instrução por instrução, o que representa um ganho significativo de desempenho. Outro ponto positivo da para-virtualização é que os dispositivos de hardware são acessados por drivers da própria máquina virtual, não necessitando mais do uso de drivers genéricos que inibiam o uso da capacidade total do dispositivo. Embora a para-virtualização apresentasse um ganho de desempenho significativo frente à virtualização total, essa disparidade tem sido superada devido à presença de instruções de virtualização nos processadores Intel e AMD, que favorecem a virtualização total. A tecnologia de virtualização da Intel é a IVT (Intel Virtualization Technology), codinome Vanderpool. A da AMD é a AMD-V (AMD-Virtualization), codinome Pacífica. Embora tenham sido desenvolvidas para o mesmo propósito, foram desenvolvidas de maneira independentes. Por esse motivo, há alguns problemas na portabilidade de máquinas virtuais de uma arquitetura Intel para a arquitetura AMD e vice-versa. Portanto, tendo em vista as técnicas de virtualização, a decisão de qual melhor a técnica de virtualização para um dado ambiente está intimamente ligada a qual o processador da máquina física que vai hospedar as virtuais, bem como se o processador possui ou não uma extensão no seu conjunto de instruções que suporte a virtualização. Xen O Xen é um dos mais populares exemplos de para-virtualização. Na virtualização total, o
  • 9. sistema operacional visitante tenta executar tarefas protegidas e, por estarem no espaço de aplicação do sistema operacional hospedeiro, não podem ser executadas. No entanto, o VMM intervem e executa ou simula a execução dessas, o que reduz o desepenho da virtualização total. Já a paravirtualização apresenta-se como uma alternativa a isso, na medida em que o sistema operacional visitante é modificado para não tentar executar diretamente na CPU as tarefas protegidas, mas entregar essas ao VMM. Este tipo de virtualização tem um ganho de desempenho significativo frente à total. Uma das maiores vantagens do uso do Xen como VMM na para-virtualização é o fato de que este apresenta um desempenho melhor do que os produtos de virtualização total, quando a máquina física hospedeira não tem instruções de hardware de suporte a virtualização. No entanto, há a necessidade de que o sistema visitante seja portado para o Xen, o que não chega a ser uma desvantagem, já que os sistemas operacionais mais comuns no mercado têm versões para o Xen. Alguns dos sistemas suportados pelo Xen são Linux, FreeBSD e Windows XP. A tecnologia de virtualização provida pelo Xen difere da tecnologia do VMWare. O Xen segue o conceito da para-virtualização, que fornece um conjunto de abstrações (processador virtual, memória virtual, rede virtual etc.) sobre o qual diferentes sistemas podem ser portados [7]. As abstrações não são necessariamente similares ao hardware da máquina física hospedeira. Para entender como o Xen implementa a para-virtualização, é importante salientar dois conceitos: o de domínio e o de hypervisor. Os domínios são as máquinas virtuais do Xen. Essas podem ser de dois tipos, privilegiadas (domínio 0) e não-privilegiadas (domínio U). O hypervisor é o responsável por controlar os recursos de comunicação, de memória e de processamento das máquinas virtuais, mas não possui os drivers para manipular os dispositivos diretamente. Quando a máquina hospedeira é iniciada, uma máquina virtual do domínio 0, privilegiado, é criada. Esse domínio acessa uma interface de controle e executa aplicações de gerenciamento. As máquinas virtuais dos domínios U só podem ser criadas, iniciadas e desligadas através do domínio 0. Na máquina virtual do domínio 0, é executado um Linux com núcleo modificado, que pode acessar os recursos da máquina física, já que possui privilégios especiais, e ainda se comunicar com
  • 10. as outras máquinas virtuais, domínio U. O sistema operacional do domínio 0 tem que ser modificado para possuir os drivers de dispositivo da máquina física e dois drivers que tratam requisições de acessos à rede e ao disco realizadas pelas máquinas virtuais do domínio U. Em suma, só a máquina virtual do domínio 0 tem acesso direto aos recursos da máquina física, enquanto que as demais máquinas virtuais têm acesso a uma abstração dos recursos, que para serem acessados, as máquina virtuais dos domínios U têm que acessar através do domínio 0. Para a virtualização da memória, o Xen reserva para cada máquina virtual uma determinada quantidade de memória, que pode ser alterada a qualquer momento sem a necessidade de terminar ou reiniciar a máquina virtual. Cada máquina virtual pode ter uma ou mais interfaces de rede virtuais. A comunicação entre as interfaces é implementada por dois token rings, um para enviar e outro para receber [7]. Atualmente, o Xen conta também com um domínio no qual é feita a virtualização total, o que permite que sistemas operacionais não modificados sejam executados sobre o hypervisor Xen. Inicialmente, a escolha pela para-virtualização justificava-se pelo fato de que o ganho em desempenho era muito maior do que com a virtualização total. No entanto, com o advento das arquiteturas AMD-V e Intel VT, arquitetura que dão o suporte de hardware para a virtualização, a virtualização total passou a obter resultados de desempenho melhores que os da para- virtualização. Vale ressaltar que o domínio de virtualização total disponível no Xen a partir da sua versão 3.0, só pode ser usado nas máquinas hospedeiras que possuam suporte de hardware à virtualização. Uso da virtualização Consolidação de Servidores Um pensamento comum entre administradores de rede é de ter um servidor por serviço. Esta medida garante uma maior segurança e maior disponibilidade dos serviços na rede, já que a falha de um servidor só afeta um serviço e a vulnerabilidade de um serviço só expõe um servidor. No entanto, a taxa de utilização dos recursos de hardware de um servidor é extremamente baixa, o que indica uma subutilização de seus recursos. A consolidação de servidores consiste em usar uma máquina física com diversas máquinas
  • 11. virtuais, sendo uma para cada servidor. Essa nova abordagem garante o isolamento dos servidores e apresenta as vantagens de aumentar a taxa de utilização de servidores, reduzir os custos operacionais, criar ambientes mais flexíveis e reduzir custos de administração de TI. O ponto mais importante da consolidação de servidores é o melhor aproveitamento dos recursos, já que se existem n servidores com uma taxa de utilização x, tal que x < 100%, é menos custoso e mais vantajoso consolidar os n servidores em apenas um, com taxa de utilização de n.x, desde que n.x < 100%. Outro ponto a ser levantado é que a consolidação permite ocupar menos espaço físico com servidores, pois estes passam a ser apenas uma máquina física. Isso propicia menos gastos com eletricidade, já que o número de máquinas é menor, e com manutenção de máquinas. Vale ainda lembrar que a virtualização aumenta a flexibilidade, pois pode-se instalar diversos ambientes em uma mesma máquina, por exemplo, ter serviços que são executados em ambiente Windows, coexistindo em uma mesma máquina física, mas em máquinas virtuais distintas, que serviços que são executados em ambiente Linux. Virtualização da Infra-estrutura de TI A virtualização da infra-estrutura de TI diferencia-se da consolidação de servidores na medida em que a consolidação só prevê o isolamento dos servidores em máquinas virtuais, enquanto a virtualização da infra-estrutura de TI vai mais além. A virtualização da infra- estrutura de TI prevê a virtualização de toda a estrutura da rede, com a criação de comutadores, roteadores e outros equipamentos virtuais, interconectado às máquinas virtuais. Outro ponto de distinção entre a consolidação e a virtualização da infra-estrutura é que esta permite a alocação dinâmica de recursos para as máquinas virtuais, levando a um processo de automação da infra-estrutura de TI. Laboratórios de ensino A aplicação da virtualização em laboratórios de ensino tem por objetivo criar um ambiente que isole o estudante da máquina física. O estudante tem acesso a uma instância de uma máquina virtual, que pode ser facilmente recuperada de uma falha após o seu uso. Também é interessante notar que em ambientes virtualizados, a introdução de mais um sistema operacional no laboratório, não envolve a reinstalação das máquinas, mas somente a cópia dos arquivos de configuração e controle da máquina virtual do novo sistema operacional para as máquinas hospedeiras. Em suma, a virtualização de laboratórios de ensino tem como vantagens a redução dos
  • 12. custos de manutenção, aumento da flexibilidade e aumento da segurança. Desenvolvimento de Software Em um ambiente de desenvolvimento de software, o uso de ambientes virtuais tem dois objetivos principais. O primeiro é fornecer ambientes distintos, com sistemas operacionais diferentes ou de diferentes versões, para que se possa testar o software e verificar o seu comportamento em outros ambientes, concomitantemente. O segundo é criar ambientes isolados no qual uma falha do software que está sendo desenvolvido não comprometa o sistema operacional da máquina hospedeira. Se o software em desenvolvimento vier a comprometer o sistema da máquina virtual, este pode ser recuperado copiando os arquivos de outra máquina, ou recuperando os arquivos da máquina comprometida do último backup. Conclusão A virtualização é uma técnica que está cada vez mais presente na área de TI. Isso vem sendo revelado pelo grande número de empresas que surgem com soluções de gerência de ambientes virtualizados e pelo aumento sucessivo nos investimento na área [2]. Essa técnica não é recente, mas após a popularização do PC, ela perdeu um pouco de destaque no cenário da TI. No entanto, esse destaque que vem sendo dado à virtualização recentemente é fruto do aumento do poder computacional, que não foi seguido pela taxa de utilização dos computadores, o que gerou muitos recursos ociosos. A fim de aproveitar esses recursos, a idéia da virtualização retornou ao cenário da TI. Embora a técnica da virtualização pareça ser a solução para grande parte dos problemas de infra-estrutura de TI, sua aplicação deve ser estudada e devem ser avaliados os transtornos que podem ser gerados. A aplicação da técnica da virtualização traz consigo uma mudança de paradigma e, portanto, deve ser avaliada como um projeto de longo prazo. A sua adoção implicará na mudança de política de compras e instalação de novos sistemas. Outro ponto a ser destacado na adoção da técnica de virtualização é qual vertente deve ser seguida, a virtualização total ou a para-virtualização. Cada uma tem sua especificidade e a escolha de qual é melhor para o ambiente de trabalho está intimamente ligada a qual será o hardware subjacente às máquinas virtuais. Caso seja um hardware com suporte à virtualização, ou seja, da arquitetura AMD-V ou Intel VT, o mais aconselhável é o uso do virtualização total. Caso contrário,
  • 13. o aconselhável é o uso da para-virtualização, que obteve melhores resultados de desempenho em teste realizados com hardware sem suporte à virtualização [7]. Em suma, a proposta da virtualização é muito atraente e traz diversos benefícios. Entretanto, como todo sistema computacional, está sujeito a falhas. A adoção da virtualização como paradigma a ser seguido é uma decisão que deve ser tomada avaliando uma série de fatores e ponderando os riscos e os benefícios. Portanto, para empregar a técnica de virtualização, o mais correto a ser feito é um projeto de longo prazo, que adote a virtualização em pequenos passos. Para finalizar, vale lembrar que esta é uma área que está em crescimento e que novos produtos surgem a todo o momento. Portanto, existem questões que ainda não estão completamente resolvidas, tais como a migração de máquinas, a configuração automática de máquinas virtuais, facilidades de backup e a recuperação de falhas [2].