centro estadual de educação tecnológica paula souza

Propaganda
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
MAURICIO GIMENEZ
VIRTUALIZAÇÃO: DESCRIÇÃO DA TECNOLOGIA E
DEMONSTRAÇÃO DAS SOLUÇÕES VMWARE E CITRIX
LINS/SP
1º SEMESTRE/2012
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
MAURICIO GIMENEZ
VIRTUALIZAÇÃO: DESCRIÇÃO DA TECNOLOGIA E
DEMONSTRAÇÃO DAS SOLUÇÕES VMWARE E CITRIX
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do
Título
de
Tecnólogo
em
Redes
de
Computadores.
Orientador: Prof. Me. Alexandre Ponce de Oliveira
LINS/SP
1º SEMESTRE/2012
MAURICIO GIMENEZ
VIRTUALIZAÇÃO
DESCRIÇÃO DA TECNOLOGIA E DEMONSTRAÇÃO DAS SOLUÇÕES VMWARE
E CITRIX
Trabalho
de
conclusão
de
Curso
apresentado à Faculdade de Tecnologia
de
Lins,
como
parte
dos
requisitos
necessários para obtenção do título de
Tecnólogo em Redes sob orientação do
Prof. Me. Alexandre Ponce.
Data de aprovação: ____/____/____
________________________________
Alexandre Ponce
________________________________
Examinador 1
________________________________
Examinador 2
Aos meus pais, Joaquim e Maria Ignês. Aos
meus irmãos Márcia, Marcos, Milton e Marcelo e à
minha esposa Michelly, pelo apoio incondicional
nesta etapa de minha vida.
AGRADECIMENTOS
Nesta oportunidade que me é dada ao alcançar importante meta em minha
vida pessoal e profissional, agradeço primeiramente a DEUS por me fazer estar aqui
e por ter colocado pessoas em minha vida que me ajudaram a ser quem sou hoje.
Aos meus amigos de trabalho os quais sem seu apoio e incentivo, eu não
teria ingressado na faculdade.
Aos meus companheiros de curso pela ajuda com as matérias iniciais, das
quais eu não me recordava mais após 15 anos fora das salas de aula.
Aos professores por apostarem nesta faculdade e oferecerem seu máximo
para que esta venha a ficar entre as melhores. E pelos seus exemplos que nos são
passados, que contribuem em muito ao nosso crescimento pessoal e profissional.
Ao meu orientador Alexandre Ponce, pela ajuda com os materiais e pelo
direcionamento que me foi dado.
À professora Luciane Noronha pela ajuda com as correções e principalmente
por nos fazer acreditar em nosso potencial.
RESUMO
Este trabalho apresentou o conceito da virtualização, cada vez mais utilizado em
empresas que visam diminuição de custos e alta disponibilidade de serviços,
contribuindo para uma maior competitividade no seu mercado de atuação.
Apresentou um histórico da informática como um todo, desde as máquinas de
calcular manualmente como o Ábaco e os primeiros conceitos do que pode ser
considerado um computador, passando pelos computadores a válvula e os
computadores de grande porte nos quais se começou a utilização da virtualização,
até chegar aos PCs, tão populares atualmente, juntamente com a evolução dos
principais sistemas operacionais que deixaram sua marca na história da informática
cujo desenvolvimento viabilizou a tecnologia conhecida atualmente. Para auxiliar no
entendimento da virtualização, foi abordado o funcionamento de um computador e
suas rotinas internas, como o gerenciamento de memória, controle e prioridade de
processos e comunicação com dispositivos de hardware internos e externos. Este
trabalho mostrou as empresas pioneiras na viabilização da virtualização em
computadores de mesa e servidores de pequeno porte, e as soluções profissionais
mais conhecidas atualmente. Para uma visão real de aplicação do conceito de
virtualização, foi demonstrado a instalação das soluções VMware e Citrix, os passos
para a criação de máquinas virtuais, e também o processo de mapeamento de
Storage, item essencial para virtualização profissional, bem como a conversão de
uma máquina real para virtual e a movimentação de uma VM em funcionamento
entre os servidores que compõem o ambiente criado, através de ferramentas
oferecidas pelas próprias soluções.
Palavras-chaves: Virtualização, VMware, Citrix.
ABSTRACT
This paper presented the concept of virtualization, increasingly used in companies
seeking to lower costs and high availability of services, contributing to increased
competitiveness in your market. It presented a history of computing as a whole, from
calculating machines manually as the abacus and the first concepts that can be
considered a computer, through the valve computers and mainframe computers in
which they began the use of virtualization, until the PCs, so popular today, along with
the evolution of the main operating systems that have left their mark in the history of
computer science whose development has enabled the technology known today. To
assist in the understanding of virtualization, it was mentioned operation of a computer
and its internal routines, such as memory management, control and priority of
processes and communication with hardware devices internal and external. This
study demonstrated the feasibility of the pioneering companies in the virtualization on
desktops and small servers, and more professional solutions currently known. For a
real view of application of the concept of virtualization, it was demonstrated the
installation of VMware and Citrix solutions, the steps for creating virtual machines,
and also the process of mapping Storage, Virtualization essential item for
professional as well as the conversion of a real virtual machine and the movement of
a running VM between servers that make up the environment created by the tools
offered by their own solutions.
Keywords: Virtualization, VMware, Citrix.
LISTAS DE ILUSTRAÇÕES
Figura 1.1 - O Ábaco e a Régua de Cálculo. ............................................................. 19
Figura 1.2 - Máquina de Pascal................................................................................. 19
Figura 1.3 - Máquina de Diferenças. ......................................................................... 20
Figura 1.4 - A máquina de Hollerith. .......................................................................... 21
Figura 1.5 - O ENIAC. ............................................................................................... 23
Figura 1.6 - IBM 7030. ............................................................................................... 24
Figura 1.7 - IBM 360/91. ............................................................................................ 25
Figura 1.8 - Altair 8800. ............................................................................................. 26
Figura 1.9 - Apple I. ................................................................................................... 26
Figura 1.10 - IBM PC. ................................................................................................ 27
Figura 1.11 - Steve Jobs e o novo iMac. ................................................................... 27
Figura 1.12 - Modelo de chassis Blade. .................................................................... 28
Figura 1.13 - o novo iMac. ......................................................................................... 28
Figura 1.14 - IBM 7090 executando o CTSS. ............................................................ 29
Figura 1.15 - Comando em modo texto no BSD........................................................ 30
Figura 1.16 - Sistema operacional MS-DOS. ............................................................ 30
Figura 1.17 - Sistema X Windows System. ............................................................... 31
Figura 1.18 - Macintosh OS 1.0................................................................................. 31
Figura 1.19 - MS-Windows 1.0. ................................................................................. 32
Figura 1.20 - OS/2 Warp. .......................................................................................... 32
Figura 1.21 - Windows 95.......................................................................................... 33
Figura 1.22 - Windows XP. ........................................................................................ 34
Figura 1.23 - MAC OS X............................................................................................ 35
Figura 1.24 - Windows Server 2008. ......................................................................... 35
Figura 1.25 - Windows 7............................................................................................ 36
Figura 1.26 - Ubuntu 11.10. ....................................................................................... 36
Figura 1.27 - Mac OS X Lion. .................................................................................... 37
Figura 2.1 - Arquitetura de um computador típico. .................................................... 39
Figura 2.2 - Estrutura de um sistema operacional. .................................................... 41
Figura 2.3 - Funcionamento de uma interrupção....................................................... 43
Figura 2.4 - Separação entre núcleo e aplicação. ..................................................... 45
Figura 3.1 - Uma máquina virtual. ............................................................................. 50
Figura 3.2 - Virtualização do Tipo I. ........................................................................... 51
Figura 3.3 - Virtualização do Tipo II. .......................................................................... 52
Figura 3.4 - Exemplo de virtualização de hardware. ................................................. 52
Figura 3.5 - Virtualização de sistema operacional. .................................................... 53
Figura 3.6 - Virtualização de linguagem de programação. ........................................ 53
Figura 3.7 - Arquitetura do VMware ESX. ................................................................. 63
Figura 3.8 - Arquitetura do VMware ESXi. ................................................................. 63
Figura 3.9 - Live Migration com vMotion. .................................................................. 64
Figura 3.10 - Relacionamento entre os componentes do Xen................................... 67
Figura 4.1 - Esquema do ambiente utilizado. ............................................................ 71
Figura 4.2 - Informações necessárias para conexão. ................................................ 72
Figura 4.3 - Visualização do sumário de informações do servidor. ........................... 73
Figura 4.4 - Opções para administração e gerenciamento. ....................................... 73
Figura 4.5 - Início da adição do Storage. .................................................................. 74
Figura 4.6 - Escolha do tipo de armazenamento que será utilizado. ......................... 74
Figura 4.7 - Informações para o mapeamento. ......................................................... 75
Figura 4.8 - Resumo das opções escolhidas............................................................. 75
Figura 4.9 - Mapeamento do Storage concluído. ...................................................... 75
Figura 4.10 - Opção para navegação no Storage. .................................................... 76
Figura 4.11 - Navegação dentro do Storage.............................................................. 76
Figura 4.12 - Início da criação de uma VM. ............................................................... 77
Figura 4.13 - Escolha de configurações típicas para a VM. ...................................... 77
Figura 4.14 - Escolha do nome da VM. ..................................................................... 77
Figura 4.15 - Escolha do local de armazenamento da VM. ....................................... 78
Figura 4.16 - Escolha do sistema operacional e versão. ........................................... 78
Figura 4.17 - Quantidade de placas de rede utilizadas pela VM. .............................. 78
Figura 4.18 - Escolha do tamanho do disco que a VM terá. ...................................... 79
Figura 4.19 - Resumo das configurações escolhidas. ............................................... 79
Figura 4.20 - VM criada e pronta para inicialização. ................................................. 79
Figura 4.21 - Início da criação do novo Datacenter. .................................................. 80
Figura 4.22 - Datacenter criado. ................................................................................ 80
Figura 4.23 - Adição de um host................................................................................ 81
Figura 4.24 - Entrada das informações do servidor. .................................................. 81
Figura 4.25 - Alerta sobre o certificado de segurança. .............................................. 81
Figura 4.26 - Sumário do host. .................................................................................. 82
Figura 4.27 - Associação à licença de uso. ............................................................... 82
Figura 4.28 - Opção de bloqueio de logon no host físico. ......................................... 82
Figura 4.29 - Seleção do Datacenter que abrigará o host. ........................................ 83
Figura 4.30 - Apresentação do resumo pronto para finalização. ............................... 83
Figura 4.31 - Host adicionado com sucesso.............................................................. 83
Figura 4.32 - Início da conversão. ............................................................................. 84
Figura 4.33 - Características da máquina a ser convertida. ...................................... 84
Figura 4.34 - Informações do vCenter ....................................................................... 85
Figura 4.35 - Escolha do Grupo de servidores para alocar a VM. ............................. 85
Figura 4.36 - Seleção do servidor físico para execução inicial. ................................. 85
Figura 4.37 - Edição da máquina antes da conversão. ............................................. 86
Figura 4.38 - Resumo da importação. ....................................................................... 86
Figura 4.39 - Alteração de hardware detectada......................................................... 87
Figura 4.40 - Acessando as propriedades de rede do host. ...................................... 88
Figura 4.41 - Habilitando o vMotion........................................................................... 88
Figura 4.42 - Selecionando a VM para migração. ..................................................... 88
Figura 4.43 - Escolha do tipo de movimentação. ...................................................... 89
Figura 4.44 - Escolha de novo servidor destino para a VM. ...................................... 89
Figura 4.45 - Definição de prioridade par a tarefa. .................................................... 89
Figura 4.46 - VM após movimentação. ...................................................................... 90
Figura 4.47 - Teste de conexão com o comando ping. .............................................. 90
Figura 4.48 - Tela inicial do XenCenter...................................................................... 91
Figura 4.49 - Adicionando um host físico ao Xencenter. ........................................... 92
Figura 4.50 - Autenticação para conexão ao host. .................................................... 92
Figura 4.51 - XenCenter com servidor alocado. ........................................................ 93
Figura 4.52 - Monitoramento de performance do servidor. ........................................ 93
Figura 4.53 - Criação do Pool de servidores. ............................................................ 94
Figura 4.54 - Seleção dos servidores do Pool. .......................................................... 94
Figura 4.55 - Pool de servidores criado. .................................................................... 95
Figura 4.56 - Inicio da apresentação do Storage NFS. ............................................. 95
Figura 4.57 - Escolha do tipo de mapeamento a ser feito. ........................................ 96
Figura 4.58 - Definição do nome do mapeamento. ................................................... 96
Figura 4.59 - Scan do disco para associar ao Pool. .................................................. 96
Figura 4.60 - Storage apresentado e pronto para uso............................................... 97
Figura 4.61 - Criação do mapeamento CIFS. ............................................................ 97
Figura 4.62 - Escolha do tipo de compartilhamento. ................................................. 98
Figura 4.63 - Definição do nome do mapeamento .................................................... 98
Figura 4.64 - Caminho na rede do compartilhamento. .............................................. 98
Figura 4.65 - Mapeamento completo e seu conteúdo. .............................................. 99
Figura 4.66 - Início da criação da nova VM. .............................................................. 99
Figura 4.67 - Escolha do sistema operacional para a nova VM. ............................. 100
Figura 4.68 - Definição do nome da VM e descrição. .............................................. 100
Figura 4.69 - Escolha da imagem ISO para instalação. .......................................... 100
Figura 4.70 - Escolha do servidor que iniciará a VM. .............................................. 101
Figura 4.71 - Configuração do processador e memória. ......................................... 101
Figura 4.72 - Escolha do local de armazenamento da VM. ..................................... 101
Figura 4.73 - Opção de alteração das propriedades do disco. ................................ 102
Figura 4.74 - Seleção da interface de rede da VM. ................................................. 102
Figura 4.75 – Resumo com as opções escolhidas. ................................................. 102
Figura 4.76 - Host 1 visualizando VMs alocados no Host 2. ................................... 103
Figura 4.77 - Host 2 e o consumo de CPU local. .................................................... 103
Figura 4.78 - Configurações iniciais de origem e destino. ....................................... 104
Figura 4.79 - Configurações de discos a serem convertidos. .................................. 104
Figura 4.80 - Autenticação para o servidor de destino. ........................................... 105
Figura 4.81 - Definição de nome e local de armazenamento. ................................. 105
Figura 4.82 - Sistema pronto para ser convertido. .................................................. 105
Figura 4.83 - Máquina convertida solicitando nova ativação do Windows. ............. 106
Figura 4.84 - Escolha do servidor para onde será migrada a VM. .......................... 107
Figura 4.85 - VM após processo de movimentação. ............................................... 107
Figura A.1- Tela inicial de boot do CD. .................................................................... 112
Figura A.2 - Telas de boas vindas. .......................................................................... 113
Figura A.3 - Apresentação da licença de uso. ......................................................... 113
Figura A.4 - Seleção do disco para instalação. ....................................................... 113
Figura A.5 - Seleção do layout do teclado. .............................................................. 114
Figura A.6 - Escolha da senha de root. ................................................................... 114
Figura A.7 - Confirmação para o início da instalação. ............................................. 114
Figura A.8 - Instalação em andamento. ................................................................... 115
Figura A.9 - Término da instalação. ......................................................................... 115
Figura A.10 - Servidor inicializado com sucesso. .................................................... 115
Figura B.1 - Tela inicial de boot do CD. ................................................................... 116
Figura B.2 - Configuração do teclado. ..................................................................... 117
Figura B.3 - Confirmação para iniciar a instalação. ................................................. 117
Figura B.4 - Apresentação da licença de uso. ......................................................... 117
Figura B.5 - Escolha dos discos para instalação. .................................................... 118
Figura B.6 - Origem dos arquivos de instalação...................................................... 118
Figura B.7 - Instalação de pacotes adicionais. ........................................................ 118
Figura B.8 - Opção de verificação da mídia de instalação. ..................................... 119
Figura B.9 - Escolha da senha do administrador (root). .......................................... 119
Figura B.10 - Definição do nome e servidores DNS. ............................................... 119
Figura B.11 - Seleção da localização geográfica. .................................................... 120
Figura B.12 - Seleção do fuso horário. .................................................................... 120
Figura B.13 - Escolha da forma de sincronismo de horário. .................................... 120
Figura B.14 - Configuração do servidor NTP. .......................................................... 121
Figura B.15 - Início da instalação dos arquivos. ...................................................... 121
Figura B.16 - Conclusão da Instalação. .................................................................. 121
Figura B.17 - Console após a conclusão da instalação. .......................................... 122
LISTAS DE TABELAS
Tabela 2.1 - Endereços de acesso a dispositivos. ..................................................... 40
Tabela 4.1 - Configuração das máquinas físicas utilizadas ....................................... 71
LISTAS DE SIGLAS
API - Application Programming Interface
BIOS - Basic Input Output System
BSD - Berkeley Software Distribution
CIFS - Common Internet File System
CMS - Conversational Monitor System
CTSS - Compatible Time-Sharing System
DHCP - Dynamic Host Configuration Protocol
DNS - Domain Name System
E/S - Entrada/Saída
EMA - Enterprise Management Association
ENIAC - Electrical Numerical Integrator and Calculator
GNU - Gnu is Not Unix
GPL - General Public License
IBM - International Business Machine
ISA - Instruction Set Architecture
MIT - Massachusetts Institute of Technology
MMU - Memory Management Unit
NFS - Network File System
NTP – Network Time Protocol
P2V - Physical to Virtual
PARC - Palo Alto Research Center
SAAS - Software as a Service
SO - Sistema Operacional
ULA - Unidade Lógica e Aritmética
V2V - Virtual to Virtual
VMM - Virtual Machine Monitor
VPN - Virtual Private Network
SUMÁRIO
SUMÁRIO............................................................................................. 14
INTRODUÇÃO ..................................................................................... 16
1 A HISTÓRIA DA INFORMÁTICA ....................................................... 18
1.1 MÁQUINAS PARA CALCULAR ........................................................................ 18
1.2 A EVOLUÇÃO ................................................................................................... 19
1.2.1
A Programação Funcional ............................................................................ 20
1.2.2
Boole e sua Teoria ........................................................................................ 20
1.2.3
1890 e a Máquina de Hollerith ...................................................................... 21
1.2.4
Computadores Pré-modernos e a 2ª Guerra ............................................... 22
1.3 COMPUTAÇÃO MODERNA ............................................................................. 22
1.3.1
Primeira Geração.......................................................................................... 22
1.3.2
Segunda Geração......................................................................................... 23
1.3.3
Terceira Geração .......................................................................................... 24
1.3.4
Quarta Geração ............................................................................................ 25
1.4 HISTÓRICO DOS SISTEMAS OPERACIONAIS .............................................. 28
2 FUNCIONAMENTO DOS COMPUTADORES ................................... 38
2.1 A ESTRUTURA BÁSICA ................................................................................... 38
2.1.1
O Hardware .................................................................................................. 38
2.1.2
O Sistema Operacional................................................................................. 40
2.1.3
Abstração e Gerência de Recursos .............................................................. 41
2.1.4
Interrupções .................................................................................................. 43
2.1.5
Proteção do Núcleo ...................................................................................... 44
2.1.6
Chamadas de Sistema ................................................................................. 45
3 VIRTUALIZAÇÃO ............................................................................. 47
3.1 HISTÓRICO ...................................................................................................... 47
3.2 DETALHES DA VIRTUALIZAÇÃO .................................................................... 49
3.2.1
Diferença entre Emulação e Virtualização .................................................... 49
3.2.2
A Virtualização Propriamente Dita ................................................................ 50
3.2.3
Tipos de Virtualização................................................................................... 51
3.2.4
Formas de Virtualização ............................................................................... 52
3.2.5
Técnicas para Virtualização .......................................................................... 54
3.2.6
Virtualização e Rede..................................................................................... 56
3.2.7
Virtualização de Serviços de Internet ........................................................... 56
3.2.8
Virtualização da Infraestrutura de Rede ....................................................... 57
3.3 AS CARACTERÍSTICAS DO HYPERVISOR .................................................... 58
3.4 FERRAMENTAS DE VIRTUALIZAÇÃO ............................................................ 60
3.4.1
VMware ........................................................................................................ 61
3.4.2
Xen ............................................................................................................... 65
4 UTILIZAÇÃO DAS FERRAMENTAS ................................................. 70
4.1 AMBIENTE DE TRABALHO ............................................................................. 70
4.2 SOLUÇÃO DA VMWARE .................................................................................. 72
4.2.1
Apresentação do Storage ............................................................................. 74
4.2.2
Criação da VM para o vCenter ..................................................................... 76
4.2.3
Criação do Datacenter .................................................................................. 80
4.2.4
vCenter Converter ........................................................................................ 84
4.2.5
vMotion ......................................................................................................... 87
4.2.6
Considerações sobre o vMotion ................................................................... 90
4.3 SOLUÇÃO DA CITRIX ...................................................................................... 91
4.3.1
Pool de Servidores ....................................................................................... 93
4.3.2
Configuração do Storage Principal ............................................................... 95
4.3.3
Storage para as Imagens ISO ...................................................................... 97
4.3.4
Criação de uma VM ...................................................................................... 99
4.3.5
XenConvert ................................................................................................. 103
4.3.6
XenMotion .................................................................................................. 106
4.3.7
Considerações sobre o XenMotion ............................................................. 107
CONCLUSÃO ..................................................................................... 109
ANEXO A – Instalação do Hypervisor da VMware ............................... 112
ANEXO B - Instalação do Hypervisor da Citrix .................................... 116
REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 123
16
INTRODUÇÃO
Atualmente um assunto muito discutido é Computação nas Nuvens, que é um
modelo de negócio onde empresas especializadas fornecem diversos serviços,
como por exemplo, hospedagem de sites, e-mail e discos virtuais para que seus
clientes possam armazenar seus arquivos com segurança.
Um modelo utilizado dentro da Computação nas Nuvens é o software como
serviço, ou do inglês Software as a Service (SaaS), onde uma empresa disponibiliza
acesso a programas específicos que ficam hospedados em seu Data Center e são
acessados através da Internet, sem necessidade de nenhum tipo de instalação ou
configuração pelo lado do cliente. (MARTINEZ, 2010)
Neste modelo, as empresas clientes que utilizam estes serviços, não têm o
alto custo de montagem e manutenção de uma infraestrutura física de servidores.
Os serviços de alta disponibilidade são obtidos através da locação de uma
infraestrutura conforme a demanda de utilização. Como exemplo de SaaS pode-se
citar o Google Docs, SkyDrive e serviços de e-mail como Gmail, Hotmail, entre
outros. (MARTINEZ, 2010)
As empresas prestadoras destes serviços normalmente possuem grande
infraestrutura física com diversos servidores para atender a demanda personalizada
para cada um de seus clientes, entretanto, nova abordagem vem sendo utilizada
com o objetivo de diminuir esta estrutura física para algo mais compacto, conhecido
por virtualização de servidores. Neste conceito, diminui-se o número de servidores
físicos e mantém-se o mesmo desempenho e flexibilidade de escalabilidade no
serviço prestado. (BRENDEL, 2008)
O conceito de virtualização não é novo, teve seu início na década de 1960 e a
ideia inicial era aproveitar o alto poder de processamento que os Mainframes
ofereciam, para a execução de vários aplicativos ao mesmo tempo. (BRENDEL,
2008)
Com a virtualização e as suas ferramentas agregadas é possível garantir alta
disponibilidade de serviços, desta forma, quando se comenta sobre Computação nas
Nuvens fala-se de um conceito que utiliza o serviço de virtualização de servidores.
(VMWARE, 2011a)
17
Este trabalho tem como objetivo apresentar o conceito da virtualização, cada
vez mais utilizada principalmente em empresas onde a alta disponibilidade de
serviços, bem como a diminuição de custos são itens indispensáveis, utilizando-se
as soluções profissionais mais conhecidas e pioneiras em fornecer soluções de
virtualização.
No primeiro capítulo deste trabalho, é demonstrado um pouco da história da
computação, para que se tenha uma visão de como foi o início da criação dos
primeiros computadores, tanto no quesito hardware quanto no de sistemas
operacionais, sendo possível identificar o salto de tecnologia que foi dado desde os
períodos mais remotos aos atuais, culminando na convergência para a virtualização
dos servidores.
O segundo demonstra como é o funcionamento de um computador comum,
de forma a se entender o conceito de componentes, interrupções de sistemas,
processos, comunicação com os periféricos, entre outros, com a intenção de auxiliar
no entendimento sobre como é possível ocorrer a virtualização, que faz grande
utilização de processos e interrupções de hardware e software.
No terceiro, sobre a virtualização, é feita a apresentação de seu conceito,
suas formas e tipos, e seu funcionamento. São apresentadas as soluções
profissionais mais conhecidas de virtualização e suas características, bem como ao
tipo a que pertencem e as suas ferramentas para gerenciamento e manutenção do
ambiente virtual.
No quarto capítulo, é demonstrada através de um ambiente com servidores
físicos reais, a instalação das soluções citadas no capítulo três, e demonstradas
algumas de suas principais características e funcionalidades, como a importação e
conversão de um servidor para o ambiente virtual e a movimentação de uma
máquina virtual entre os servidores físicos, sem que seja necessário seu
desligamento durante o processo.
Por fim, como conclusão deste trabalho, são apresentadas as observações
feitas durante os testes, de forma que seja possível que o leitor/usuário possa
reproduzir os procedimentos realizados.
18
1 A HISTÓRIA DA INFORMÁTICA
Com o acesso cada vez mais facilitado a equipamentos de informática como
computadores e notebooks, proporcionados pelo custo de equipamentos mais
baratos, através de incentivos fiscais e maior oferta de marcas e modelos, as
pessoas em geral não conhecem a história de como sugiram estes equipamentos,
nem imaginam a enorme diferença de tamanho e capacidade de processamento
entre os primeiros computadores e os atuais, cada dia mais portáteis.
Este capítulo tem como objetivo mostrar um pouco da história e evolução do
conceito de computação e dos computadores em geral, da antiguidade aos dias de
hoje.
1.1
MÁQUINAS PARA CALCULAR
Consideradas por Gugik (2009a), como as primeiras espécies de “máquinas”
de cálculo, estão respectivamente o Ábaco, que tem seu registro de uso datado no
ano 5500 a.C e a Régua de Cálculo, criada mais atualmente em 1638 d.C.
O Ábaco, conhecido na Roma antiga como Calculus, do qual se originou a
palavra Cálculo, era utilizado no dia-a-dia, principalmente no comercio e construções
civis e utilizava um sistema simples, mas eficiente na resolução de problemas
matemáticos. Era muito utilizado em operações de soma e subtração, mas não era
recomendado para multiplicação e divisão.
A Régua de Cálculo foi criada pelo padre inglês William Oughtred, como
forma mais eficiente de calcular. Tratava-se de uma régua que já possuía certa
quantidade de valores pré-calculados, organizados de forma que os resultados
fossem acessados automaticamente, através de um ponteiro que indicava o
resultado do valor desejado. Para a criação da Régua de Cálculo, William tomou
como base as pesquisas sobre logaritmos realizadas pelo escocês John Napier que
havia descoberto várias propriedades matemáticas as quais deu o nome de
logaritmos. (GUGIK, 2009a)
Ambas as “máquinas” são mostrados através da Figura 1.1.
19
Figura 1.1 - O Ábaco e a Régua de Cálculo.
Fonte: Gugik, 2009a.
Considerado por Gugik (2009a) como a primeira calculadora mecânica da
história, o engenho mostrado na Figura 1.2, criado pelo matemático francês Bleise
Pascal em 1642, passou a ser conhecido com a Máquina de Pascal.
Seu funcionamento era baseado no uso de engrenagens, que giravam na
realização dos cálculos. Ao contrário da ideia original de se criar uma máquina que
realizasse as quatro operações matemáticas básicas de somar, subtrair, multiplicar e
dividir, só era capaz de somar e subtrair.
Figura 1.2 - Máquina de Pascal.
Figura: Gugik, 2009a.
1.2
A EVOLUÇÃO
A Régua de cálculo e a Máquina de Pascal eram pré-programadas, com
funções fixas que não permitiam adicionar novas funcionalidades.
A seguir é apresentado o início da evolução dos computadores sua utilização
e sua evolução.
20
1.2.1 A Programação Funcional
Segundo Gugik (2009a), em 1801, Joseph Marie Jacquard desenvolveu uma
máquina com o objetivo de cortar tecidos de forma automática, que recebeu nome
de Tear Programável, devido ao fato de aceitar cartões perfuráveis com o desenho
desejado como entrada do sistema para serem reproduzidos no tecido.
O Tear Programável influenciou outros inventos como a Máquina de
Diferenças criada em 1822 e o Engenho Analítico criado em 1837, ambas por
Charles Babbage. (GUGIK, 2009a)
A Máquina de Diferenças, mostrada pela Figura 1.3, foi criada com a
promessa de revolucionar os cálculos, executando funções de diversas naturezas
como trigonometria e logaritmos, de forma simples. (GUGIK, 2009a)
Figura 1.3 - Máquina de Diferenças.
Fonte: Gugick, 2009a.
No Engenho Analítico, instruções e comandos poderiam ser informados
através de cartões, fazendo uso de registradores primitivos. Sua precisão chegava a
50 casas decimais. (GUGIK, 2009a)
1.2.2 Boole e sua Teoria
No que diz respeito a hardware, Charles Babbage é considerado o avô do
computador. Por outro lado, em questão a software, o matemático George Boole é
considerado o pai da lógica moderna por ter desenvolvido em 1847, a teoria de um
sistema lógico que reduzia a representação de valores através de dois algarismos: 0
21
ou 1. (GUGIK, 2009a)
Nessa teoria, o “1” significava: ativo, ligado, existente, verdadeiro. Já o “0”
representava: não ativo, desligado, não existente, falso. Para representar valores
intermediários como “mais ou menos” ativo, era possível utilizar dois ou mais
algarismos (bits) para sua representação como: 00 – desligado, 01 – carga baixa, 10
– carga moderada, 11 – carga alta. (GUGIK, 2009a)
1.2.3 1890 e a Máquina de Hollerith
Em 1890 para o censo nos EUA, Hermann Hollerith utilizou o conceito de
cartões perfurados do Tear Programável para desenvolver uma máquina, mostrada
pela Figura 1.4, que acelerava o processo de computação dos dados coletados.
As respostas de sim ou não às questões do senso, eram perfuradas no cartão
em vez de serem marcadas com um “X”, o que tornou possível processar todas as
informações em 1/3 do tempo normal.
Figura 1.4 - A máquina de Hollerith.
Fonte: Gugik, 2009ª.
Devido ao sucesso obtido com a utilização desta máquina, Hollerith fundou
sua
própria
empresa,
chamada
Tabulation
Machine
Company
em
1896,
permanecendo no comando até seu falecimento. Seu substituto, que assumiu em
1916, alterou o nome da empresa para Internacional Business Machine (IBM).
(GUGIK, 2009a)
22
1.2.4 Computadores Pré-modernos e a 2ª Guerra
De acordo com Gugik (2009a), em 1931, Vannevar Bush programou um
computador com uma arquitetura binária propriamente dita, usando os bits 0 e 1. A
base decimal exigia que a eletricidade assumisse 10 voltagens diferentes, o que era
muito difícil de ser controlado. Por isso, Vannevar utilizou a lógica de Boole, em que
somente dois níveis de voltagem eram suficientes.
O grande incentivador para o desenvolvimento de computadores foi a
Segunda Guerra Mundial. Pois as máquinas cada vez mais se tornavam úteis em
tarefas de desencriptação de mensagens inimigas e criação de armas mais
inteligentes.
Os projetos deste período que mais se destacaram foi o Mark I, em 1944,
criado pela Universidade de Harvard e o Colossus, em 1946, criado por Allan Turing.
(GUGIK, 2009a)
1.3
COMPUTAÇÃO MODERNA
A computação moderna pode ser definida pelo uso de computadores digitais,
sem componentes analógicos em seu funcionamento, podendo ser dividida em
grupos chamados de Gerações. Segundo Gugik (2009a), a primeira geração
abrange o período de 1946/1959, a segunda de 1959/1964, a terceira de 1964/1970
e a quarta de 1970 aos dias atuais.
Alguns especialistas, porém, citam ainda uma quinta geração que seria do
final de 1980 até os dias atuais.
1.3.1 Primeira Geração
Essa geração tinha como característica o uso de válvulas eletrônicas e
grandes dimensões. Eram utilizados quilômetros de fios e atingiam temperaturas
muito elevadas causando problemas de funcionamento. Os programas normalmente
23
eram escritos em linguagem de máquina. (GUGIK, 2009a)
Para Gugik (2009a), a mais famosa máquina da primeira geração foi o
Electrical Numerical Integrator and Calculator ou ENIAC, mostrado na Figura 1.5,
desenvolvido em 1946, pelos cientistas norte-americanos John Eckert e John
Mauchly, sendo 1000 vezes mais rápido que qualquer outra máquina da época.
Figura 1.5 - O ENIAC.
Fonte: Gugik, 2009a.
Sua principal inovação era a computação digital, superiores aos projetos
mecânicos-analógicos desenvolvidos até então. A maior parte de suas operações
era realizada sem a necessidade de se movimentar peças manualmente, ocorrendo
somente pela entrada de dados no painel de controle. Cada operação podia ser
acessada através de configurações padrões de chaves e switches. Com grandes
dimensões, seu peso total era de 30 toneladas. (GUGIK, 2009a)
1.3.2 Segunda Geração
Na segunda geração houve a substituição das válvulas eletrônicas por
transistores, o que diminuiu o tamanho do hardware, e a criação da tecnologia de
circuitos impressos, que evitava que fios e cabos ficassem espalhados. (GUGIK,
2009a)
O IBM 7030 (Strech), mostrado na Figura 1.6, foi o primeiro supercomputador
da segunda geração. Ele possuía tamanho reduzido se comparado ao ENIAC,
24
sendo utilizado por grandes companhias e custando milhões de dólares. Executava
cálculos em microssegundos, permitindo até um milhão de operações por segundo,
atingindo assim um novo patamar de velocidade e confiabilidade. (GUGIK, 2009a)
Figura 1.6 - IBM 7030.
Fonte: Gugik, 2009a.
Ainda na segunda geração, existiu o PDP-8, considerado um dos
minicomputadores mais conhecidos, sendo basicamente uma versão mais simples
de supercomputador, porém, ainda ocupando grande espaço físico. (GUGIK, 2009a)
1.3.3 Terceira Geração
A terceira geração é marcada pela utilização de circuitos integrados, que
permitiam que uma mesma placa armazenasse vários circuitos que se comunicavam
com hardwares distintos ao mesmo tempo, tornando as máquinas mais velozes, com
um
número
maior
de
funcionalidades.
Seu
preço
também
diminuiu
consideravelmente. (GUGIK, 2009a)
Lançado em 1967, o IBM 360/91, Figura 1.7, é um dos principais exemplos
desta geração, trabalhando com dispositivos de entrada e saída modernos para a
época, como discos e fitas de armazenamento, além de permitir a impressão dos
resultados em papel, sendo um grande sucesso em vendas na época. Este modelo
25
da IBM foi um dos primeiros a permitir programação da CPU por micro código, na
qual as operações usadas por um processador qualquer poderiam ser gravadas
através de softwares, sem a necessidade de projetar todo o circuito de forma manual
(GUGIK, 2009a).
Figura 1.7 - IBM 360/91.
Fonte: Gugik, 2009a.
1.3.4 Quarta Geração
A redução de tamanho e dos preços das máquinas é a principal característica
da quarta geração. As CPUs atingiram patamar de bilhões de operações por
segundo, permitindo que muitas tarefas pudessem ser executadas. Os circuitos se
tornaram ainda mais integrados e menores, o que permitiu o desenvolvimento dos
microprocessadores e dos computadores pessoais. Na quarta geração, os softwares
e sistemas se tornaram tão importantes quanto o hardware. (GUGIK, 2009a)
Lançado em 1975, o Altair 8800, revolucionou o que era conhecido como
computador àquela época. Com um formato retangular e um tamanho que o fazia
caber em uma mesa, era muito mais rápido que os computadores anteriores. Seu
projeto utilizava o processador 8080 da Intel, fato que propiciou esse desempenho.
Nessa época de seu lançamento, o jovem programador Bill Gates se
interessou pelo Altair 8800 e criou para ele a linguagem de programação Altair Basic.
O Altair funcionava através de cartões de entradas e saída, sem uma interface
26
gráfica propriamente dita. (GUGIK, 2009a)
Figura 1.8 - Altair 8800.
Fonte: Gugik, 2009a.
Segundo Gugik, (2009a), apesar do sucesso do Altair, outro jovem chamado
Steve Jobs, que viria a ser o futuro fundador da Apple, sentiu que mesmo com suas
funcionalidades, o computador não era fácil de ser utilizado por pessoas comuns.
Acreditando que um computador deveria representar de maneira gráfica o seu
funcionamento, foi lançado em 1976, o Apple I e em seguida no ano de 1979 o
Apple II. GUGICK (2009a)
O Apple I era vendido já montado. Sua placa era vendida sem nada,
acomodada dentro de uma caixa de papelão, sem nenhum tipo de gabinete, por isso
era comum que os computadores fossem instalados dentro de caixas de madeira
feitas artesanalmente, conforme figura 1.9. (MORIMOTO, 2005a)
Figura 1.9 - Apple I.
Fonte: Kopplin, 2002.
Em 12 de agosto de 1981, depois de quase um ano de desenvolvimento, o
primeiro PC foi lançado pela IBM, utilizando apenas componentes-padrões, que
27
pudessem ser encontrados facilmente no mercado. O processador escolhido foi o
Intel 8088, uma versão econômica do processador 8086, que havia sido lançado
pela Intel em 1978. (MORIMOTO, 2005b)
Figura 1.10 - IBM PC.
Fonte: IBM, 2011.
Em 1998 foi lançado o iMac, Figura 1.11, que revolucionou o mundo dos
computadores com o conceito de “tudo-em-um” e se tornou um pilar na linha da
Apple. Foi o primeiro computador da empresa a oferecer entradas USB e a remover
o SCSI e sua a porta serial proprietária. (FAAS, 2009)
Seu lançamento marcou a volta de Steve Jobs, onde sua preocupação com o
design permitiu a criação de uma máquina enxuta e moderna. (TECNOLOGIA, 2011)
Figura 1.11 - Steve Jobs e o novo iMac.
Fonte: Tecnologia, 2011.
Em 2003 foi lançada para o mercado de servidores a tecnologia Blade,
mostrado na Figura 1.12, que trazia características como, tamanho reduzido e
28
menor consome de energia e de refrigeração, porém apresentando processamento
de um servidor tradicional.
Em 2006, foi apontado como uma das novas tendências no mercado de
servidores, conquistando espaço na área de TI. (OLIVEIRA, 2006)
Essa previsão tem se confirmado, devido à sua ampla utilização em
virtualização atualmente.
Figura 1.12 - Modelo de chassis Blade.
Fonte: IBM, 2011.
No mercado de desktops, as inovações continuam vindas da Apple, cujo
design é um dos seus pontos fortes, a exemplo do iMac, na Figura 1.13.
Figura 1.13 - o novo iMac.
Fonte: Apple Store, 2011.
1.4
HISTÓRICO DOS SISTEMAS OPERACIONAIS
De acordo com Maziero (2011), no final dos anos 40 e início dos anos 50, os
29
computadores não possuíam sistema operacional como os que existem atualmente.
Nos anos 40 um programa era executado sozinho e tinha total controle do
computador. Todos os processos envolvidos para a sua execução deveriam ser
programados detalhadamente pelo desenvolvedor da aplicação.
Nos anos 50, o fornecimento das bibliotecas de sistema (system libraries) que
encapsulavam o acesso aos periféricos, veio para facilitar a programação de
aplicações. Na mesma década se passou a utilizar o system monitor no auxílio da
carga e descarga das aplicações entre a memória e periféricos. (MAZIERO, 2011)
Segundo Gugik (2009b), na década de 1960 os sistemas operacionais eram
desenvolvidos conforme a tecnologia da época, e cada máquina possuía seu próprio
sistema, gerando incompatibilidade entre os diferentes Mainframes existentes.
Em 1961, o pesquisador Fernando Corbató e seu grupo do Massachusetts
Institute of Technology (MIT), anunciaram o desenvolvimento do Compatible TimeSharing System (CTSS), o primeiro sistema operacional com compartilhamento de
tempo. (MAZIERO, 2011)
Figura 1.14 - IBM 7090 executando o CTSS.
Fonte: Gugik, 2009b.
Em 1969 foi criada a primeira versão do UNIX, por Ken Thompson e Dennis
Ritchie, pesquisadores dos Bell Labs. (MAZIERO, 2011)
Durante a década de 70, o Unix, que tinha uma interface em modo texto, foi
distribuído gratuitamente para universidades e órgãos governamentais norteamericanos.
E 1977, baseado no Unix, foi lançado o Berkeley Software Distribution (BSD),
Figura 1.15, focado principalmente para a execução em máquinas específicas de
alto desempenho e grande porte. (GUGIK, 2009b)
30
Figura 1.15 - Comando em modo texto no BSD.
Fonte: Gugik, 2009b.
No ano anterior, em 1976, a Apple havia marcado a história com o
desenvolvimento para o Apple I, de um SO que pudesse ser operado por pessoas
comuns. (GUGIK, 2009b)
Em 1981 a Microsoft que havia criado o Altair Basic, lançou o MS-DOS, um
sistema operacional que, segundo Maziero (2011), havia sido comprado da empresa
Seattle Computer Products em 1980, para atender a um contrato feito junto à IBM.
Sua interface era baseada em modo texto, bastante parecida com a utilizada pelo
Unix, conforme Figura 1.16.
Figura 1.16 - Sistema operacional MS-DOS.
Fonte: Gugik, 2009.
A década de 80 ficou marcada pela disputa entre Apple e Microsoft. Porém
outros fatos importantes ocorreram nesta década.
Em 1983 Richard Stallman, criou o projeto Gnu is Not Unix (GNU). Ele
defendia a ideia de que os softwares deveriam ser desenvolvidos de maneira livre,
sem restrições na leitura ou modificação de seus códigos fontes. Um de seus
31
principais objetivos era desenvolver sua própria versão do Unix, através de um
Kernel próprio, chamado de GNU Hurd. Contudo, este núcleo possuía muitas falhas
de sistema, comprometendo o seu desenvolvimento. (GUGIK, 2009b)
Em 1984, o MIT desenvolveu o X Window System, Figura 1.17, um sistema
gráfico de Janelas para o Unix que permaneceu proprietário até 1987, quando uma
versão opensource foi lançada e incorporada ao seu desenvolvimento.
Figura 1.17 - Sistema X Windows System.
Fonte: Gugik, 2009b.
De acordo com Maziero (2011), no mesmo ano a Apple lançou o Macintosh
OS 1.0, Figura 1.18. Conforme Gugik (2009b), ele utilizava as ideias desenvolvidas
pela Xerox Palo Alto Research Center, com ícones e pastas para representar
programas e arquivos, as quais Steve Jobs havia conhecido em 1979.
Figura 1.18 - Macintosh OS 1.0.
Fonte: Morimoto, 2011.
Em 1985 Microsoft entrou no ramo de sistemas operacionais com interfaces
gráficas, através do MS-Windows 1.0, mostrado na figura 1.19. (MAZIERO, 2011)
32
O sistema muito era parecido com o do Macintosh, o que levou a quebra a
parceria entre a Apple e a Microsoft. (GUGIK, 2009b)
Figura 1.19 - MS-Windows 1.0.
Fonte: Gugik, 2009b.
Em 1987, Andrew Tanenbaum, professor de computação holandês,
desenvolveu um sistema operacional didático simplificado, porém respeitando a API
do UNIX, que recebeu o nome de Minix.
Neste mesmo ano, a IBM e a Microsoft apresentaram a primeira versão do
OS/2, mostrado na Figura 1.20. Um sistema multitarefa destinado a substituir o MSDOS e o Windows. Mais tarde, as duas empresas romperam a parceria e cada uma
continuou com seu sistema de forma independente. (MAZIERO, 2011)
Figura 1.20 - OS/2 Warp.
Fonte: Meio Bit, 2008.
Os anos 90 foram marcados por diversos acontecimentos no mundo dos
sistemas operacionais.
33
Um exemplo foi o lançamento do Windows 3.x. Nessa versão, a memória
passou a ser gerenciada de forma mais eficiente e foram incluídas melhorias em sua
interface gráfica, além de ser criado um painel de controle e um gerenciador de
arquivos organizado, facilitando o trabalho do usuário. Um dos principais motivos
que também contribuíram para seu sucesso foi o fato do sistema já vir instalado de
fábrica em um grande número de máquinas. (GUGIK, 2009b)
Em 1991, Linus Torvalds, um estudante de graduação finlandês, iniciou o
desenvolvimento do Linux, lançando na rede Usenet o Kernel 0.01, que foi recebido
de braços abertos por centenas de programadores ao redor do mundo. (MAZIERO,
2011)
Em 1993, a Microsoft lançou o Windows NT, o primeiro sistema 32 bits da
empresa. Também houve o lançamento dos UNIX de código aberto FreeBSD e
NetBSD destacada por Maziero (2011).
Gugik (2009b), também destaca para este ano, a criação das primeiras
distribuições Linux, Debian e Slackware.
Em 1995, a Microsoft lançou Windows 95, sendo uma versão importante para
informática que acabou definindo o padrão com que o desktop é organizado, com
um botão Start, Menu Iniciar, barra de tarefas, o gerenciador de arquivos Windows
Explorer e o navegador Internet Explorer, ilustrado pela Figura 1.21.
Figura 1.21 - Windows 95.
Fonte: Gugik, 2009b.
Após alguns Services Packs, esta versão passou a suportar a leitura de
dispositivos USB. Seu sucessor foi o Windows 98 que, apesar de apresentar
34
melhorias em relação ao 95, era um pouco lento, o que só foi resolvido em 1999,
com o lançamento do Windows 98 Second Edition (SE), que incluía funções
avançadas para compartilhamento de rede, suporte integrado a drivers de DVDROM, entre outras características. (GUGIK, 2009b)
No final dos anos 90 e início de 2000, a Apple passava por uma experiência
de fracasso com seu sistema Macintosh que apresentava muitos problemas,
obrigando que um novo plano fosse traçado. (MAZIERO, 2011)
A Microsoft enfrentava problemas parecidos com o Windows Me, lançado em
2000, como sucessor do Windows 98. (GUGIK, 2009b)
Em 2001, a Microsoft lançou Windows XP, Figura 1.22, que se tornou um
marco na história dos sistemas operacionais, por trazer recursos novos, entre eles,
maior segurança do sistema, através da diferenciação de permissões entre
administradores e usuários comuns. (GUGIK, 2009b)
Para Gugik (2009b), a sua estabilidade é um de seus pontos fortes, sendo o
principal motivo para tal, o uso do Kernel NT como base do sistema, excluindo a
necessidade do MS-DOS por baixo da interface gráfica. Esse núcleo vinha sendo
usado desde outras versões do Windows lançadas para uso de servidores, mas foi
somente no XP que esta arquitetura foi lançada para o usuário comum.
Figura 1.22 - Windows XP.
Fonte: Gugik, 2009b.
No mesmo ano de 2001, a Apple, lançou o Mac OS X, Figura 1.23, reescrito
do zero, tendo como base o Unix BSD. (MAZIERO, 2011).
35
Figura 1.23 - MAC OS X.
Fonte: Gugik, 2009b.
Em 2008, a Microsoft lançou um de seus melhores sistemas para servidores,
o Windows Server 2008. Esta nova versão trouxe além de novos recursos, melhorias
em outros, como por exemplo, uma nova interface de gerenciamento, que substitui a
antiga ferramenta Configure Your Server.
Dentre outras novidades, está verificação de dependências feita pelo Server
Manager, mostrado na Figura 1.24, que se certifica de que o servidor tem os
componentes e a configuração corretos com diversos assistentes.
Figura 1.24 - Windows Server 2008.
Fonte: OSworld, 2009.
Também foi atualizado o IIS para a versão 7 junto a um aplicativo de
gerenciamento
reformulado
e
melhorias
no
Gerenciamento
de Autoridade
Certificadora e em seu Firewall, entre outras. (NETWORKWORLD, 2008)
36
Outro importante recurso é o Hyper-V, sistema de virtualização integrado ao
Windows 2008, que possibilita a execução de máquinas virtuais com diferentes
sistemas operacionais como Windows e Linux, ao mesmo tempo. (MICROSOFT,
2007)
Após o lançamento desastroso do Windows Vista em 2007, a Microsoft lançou
em 2009, o Windows 7, Figura 1.25, que tem como base o Kernel do 2008,
garantindo assim grande estabilidade ao sistema.
Figura 1.25 - Windows 7.
Fonte: Gugik, 2009b.
Em 2011 houve o lançamento da versão 3.0 do Kernel Linux, conforme
anunciado em Torvalds (2011), e da nova versão do sistema operacional Ubuntu
Linux, na versão 11.10, mostrado na Figura 1.26.
Figura 1.26 - Ubuntu 11.10.
Fonte: Distrowatch, 2011.
37
Também em 2011, a Apple lançou uma nova versão do seu sistema
operacional, o Mac OS X Lion.
Figura 1.27 - Mac OS X Lion.
Fonte: Apple, 2011.
Estes foram alguns dos fatos que mais se destacaram ao longo dos anos, no
que se refere às historias dos computadores e dos sistemas operacionais.
O objetivo foi mostrar a evolução da tecnologia dos computadores e das
interfaces gráficas até os dias atuais, em que o conceito de desktop e servidor, vai
convergindo para a virtualização.
38
2 FUNCIONAMENTO DOS COMPUTADORES
Para entender o funcionamento de uma máquina virtual, é necessário
compreender o que compõe e como funciona um sistema convencional de
computação.
Este capítulo tem como objetivo mostrar os conceitos básicos de alguns dos
componentes de hardware e software que compõem um computador.
2.1
A ESTRUTURA BÁSICA
Um computador é composto por Hardware e Software. O Hardware e as
instruções visíveis aos programadores formam o nível chamado de Instruction Set
Archtecture (ISA). A ISA define as propriedades do equipamento, por exemplo,
instruções de CPU ou registros do processador e assegura um comportamento
esperado pelo programador e suas ferramentas de compilação. (BRENDEL, 2008)
2.1.1 O Hardware
Através de um conjunto de códigos, o sistema operacional interage com o
hardware, disponibilizando-o para uso. Para que se possa entender de uma melhor
forma, é preciso compreender sobre os recursos fornecidos pelo hardware e a forma
de acessá-los. Um computador típico é constituído por:
Processador: executa as instruções das aplicações. Conforme descreve
Maziero (2011), o processador é o núcleo de um sistema de computação, o qual é
responsável por ler de forma contínua as instruções e dados da memória ou de
periféricos, processá-los e enviar os resultados de volta à memória ou encaminhar
para outros periféricos. Um processador convencional é constituído de uma Unidade
Lógica e Aritmética (ULA) que realiza os cálculos e operações lógicas, um conjunto
de registradores para armazenar dados de trabalho e alguns registradores para
funções especiais (contador de programa, ponteiro de pilha, flags de status, etc.).
39
Memória: armazena as aplicações em execução (seus códigos e dados).
Geralmente o acesso à memória é realizado através de um controlador específico,
às vezes alocado fisicamente no próprio processador, chamada de Memory
Management Unit (MMU) ou Unidade de Gerência de Memória. A MMU é
responsável por analisar cada endereço solicitado pelo processador, validá-los,
efetuar as conversões de endereçamento necessárias e executar a operação
solicitada pelo processador como a leitura ou escrita de uma posição da memória.
(MAZIERO, 2011)
Dispositivos de armazenamento: permitem o armazenamento de dados,
podendo ser desde um disco rígido localizado internamente até um dispositivo USB,
ou cartão de memória.
Periféricos: fazem a comunicação com o mundo exterior (teclado, mouse,
monitor, impressora, etc.). O acesso aos periféricos é realizado através de circuitos
específicos chamados de controladores. Por exemplo, a placa de vídeo permite o
acesso ao monitor, a placa ethernet possibilita a conexão com a rede, o controlador
USB permite acesso ao mouse, teclado e outros dispositivos USB externos,
conforme ilustrado na Figura 2.1. (MAZIERO, 2011)
Figura 2.1 - Arquitetura de um computador típico.
Fonte: Maziero, 2011, p. 11.
Placa-mãe: recebe todos os itens citados anteriormente e possibilita sua
comunicação física. Todos os principais componentes que constituem o computador
são interligados através de barramentos, que são utilizados para a transferência de
dados, endereçamento e sinais de controle. (MAZIERO, 2011)
Os barramentos podem ser classificados de acordo com suas funções como
40
de endereços, controle e dados. O barramento de endereços indica a posição da
memória ou dispositivo a ser acessado. O barramento de controle indica a operação
a ser realizada, como leitura ou escrita. O barramento de dados transporta a
informação entre o processador e a memória ou um controlador de dispositivo.
Conforme Maziero (2011), cada dispositivo é representado por seu respectivo
controlador perante o processador e pode ser acessado através de portas
endereçáveis de E/S, onde para cada controlador é atribuída uma faixa de
endereços, conforme mostrado pela Tabela 2.1.
Tabela 2.1 - Endereços de acesso a dispositivos.
Dispositivo
Endereços de Acesso
Teclado
0060h-006Fh
Barramento IDE Primário
0170h-0177h
Barramento IDE Secundário
01F0h-01F7Fh
Porta Serial COM1
02F8h-02FFh
Porta Serial COM2
03F8h-03FFh
Fonte: Maziero, 2011, p. 12.
2.1.2 O Sistema Operacional
Para Maziero (2011), um Sistema Operacional é mais que um software
executado em um hardware. Em sua constituição estão diversos outros elementos
para as mais diversas funcionalidades e, entre estes elementos, destacam-se:
Núcleo ou Kernel: gerencia os recursos de hardware e executa as
abstrações necessárias, utilizadas pelos aplicativos. É a parte mais importante de
um sistema operacional.
Drivers: um conjunto de código que possibilita a comunicação entre um
dispositivo físico e o sistema operacional. Cada dispositivo como discos rígidos,
modems, placa de vídeo ou portas USB, por exemplo, necessita deste conjunto de
código ou driver para que seja reconhecido pelo sistema operacional e funcione
adequadamente, conforme o usuário espera.
41
Programas Utilitários: são pequenos softwares que complementam o
Kernel, fornecendo funções como formatação de discos, manipulação de arquivos
(mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, etc.
Conforme Brendel (2008), todas estas partes se relacionam entre si, e a
forma dessa interligação pode variar conforme o sistema operacional. Basicamente,
pode ser demonstrado conforme a Figura 2.2.
Figura 2.2 - Estrutura de um sistema operacional.
Fonte: Maziero, 2011, p. 10
2.1.3 Abstração e Gerência de Recursos
Para Maziero (2011), acessar os recursos de hardware de um sistema de
computação pode ser uma tarefa complexa, devido às características específicas de
cada dispositivo físico e a complexidade de suas interfaces. Por este motivo, o
sistema operacional deve definir interfaces abstratas para os recursos do hardware,
visando atender objetivos, como:
Disponibilizar interfaces de acesso aos dispositivos de forma mais simples
do que se usado interface de baixo nível, visando simplificar a construção de
programas aplicativos. Dessa forma, uma aplicação para ler dados do disco rígido,
usa o conceito de arquivo, que implementa uma visão abstrata do disco rígido. Caso
contrário, para as operações de leitura ou gravação de arquivos, seria necessário
42
acessar o disco diretamente, através da manipulação de portas de Entrada e Saída
(E/S) e registradores com comandos para o controlador de disco.
Criar independência entre software e hardware. Com a definição de uma
interface abstrata de acesso a um dispositivo de hardware, o sistema operacional
possibilita que tanto o software quanto o hardware evoluam de formas
independentes. Dessa forma, por exemplo, o código em desenvolvimento de um
software para edição de texto não fica dependente da tecnologia de discos rígidos
utilizada.
Prover homogeneidade para as interfaces de acesso a dispositivos com
tecnologias distintas. O sistema operacional através das abstrações permite que
softwares utilizem uma mesma interface para dispositivos diversos. Por exemplo, um
aplicativo acessando arquivos de uma pasta em um disco, sem a preocupação com
a estrutura real de armazenamento dos dados, que podem estar em um disquete,
um disco rígido, um dispositivo conectado via USB, um CD-ROM ou até um
compartilhamento de arquivos via rede.
Além da abstração do acesso aos recursos do hardware, o sistema
operacional, deve gerenciar os recursos disponíveis, de forma a evitar conflitos que
possam surgir quando houver execução de várias aplicações simultaneamente,
através de políticas como distribuição da utilização do processador entre os
aplicativos em execução, evitando que haja monopolização de recursos, divisão da
memória RAM, de forma que exista uma área exclusiva de memória isolada para
cada aplicação, garantindo maior segurança e estabilidade, entre outros, garantindo
que cada aplicação tenha os recursos necessários para sua execução de forma
satisfatória ao usuário. Um exemplo prático é a utilização da impressora, que pode
ser acessada por vários aplicativos simultaneamente, onde o sistema operacional
cria uma fila para os trabalhos de impressão, evitando com que os conteúdos
impressos sejam misturados no processo.
Maziero (2011) ressalta sobre outra importante questão que é a gerência de
proteção dos recursos do sistema contra acessos indevidos. Com a utilização cada
vez maior de recursos compartilhado tanto em rede, quanto local por mais de um
usuário, é necessário que sejam definidos os recursos e limites para cada usuário,
como: definição de usuários grupos de acesso, procedimentos de autenticação,
criação de regras para controle de acesso e registro da utilização dos recursos pelo
usuário para fins de contabilização e auditoria.
43
2.1.4 Interrupções
Continuando com Maziero (2011), uma rotina de interrupção é, por exemplo,
quando um controlador de dispositivo, necessita passar informações ao processador
e ao invés de aguardar por uma consulta, o controlador envia uma requisição de
interrupção, através do barramento de controle. Recebendo a requisição de
interrupção, o processador suspende seu processamento atual e direciona-se para
um endereço pré-determinado encontrando-se com uma rotina de tratamento de
interrupção. Essa rotina executa as ações necessárias, atendendo o dispositivo que
a gerou e ao final do processo, o processador retoma o processamento que estava
executando antes de receber a requisição de interrupção.
Figura 2.3 - Funcionamento de uma interrupção.
Fonte: Puc-Rio, 2012.
A cada clique, acesso a disco, etc., esse processo é repetido, podendo
alcançar a casa de milhares de interrupções por segundo. Por este motivo as rotinas
de tratamento de interrupções devem ser curtas, para serem executadas o mais
rápido possível, sem prejudicar o desempenho geral do sistema. Caso ocorra uma
chamada de interrupção enquanto o processador estiver executando outra rotina de
tratamento de interrupção, ele pode ignorar a mesma temporariamente, ajustando o
bit correspondente à interrupção em um registrador específico do processador.
(MAZIERO, 2011)
Além das interrupções geradas pelos controladores dos periféricos, o
processador também pode gerar seu próprio desvio de execução, chamado de
exceção. Uma exceção pode ser causada por instruções ilegais, divisão por zero, ou
outros erros, que disparam a rotina de tratamento de exceção, usando o mesmo
mecanismo das interrupções.
Maziero (2011) salienta que as interrupções são muito importantes para os
sistemas de computação, pois dessa forma o processador não perde tempo
44
vasculhando todos os dispositivos atrás de eventos para serem tratados. As
interrupções também permitem construir funções de E/S assíncronas, no qual o
processador não precisa esperar a conclusão de cada operação solicitada a um
dispositivo, pois o dispositivo gera uma interrupção para “avisar” o processador
quando a operação for concluída. Em um computador comum, são tratados
centenas ou milhares de interrupções por segundo, de acordo com a quantidade de
periféricos instalados e a carga do sistema.
2.1.5 Proteção do Núcleo
Para assegurar que o sistema operacional gerencie de forma correta os
recursos de hardware, fornecendo-os conforme a necessidade das aplicações é
preciso que as mesmas sejam impedidas de acessarem diretamente o hardware. A
cada necessidade de recurso, um pedido deve ser feito ao sistema operacional que
avaliará e intermediará o seu acesso ao hardware. (MAZIERO, 2011)
O Núcleo e os drivers têm acessos diferenciados dos demais processos,
podendo interagir diretamente com o hardware para gerenciá-lo e configurá-lo. Os
aplicativos e demais utilitários devem ter um acesso mais restrito, evitando
interferência nas configurações e gerência, o que poderia causar instabilidade do
sistema e inutilizar os mecanismos de segurança e controle de acesso aos recursos,
como arquivos, diretórios ou áreas da memória. (MAZIERO, 2011)
Processadores modernos contam com o chamado nível de privilégio de
execução, que permite diferenciar os diferentes privilégios dos diversos tipos de
aplicativos. Através de flags especiais, a forma de mudança de um nível de
execução para outro, é controlado pelo processador. Um processador Pentium, por
exemplo, conta com quatro níveis de privilégio, onde 0 é o nível mais privilegiado.
Porém, boa parte dos sistemas operacionais construídos para esse processador só
utiliza os níveis extremos (0 para o núcleo e drivers do sistema operacional e 3 para
utilitários e aplicações). Para Maziero (2011), de forma simples, esse esquema pode
ser demonstrado considerando dois níveis básicos de privilégio:
Nível núcleo (kernel space): pode ser chamado de sistema, nível supervisor
ou monitor, no qual um código executado nesse nível tem acesso total ao
45
processador e todos os recursos internos do processador como registradores, portas
de E/S, assim como as áreas da memória podem ser acessados e todas as
instruções do processador podem ser executadas. O processador entra em
operação neste nível, ao ser ligado.
Nível usuário (userspace): neste nível, estão disponíveis apenas um
subconjunto de instruções do processador, registradores e portas de E/S. As
instruções para o processador, como HALT e RESET, consideradas perigosas, são
proibidas para todo código executando neste nível. O uso da memória também é
restringido à áreas previamente definidas. Se um código em execução tentar
executar uma operação proibida ou acessar uma área de memória restrita, o
hardware gerará uma exceção, desviando a execução para uma rotina de
tratamento dentro do núcleo, que poderá abortar o programa em execução.
A Figura 2.4 mostra de forma simples a diferença de acesso em nível núcleo e
nível usuário:
Figura 2.4 - Separação entre núcleo e aplicação.
Fonte: Maziero, 2011, p. 16.
2.1.6 Chamadas de Sistema
Chamada de sistema (system call ou syscall) é a execução de procedimentos
do núcleo, utilizando interrupções de software. Todo o acesso aos recursos de baixo
nível como periféricos, alocação de memória, ou abstrações lógicas como
finalização de tarefas, comunicação, etc., é definido através de uma chamada de
sistema pelo sistema operacional. As aplicações em nível de usuário fazem as
chamadas de sistema através de uma biblioteca do sistema ou system library, que
46
faz a preparação dos parâmetros, invocação da interrupção de software e retorno do
resultado à aplicação. (MAZIERO, 2011)
É ressaltado por Maziero (2011) que, embora o isolamento de processos na
memória realizados no nível de usuário forneça segurança, trás uma dúvida quanto
a forma de chamar a partir de uma aplicação, as rotinas oferecidas pelo núcleo para
acesso ao hardware e suas abstrações, onde não existe privilégio por parte do nível
do usuário para acessar as portas de E/S correspondentes nem invocar o código do
núcleo que executa esse acesso.
O mecanismo de interrupções mostrado anteriormente é a resposta. Essa
interrupção especial dos processadores permite acionar de forma intencional o
mecanismo de interrupção, sem a necessidade de eventos externos ou internos.
Essa instrução faz a passagem do processador para o nível privilegiado e procede
ao seu tratamento como as demais interrupções. Esse processo é chamado de
interrupção por software. Os processadores modernos já oferecem instruções
específicas pra entrar e sair do modo privilegiado, bem como registradores
específicos para a operação, o que trás maior rapidez no processo de transferência
do controle para o núcleo e um menor custo do que o tratamento de outras
interrupções. (MAZIERO, 2011)
São encontradas nos sistemas operacionais modernos, centenas de
chamadas de sistemas diferentes, para diversas finalidades. Essas chamadas de
sistemas formam
a Application Programming Interface (API)1 do sistema
operacional. (MAZIERO, 2011)
Concluindo este capítulo, espera-se que tenha sido possível, de forma básica,
um entendimento sobre o funcionamento interno de um computador, o que ajudará
na compreensão do funcionamento da virtualização, tratada no próximo capítulo.
1
API é a interface (convenções de chamada) pelo qual um programa aplicativo acessa o sistema
operacional e outros serviços. Uma API pode fornecer uma interface entre uma linguagem de alto
nível e utilitários de baixo. (FOLDOC, 1995)
47
3 VIRTUALIZAÇÃO
Este capítulo tem como objetivo descrever o histórico de evolução do conceito
de virtualização, desde os Mainframes até as versões atuais dos softwares de
virtualização, bem como os motivos que levaram ao seu desenvolvimento.
3.1
HISTÓRICO
Conforme descrito por Brendel (2008), os primeiros passos do conceito de
virtualização iniciaram-se na metade da década de 60, com o surgimento do
Compatible Time-Sharing System (CTSS), ou Sistema Compatível de Tempo
Compartilhado.
De acordo com Jones (2006), desenvolvido pelo Massachusetts Institute of
Technology (MIT) sobre o IBM 704 e o projeto Atlas da Manchester University (um
dos primeiros supercomputadores do mundo), foi pioneiro na paginação por
demanda e chamadas ao supervisor.
Outro fator para seu surgimento foi devido ao fato de existir uma pausa
obrigatória para que os operadores dos computadores da época pudessem fazer a
troca de tarefas, o que começou a ser sentido de forma incômoda, desejando-se que
a operação e o serviço de cálculo fossem conduzidos paralelamente. (BRENDEL,
2008)
Na década de 60, a IBM já reconhecia a importância da virtualização,
desenvolvendo o Mainframe System/360. Neste equipamento, todas as interfaces de
hardware eram virtualizadas através do Virtual Machine Monitor (VMM). (JONES,
2006)
Em 1972, Robert P. Goldberg em sua dissertação sobre Architectural
Principies for Virtual Computer Systems, estabeleceu as bases teóricas, e no mesmo
ano a IBM lançau no mercado o Mainframe VM/370, que sob a supervisão de um
programa de controle VMM, podia executar máquinas virtuais de diferentes sistemas
operacionais simultaneamente. (BRENDEL, 2008)
Em seu início, o VMM era chamado de Supervisor, porém mais tarde passou
48
a ser conhecido como Hypervisor (um termo criado na década de 1970). O VMM era
executado diretamente em um hardware subjacente, permitindo várias virtual
machines (VMs). Cada VM podia executar uma instância do seu próprio sistema
operacional privado, sendo conhecido como Conversational Monitor System (CMS).
O VMM da IBM continuou seu desenvolvimento e pode ser encontrado nos
modernos sistemas da série System Z Series, fornecendo compatibilidade com
versões anteriores, inclusive com a linha System/360. (JONES, 2006)
Em grande parte dos anos 80, os Mainframes dominavam e seu acesso pelo
usuário era feito através dos chamados terminais burros, que eram equipamentos
sem sistemas operacionais, só servindo como meio de acesso à sua interface.
No final da década de 80, o aumento do poder de processamento dos
equipamentos baseados na arquitetura x86, que estava ganhando mercado graças
ao seu preço mais atrativo, fez com que o uso dos caros Mainframes e da
virtualização perdesse força. A nova realidade que se formava previa que os
computadores pessoais dominariam as mesas das empresas, colocando alto poder
de processamento ao alcance do usuário comum. (BRENDEL, 2008)
Conforme citado por Brendel (2008), passados dez anos, as empresas
começaram a perceber que ter um grande computador para processar seus dados é
mais vantajoso que ter dezenas de equipamentos com as informaçoes mantidas de
forma distribuidas. Pois para cada serviço que fosse colocado em operação, um
novo servidor deveria ser disponibilizado, gerando custos com equipamentos e
infraestrutura. Percebeu-se também que estes equipamentos ficavam a maior parte
de seu tempo, com baixo uso de sua capacidade de processamento.
Em 1998, a VMware desenvolveu uma solução que possibilitava a execução
de máquinas virtuais Linux dentro de Sistemas Operacionais Windows, em
servidores x86 e permitia também que mesmo computadores pessoais fossem
capazes de executar máquinas virtuais, visto que estes também tinham poder de
processamento suficiente. Abriram-se assim, novas perspectivas de uso para os
servidores nas empresas e a possibilidade de consolidação de vários serviços em
um único equipamento, fazendo com que os custos operacionais e de infraestrutura
pudessem ser diminuidos. (BRENDEL, 2008)
Em 2003 tem-se o lançamento do XenSource, uma solução VMM, focada no
conceito de paravirtualização, em que um sistema Linux ou Windows customizados,
poderiam ser virtualizados, tendo acesso direto ao hardware hospedeiro.
49
Atualmente, com a tecnologia atual dos processadores, os sistemas já não precisam
mais ser modificados para serem virtualizados. (MAZIERO, 2011)
Vários outras soluções de virtualização ficaram conhecidas, a exemplo do
VirtualBox, originalmente desenvolvido pela Innotek, empresa surgida em 1992, que
foi adquirida pela Sun Microsystems Inc. em 2008, que por sua vez foi adquirida pela
Oracle em janeiro de 2010. (VIRTUALBOX, 2011)
3.2
DETALHES DA VIRTUALIZAÇÃO
Uma máquina virtual (Virtual Machine) pode ser definida como uma duplicata
isolada e eficiente de uma máquina real. (LAUREANO, 2006)
Até o momento, foram mostrados de forma básica, a evolução, nas formas de
hardware e software dos computadores e os componentes de um sistema
convencional de computação.
Este capítulo tem como objetivo mostrar alguns dos tipos de virtualizações
existentes, e como é possível que vários sistemas coexistam em um mesmo
hardware, executando todas as chamadas de sistemas, interrupções e acesso de
baixo nível, mostrados até agora.
3.2.1 Diferença entre Emulação e Virtualização
Para Laureano (2006), a diferença entre um sistema emulado e outro
virtualizado, é que na emulação, todas as instruções realizadas pela máquina real,
são executadas em um ambiente abstrato, o que permite, por exemplo, que um
aplicativo x86 seja executado em uma plataforma Sparc. Neste exemplo, o emulador
simula uma plataforma totalmente diferente através de um software, fazendo a
máquina real executar uma aplicação que não foi desenvolvida para ela.
Para Carissimi (2008), o simulador em si, é um programa que cria uma
camada de software entre uma plataforma hóspede e a plataforma hospedeira a ser
imitada.
50
Na virtualização, o nível de abstração e funcionalidade de uma máquina
virtual encontra-se em uma posição intermediária entre uma máquina real e um
emulador, de forma que os recursos de hardware e de controle são abstraídos e
usados pelas aplicações. Uma máquina virtual é um ambiente criado pelo Virtual
Machine Monitor (VMM), também chamado de hypervisor. O hypervisor fornece uma
interface (por meio da multiplexação do hardware) que é idêntica ao hardware
subjacente e controla uma ou mais máquinas virtuais. Cada máquina virtual, que
recebe uma cópia (virtual) do computador, fornece facilidades para uma aplicação ou
um “sistema convidado” que acredita estar executando sobre um ambiente
convencional com acesso direto ao hardware, ou seja, cada máquina virtual trabalha
como um PC completo, às vezes possuindo BIOS e capacidade de configuração em
seu próprio setup. (LAUREANO, 2006)
3.2.2 A Virtualização Propriamente Dita
Para Laureano e Maziero (2008), um ambiente de máquina virtual consiste de
três partes básicas ilustradas pela Figura 3.1:
Figura 3.1 - Uma máquina virtual.
Fonte: Laureano e Maziero, 2008.
Sistema real, nativo ou hospedeiro (host system), que contém os recursos
reais de hardware e software do sistema.
Camada de virtualização, hypervisor, ou monitor (Virtual Machine Monitor VMM) que constrói as interfaces virtuais a partir da interface real.
Sistema virtual, também chamado de sistema convidado (guest system), que
51
executa sobre o sistema virtualizado. Em alguns casos, vários sistemas virtuais
podem coexistir, executando simultaneamente sobre o mesmo sistema real.
3.2.3 Tipos de Virtualização
Para Laureano (2006), existem duas formas de se construir ambientes de
máquinas virtuais, utilizando-se dois tipos de virtualização existentes:
Tipo I: sistema no qual o hypervisor é executado entre o hardware e o
sistema convidado (guest system). O hypervisor tem o controle do hardware e cria
um ambiente de máquinas virtuais em que cada VM se comporta como uma
máquina física completa que pode executar o seu próprio sistema operacional,
semelhante a um sistema operacional tradicional.
O resultado da virtualização completa da máquina é um conjunto de
computadores virtuais sendo executados sobre o mesmo sistema físico, conforme
ilustra a Figura 3.2.
Figura 3.2 - Virtualização do Tipo I.
Fonte: Laureano, 2006, p. 22.
Tipo II: o hypervisor é executado como um processo de um sistema
operacional real subjacente, denominado sistema anfitrião (host system). Neste
modelo, o hypervisor é executado sobre um sistema anfitrião, como um processo
num sistema real. Apesar de seu funcionamento ser análogo ao do Tipo I, sua maior
diferença é a existência de um sistema abaixo deste. No tipo II de virtualização, o
monitor simula para os sistemas convidados, todas as operações que o sistema
anfitrião controlaria junto ao hardware, conforme ilustra a Figura 3.3.
52
Figura 3.3 - Virtualização do Tipo II.
Fonte: Laureano, 2006, p. 22.
3.2.4 Formas de Virtualização
Ainda segundo Laureano (2006), a virtualização é uma forma de dividir os
recursos de um computador em múltiplos ambientes de execução. Existem três
formas de virtualização: de hardware, de sistema operacional e de linguagem de
programação.
Virtualização do hardware: exporta o sistema físico como uma abstração do
hardware. Assim, qualquer software escrito para a arquitetura (x86, por exemplo) irá
funcionar. Foi o modelo adotado na década de 1960 para o VM/370 nos Mainframes
IBM e é a tecnologia de virtualização utilizada pela VMware na plataforma x86.
Figura 3.4 - Exemplo de virtualização de hardware.
Fonte: Laureano, 2006, p. 25.
53
Virtualização do sistema operacional: exporta um sistema operacional
como abstração de um sistema específico. A máquina virtual executa aplicações ou
conjunto delas, de um sistema operacional específico. O FreeBSD Jail ou o User
Mode Linux são exemplos dessa tecnologia, mostrada pela Figura 3.5.
Figura 3.5 - Virtualização de sistema operacional.
Fonte: Laureano, 2006, p. 25.
Virtualização de linguagens de programação: As máquinas virtuais nessa
categoria são desenvolvidas para computadores fictícios projetados para uma
finalidade específica. É obtida através da abstração de uma camada de execução,
onde uma aplicação utiliza essa camada para executar as instruções do programa.
Essa solução garante que uma aplicação possa ser executada em qualquer
plataforma de software ou hardware, pois a camada é abstraída de forma idêntica
em todas as plataformas. As linguagens de programação Java, Smalltalk,
Microsoft .NET CLI e Parrot são exemplos dessa arquitetura.
Figura 3.6 - Virtualização de linguagem de programação.
Fonte: Laureano, 2006, p. 26.
54
3.2.5 Técnicas para Virtualização
Para Laureano (2006), as técnicas mais utilizadas para virtualização são:
Recompilação Dinâmica, Virtualização Total e Para-virtualização.
Na Recompilação Dinâmica, durante sua execução, o sistema adequa o
código gerado, para reproduzir o ambiente original do programa, utilizando
informações que normalmente não estão disponíveis para um compilador estático
tradicional, gerando assim um código mais eficiente. Em outros casos, um sistema
pode utilizar a Recompilação Dinâmica como estratégia de otimização adaptável
para executar uma representação portátil do programa como o bytecodes de Java.
Sete passos compõem esta técnica:
1- Agrupamento de bits: Na transformação de um programa em executável,
em sua compilação, com a linkedição, é armazenada uma série de
características comuns que identificam como a memória, os registradores
e as funções do sistema operacional são manipulados. Um emulador ou
uma máquina virtual pode utilizar esse conhecimento sobre o formato do
executável e, usando heurística, recuperar os conjuntos de bits do
executável e reordená-los.
2- Desmontagem (disassembling): Os bits são desmontados e transformados
em um conjunto de instruções e operadores ordenados em pares.
3- Geração intermediária do código: As instruções são transformadas para
uma representação de máquina independente
4- Decompilação: A representação gerada é transformada em uma linguagem
de alto nível, como a linguagem C.
5- Compilação: O código gerado é novamente compilado para a nova
plataforma.
6- Montagem (assembling): Os códigos gerados pela compilação são
novamente montados (linkeditados), preparando a criação de um novo
executável.
7- Armazenagem dos bits: Os bits são agrupados de forma a gerar o novo
executável.
Na Virtualização Total, toda a estrutura de hardware é virtualizada e desta
forma o sistema que será virtualizado não necessita de qualquer alteração para que
55
possa ser instalado. Seu principal atrativo reside neste fato, porém, o sistema
virtualizado é executado de forma mais lenta e o hypervisor precisa implementar
alternativas para que as operações privilegiadas possam ser executadas em
processadores que não suportem a virtualização nativamente. (CARISSIMI, 2008)
Para Carissimi (2008), alguns dos principais motivos para sua execução de
forma mais lenta são:
1- A diversidade de dispositivos existentes que compõem um computador, o
que torna difícil implementar uma máquina virtual que imite o
comportamento exato de cada tipo de dispositivo, sendo necessário prover
no hypervisor, suporte a um conjunto genérico de dispositivos.
2- Por não ser modificado, as instruções executadas pelo sistema hóspede
devem ser testadas no hypervisor para identificar se elas são sensíveis ou
não, o que representa um custo de processamento.
3- A implementação do hypervisor com virtualização total deve contornar
alguns problemas técnicos devido à forma como os sistemas operacionais
são implementados. Por exemplo, um sistema operacional convencional
(Linux ou Windows) trabalha memória virtual através de paginação. Há
uma gerência de alocação, liberação e controle de acesso às páginas que
devem respeitadas. É necessário converter o espaço de endereçamento
do sistema hóspede para um real, disputando recursos com outro sistema
hóspede.
Na Para-virtualização, o sistema para poder ser virtualizado (convidado)
necessita sofrer modificações para que a interação com o hypervisor seja mais
eficiente. Essa modificação diminui a portabilidade do sistema, porém permite que o
sistema convidado consiga acessar recursos do hardware diretamente. Todo o
acesso é monitorado pelo hypervisor, que fornece ao sistema convidado todos os
limites do sistema, tais como endereços de memória e endereçamento em disco, por
exemplo. Conforme destaca Laureano (2006), a principal razão para utilizar a paravirtualização é seu desempenho obtido, o que acaba compensando as modificações
implementadas nos sistemas convidados.
Para Carissimi (2008), a para-virtualização é uma abordagem alternativa que
surge como forma de contornar as desvantagens da virtualização total. Nela, o teste
por instrução não é mais necessário e os dispositivos de hardware são acessados
por drivers da própria VMM.
56
3.2.6 Virtualização e Rede
Embora a virtualização esteja na maioria das vezes associada a uma técnica
que permite executar múltiplos sistemas operacionais e suas aplicações em
máquinas virtuais sobre uma única máquina física, seu conceito é mais amplo.
Conforme Carissimi (2008), baseado na citação da Enterprise Management
Association (EMA), a virtualização é a técnica que mascara as características físicas
de um recurso computacional dos sistemas, aplicações ou usuários que o utilizam.
Dessa forma, pode-se apontar o uso da virtualização na implementação de desktops
remotos, discos virtuais, computação em cluster, etc.
Em ambientes de rede, a virtualização é utilizada na implantação de serviços
de Internet e na própria infraestrutura de rede, conforme mostrados a seguir.
3.2.7 Virtualização de Serviços de Internet
Carissimi (2008) diz que, geralmente os serviços de Internet são concebidos
utilizando a arquitetura de multicamadas, em que determinado serviço, é dividido em
várias unidades funcionais, sendo as mesmas distribuídas em várias máquinas com
o objetivo de alcançar alguns benefícios como balanceamento de carga, tolerância a
falhas, etc.
Pode-se citar como exemplo um servidor web que acessa um banco de dados
e este banco de dados não precisa estar na mesma máquina que o servidor web.
Tendo um servidor de banco de dados único, tanto o servidor web como outro
serviço qualquer pode usufruí-lo. Dessa forma, não ocorre a replicação de serviço do
banco de dados e se evita que o servidor web também funcione como um servidor
de banco de dados. (CARISSIMI, 2008)
Porém, com este tipo de infraestrutura de um servidor por serviço, os
responsáveis pela TI perceberam um problema e um custo para gerenciar diferentes
máquinas físicas, mesmo que do mesmo sistema operacional. Existem também os
problemas relacionados com consumo de energia elétrica, refrigeração, espaço
físico, segurança física, etc. Neste exemplo, a virtualização surge como uma
57
possibilidade de agregar os benefícios da componentização2 de software com a
redução dos custos de manutenção de hardware e software. Assim, é possível
manter a ideia de um servidor por serviço sem ter um equipamento específico.
(CARISSIMI, 2008)
Considerando-se que uma minoria de serviços está ativa enquanto a maioria
está bloqueada a espera de requisições, o que representa um desperdício de
recursos e que ao consolidar diferentes serviços em um mesmo equipamento físico,
pode-se correr o risco de uma falha em um serviço comprometer o funcionamento de
outro, a virtualização possibilita, por exemplo, que se mantenham de forma isoladas
máquinas virtuais com serviços como DNS, DHCP, e-mail, etc., em um mesmo
hardware, em uma técnica chamada de consolidação de servidores. (CARISSIMI,
2008)
3.2.8 Virtualização da Infraestrutura de Rede
Para Carissimi (2008), além da rede de serviços de Internet propriamente dita,
existe uma infraestrutura física que é composta por equipamentos de interconexão e
sua interligação. Eles podem ser visualizados como máquinas com um sistema
operacional específico, dedicado a execução de uma tarefa como roteamento,
encaminhamento de pacotes (Switches) e Firewalls. Vários fabricantes desses
equipamentos utilizam soluções baseadas em Linux embarcado. Dessa forma podese estender a ideia de máquinas virtuais também para estes equipamentos.
A virtualização destes equipamentos de redes inicia-se no suporte que as
máquinas virtuais oferecem para as interfaces de rede. Essas interfaces de redes
virtuais se comportam exatamente como interfaces reais com endereço MAC
distinto, suporte a unicast, multicast, broadcast e VLANs, e cada máquina virtual tem
seu próprio endereço IP. (CARISSIMI, 2008)
O par TUN/TAP, por exemplo, são drivers de dispositivos virtuais disponíveis
para os sistemas operacionais como Mac OS, Windows, Linux e Unix, em geral.
Geralmente eles são encontrados no contexto de redes privativas virtuais ou Virtual
2
A Componentização, no âmbito da engenharia de software, pode ser conceituada como uma
unidade de software que pode ser agrupada a outras unidades de software para formar um sistema
maior. (MARTINS, 2009)
58
Private Network (VPN) ou em conjunto com o OpenSSH. Carissimi (2008), explica
que o conjunto TUN/TAP emula, respectivamente, o comportamento da camada de
rede e de enlace onde o TAP permite a criação de bridges enquanto o TUN executa
roteamento. Uma aplicação pode usar o driver TUN/TAP para enviar e receber
dados. No envio, os dados são encaminhados para a pilha de protocolos de rede
como se eles fossem oriundos de uma fonte externa e sua recepção é similar.
Assim, com o uso dos drivers TUN/TAP, qualquer par de aplicações pode enviar e
receber dados como se eles estivem tratando com um dispositivo externo. Essa é a
base usada para prover uma comunicação em rede virtual. (CARISSIMI, 2008)
Segundo Carrissimi (2008), quanto aos equipamentos de interconexão de
redes, como switches e roteadores, mesmo que naturalmente não façam parte das
máquinas virtuais, podem ser emulados da mesma forma, existindo três possíveis
formas de prover essa emulação:
A primeira é a disponibilização de um produto completo que ofereça, além da
máquina virtual, suporte para equipamentos de interconexão de rede virtuais. Essa é
a solução adotada pela VMware, Microsoft e Citrix em seus produtos para clientes
coorporativos.
A segunda é prover máquinas virtuais dedicadas a essa finalidade, como no
caso da Vyatta, por exemplo, que oferece um produto compatível com os
hypervisors mais comuns do mercado. Esta solução agrega uma camada de
software suplementar que simula equipamentos de interconexão de redes.
A terceira é oferecer hardware específico com suporte a virtualização de
equipamentos de interconexão, como é o caso de alguns produtos da linha Catalyst
da Cisco.
Carissimi (2008) conclui, portanto, que é possível construir uma infraestrutura
de rede completa totalmente virtualizada. A arquitetura exata e as opções de projeto,
como em uma rede real, dependem, caso a caso, em função de requisitos da
organização. O importante a salientar é que existe tecnologia para tal.
3.3
AS CARACTERÍSTICAS DO HYPERVISOR
Quanto ao seu funcionamento, Laureano e Maziero (2008), citam que para
59
funcionar de forma correta e eficiente, um hypervisor além de ter o controle total
sobre os recursos do sistema real (sistema hospedeiro), deve atender a alguns
requisitos básicos como, por exemplo, prover um ambiente de execução aos
programas, do ponto de vista lógico, idêntico ao da máquina real. Estes programas
quando executados em uma máquina virtual devem apresentar, no pior caso, leves
degradações de desempenho. Algumas destas características do hypervisor foram
apontadas por Laureano (2006), como importantes para a segurança de sistemas e
outras aplicações. As seguintes propriedades a serem satisfeitas foram definidas por
Goldberg e Popek e mostradas por Laureano e Maziero (2008), conforme segue:
Isolamento: garante que um software em execução em uma máquina virtual
não acesse nem modifique outro software em execução tanto no monitor ou em
outra máquina virtual. Essa propriedade é utilizada para que erros de um software
ou ataques de hackers/crackers possam ser contidos dentro da máquina virtual sem
afetar as outras partes do sistema. Além de isolar dados, o isolamento também
auxilia no gerenciamento de recursos, pois a camada de virtualização possibilita a
redução do desempenho de um sistema convidado de modo que os recursos
consumidos por uma máquina virtual não prejudiquem necessariamente o
desempenho de outras máquinas virtuais.
Inspeção: acesso e controle sobre todas as informações do estado da
máquina virtual, como estado da CPU, conteúdo de memória, eventos etc.
Gerenciabilidade: Como cada máquina virtual é uma entidade independente
das demais, a administração das diversas instâncias de VMs é simplificada e
centralizada. O hypervisor deve possuir meios para gerenciar os recursos existentes
entre os sistemas.
Interposição: intercalar ou acrescentar instruções em certas operações de
uma máquina virtual. Por exemplo, na execução de instruções privilegiadas por parte
da máquina virtual.
Eficiência: diz que grande parte das instruções do processador virtual deve
ser executada diretamente pelo processador da máquina real, sem intervenção do
hypervisor. As instruções da máquina virtual que não puderem ser executadas pelo
processador real devem ser interpretadas pelo hypervisor e traduzidas em ações
equivalentes no processador real. Instruções simples, que não afetem outras
máquinas virtuais ou aplicações, podem ser executadas diretamente no hardware.
Compatibilidade do software: A máquina virtual fornece uma abstração
60
compatível, de modo que todo o software escrito para ela funcione. Essa abstração
frequentemente pode mascarar diferenças nas camadas do hardware e do software
abaixo da máquina virtual. Isso acontece com o Java, no qual uma vez escrito um
software em sua linguagem, pode-se executá-lo em qualquer outra máquina virtual
Java.
Equivalência: o hypervisor deve oferecer um ambiente de execução quase
idêntico ao da máquina real original. Todo programa executando em uma máquina
virtual deve se comportar da mesma forma que o faria em uma máquina real e as
exceções podem resultar somente de diferenças nos recursos disponíveis (memória,
disco, etc.), dependências de temporização e a existência dos dispositivos de E/S
necessários à aplicação.
Encapsulamento: utilização da camada de virtualização para manipular e
controlar a execução do software na máquina virtual. Pode também usar uma ação
indireta para dar prioridade ao software ou fornecer um ambiente melhor para
execução. Outra propriedade é o encapsulamento de estado, que pode ser utilizado
para construir checkpoints ou snapshot do estado da máquina virtual, por exemplo,
para uma possível restauração após uma atualização do sistema operacional.
Desempenho: apesar da adição de uma camada de software a um sistema
afetar o desempenho do software que funciona na máquina virtual, os benefícios
proporcionados compensam a perda de desempenho.
Recursividade: deve ser possível executar um hypervisor dentro de uma
máquina virtual, produzindo um novo nível de máquinas virtuais. Neste caso, a
máquina real é normalmente denominada máquina de nível 0.
Laureano (2006) ressalta que os Mainframes da IBM, que são hardwares
virtualizáveis, têm uma propriedade chamada execução direta, que permite que
esses sistemas obtenham, com a utilização de máquinas virtuais, desempenho
similar ao de um sistema convencional equivalente.
3.4
FERRAMENTAS DE VIRTUALIZAÇÃO
A crescente utilização da virtualização, embora conceito antigo é uma grande
evolução da informática nos últimos anos, sendo muito importante inclusive como
61
ponto de apoio a outras tecnologias, como por exemplo, a Computação em Nuvem,
citada no início deste trabalho. Existem várias ferramentas para a virtualização, que
vão desde soluções de código aberto, até integradas ao sistema operacional.
Este capítulo tem como finalidade apresentar algumas das ferramentas de
virtualização mais conhecidas do mercado corporativo ou de uso particular.
3.4.1 VMware
Segundo Brendel (2008), a VMware foi pioneira no que se refere à
virtualização, principalmente em equipamentos da arquitetura x86 no final da década
de 90. Para Laureano e Maziero (2008), nessa época já se percebia que os
servidores que se multiplicavam nas empresas ofereciam alto poder de
processamento, porém tinham uma utilização abaixo de sua capacidade.
Seu hypervisor emula certas instruções para representar corretamente o
processador virtual em cada VM, fazendo uso de mecanismos de tradução dinâmica.
(Laureano e Maziero, 2008)
Atualmente a VMware provê uma série de serviços de soluções baseadas em
Computação em Nuvem e infraestrutura de virtualização completa com produtos que
abrangem desde desktops até Data Centers, organizados em diversas categorias,
entre elas: Data Center, Infraestrutura em Nuvem, Produtos para Segurança,
Gerenciamento de Aplicativos, Produtos Gratuitos e Computação para o Usuário
final, Produtos para Mac, Plataforma para Aplicativos e outros. (VMWARE, 2011b)
Destacam-se entre estes, como as mais conhecidas, as soluções encontradas
nas categorias Data Center e Infraestrutura em Nuvem, Produtos Gratuitos e
Produtos para Mac, que contemplam algumas das soluções descritas por Carissimi
(2008) e também por Laureano e Maziero (2008), como VMware Workstation,
VMware Player, VMware Fusion, VMware Server, VMware ESX e VMware ESXi. A
seguir serão resumidas as principais características e informações relevantes, como
a mudança de nomes de algumas dessas soluções e em qual tipo de virtualização
ela se encaixa.
VMware Workstation: segundo
Laureano e Maziero (2008), foi primeira
versão comercial de virtualização lançada em 1999, para ambientes desktops.
62
Permite a criação e a execução de máquinas virtuais sobre o hypervisor. A
configuração das máquinas virtuais para um determinado sistema operacional é feita
através de ferramenta específica integrante desse produto. (CARISSIMI, 2008)
VMware Player: versão gratuita do VMware Workstation, cuja finalidade é
permitir que usuários testem o uso da virtualização, porém não é possível criar um o
sistema hóspede ou máquina virtual a partir do zero. Por outro lado, em seu site, a
VMware distribui uma série de appliances que são imagens de sistemas hóspedes
com diferentes distribuições Linux e Windows com os mais variados tipos e soluções
de aplicativos já instalados e prontos para executar. (CARISSIMI, 2008)
VMware Fusion: é o equivalente ao VMware Workstation para o sistema
operacional MacOS X. (CARISSIMI, 2008)
VMware Server: é indicado para instalação em servidores, originalmente era
a versão gratuita dos produtos ESX Server. Seu objetivo essencial era permitir que
usuários testassem o produto antes de adquiri-lo. Assim como as versões ESX, o
VMware Server oferece a virtualização de processador, memória, armazenamento e
infraestrutura de rede. (CARISSIMI, 2008).
Em 2010, a VMware anunciou o fim do suporte para esta solução para junho
de 2011 e recomendou que as máquinas virtuais que estivessem sendo executadas
sobre o VMware Server fossem migradas para as soluções atuais e de melhor
tecnologia, por exemplo, o VMware vSphere. (VMWARE, 2011b)
VMware ESX: é a base para a criação de Data Centers virtuais. O ESX
Server é um hypervisor que virtualiza os recursos de hardware do tipo processador,
memória, armazenamento e rede. Desta forma, permite que um servidor físico seja
particionado em várias máquinas virtuais e que cada uma seja vista como uma
máquina física em uma infraestrutura de rede convencional. (CARISSIMI, 2008)
Indicado para servidores de grande porte possui um núcleo proprietário
chamado vmkernel e utiliza uma distribuição Linux para prover outros serviços, tais
como a gerência de usuários além de implementar a para-virtualização. Por
questões de desempenho, este hypervisor utiliza uma abordagem híbrida para
implementar a interface com as máquinas virtuais, no qual o controle de exceção e o
gerenciamento de memória são realizados por acesso direto ao hardware, mas o
controle de E/S usa o sistema hospedeiro. Para garantir que não ocorra colisão de
memória entre o sistema convidado e o real, é alocada uma parte da memória para
uso exclusivo de cada sistema convidado. (LAUREANO E MAZIERO, 2008).
63
Figura 3.7 - Arquitetura do VMware ESX.
Fonte: Vmware, 2012a.
VMware ESXi: de acordo com Carissimi (2008), esta versão possui as
mesmas características e funcionalidades descritas anteriormente para o ESX. A
diferença consiste em sua arquitetura interna e na forma como alguns
procedimentos de gerenciamento são executados. Conforme Figura 3.8, no ESXi o
chamado "Console de Serviço", que é usado para executar tarefas de
gerenciamento local, como a execução de scripts ou instalação de agentes de
terceiros, foi removido, reduzindo drasticamente o tamanho do código do hypervisor
para menos de 150MB contra 2GB no ESX, além de completar a tendência em curso
de migrar a funcionalidade de gerenciamento da interface local de linha de comando
para ferramentas de gerenciamento remoto. (VMWARE, 2012b).
Figura 3.8 - Arquitetura do VMware ESXi.
Fonte: Vmware, 2012a.
64
Atualmente a linha de produtos baseadas no ESX e ESXi é chamada de
plataforma VMware vSphere na versão paga e VMware vSphere Hypervisor na
versão free. A mudança de nome se deu devido ao fato de ter havido interpretações
errôneas por parte dos usuários quanto às funcionalidades oferecidas pelas duas
versões. (VSPHERE HYPERVISOR, 2012)
No kit do vSphere é incluído a virtualização do vSphere e o vCenter Server
para gerenciamento centralizado. (VSPHERE, 2012)
VMware vCenter Server: é um hub universal para gerenciar o ambiente
VMware vSphere, fornece uma gerência unificada de todos os hosts e máquinas
virtuais de um Data Center a partir de um único console, permite que os
administradores tenham mais controle e reduzam a complexidade de gerenciamento
das máquinas virtuais. Uma única instância do vCenter Server gerencia até 300
hosts e 3.000 máquinas virtuais. O vCenter Server monitora continuamente a
utilização dos pools de recursos, que migra de modo inteligente as máquinas virtuais
entre os hosts a fim de manter a integridade do ambiente e não causar paradas.
(VCENTER SERVER, 2009)
Esse recurso é chamado vMotion e é feito de forma transparente ao usuário,
ilustrado pela Figura 3.9. (VMOTION, 2012)
Figura 3.9 - Live Migration com vMotion.
Fonte: Vmotion, 2012.
VMware vCenter Converter: é a ferramenta free disponibilizada pela
VMware para, de forma simplificada, converter máquinas físicas Windows ou Linux
para virtuais, assim como conversões entre diferentes formatos de máquinas
65
virtuais. (VCENTER CONVERTER, 2012)
Todas estas soluções apresentadas possuem um nicho específico de
aplicação. Desta forma a VMware oferece uma maior abrangência de soluções aos
seus usuários.
Para este trabalho, a ferramenta da VMware utilizada será a versão vSphere
Hypervisor (ESXi).
3.4.2 Xen
Segundo Carissimi, (2008), o Xen é um hypervisor, licenciado sob os termos
da Gnu is Not Unix/ General Public Licence, ou seja, GNU/GPL, originalmente para
arquiteturas x86, que teve sua origem a partir de um projeto de pesquisa da
universidade de Cambridge, que resultou na criação da empresa XenSource inc.
Seu desenvolvimento também contou com o apoio de empresas de tecnologia
conhecidas globalmente como IBM, HP, Intel, AMD entre outras. (SLTI, 2006)
Sua primeira versão foi em outubro de 2003 e de início utilizava a técnica da
para-virtualização, na qual era necessário modificar os sistemas operacionais
hóspedes para torná-los conscientes da existência do hypervisor.
Embora este
recurso fosse justificado por questões de desempenho, limitou o emprego do Xen
aos sistemas Unix, principalmente aqueles com filosofia de código aberto.
(CARISSIMI, 2008)
Essa característica possibilitou com que fosse portado para outros sistemas
operacionais como NetBSD, FreeBSD e Solaris. (SLTI, 2006)
A partir da terceira versão, o Xen passou a oferecer virtualização completa,
permitindo o uso de sistemas operacionais não modificados, como os sistemas
operacionais da família Microsoft Windows. Entretanto, isso só é possível caso o
processador ofereça suporte de hardware, como por exemplo, Intel VT ou AMD-V.
(CARISSIMI, 2008)
Em Laureano e Maziero (2008), é cita-se que com a utilização do suporte de
virtualização disponível nos processadores atuais, é possível a execução de
sistemas convidados sem modificações, porém com desempenho ligeiramente
menor em relação aos sistemas para-virtualizados. Quanto ao seu funcionamento,
66
existem diferenças desde as versões iniciais até as atuais e também em relação a
outras soluções de virtualização, conforme mostrado por diversos autores.
Quanto à questão dos níveis de acesso tratada a seguir, faz-se necessário
destacar que são encontrados quatro níveis de privilégios de acesso para operações
de sistemas e acesso das aplicações ao hardware na arquitetura x86, conhecidos
como Ring 0, 1, 2 e 3. As aplicações de usuários típicas são executadas no Ring 3 e
os sistemas operacionais por sua vez utilizam o Ring 0, em que precisam ter acesso
direto à memória e ao hardware para executar as instruções em nível privilegiado.
(PINHEIRO, 2009)
A execução do Xen é feita diretamente sobre o hardware, no Ring 0 além da
existência de uma máquina virtual chamada de Dom0. Essa máquina tem acesso
privilegiado ao hypervisor, o que permite a ela as operações necessárias que as
demais máquinas virtuais não podem executar. A máquina virtual Dom0 é
responsável por gerenciar toda a estrutura de virtualização, fazendo uso de
aplicações que têm acesso ao hypervisor. É nesta máquina virtual que se
parametriza a virtualização do hardware e a porção entregue para cada máquina
convidada que não tenha acesso direto ao hardware e ao hypervisor. (SLTI, 2006)
Carissimi (2008) detalha que os dois principais conceitos do Xen são
domínios e hypervisor. Os domínios são as máquinas virtuais do Xen que são de
dois tipos: privilegiada (domínio 0) e não-privilegiada (domínio U). O hypervisor
tem como função controlar os recursos de comunicação, memória e processamento
das máquinas virtuais, e não possui drivers de dispositivos. De acordo com as
características do hypervisor Xen, não há suporte a interação com sistemas
hóspedes, por isso, é necessário que exista um sistema inicial a ser invocado pelo
hypervisor. Esse sistema inicial é o domínio 0, e as outras máquinas virtuais só
podem ser executadas depois que ele for iniciado. As máquinas virtuais de domínio
U são criadas, inicializadas e encerradas através do domínio 0.
Conforme ilustra a Figura 3.10, o domínio 0 é uma máquina virtual única que
executa um Kernel Linux modificado e possuí privilégios especiais para acessar os
recursos físicos de entrada e saída e interagir com as demais máquinas virtuais
(domínios U). Por ser um sistema operacional modificado, o domínio 0 possui os
drivers de dispositivos da máquina física e dois drivers especiais para tratar as
requisições de acesso a rede e ao disco efetuados pelas máquinas virtuais dos
domínios U. (CARISSIMI, 2008)
67
Figura 3.10 - Relacionamento entre os componentes do Xen.
Fonte: Carissimi, 2008, p. 192.
Segundo Carissimi (2008), para oferecer suporte tanto para a paravirtualização como para a virtualização completa, o Xen distingue os domínios U
entre para-virtualizados (U-PV) e virtualizados (U-HVM, ou Hosted Virtual Machines).
Os domínios U-PV têm consciência de que não tem acesso direto ao hardware e
reconhecem a existência de outras máquinas virtuais. Os domínios U-HVM não têm
essa consciência, e não reconhecem a existência de outras máquinas virtuais. Isso
se traduz no fato de que os domínios U-PV possuem drivers específicos para acesso
a rede e a disco para interagirem com as suas contrapartidas no domínio 0. Já as
máquinas dos domínios U-HVM não possuem esses drivers, pois não foram
modificados, e iniciam como um sistema convencional que procura executar o Basic
Input Output System (BIOS).
O Xen virtual firmware simula a existência do BIOS que executa todos os
procedimentos esperados durante um processo de boot normal de um PC
compatível. O compartilhamento do disco e as requisições de rede de um domínio
U-HVM são feitos através do daemon Qemu, que é um emulador de software de
código aberto, vinculado a cada instância U-HMV. Assim, o hardware disponível para
as máquinas virtuais do domínio U-HVM são os oferecidos pelo Qemu. (CARISSIMI,
2008)
Ainda quanto ao funcionamento, Laureano e Maziero (2008), explicam que as
principais modificações impostas pelo ambiente Xen a um sistema operacional
68
convidado são: a) o mecanismo de entrega de interrupções passa a usar um serviço
de eventos oferecido pelo hypervisor; b) e as operações de E/S de dispositivos são
feitas através de uma interface simplificada, independente de dispositivo.
Devido à diferença de funcionamento entre o Xen e o VMware, principalmente
nas suas versões iniciais, até agora o que foi mostrado sobre esta solução, foi
referente à sua versão de código aberto e apresentado de uma forma mais técnica.
Conforme Carissimi (2008), em outubro 2007 a XenSource foi adquirida pela
Citrix System, que passou e desenvolver um produto para uso profissional nas
empresas. (TAKEMURA; CRAWFORD, 2010)
A Citrix procura oferecer junto ao seu produto um processo de certificação, e
estabelecer as melhores práticas para que os administradores possam implantar o
Xen com um mínimo de trabalho. Sua solução tem como base a versão open source
do Xen na qual contribui com alterações, mas também faz um nível adicional de
controle de qualidade. (TAKEMURA; CRAWFORD, 2010)
Inicialmente o produto da Citrix consistia de dois componentes, o XenServer e
XenEssentials, em que o primeiro é o próprio hypervisor e suas ferramentas básicas
de gestão, disponível de forma gratuita, que suporta a maioria das características
dos produtos pagos Citrix, com a mesma interface, voltada para o desenvolvimento,
teste e implementações em ambientes de produção não crítico ou de testes. O
segundo é uma suíte de utilitários paga, com vários níveis de licenciamento. Esse
pacote contém todas as características do Xen open source, além de todas as
características
de
produto
exclusivamente
comercial
oferecido
pela
Citrix.
(TAKEMURA; CRAWFORD, 2010).
Atualmente, dentre os produtos de virtualização, seus recursos e ferramentas
disponíveis para seu gerenciamento a Citrix destaca:
Citrix XenServer: é o carro chefe como solução de virtualização de servidor,
fornece recursos de gerenciamento para integrar e automatizar datacenters virtuais,
com um hypervisor de 64 bits e console de gerenciamento, permite a migração em
tempo real de recursos e as ferramentas necessárias para converter cargas de
trabalho existentes a partir de um ambiente físico para virtual. (CITRIX, 2011)
Citrix XenCenter, é um console para gerenciamento em uma única interface
que permite gerenciar centenas de VMs de forma centralizada, pode ser instalado a
partir de um desktop windows. (CITRIX, 2011)
Console Web: ferramenta simples baseada em Web, que oferece aos
69
administradores de TI delegação de direitos e uma forma para gerenciar as
operações diárias de uma VM. (CITRIX, 2011)
Citrix XenConvert: permite a importação e migração de servidores físicos
para virtuais (P2V), assim como virtuais de outras soluções para virtuais (V2V).
(CITRIX, 2011)
Citrix XenMotion: permite que VMs ativas possam ser movidas para um
novo hospedeiro sem interrupções de aplicação ou tempo de inatividade, garantindo
a disponibilidade de serviços.
vApps: coleção de uma ou mais máquinas virtuais que representa uma
aplicação. O vApp combina essas máquinas virtuais em um appliance virtual que
pode ser gerenciado como uma unidade no XenCenter, e pode conter informações
críticas de configuração da VM, como o seqüenciamento de inicialização. Um vApp
pode ser atribuído a uma configuração de alta disponibilidade, e diretamente incluído
no planejamento de recuperação de desastres por meio do Integrated Site Recovery.
(CITRIX, 2011)
VM protection and recovery: oferece proteção contra perda de dados em
caso de falha da VM automaticamente, faz snapshots de máquinas virtuais
regularmente, arquivando essas imagens em um local especificado para
armazenamento. (CITRIX, 2011)
Para este trabalho, será utilizado a versão free do XenSever oferecida pela
Citrix.
Com este capítulo espera-se ter sido possível de forma básica um
entendimento do conceito da virtualização, seus tipos, características e aplicações
existentes, além dos recursos e funcionalidades oferecidas pelas soluções de
virtualização da Vmware e da Citrix.
70
4 UTILIZAÇÃO DAS FERRAMENTAS
Neste capítulo são mostradas algumas das funcionalidades das ferramentas
de virtualização VmWare e XenServer de forma mais visual, através de telas que
mostram os passos de suas instalações e suas respectivas interfaces gráficas para
gerenciamento.
São instalados sistemas operacionais de rede utilizando-se versões
conhecidas como a distribuição Linux Ubuntu Server 10.10, e o Microsoft Windows
Server 2003 e Windows Server 2008, como forma de verificar a capacidade das
soluções em executar diferentes sistemas operacionais.
No caso do Windows Server 2003, será feita a importação através das
respectivas ferramentas oferecidas tanto pela VMware com o vCenter Converter,
quanto pela Citrix com o XenConvert, de uma máquina que esteja em produção
devidamente configurada e em funcionamento.
Os passos das instalações dos sistemas operacionais das máquinas virtuais
em si não serão apresentados, visto que este não é o foco deste trabalho, mas sim a
apresentação de recursos das ferramentas como:

Importação de um servidor em produção, convertendo-o para virtual.

Movimentação de máquinas virtuais entre os hosts físicos.
Sendo estes alguns dos pontos importantes considerados durante a escolha
da ferramenta, visando o mínimo de interrupções no ambiente de trabalho. A
importação de máquinas físicas para virtual (P2V), ou virtual para virtual (V2V)
propicia maior agilidade na implantação do novo ambiente, sem que tudo seja
configurado do zero, o que demandaria um maior tempo de trabalho.
4.1 AMBIENTE DE TRABALHO
Foram utilizados neste trabalho três servidores físicos, Dell PowerEdge 2950,
onde dois servidores foram utilizados como hosts para a execução das máquinas
virtuais com a utilização do respectivo sistema hypervisor de cada solução e o outro
servidor serviu como Storage, tendo como sistema base o Ubuntu Server 10.10 com
71
discos ligados em RAID 0 e sistema de arquivos Network File System (NFS),
conforme ilustrado na tabela 4.1 e também pela figura 4.1.
Tabela 4.1 - Configuração das máquinas físicas utilizadas
Descrição
Modelo
Host 1
Host 2
Storage
PowerEdge 2950
PowerEdge 2950
PowerEdge 2950
Processador 2 Xeon Dual Core
2 Xeon Dual Core
2 Xeon Quad Core
Velocidade
1.6 Ghz
1.6 Ghz
1.6 Ghz
Memória
8 GB
8 GB
8 GB
Disco 1
2 x 70 GB - RAID 1
2 x 70 GB - RAID 1
2 x 70 GB - RAID 1
Disco 2
2 x 300 GB - RAID 1 2 x 300 GB - RAID 1
2 x 300 GB - RAID
0
Interface
SCSI
SCSI
SCSI
Fonte: Elaborada pelo autor, 2012.
Figura 4.1 - Esquema do ambiente utilizado.
Fonte: Elaborada pelo autor, 2012.
72
4.2
SOLUÇÃO DA VMWARE
Os passos necessários para a instalação do hypervisor da VmWare estão
descritos no anexo A deste trabalho.
Após a instalação do sistema base nos servidores, é necessário fazer a
instalação do vSphere Client em um computador que esteja na mesma rede. É o
vSphere Client que possibilitará que as configurações iniciais como mapeamento do
Storage e a criação e gerenciamento das VMs sejam feitas.
Desta forma que o sistema se encontra, já pode ser colocado em
funcionamento, porém, para que seja possível a movimentação das VMs entre os
hosts físicos, é necessário ainda que o gerenciamento dos servidores seja feito
através de outra máquina dedicada com o vCenter. Para efeito deste trabalho, esta
será a primeira VM a ser criada, utilizando o vSphere Client.
Ao iniciar o vSphere Client para a primeira conexão, devem ser inseridos o IP
do servidor a ser acessado, o usuário root e a senha definida na instalação,
mostrada pela Figura 4.2.
Figura 4.2 - Informações necessárias para conexão.
Fonte: Elaborada pelo autor, 2012.
Depois do processo do login com o servidor, é mostrado um alerta sobre o
certificado de segurança fornecido pelo servidor. Pode-se optar por instalar este
certificado ou ignorar sua instalação.
73
Na sequência já é exibida a tela do vSphere Client, na qual é possível acessar
diversas informações do servidor atual e demais configurações possíveis, conforme
mostrado pela Figura 4.3.
Figura 4.3 - Visualização do sumário de informações do servidor.
Fonte: Elaborada pelo autor, 2012.
Ao clicar no ícone de Home, podem ser acessadas diversas opções, como
por exemplo, administração, gerenciamento, entre outras. Estas opções podem ser
visualizadas pela Figura 4.4.
Figura 4.4 - Opções para administração e gerenciamento.
Fonte: Elaborada pelo autor, 2012.
74
4.2.1 Apresentação do Storage
Com o cliente instalado e conectado ao primeiro servidor físico, o próximo
passo é o mapeamento do Storage que conterá as máquinas virtuais, dentre elas
uma que é exclusiva para o gerenciamento do ambiente e que executa o vCenter.
Este Storage será visualizado por todos os demais servidores físicos e é muito
importante para que se possa utilizar os recursos de movimentação de VMs, entre
os hosts físicos.
Para isso, deve-se clicar no ícone Hosts and Clusters, dentro da opção
Inventory da página inicial, seleciona-se o servidor e em seguida, clique na aba
Configuration, seguida da opção Storage encontrada ao lado esquerdo do menu
Hardware e, em seguida, Add Storage, para iniciar a apresentação do Storage
localizado no servidor Linux citado no início do capítulo. A Figura 4.5 ilustra todo este
procedimento.
Figura 4.5 - Início da adição do Storage.
Fonte: Elaborada pelo autor, 2012.
A Figura 4.6 mostra a necessidade de escolha do tipo de Storage que está
sendo apresentado, tipo Lun, geralmente encontrado em equipamentos profissionais
nos quais todo o ambiente está interligado através de fibra óptica, caso contrário
selecione o tipo NFS.
Figura 4.6 - Escolha do tipo de armazenamento que será utilizado.
Fonte: Elaborada pelo autor, 2012.
75
Em seguida deve-se inserir o IP do servidor NFS, a pasta que está
compartilhada e o nome que será dado ao disco mapeado.
Figura 4.7 - Informações para o mapeamento.
Fonte: Elaborada pelo autor, 2012.
Após esses passos, ilustrados pela Figura 4.7, é mostrado na Figura 4.8, um
resumo das informações para que sejam conferidas e confirmadas, concluindo o
mapeamento do Storage.
Figura 4.8 - Resumo das opções escolhidas.
Fonte: Elaborada pelo autor, 2012.
Após clicar em Finish, o usuário é levado de volta à tela de configuração, na
qual é possível visualizar, através da Figura 4.9, o novo Storage já alocado para o
servidor.
Figura 4.9 - Mapeamento do Storage concluído.
Fonte: Elaborada pelo autor, 2012.
76
Ao clicar como botão direito do mouse, é apresentado opção de navegar pelo
disco do Storage recém-mapeado, conforme mostram as Figuras 4.10 e 4.11.
Figura 4.10 - Opção para navegação no Storage.
Fonte: Elaborada pelo autor, 2012.
Figura 4.11 - Navegação dentro do Storage.
Fonte: Elaborada pelo autor, 2012.
4.2.2 Criação da VM para o vCenter
Para que seja possível o gerenciamento centralizado dos servidores físicos
que hospedam as VMs, é necessário conforme já citado, que seja instalado o
vCenter em uma máquina dedicada, que pode ser uma máquina virtual. Para esta
versão foi necessário o uso do Sistema Operacional Windows 2008 R2 de 64 bits
para a VM, conforme ilustram as Figuras de 4.12 a 4.20.
O procedimento para a criação de VMs dos diferentes sistemas operacionais
existentes segue o mesmo conceito, basta selecionar o tipo de sistema operacional
que será virtualizado.
Na tela do vSphere Client, deve-se clicar com o botão direito do mouse no
servidor que queira se conectar e escolher no menu que se abre, a opção New
77
Virtual Machine. Esse processo é mostrado pela Figura 4.12.
Figura 4.12 - Início da criação de uma VM.
Fonte: Elaborada pelo autor, 2012.
A seguir, ilustrado pela Figura 4.13, deve-se escolher a configuração típica ou
se o usuário gostaria de personalizar as configurações da nova VM. Neste caso foi
optado pela configuração típica, porém várias configurações podem ser alteradas
através da edição das propriedades da VM após a sua criação.
Figura 4.13 - Escolha de configurações típicas para a VM.
Fonte: Elaborada pelo autor, 2012.
Em seguida deve-se escolher um nome para a VM que será criada. Neste
caso foi utilizado o mesmo nome de sua função, vCenter, como mostra a Figura
4.14.
Figura 4.14 - Escolha do nome da VM.
Fonte: Elaborada pelo autor, 2012.
78
A Figura 4.15 mostra o próximo passo que é a escolha do local de
armazenamento da VM, sendo apresentado além do disco local do servidor, o
Storage que foi mapeado anteriormente, e que foi escolhido.
Figura 4.15 - Escolha do local de armazenamento da VM.
Fonte: Elaborada pelo autor, 2012.
Agora é necessário selecionar qual é o Sistema Operacional virtualizado e
sua versão. Foi escolhido, de acordo com a Figura 4.16, o sistema Microsoft
Windows Server 2008 R2 de 64 bits, exigido para esta versão do vCenter.
Figura 4.16 - Escolha do sistema operacional e versão.
Fonte: Elaborada pelo autor.
A figura 4.17, mostra a possibilidade de escolha da quantidade de placas de
rede que a VM terá e se ela será ativada ao inicializar a VM.
Figura 4.17 - Quantidade de placas de rede utilizadas pela VM.
Fonte: Elaborada pelo autor, 2012.
79
O próximo passo, mostrado pela Figura 4.18, é definir o tamanho do disco
virtual que será alocado para a VM e que ficará alocado no Storage mapeado
anteriormente.
Figura 4.18 - Escolha do tamanho do disco que a VM terá.
Fonte: Elaborada pelo autor, 2012.
Depois é apresentado pela Figura 4.19, um resumo com todas as opções
selecionadas para a confirmação do usuário, e finalmente, criar a VM.
Figura 4.19 - Resumo das configurações escolhidas.
Fonte: Elaborada pelo autor, 2012.
Na Figura 4.20, já é possível visualizar a VM criada no servidor, pronta para
ser inicializada.
Figura 4.20 - VM criada e pronta para inicialização.
Fonte: Elaborada pelo autor, 2012.
80
4.2.3 Criação do Datacenter
Até esta etapa, a conexão do vSphere Client, foi feita somente com um dos
hosts, para que fosse possível criar a VM que conterá o vCenter que é a ferramenta
que permite gerenciar de forma centralizada dos demais hosts. Um requisito para
sua instalação conforme citado anteriormente, é que a versão do sistema
operacional seja o Windows Server 2008 R2 de 64 bits.
Depois de instalado, as conexões do vSphere Client, passam a ser feitas pelo
novo servidor. É nele que é criado o Datacenter como é chamado o conjunto de
hosts físicos que serão adicionados posteriormente para gerenciamento. Podem ser
criadas mais de uma entrada de Datacenter, para diferentes utilizações. Neste
trabalho será criado somente uma.
Ao fazer a conexão com o novo servidor, Figura 4.21, percebe-se que ao
invés de aparecer o IP do servidor, aparece a entrada vCenter. Deve-se clicar com o
botão direito do mouse sobre ele e escolher a opção New Datacenter.
Figura 4.21 - Início da criação do novo Datacenter.
Fonte: Elaborada pelo autor, 2012.
Em seguida, escolher um nome para o Datacenter e concluir sua criação,
conforme Figura 4.22.
Figura 4.22 - Datacenter criado.
Fonte: Elaborada pelo autor, 2012.
81
O próximo passo é adicionar os servidores físicos que farão parte do
Datacenter recém-criado. Neste processo mostrado pela Figura 4.23, com o botão
direito no mouse, deve-se clicar na opção Add Host.
Figura 4.23 - Adição de um host.
Fonte: elaborada pelo autor, 2012.
Em seguida aparece uma tela que solicita o endereço IP, nome de usuário e
senha para a conexão com o servidor, conforme Figura 4.24.
Figura 4.24 - Entrada das informações do servidor.
Fonte: Elaborada pelo autor, 2012.
É exibido um alerta para a autenticidade do certificado de segurança, que
pode ser verificado pela Fgura 4.25. Selecione a opção “SIM” para prosseguir.
Figura 4.25 - Alerta sobre o certificado de segurança.
Fonte: Elaborada pelo autor, 2012.
82
Em seguida um resumo com informações sobre o host e suas VMs atuais é
exibido pela Figura 4.26.
Figura 4.26 - Sumário do host.
Fonte: Elaborada pelo autor, 2012.
No próximo passo, mostrado pela Figura 4.27, o servidor deve ser associado
a uma chave de licença que foi adquirida pelo usuário para utilização dos recursos
da ferramenta.
Figura 4.27 - Associação à licença de uso.
Fonte: Elaborada pelo autor, 2012.
É oferecida a opção de bloquear tentativas de logon diretamente no servidor
físico, restringindo seu acesso somente através do vCenter, conforme Figura 4.28.
Figura 4.28 - Opção de bloqueio de logon no host físico.
Figura: Elaborada pelo autor, 2012.
83
Após, é feita a escolha do grupo em que o servidor será alocado. Neste caso
só existe um grupo, o Datacenter criado anteriormente, mostrado pela Figura 4.29.
Figura 4.29 - Seleção do Datacenter que abrigará o host.
Fonte: Elaborada pelo autor, 2012.
Um resumo com as opções escolhidas até agora é exibido pela Figura 4.30,
para confirmação do usuário.
Figura 4.30 - Apresentação do resumo pronto para finalização.
Fonte: Elaborada pelo autor, 2012.
Ao clicar em Finish, o servidor host e suas VMs em execução, já podem ser
vistos dentro do Datacenter, de acordo com a Ffigura 4.31.
Figura 4.31 - Host adicionado com sucesso.
Fonte: Elaborada pelo autor, 2012.
84
4.2.4 vCenter Converter
O vCenter Converter como já citado anteriormente, é uma ferramenta gratuita
da VMware para a conversão de máquinas físicas para virtual (P2V) ou máquinas
virtuais para virtual (V2V). Serão demonstrados os passos utilizados na conversão
de uma máquina virtual com o Microsoft Windows 2003 sendo executada sob o
VirtualBox, que é uma solução de virtualização do tipo 2 e que está em execução no
computador local utilizado no acesso ao vCenter.
Após a instalação do aplicativo na máquina que será importada, deve-se
iniciar o aplicativo e clicar na opção Convert Machine para iniciar o assistente de
importação, conforme mostrado pela Figura 4.32.
Figura 4.32 - Início da conversão.
Fonte: Elaborada pelo autor, 2012.
No próximo passo, conforme Figura 4.33, deve-se optar pelo tipo de máquina
que será convertida. Selecione a opção This local machine e clique em Next..
Figura 4.33 - Características da máquina a ser convertida.
Fonte: Elaborada pelo autor, 2012.
O próximo passo, ilustrado pela Figura 4.34, é a entrada do endereço IP do
servidor que executa o vCenter e de seu usuário com permissões de administrador.
85
Figura 4.34 - Informações do vCenter.
Fonte: Elaborada pelo autor, 2012
É exibido um alerta quanto ao certificado de segurança, pois não foi possível
verificar a autoridade certificadora do certificado emitido. Basta clicar em Ignore para
continuar. Em seguida é necessária a seleção do grupo de servidores em que a VM
será alocada. Neste caso só existe um grupo, já com três VMs em execução,
conforme ilustrado pela Figura 4.35.
Figura 4.35 - Escolha do Grupo de servidores para alocar a VM.
Fonte: Elaborada pelo autor, 2012.
O próximo passo, conforme a Figura 4.36, é escolher entre os servidores do
grupo Datacenter, qual host vai inicializar a VM e em qual Storage ela será
armazenada, caso exista mais de um.
Figura 4.36 - Seleção do servidor físico para execução inicial.
Fonte: Elaborada pelo autor, 2012.
86
A Figura 4.37, mostra as opções que podem ser alteradas, por exemplo, o
tamanho de disco da máquina a ser convertida, no qual é possível aumentar ou
diminuir o mesmo.
Figura 4.37 - Edição da máquina antes da conversão.
Fonte: Elaborada pelo autor, 2012.
Após a edição, se necessário, é apresentada uma tela, conforme Figura 4.38,
com o resumo de todos os dados referentes à importação.
Ao clicar em Finish, inicia-se o processo de conversão, que pode demorar de
acordo com o tamanho do disco da máquina de origem e a velocidade de tráfego da
rede.
Figura 4.38 - Resumo da importação.
Fonte: Elaborada pelo autor, 2012.
87
Ao término da conversão, a VM já fica disponível no vCenter e pode ser
inicializada.
Conforme ilustra a Figura 4.39, ao inicializar a nova VM, o sistema
operacional da máquina convertida detecta que houve uma alteração no seu
hardware e solicita que seja feita nova ativação de sua licença de uso.
Figura 4.39 - Alteração de hardware detectada.
Fonte: Elaborada pelo autor, 2012.
4.2.5 vMotion
Outra funcionalidade de destaque para este tipo de solução de virtualização é
a capacidade de movimentar as máquinas virtuais, em execução, entre os hosts
físicos sem ocorrer parada durante a movimentação.
Esta movimentação pode ser feita de forma automática, controlada pelo
vCenter de acordo com o consumo de recursos do host, que neste caso, direciona a
execução de uma VM para outro host, ou de forma manual, com intervenção do
administrador do sistema. Neste trabalho demonstra-se a movimentação manual de
uma VM.
Para que o recurso de movimentação esteja disponível, é preciso primeiro
habilitá-lo nas propriedades de rede dos servidores físicos.
Deve-se acessar a aba Configuration e, em seguida, Networking no lado
esquerdo da tela.
88
Ao ser exibido o gráfico das interfaces de rede, deve-se clicar em Proprieties,
para acessar a tela de configuração, conforme Figura 4.40.
Figura 4.40 - Acessando as propriedades de rede do host.
Fonte: Elaborada pelo autor, 2012.
Em seguida, na próxima tela, na aba Ports, uma entrada de nome
Management Network deve ser selecionada. Após a seleção, clique em Edit para
habilitar o vMotion. De acordo com a Figura 4.41, deve-se clicar em Enabled e em
seguida em OK. Assim, habilita-se o recurso de movimentação de VMs.
Figura 4.41 - Habilitando o vMotion.
Fonte: Elaborada pelo autor, 2012.
Com o recurso habilitado, deve-se clicar com o botão direito do mouse sobre
a VM que deseja movimentar e em seguida selecionar a opção Migrate. A Figura
4.42, ilustra este procedimento.
Figura 4.42 - Selecionando a VM para migração.
Fonte: Elaborada pelo autor, 2012.
89
Em seguida deve-se escolher entre mudar de host físico, mover os discos
virtuais para outro Storage, ou ambos. Conforme Figura 4.43, foi escolhida a opção
Change host, que muda de host físico.
Figura 4.43 - Escolha do tipo de movimentação.
Fonte: Elaborada pelo autor, 2012.
Após, ilustrado pela Figura 4.44, seleciona-se para qual host a VM será
alocada.
Figura 4.44 - Escolha de novo servidor destino para a VM.
Fonte: Elaborada pelo autor, 2012.
A Figura 4.45, mostra a opção para definir se a movimentação entre os
servidores será tratada como de alta prioridade, assim garante-se maior rapidez na
movimentação.
Figura 4.45 - Definição de prioridade par a tarefa.
Fonte: Elaborada pelo autor, 2012.
Por fim é exibida uma tela com o resumo das ações a serem executadas.
Clique em Finish para iniciar a movimentação e depois de alguns segundos, a VM já
90
aparece alocada em outro servidor, conforme Figura 4.46.
Figura 4.46 - VM após movimentação.
Fonte: Elaborada pelo autor, 2012.
4.2.6 Considerações sobre o vMotion
Para a movimentação de volta foi executado um teste simples de
comunicação para averiguação da disponibilidade de serviço com a movimentação
da máquina virtual em execução.
Figura 4.47 - Teste de conexão com o comando ping.
Fonte: Elaborada pelo autor, 2012.
Conforme mostrado pela Figura 4.47, uma tela do prompt de comando na
máquina virtual e outra na estação de trabalho que está conectada ao vCenter,
91
foram abertas para fazer um teste de comunicação através do comando ping3, entre
ambas, durante o procedimento de movimentação.
Como pode ser verificado na tela de prompt à esquerda, que representa a
estação de trabalho houve perda de somente um pacote durante o procedimento. Já
na máquina virtual, não foi registrado perca de pacote, mas sim um tempo maior de
resposta do ping.
4.3
SOLUÇÃO DA CITRIX
Os passos necessários para a instalação do XenServer, estão descritos no
Anexo B deste trabalho. Depois de instalados os servidores, é necessário que seja
feita a instalação do aplicativo XenCenter, que é a ferramenta de gerenciamento do
XenServer, que pode ser adquirido através do download no site da Citrix. Após sua
instalação, ao iniciar o aplicativo, são exibidas conforme a Figura 4.48, algumas
opções como adição de servidor, upgrade de versão, visualização de logs e outras.
Figura 4.48 - Tela inicial do XenCenter.
Fonte: Elaborada pelo autor, 2012.
3
O comando ping é utilizado em testes de conectividade, onde é possível verificar se um IP de
destino responde e quanto tempo demora em responder à solicitação. Em caso de falha na
comunicação, é exibida uma mensagem de erro. (TECHNET, 2012)
92
A partir desta tela pode-se conectar ao um dos servidores para que seja
possível visualizar suas informações e opções de gerenciamento e proceder às
configurações iniciais.
Pode-se obrservar também um link em que é oferecida uma opção para testar
outra solução da Citrix, que é a virtualização de Desktop, mas que não será tratada
neste trabalho.
Para conectar-se a um dos hosts físicos, deve-se clicar com o botão direito do
mouse sobre o item XenCenter do lado esquerdo da janela e no menu que se abre,
escolher a opção Add, conforme ilustrado pelas Figuras 4.49 a 4.52.
Figura 4.49 - Adicionando um host físico ao Xencenter.
Fonte: Elaborada pelo autor, 2012.
Em seguida é exibida uma tela solicitando o IP do servidor ao qual será feita a
conexão, além do nome de usuário, no caso o root, e a senha, conforme Figura
4.50.
Figura 4.50 - Autenticação para conexão ao host.
Fonte: Elaborada pelo autor, 2012.
Após a conexão, conforme Figura 4.51, o servidor é exibido na janela do
XenCenter. Ao lado direito da janela, podem ser acessadas as suas propriedades.
93
Figura 4.51 - XenCenter com servidor alocado.
Fonte: Elaborada pelo autor, 2012.
Dentre as propriedades fornecidas nesta janela estão o consumo de memória
pelo servidor e suas VMs, dados dos Storages mapeados, configurações de rede,
logs de eventos, entre outras.
Figura 4.52 - Monitoramento de performance do servidor.
Fonte: Elaborada pelo autor, 2012.
4.3.1 Pool de Servidores
O Pool de servidores, a exemplo do Datacenter do VmWare, é o agrupamento
de várias máquinas físicas que executarão as VMs do ambiente. É através dele que
será possível a movimentação das máquinas virtuais entre os hosts. Podem ser
94
criados vários Pools, para diferentes finalidades, como por exemplo, um grupo de
servidores físicos que executarão as máquinas virtuais de um ambiente de testes
separado do grupo de produção.
Com o Pool, todas as VMs que estejam sendo executadas em um servidor
físico passam a ser visualizadas também no outro que faz parte do mesmo grupo,
formando assim uma espécie de cluster, no qual o sistema poderá automaticamente
fazer a movimentação das máquinas virtuais de um servidor para outro, de acordo
com sua carga de processamento.
Para a criação do Pool de servidores deve-se clicar na barra de ferramentas,
na opção New Pool, conforme Figura 4.53.
Figura 4.53 - Criação do Pool de servidores.
Fonte: Elaborada pelo autor, 2012.
Em seguida, Figura 4.54, é exibida uma janela para a entrada do nome do
novo Pool e seleção dos servidores que farão parte do mesmo.
Figura 4.54 - Seleção dos servidores do Pool.
Fonte: Elaborada pelo autor, 2012.
Após a entrada das informações solicitadas, o Pool é criado e os servidores
são alocados dentro dele, conforme destaque na Figura 4.55.
95
Figura 4.55 - Pool de servidores criado.
Fonte: Elaborada pelo autor, 2012.
4.3.2 Configuração do Storage Principal
O Storage é um dos itens essenciais para as soluções de virtualização
profissionais. É ele quem armazenará as máquinas virtuais que serão criadas e
executadas pelos hosts físicos. Sem este acesso comum, o processo de
movimentação de VMs online não é possível. Conforme citado anteriormente será
utilizado um compartilhamento NFS via um servidor com Ubuntu Server, que
desempenhará este papel de Storage para efeito deste trabalho.
Conforme Figura 4.56, na barra de ferramentas do XenCenter deve-se clicar
em New Storage para iniciar o assistente para mapeamento e apresentação do
Storage para o Pool criado anteriormente.
Figura 4.56 - Inicio da apresentação do Storage NFS.
Fonte: Elaborada pelo autor, 2012.
Para o tipo de mapeamento que será feito, deve-se selecionar a primeira
opção, que é a que corresponde ao mapeamento de unidade NFS, conforme Figura
4.57.
Em um ambiente onde existe um Storage profissional, geralmente é utilizada
96
a opção Hardware HBA, para conexão via fibra óptica.
Figura 4.57 - Escolha do tipo de mapeamento a ser feito.
Fonte: Elaborada pelo autor, 2012.
Em seguida, figura 4.58, deve-se definir um nome pelo qual o mapeamento
será identificado dentro do XenCenter.
Figura 4.58 - Definição do nome do mapeamento.
Fonte: Elaborada pelo autor, 2012.
Na próxima tela deve ser inserido o caminho de rede e o nome da pasta que
está sendo compartilhada.
Ao clicar em Scan, será gerado um ID de identificação para o dispositivo que
é associado ao Pool de servidores, ilustrado pela Figura 4.59.
Figura 4.59 - Scan do disco para associar ao Pool.
Fonte: Elaborada pelo autor, 2012.
97
Após clicar em Finish, o Storage já pode ser visualizado na tela do XenCenter,
alocado no Pool de servidores, conforme Figura 4.60.
Figura 4.60 - Storage apresentado e pronto para uso.
Fonte: Elaborada pelo autor, 2012.
4.3.3 Storage para as Imagens ISO
Neste trabalho também foi utilizado um compartilhamento de arquivos em um
computador com sistema operacional Windows para armazenamento das imagens
ISOs de instalação. O mapeamento pelo XenCenter foi feito utilizando o protocolo
Common Internet File System (CIFS) de compartilhamento de arquivos em rede.
Por se tratar de um mapeamento temporário, somente até que os sistemas
operacionais fossem instalados, a disponibilização do compartilhamento foi feita pelo
desktop comum, utilizado para acesso remoto, conforme desenho do ambiente físico
ilustrado anteriormente.
Para iniciar o processo, Figura 4.61, o primeiro passo é clicar sobre o Pool e
acessar a opção New Storage, na barra de ferramentas.
Figura 4.61 - Criação do mapeamento CIFS.
Fonte: Elaborada pelo autor, 2012.
98
Na tela para a escolha do tipo de mapeamento que será realizado, deve-se
escolher a opção Windows File Sharing (CIFS), mostrado pela Figura 4.62.
Figura 4.62 - Escolha do tipo de compartilhamento.
Fonte: Elaborado pelo autor, 2012.
Conforme Figura 4.63, deve-se definir um nome para o mapeamento do
volume. Foi escolhido um nome que identifique facilmente o seu tipo na tela do
XenCenter.
Figura 4.63 - Definição do nome do mapeamento
Fonte: Elaborado pelo autor, 2012.
Na
tela
seguinte,
Figura
4.64,
deve-se
informar
o
caminho
do
compartilhamento na rede. Caso seja um compartilhamento com restrições de
segurança, pode-se informar um nome de usuário que tenha permissão de acesso
na pasta compartilhada.
Figura 4.64 - Caminho na rede do compartilhamento.
Fonte: Elaborada pelo autor, 2012.
99
Ao clicar em Finish, o mapeamento e seu conteúdo com as ISOs que serão
utilizadas já são visualizados dentro do Pool de servidores, conforme Figura 4.65.
Figura 4.65 - Mapeamento completo e seu conteúdo.
Fonte: Elaborada pelo autor, 2012.
4.3.4 Criação de uma VM
As Figuras 4.66 a 4.75 demonstram os passos necessários para a criação de
uma máquina virtual com o sistema operacional Windows Server 2008 de 32 bits. O
processo segue o mesmo conceito do utilizado no Vmware.
Para a criação dos diferentes sistemas operacionais suportados pelo
XenServer, o processo é o mesmo, bastando escolher qual sistema será
virtualizado.
Para iniciar o processo, conforme Figura 4.66, deve-se selecionar o Pool de
servidores na qual a VM será alocada. Em seguida, barra de ferramentas, deve-se
clicar no ícone New VM, para iniciar a configuração da nova máquina virtual.
Figura 4.66 - Início da criação da nova VM.
Fonte: Elaborada pelo autor, 2012.
Na tela seguinte, Figura 4.67, deve-se selecionar qual sistema operacional
100
será virtualizado, neste caso o Windows Server 2008.
Figura 4.67 - Escolha do sistema operacional para a nova VM.
Fonte: Elaborada pelo autor, 2012.
Em seguida, Figura 4.68, é exibida uma tela para a definição de um nome
para a VM e caso necessário, digitar uma descrição para melhor identificação dentro
do Pool.
Figura 4.68 - Definição do nome da VM e descrição.
Fonte: Elaborada pelo autor, 2012.
O próximo passo é definir a fonte de instalação do novo sistema. Deve-se
escolher entre o drive de DVD real do host, ou uma das imagens ISOs localizadas
no mapeamento CIFS feito anteriormente. Foi escolhida a imagem ISO do Windows
Server que se pretende instalar, conforme Figura 4.69.
Figura 4.69 - Escolha da imagem ISO para instalação.
Fonte: Elaborada pelo autor, 2012.
101
Na tela seguinte, conforme Figura 4.70, deve-se escolher se o próprio sistema
se encarregará de selecionar um host e alocar recursos para a execução da VM, ou
definir um servidor manualmente. Foi escolhida a segunda opção.
Figura 4.70 - Escolha do servidor que iniciará a VM.
Fonte: Elaborada pelo autor, 2012.
Em seguida, ilustrado pela Figura 4.71, deve-se definir o número de
processadores que a máquina virtual terá, assim como a quantidade de memória
que ficará disponível para sua execução.
Figura 4.71 - Configuração do processador e memória.
Fonte: Elaborada pelo autor, 2012.
Após, na Figura 4.72, deve-se informar em qual Storage a VM será alocada
caso existisse mais de um mapeado. Caso o usuário queira, poderá clicar no botão
Properties para acessar as propriedades do novo disco.
Figura 4.72 - Escolha do local de armazenamento da VM.
Fonte: Elaborado pelo autor, 2012.
102
Para alterar as propriedades do disco virtual, como nome e tamanho, depois
de clicar em Properties, são mostradas em uma tela as respectivas opções,
conforme Figura 4.73.
Figura 4.73 - Opção de alteração das propriedades do disco.
Fonte: Elaborada pelo autor, 2012.
O próximo passo, conforme Figuras 4.74 e 4.75, é a seleção da interface de
rede da VM, onde é possível editar as interfaces previamente configuradas para, em
seguida, visualizar o resumo de opções escolhidas e concluir o processo.
Figura 4.74 - Seleção da interface de rede da VM.
Fonte: Elaborada pelo autor, 2012.
Figura 4.75 – Resumo com as opções escolhidas.
Fonte: Elaborada pelo autor, 2012.
103
Depois de instaladas as VMs, conforme citado anteriormente, todos os
servidores que compõem o Pool passam a visualizar as mesmas máquinas virtuais,
conforme mostram as Figuras 4.76 e 4.77.
Figura 4.76 - Host 1 visualizando VMs alocados no Host 2.
Fonte: Elaborada pelo autor, 2012.
Figura 4.77 - Host 2 e o consumo de CPU local.
Fonte: Elaborada pelo autor, 2012.
4.3.5 XenConvert
O XenConvert é a ferramenta gratuita da Citrix para conversão de máquinas
104
físicas para virtual (P2V) ou de virtuais para virtual (V2V) do XenServer, que será
instalado no sistema a ser convertido. Para o teste desta funcionalidade será feita a
importação de uma máquina virtual instalada sob o VirtualBox, que é uma solução
de virtualização do tipo 2. A máquina a ser importada está executando o sistema
Microsoft Windows Server 2003.
Após a instalação do Citrix XenConvert e sua inicialização, é exibida a tela
inicial para a definição de origem, no caso a própria máquina local, e destino para o
qual a VM convertida será alocada, conforme Figura 4.78.
Figura 4.78 - Configurações iniciais de origem e destino.
Fonte: Elaborada pelo autor, 2012.
Em seguida, conforme Figura 4.79, devem ser selecionados quais discos da
máquina atual serão convertidos para a nova VM. Caso o servidor tenha mais de um
disco, mas não utiliza os dois, um deles pode ser descartado na conversão. Também
é possível alterar o tamanho do disco para o destino, em caso de haver muito
espaço livre sem utilização.
Figura 4.79 - Configurações de discos a serem convertidos.
Fonte: Elaborada pelo autor, 2012.
Na próxima tela, conforme Figura 4.80, deve-se informar o IP de um dos hosts
no qual a nova VM será alocada durante o processo de importação, bem como o
105
nome de super usuário e senha do host. Também deve ser definido um local para os
arquivos temporários que serão gerados no processo.
Figura 4.80 - Autenticação para o servidor de destino.
Fonte: Elaborada pelo autor, 2012.
Seguindo, deve-se definir um nome pelo qual a VM será identificada no
XenCenter, que neste caso será mantido o original, e em qual Storage ela será
alocada, conforme Figura 4.81.
Figura 4.81 - Definição de nome e local de armazenamento.
Fonte: Elaborado pelo autor, 2012.
Após a exibição das opções selecionadas, o assistente está pronto para
iniciar a conversão, conforme Figura 4.82.
Figura 4.82 - Sistema pronto para ser convertido.
Fonte: Elaborada pelo autor, 2012.
O processo de conversão pode ser demorado, de acordo com o tamanho do
106
disco da máquina de origem e a velocidade de tráfego da rede.
Ao término da conversão, a VM já pode ser visualizada no XenCenter.
Conforme a Figura 4.83 ao iniciar a nova VM, o sistema operacional da máquina
convertida detecta que houve alteração em seu hardware e solicita que seja feita
nova ativação de sua licença de uso.
Figura 4.83 - Máquina convertida solicitando nova ativação do Windows.
Fonte: Elaborada pelo autor, 2012.
4.3.6 XenMotion
O XenMotion faz a movimentação de uma máquina virtual que esteja em
execução sob um servidor para outro, de forma online (LiveMigration), sem que seja
necessário seu desligamento.
O recurso já vem habilitado por padrão no XenCenter, sem que seja
necessária qualquer configuração por parte do usuário.
A movimentação entre servidores pode ser realizada de forma automática
pelo XenCenter de acordo com o consumo de recursos que host esteja tendo no
momento, ou de forma manual.
Neste trabalho será demostrada a movimentação manual de uma VM entre os
hosts físicos que integram o ambiente.
107
Para iniciar a movimentação, conforme mostra a Figura 4.84, deve-se
selecionar a máquina virtual que se deseja movimentar e, clicando com o botão
direito do mouse sobre a mesma, escolher no menu que se abre a opção Migrate to
Server para em seguida selecionar para qual host ela será movida.
Figura 4.84 - Escolha do servidor para onde será migrada a VM.
Fonte: Elaborada pelo autor, 2012.
O processo é rápido e após alguns segundos, a VM já pode ser visualizada
alocada em outro host, conforme mostra a Figura 4.85.
Figura 4.85 - VM após processo de movimentação.
Fonte: Elaborada pelo autor, 2012.
4.3.7 Considerações sobre o XenMotion
108
Conforme ilustra a Figura 4.85, a exemplo do teste com a solução da
VMware, uma tela do prompt de comando na máquina virtual e outra na estação de
trabalho que está conectada ao XenCenter, representado pela tela da direita, foram
abertas para a realização de teste de comunicação através do comando ping 4
durante o processo de movimentação.
Como pode ser verificado nas duas telas do prompt de comando, durante a
movimentação da VM de um servidor físico para outro percebeu-se a perda de
somente um ping por parte de ambas as máquinas.
4
O comando ping é utilizado em testes de conectividade, onde é possível verificar se um IP de
destino responde e quanto tempo demora em responder à solicitação. Em caso de falha na
comunicação, é exibida uma mensagem de erro. (TECHNET, 2012)
109
CONCLUSÃO
As funcionalidades de importação de uma máquina para dentro do ambiente
virtual criado e de movimentação de VM de um Host para outro, mostradas neste
trabalho são muito parecidas nas duas soluções e os testes destas foram
satisfatórios.
A quantidade de sistemas operacionais pré-definidos para instalação
encontradas no VMware é superior em relação ao encontrado no XenServer,
principalmente no que se refere à criação de VMs Linux, que oferece um maior
número de distribuições suportadas. Já no XenServer além de poucas distribuições
encontradas na lista de opções, o sistema operacional Ubuntu Server 11.10 estava
com o suporte em fase de testes, porém esta mesma distribuição pode ser instalada
normalmente utilizando o modo genérico, sem maiores problemas.
Para a movimentação das máquinas virtuais entre os hosts, o VMware exige
mais procedimentos para habilitar o recurso e iniciar o processo, porém oferece
opção de migração de Storage também. Enquanto que no XenServer o recurso de
movimentação da VM entre os Hosts vem habilitado como padrão, mas não foi
mostrada opção de migração de Storage. A movimentação da VM em si, foi
executada de forma muito rápida nas duas ferramentas.
A importação de uma máquina virtual para o ambiente criado para as duas
soluções (V2V) funcionou sem problemas em ambas.
A solução da VMware apresentou algumas funcionalidades, como o desenho
do mapa de rede do ambiente do Datacenter criado e uma ferramenta para
exploração dos discos do servidor físico. No XenServer, não existe um mapa e para
a exploração dos discos, foi necessário utilizar a ferramenta de FTP chamada
WinSCP. Por outro lado o XenCenter oferece a possibilidade de se acessar
diretamente o console do servidor, como se estivesse feito o logon localmente no
mesmo.
Para o gerenciamento do ambiente, no VMware foi necessário uma máquina
com Windows Server 2008 de 64 bits para a instalação do vCenter, No XenServer,
foi possível instalar o XenCenter em uma máquina com Windows XP.
Para este trabalho, o objetivo inicial era a criação de ambientes para a
110
realização de testes de desempenho das soluções descritas, entretanto, não foi
possível devido à falta de uma infraestrutura de hardware para suportar todos os
ambientes e as aplicações para avaliar o desempenho das soluções. Foi pensado
em implementar as soluções em ambientes virtualizados, porém este cenário ficaria
aquém de um cenário real, e isso, distorceria a avaliação de desempenho.
Devido a isso, optou-se pela implementação dos recursos de criação de VMs,
importação de uma máquina em funcionamento e a movimentação de uma VM
enquanto a mesma estivesse em produção, sem a necessidade de parada.
Dentre as dificuldades encontradas durante o desenvolvimento da monografia
pode-se citar o suposto conhecimento prévio do assunto, no qual se percebeu
que a virtualização abrangia vários outros aspectos e aplicações, o que gerou certa
dúvida no início do levantamento bibliográfico, sobre a forma de abordar o assunto e
ao mesmo tempo ter um foco específico para o trabalho. Também a falta de
equipamento para atingir todos os objetivos delimitados no início da pesquisa. Pois
conforme foi sendo aumentado o conhecimento sobre o assunto, percebeu-se que o
ambiente de hardware planejado inicialmente para testes não atenderia o desejado e
foi necessário mudar sua instalação para equipamentos emprestados, mas que,
porém apresentavam problemas técnicos devido ao seu tempo de uso já avançado.
Além da mudança de foco do trabalho devido às limitações de infraestrutura
encontradas durante seu desenvolvimento, em que a ideia original de simular um
ambiente real com diferentes serviços para testes de desempenho, foi mudada para
a apresentação de algumas das funcionalidades das ferramentas, o que levou a
busca de maior conhecimento sobre cada uma.
O funcionamento adequado das funcionalidades oferecidas pelas soluções da
VMware e da Citrix comprova a preocupação atual das empresas com a alta
disponibilidade de serviços, o que se torna um diferencial na hora da escolha da
solução.
Com o auxílio da virtualização, a convergência de novas tecnologias como a
Computação em Nuvem, torna-se viável, onde é possível oferecer vários serviços,
com menos equipamentos físicos com alta disponibilidade, conforme demonstrado
neste trabalho.
Conclui-se que em um mercado cada vez mais competitivo, em que se faz
necessária a redução de custos, com a diminuição da estrutura física de um Data
Center, sem perder a disponibilidade de serviços oferecidos, a virtualização vem de
111
encontro a estes anseios.
Como trabalhos futuros pode-se citar uma análise comparativa de desempenho
entre as duas soluções. Esta análise poderia ser feita através da geração de uma
grande massa de solicitações para algum serviço em funcionamento, por exemplo,
servidor de páginas ou servidor de banco de dados, para depois avaliar se os
serviços conseguiram atender as requisições com um nível aceitável no tempo de
resposta. Poderia ser feito também em uma empresa real, a consolidação de
servidores físicos para virtual, baseado na análise de desempenho para a escolha
da ferramenta que melhor atende tecnicamente e financeiramente. Primeiramente
pode-se testar a virtualização no hardware que a empresa já possui, para validar seu
funcionamento e em seguida testar em uma nova infraestrutura, pois é grande a
variável a oferta atual de equipamentos com alta capacidade de processamento,
indo de servidores típicos até Blades, e isso, influencia no valor total do investimento
deste tipo de solução.
112
ANEXO A – Instalação do Hypervisor da VMware
Este anexo descreve os passos necessários para a instalação do Hypervisor
da VMware. O tempo total gasto em sua instalação desde o boot do cdrom até a tela
de conclusão da instalação foi de aproximadamente 11 minutos, contando o tempo
gasto na entrada da senha do usuário root que foi a única tela em que se fez
necessário a inserção de informação. Os demais dados como IP, Máscara de rede e
Gateway, foram realizados depois do sistema instalado. Para a captura das telas, a
instalação foi feita em uma máquina virtual, portanto os modelos e tamanhos de
discos diferem da configuração mostrada na tabela 4.1.
A versão do hypervisor utilizada neste trabalho é do tipo I de virtualização,
que, conforme citado, é instalado sozinho como o sistema base dos equipamentos
que executarão as máquinas virtuais.
A figura A.1 mostra a tela para início da instalação no servidor, onde há a
opção de iniciar uma nova instalação, ou efetuar o boot a partir de uma instalação já
existente. Esta segunda opção pode ser utilizada se, por algum motivo, o sistema
não inicializar sozinho. Foi escolhida a primeira opção.
Figura A.1- Tela inicial de boot do CD.
Fonte: Elaborada pelo autor, 2012.
113
A próxima tela é de boas-vindas e informativa sobre o guia de compatibilidade
do hypervisor, disponível no site da VMware.
Figura A.2 - Telas de boas vindas.
Fonte: Elaborada pelo autor, 2012.
Para dar sequência na instalação, é necessário que seja aceito o termo de
licença de uso da aplicação, conforme figura A.3.
Figura A.3 - Apresentação da licença de uso.
Fonte: Elaborada pelo autor, 2012.
Em seguida deve-se selecionar o disco onde o sistema operacional do
hypervisor será instalado, conforme figura A.4.
Figura A.4 - Seleção do disco para instalação.
Fonte: Elaborada pelo autor, 2012.
114
O próximo passo, ilustrado pela figura A.5, é a seleção do layout do teclado.
Foi escolhida a opção padrão pré-selecionada, US Default.
Figura A.5 - Seleção do layout do teclado.
Fonte: Elaborada pelo autor, 2012.
A figura A.6 mostra a tela para definição da senha de super usuário. Sugerese uma senha que contenha caracteres maiúsculos e minúsculos misturados com
números.
Figura A.6 - Escolha da senha de root.
Fonte: Elaborada pelo autor, 2012.
A figura A.7 exibe a tela com as opções de disco selecionadas para
confirmação, para o início do processo de a instalação.
Figura A.7 - Confirmação para o início da instalação.
Fonte: Elaborada pelo autor, 2012.
O andamento da instalação é mostrado pela figura A.8. Este processo
115
conforme citado anteriormente demorou aproximadamente 11 minutos.
Figura A.8 - Instalação em andamento.
Fonte: Elaborada pelo autor, 2012.
A figura A.9 apresenta o término da instalação do hypervisor da VmWare.
Figura A.9 - Término da instalação.
Fonte: Elaborada pelo autor, 2012.
Após o reinício do computador, é apresentado na figura A.10 o servidor pronto
para ser utilizado.
Figura A.10 - Servidor inicializado com sucesso.
Fonte: Elaborada pelo autor, 2012.
116
ANEXO B - Instalação do Hypervisor da Citrix
Este anexo descreve os passos necessários para a instalação do Hypervisor
da Citrix, o XenServer. A exemplo do ANEXO A, para a captura das telas, a
instalação foi feita em uma máquina virtual, portanto os modelos e tamanhos de
discos diferem da configuração mostrada na tabela 4.1.
O tempo total gasto em sua instalação desde o boot do cdrom até a tela de
conclusão da instalação foi de aproximadamente 11 minutos para cada servidor,
contando o tempo gasto na entrada das informações como endereço IP, Máscara de
Rede, Gateway, Servidores DNS e NTP, além da senha do usuário root.
A versão do XenServer utilizada neste trabalho é do tipo I de virtualização,
que, conforme citado, é instalado sozinho como o sistema base dos equipamentos
que executarão as máquinas virtuais.
A figura B.1 mostra a tela para início da instalação do XenServer em que
deve-se
escolher entre a opção padrão de instalação, ou utilizando a tecla F2,
acessar opções avançadas de instalação. Para este trabalho, será utilizada a opção
padrão através da tecla F1 ou simplesmente dando Enter no teclado.
Figura B.1 - Tela inicial de boot do CD.
Fonte: Elaborada pelo Autor, 2012.
Na tela seguinte, figura B.2, deve-se escolher o layout do teclado que se vai
utilizar. Foi escolhido layout padrão oferecido.
117
Figura B.2 - Configuração do teclado.
Fonte: Elaborada pelo Autor, 2012.
Em seguida, é mostrada uma tela para a confirmada ou não do início do
processo de instalação.
Figura B.3 - Confirmação para iniciar a instalação.
Fonte: Elaborada pelo Autor, 2012.
Uma tela com os termos da licença de uso a mostrada em seguida.
Conforme figura B.4, basta pressionar ENTER.
Figura B.4 - Apresentação da licença de uso.
Fonte: Elaborada pelo Autor, 2012.
Na tela seguinte, figura B.5, deve-se selecionar qual disco será utilizado para
118
a instalação do sistema.
Figura B.5 - Escolha dos discos para instalação.
Fonte: elaborada pelo autor, 2012.
Em seguida, figura B.6, deve ser informada a origem dos arquivos para a
instalação.
Figura B.6 - Origem dos arquivos de instalação.
Fonte: Elaborada pelo autor, 2012.
Na tela seguinte, figura B.7, é questionado se será utilizado algum pacote
suplementar para a instalação. Foi escolhida a opção NO.
Figura B.7 - Instalação de pacotes adicionais.
Fonte: Elaborada pelo autor, 2012.
A próxima tela, figura B.8, é a opção de se realizar uma verificação da
integridade da mídia de instalação, caso a mesma apresente problemas.
119
Figura B.8 - Opção de verificação da mídia de instalação.
Fonte: Elaborada pelo autor, 2012.
O próximo passo é definir a senha do usuário root, conforme figura B.9.
Figura B.9 - Escolha da senha do administrador (root).
Fonte: Elaborada pelo autor, 2012.
Na próxima tela devem ser definidos o nome do servidor, e os servidores
DNS, conforme figura B.10.
Figura B.10 - Definição do nome e servidores DNS.
Fonte: Elaborada pelo autor, 2012.
Em seguida, figura B.11, deve ser selecionada a localização geográfica para a
instalação do sistema.
120
Figura B.11 - Seleção da localização geográfica.
Fonte: Elaborada pelo autor, 2012.
Em seguida, deve ser informada a cidade ou região que será utilizada como
padrão para o fuso horário, conforme figura B.12.
Figura B.12 - Seleção do fuso horário.
Fonte: Elaborada pelo autor, 2012.
Caso exista na rede, poderá ser utilizado um servidor NTP para a
atualização do horário, conforme figura B.13.
Figura B.13 - Escolha da forma de sincronismo de horário.
Fonte: Elaborada pelo autor, 2012.
Se for optado por utilizar um servidor NTP, ele deverá ser configurado na tela
seguinte conforme figura B.14. Foi escolhida a opção fornecida por DHCP.
121
Figura B.14 - Configuração do servidor NTP.
Fonte: Elaborada pelo autor, 2012.
Após todas as informações necessárias terem sido inseridas, é apresentado
a tela para o início da instalação do hypervisor, conforme figura B.15.
Figura B.15 - Início da instalação dos arquivos.
Fonte: Elaborada pelo autor, 2012.
Após o término da instalação, uma tela solicitando o reboot do servidor é
exibida conforme figura B.16.
Figura B.16 - Conclusão da instalação.
Fonte: Elaborada pelo autor, 2012.
Após a reinicialização do servidor, já é possível acessar o console do
XenServer localmente, e visualizar suas informações de configuração e se
122
necessário, alterá-las
Figura B.17 - Console após a conclusão da instalação.
Fonte: Elaborada pelo autor, 2012.
123
REFERÊNCIAS BIBLIOGRÁFICAS
APPLE
STORE.
O
novo
iMAC.
2011.
Disponível
em:
<http://store.apple.com/br/browse/home/shop_mac/family/imac>. Acesso em: 27 nov.
2011.
APPLE. OS X Lion. 2011. Disponível em: <http://www.apple.com/br/macosx/>.
Acesso em: 27 nov. 2011.
BRENDEL, J.C. Virtualização. Tradução Livea Marchiori. 1. ed. São Paulo: Linux
New Media do Brasil Ltda, 2008.
CARISSIMI, A. Virtualização: da teoria a soluções. In: Simpósio brasileiro de redes
de computadores e sistemas distribuídos, 2008, Rio de Janeiro.
CITRIX.
Citrix
XenServer
–
Product
Overview.
2011.
Disponível
em:
<http://www.citrix.com/%2Fsite%2Fresources%2Fdynamic%2Fsalesdocs%2FCitrix_
XenServer_ProductOverview.pdf>. Acesso em: 03 mar. 2012.
DISTROWATCH.
Ubuntu.
2011.Disponível
em:
<http://distrowatch.com/table.php?distribution=ubuntu>. Acesso em: 27 nov. 2011.
FAAS, R. Linha do tempo: marcos na história do Mac. 2009. Disponível em:
<http://macworldbrasil.uol.com.br/noticias/2009/01/23/linha-do-tempo-marcos-nahistoria-do-mac/>. Acesso em: 27 nov. 2011.
FOLDOC. API. 1995. Disponível em: <http://foldoc.org/API>. Acesso em 01 jul. 2012.
GUGIK, G. A história dos computadores e da computação. 2009a. Disponível
em:
<Fonte:
www.tecmundo.com.br/1697-A-Historia-dos-computadores-e-da-
computacao.htm>. Acesso em: 20 nov. 2011.
______.
A história
dos
sistemas operacionais. 2009b. Disponível
<http://www.tecmundo.com.br/2031-a-historia-dos-sistemas-operacionais.htm>.
em:
124
Acesso em: 26 nov. 2011.
IBM.
Archives,
Personal
Computer.
2011.
Disponível
em:
<http://www-
03.ibm.com/ibm/history/exhibits/pc/pc_1.html>. Acesso em: 26 nov. 2011.
INFO. O Mainframe Morreu. Viva o Mainframe!. 1997. Disponível em:
<http://info.abril.com.br/edicoes/133/arquivos/4023_1.shl>. Acesso em: 15 out. 2011.
JONES,
M. T.
architectures,
Virtual
and
Linux,
An
overview
implementations.
of
virtualization
2006.
methods,
Disponível
em:
<http://www.ibm.com/developerworks/linux/library/l-linuxvirt/?ca=dgr-lnxw01VirtualLinux>. Acesso em: 30 out. 2011.
KOPPLIN, J. An Illustrated History of Computers Part 3. 2002. Disponível em:
<http://www.computersciencelab.com/ComputerHistory/HistoryPt3.htm>. Acesso em:
27 mai. 2012.
LAUREANO, M. A. P.; MAZIERO, C. A. Virtualização: Conceitos e Aplicações em
Segurança, In: Simpósio Brasileiro em Segurança da Informação e de Sistemas
Computacionais, 2008.
LAUREANO, M. A. P. Máquinas Virtuais e Emuladores – Conceitos, Técnicas e
Aplicações. São Paulo: Novatec, 2006.
MARTINEZ, E. Você sabe o que é SaaS, PaaS e IaaS?. 2010. Disponível
em:
<http://webholic.com.br/2010/06/07/voce-sabe-o-que-e-saas-paas-e-iaas/>
Acesso em: 11 set. 2011.
MARTINS,
V.
Componentização.
2009.
Disponível
http://falandodesoftware.blogspot.com.br/2009/03/componentizacao.html>.
em:
<
Acesso
em: 02 jun. 2012.
MAZIERO, C. A. Fundamentos de Sistemas Operacionais, I - Conceitos Básicos,
2011. Disponível em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.php/so:so-
125
cap01.pdf>
MEIO
BIT.
Estão
tentando
ressuscitar
o
OS/2.
2008.
Disponível
em:
<http://meiobit.com/13734/estao-tentando-ressuscitar-o-os2/>. Acesso em 27 nov.
2011.
MICROSOFT. Visão Geral do Produto Windows Server 2008. 2007. Disponível
em:
<http://www.microsoft.com/brasil/servidores/windowsserver2008/evaluation/overview.
mspx>. Acesso em: 27 nov. 2011.
MICROSOFT.
Roadmap
do
Produto.
2008.
Disponível
em:
<http://www.microsoft.com/windowsserver2008/pt/br/roadmap.aspx>. Acesso em: 06
nov. 2011.
MICROSOFT.
Windows
7
estréia
no
Brasil.
2009.
Disponível
em:
<http://www.microsoft.com/latam/presspass/brasil/2009/julho/release.mspx>. Acesso
em: 06 nov. 2011.
MORIMOTO,
C.
E.
Apple
I,
2005a.
Disponível
em:
<http://www.hardware.com.br/termos/apple-i>. Acesso em: 27 mai. 2012.
______IBM PC, 2005b. Disponível em: <http://www.hardware.com.br/termos/ibmpc>. Acesso em: 26 nov. 2011.
MORIMOTO, C. E. Apple x Microsoft: as primeiras versões do Windows e do
MacOS. 2011. Disponível em: <
http://www.hardware.com.br/dicas/primeiras-versoes.html>. Acesso em: 02 jun. 2012.
NETWORKWORLD. Cinco coisas que amamos no Windows 2008 Server
Edition.
2008.
Disponível
em:
<http://computerworld.uol.com.br/negocios/2008/03/04/cinco-coisas-que-amamosno-windows-2008-server-edition/>. Acesso em: 27 nov. 2011.
126
OLIVEIRA, A. P. Servidores blade conquistam espaço nas áreas de TI. 2006.
Disponível
em:
<http://computerworld.uol.com.br/negocios/2006/02/22/idgnoticia.2006-0329.8967275246/>. Acesso em: 26 nov. 2011.
PINHEIRO, J. M. S. Tecnologias WEB - Virtualização de Sistemas. 2009.
Disponível
em:
<http://www.projetoderedes.com.br/aulas/unifoa_tecnologias_web/apoio03_tecnologi
as_web.pdf> Acesso em: 07 jun. 2012.
PUC-RIO.
Interrupções.
2012.
Disponível
em:
<http://www.inf.puc-
rio.br/~inf1018/corrente/aula12/interrupcoes.html>. Acesso em: 01 jul. 2012.
RIBEIRO, W. C. F. História da Apple e seus Sistemas Operacionais. 2011.
Disponível em: <http://www.icefusion.com.br/tag/macintosh/>. Acesso em: 27 nov.
2011.
SLTI , Secretaria de Logística e Tecnologia da Informação. Guia de Estruturação e
Administração do Ambiente de Cluster e Grid. Brasília, 2006.
TAKEMURA, C.; CRAWFORD, L. S. The Book of Xen. San Francisco: No Starch
Press, 2010.
TECHNET. Usando o comando ping. 2012. Disponível em:
<http://technet.microsoft.com/pt-br/library/cc737478%28v=ws.10%29.aspx>. Acesso
em: 16 mai. 2012.
TECNOLOGIA.
A
trajetória
de
Steve
Jobs.
2011.
Disponível
em:
<http://tecnologia.br.msn.com/fotos/a-trajet%C3%B3ria-de-steve-jobs-9?cpdocumentid=30276570&page=7>. Acesso em 27 nov. 2011.
TORVALDS,
L.
Linux
3.0
release.
2011.
<https://lkml.org/lkml/2011/7/21/455>. Acesso em: 06 nov. 2011.
Disponível
em:
127
VCENTER CONVERTER. Convert Physical Machines to Virtual Machines –
Free!.
2012.
Disponível
em:
<http://www.vmware.com/br/products/datacenter-
virtualization/converter/overview.html>. Acesso em 26 fev. 2012.
VCENTER
SERVER.
Datasheet
do
Produto.
2009.
Disponível
em:
<http://www.infiniit.com.br/pdf/vCenterServer_ptbr.pdf>. Acesso em: 26 fev. 2012.
VIRTUALBOX.
innotek
GmbH.
2011.
Disponível
em:
<https://www.virtualbox.org/wiki/innotek>. Acesso em 11 set. 2011.
VMOTION. Migrate Virtual Machines with Zero Downtime. 2012. Disponível em:
<http://www.vmware.com/products/vmotion/overview.html>. Acesso em: 26 fev. 2012.
VMWARE.
Virtualização
e
Nuvem,
2011a.
Disponível
em:
<http://www.vmware.com/br/cloud-computing/> Acesso em: 11 set. 2011.
______Produtos
da
VMware,
2011b.
Disponível
em:
<http://www.vmware.com/br/products/>. Acesso em: 17 nov. 2011.
VMWARE. ESXi and ESX Architectures Compared, 2012a. Disponível em:
<http://www.vmware.com/br/virtualization/>. Acesso em 24 fev. 2012.
______
VMware
ESXi
and
ESX
Info
Center,
2012b.
Disponível
em:
<http://www.vmware.com/br/products/datacenter-virtualization/vsphere/esxi-andesx/overview.html>. Acesso em: 26 fev. 2012.
VSPHERE HYPERVISOR. Introducing VMware vSphere Hypervisor 4.1 - the free
edition
of
VMware
vSphere
4.1.
2010.
Disponível
em:
<http://blogs.vmware.com/vsphere/2010/07/introducing-vmware-sphere-hypervisor41-the-free-edition-of-vmware-vsphere-41.html>. Acesso em: 26 fev. 2012.
VSPHERE.
VMware
vSphere.
2011.
Disponível
<http://www.vmware.com/br/products/datacenter-virtualization/vsphere/smallbusiness/overview.html>. Acesso em: 26 fev. 2012.
em:
128
XEROX. Innovation, 1970s. 2011. Disponível em: <http://www.xerox.com/aboutxerox/history-timeline/ptbr.html>. Acesso em: 26 nov. 2011.
OSWORLD.
Windows
Server
2008.
2009.
Disponível
em:
<http://www.osworld.xpg.com.br/scrennshots_windows.html>. Acesso em 02 jul.
2012.
Download