VIRTUALIZAÇÃO OPEN SOURCE PARA PEQUENAS E MÉDIAS EMPRESAS



Documentos relacionados
4 Estrutura do Sistema Operacional Kernel

Online Help StruxureWare Data Center Expert

HOW TO Procedimento para instalar Aker Firewall virtualizado no ESXi 5.0

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

Prof. José Maurício S. Pinheiro UniFOA

Tutorial de Instalação do CentOS Versão 3.3

Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Virtualização de Sistemas Operacionais

Executando o Modo Windows XP com Windows Virtual PC

Introdução a Virtualização. Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes

Xen Cloud Platform Xen descomplicado

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

Sistemas Operacionais

Um Driver NDIS Para Interceptação de Datagramas IP

OneDrive: saiba como usar a nuvem da Microsoft

No mercado atual, podemos encontrar vários tipos de sistemas operacionais que fazem parte das seguintes classes:

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

HOW TO Alterando o tipo de interface de rede na VmWare para uso no Aker Firewall 6.7

Soluções de Gerenciamento de Clientes e de Impressão Universal

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

Sistemas Distribuídos

Hyper-V e Intel HAXM. Ativando a virtualização

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Procedimentos para Reinstalação do Sisloc

Sistemas Operacionais 1/66

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO


Virtualização Gerencia de Redes Redes de Computadores II

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Prof. Ms. José Eduardo Santarem Segundo Demonstrar o impacto que o tema virtualização tem representado no mercado

INSTALANDO UM SERVIDOR WINDOWS SERVER 2012 R2 SERVER CORE

Software de monitoramento Módulo CONDOR CFTV V1 R1

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

FileMaker Pro 12. Utilização de uma Conexão de Área de Trabalho Remota com o

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

ANDRE KUSUMOTO VIRTUALIZAÇÃO

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil.

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

NetEye Guia de Instalação

APOSTILA LINUX EDUCACIONAL

Aula 1 Windows Server 2003 Visão Geral

MicrovixPOS Requisitos, Instalação e Execução

ANÁLISE DE DESEMPENHO ENTRE SOFTWARES VIRTUALIZADORES

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Windows 2008 Server. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy.

Operador de Computador. Informática Básica

Entendendo como funciona o NAT

SISTEMAS OPERACIONAIS

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Configurando o DDNS Management System

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

João Víctor Rocon Maia Engenharia de Computação - UFES

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Curso de Instalação e Gestão de Redes Informáticas

Processo de Instalação Limpa do Windows 8.1 em Computadores Philco

TUTORIAL INSTALAÇÃO DE IMPRESSORAS NO UEGLINUX

Virtualização. O conceito de VIRTUALIZAÇÃO

VIRTUALIZAÇÃO CONVENCIONAL

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

Procedimentos para Instalação do SISLOC

SISTEMAS DISTRIBUÍDOS

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Agenda. Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão

Manual do Usuário Android Neocontrol

Guia para o Google Cloud Print


INTRODUÇÃO: 1 - Conectando na sua conta

Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

INSTALANDO O UBUNTU PELA IMAGEM ISO OU LIVE-USB DA UFV PASSO-A-PASSO.

FTIN Formação Técnica em Informática. Sistema Operacional Proprietário Windows Prof. Walter Travassos

TUTORIAL DE INSTALAÇÃO DO PFSENSE E UMA REDE INTERNA NO VIRTUALBOX

Instalando o Internet Information Services no Windows XP

Guia de instalação UEG Linux LTS

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Como posso usar o HP Easy Printer Care através de USB ou conexão paralela?

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Manual de Atualização Versão

IMPORTANTE: O PNM4R2 não entra em estado funcional enquanto o Windows não

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Sistemas Operacionais

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Procedimentos para Instalação do Sisloc

Transcrição:

UNIVERSIDADE SÃO FRANCISCO Engenharia da Computação LEANDRO SOUZA CARNEIRO VIRTUALIZAÇÃO OPEN SOURCE PARA PEQUENAS E MÉDIAS EMPRESAS Itatiba 2012

2 LEANDRO SOUZA CARNEIRO R.A. 002200800210 VIRTUALIZAÇÃO OPEN SOURCE PARA PEQUENAS E MÉDIAS EMPRESAS Monografia apresentada ao Curso de Engenharia de Computação, como requisito parcial para obtenção do título de Bacharel em Engenharia de Computação. Orientador: Prof. Ms. Rodrigo Luis Nolli Brossi Itatiba 2012

3 A memória de meu pai, exemplo de sucesso, homem e pai de família.

4 AGRADECIMENTOS Agradeço primeiramente ao meu pai, Jurandir de Souza Carneiro, que infelizmente não está mais neste mundo, pela dedicação e incentivo dados a mim. A minha mãe, Roseli Maria Del Roy Carneiro, que continuou forte e me apoiando nesta trajetória. A minha namorada, Carla Ribeiro Babo, por me ajudar e apoiar durante esses anos. Ao Fábio Roberto Oliveira, amigo e tutor profissional, que está sempre ao meu lado ensinando-me e encaminhando-me, o qual foi responsável pelo interesse no assunto pesquisado. Ao Prof. Rodrigo Luis Nolli Brossi, orientador, professor e amigo, que ajudou com que este estudo fosse bem elaborado. Agradeço finalmente aos amigos de classes, que por todos estes anos sempre compartilharam conhecimento sobre diversos assuntos.

5 "Limitações são fronteiras criadas apenas pela nossa mente." Provérbio Chinês

6 RESUMO Nos dias de hoje, virtualização é um tema muito abrangente que se tornou, de certa forma, comum. Atualmente, podem-se encontrar máquinas virtuais em notebooks de uso pessoal, estações de trabalho e em servidores, isso devido sua alta empregabilidade, seja em aproveitar recursos de outro sistema operacional para uso doméstico, interpretação de bytecodes Java em uma fábrica de software, ou ainda para fornecer servidores virtualizados. Para as empresas, a virtualização de servidores é uma solução que gera economia de espaço físico, diminui custos com o resfriamento dos servidores físicos, e ainda, faz melhor uso do hardware adquirido, maximizando seus recursos. Porém, para realizar um projeto desses é necessário pensar em custos, um dos fatores críticos para o impedimento da implantação em pequenas e médias empresas é o preço de licenças dos softwares de virtualização. Por esse motivo, este trabalho visa apresentar, com base em estudos bibliográficos, conceitos de virtualização de servidores, bem como os softwares geralmente empregados e algumas de suas características. Também serão demonstrados os benefícios e problemas de projetos de virtualização através de casos de mercado. Ainda, o trabalho consta com a apresentação de um ambiente de virtualização open source através da solução KVM, que é a resposta para a implantação de projetos em empresas que não disponibilizam de verba para investimento e aquisição de softwares proprietários. Palavras-chave: virtualização. servidores. KVM.

7 ABSTRACT Nowadays, virtualization is a very embracing theme which, in some ways, common. Presently, virtual machines can be found in personal use notebooks, workstation and servers, due to the high employability to utilize resources of other operational systems for domestic use, to interpretation of bytecodes or to provide virtual servers. For companies, the server virtualization is a solution which generates saving of space, decreases costs with cooling and makes better use of the hardware purchased. However, to realize a project like these is necessary to analyze the costs, one of the critical factors for implantation impediment in small and medium companies is the software virtualization license price. Therefore, this study aims to present, based on bibliographical studies, concepts of server virtualization, also the softwares usually used and some propriets of these. Besides, will be demonstrated the benefits and problems of a virtualization project through cases. The work also includes a presentation of an open source virtualization environment based KVM solution, which is the answer to the implantation of projects in companies which do not provide the budget for invest and acquisition proprietary softwares. Key words: virtualization. servers. KVM.

8 LISTA DE SIGLAS ACPI AMD AMD-V API APIC AT&T BSD CD CIDR CPU DHCP DNS DVD GB GE GHz HP HTTP IAAS IBM ICMP IP ISA iscsi IVT JVM KVM LUN Advanced Configuration and Power Interface Advanced Micro Devices AMD Virtualization Application Program Interface Advanced Programmable Interrupt Controller American Telephone & Telegraph Berkeley Software Distribution Compact Disc Classless Inter-Domain Routing Central Processing Unit Dynamic Host Configuration Protocol Domain Name System Digital Versatile Disc Gigabyte General Eletric GigaHertz Hewlett-Packard Hypertext Transfer Protocol Infrastructure as a Service International Business Machines Internet Control Message Protocol Internet Protocol Instruction Set Architecture Internet Small Computer System Interface Intel Virtualization Technology Java Virtual Machine Kernel-based Virtual Machine Logical Unit Number

9 MAC Mbps MV NAT QEMU RAM RFB RHEV SAAS SO SSH TB TI USB VLAN VM VMM VNC VPS Media Access Control Megabits Per Second Máquina Virtual Network Address Translation Quick Emulator Random Access Memory Remote Framebuffer Red Hat Enterprise Virtualization Software as a Service Sistema Operacional Secure Shell Terabyte Tecnologia da Informação Universal Serial Bus Virtual Local Area Network Virtual Machine Virtual Machine Monitor Virtual Network Computing Virtual Private Server

10 v LISTA DE FIGURAS FIGURA 1 - Interfaces de um SO... 17 FIGURA 2 - Máquina Virtual de Processo... 18 FIGURA 3 - Tipos de Máquina Virtual de Sistema... 19 FIGURA 4 - Virtualização Total... 21 FIGURA 5 - Paravirtualização... 21 FIGURA 6 - vsphere Web Client... 23 FIGURA 7 - Hyper-V Manager... 24 FIGURA 8 - XenCenter... 25 FIGURA 9 RHEV Manager... 26 FIGURA 10 - Virtualização com KVM...29 FIGURA 11- Migração ao vivo... 31 FIGURA 12 - Verificação das flags do processador... 36 FIGURA 13 - Instalação dos pacotes... 37 FIGURA 14 - Verificação do Módulo kvm... 37 FIGURA 15 - Interface de rede 'virbr0'... 38 FIGURA 16 - Criação e configuração das interfaces virtuais... 39 FIGURA 17 - Interfaces de rede... 40 FIGURA 18 - Virt-Manager ao fundo, com mouse destacando o botão de criação de máquina virtual e o assistente de criação frente... 41 FIGURA 19 - Criação da Máquina Virtual... 42 FIGURA 20 - Instalação do Sistema Operacional em máquina virtual através de VNC... 43 FIGURA 21 - Adicionar Servidor I... 45 FIGURA 22 - Adicionar servidor II... 46 FIGURA 23 - Tela geral de criação de MV... 48 FIGURA 24 - Tela de parametrização de disco e drive virtual... 48 FIGURA 25 - Configurações da placa de rede... 49 FIGURA 26 - Máquina virtual criada com sucesso... 50 FIGURA 27 - Opções de gerenciamento de máquina virtual... 51 FIGURA 28 - Confirmação de migração da máquina virtual... 52 FIGURA 29 - Migração e requisições ICMP... 53

11 SUMÁRIO INTRODUÇÃO... 13 OBJETIVOS... 14 METODOLOGIA... 15 1 CONCEITOS... 16 1.1 CONCEITOS BÁSICOS... 16 1.2 INTERFACES... 17 1.3 TIPOS DE MÁQUINAS VITUAIS... 18 1.4 O HARDWARE... 19 2 MODOS DE VIRTUALIZAÇÃO... 20 2.1 EMULAÇÃO E SIMULAÇÃO... 20 2.2 VIRTUALIZAÇÃO PARCIAL, PARAVIRTUALIZAÇÃO E VIRTUALIZAÇÃO COMPLETA... 21 3 O MERCADO E A VIRTUALIZAÇÃO... 22 3.1 VIRTUALIZADORES... 22 3.1.1 VMware... 23 3.1.2 Microsoft Hyper-V... 24 3.1.3 Citrix XenServer... 25 3.1.4 Red Hat Enterprise Virtualization 26 3.2 CLOUD COMPUTING e VPS 27 3.3 CASES VIRTUALIZAÇÃO EMPRESARIAL... 27 4 KVM (KERNEL-BASED VIRTUAL MACHINE)... 28 4.1 HISTÓRIA... 28 4.2 FUNCIONAMENTO... 28 4.3 RECURSOS... 30 4.4 INSTALAÇÃO... 31

12 4.4.1 Sistemas Operacionais... 31 4.4.2 Pacotes da Instalação... 32 4.5 GERENCIADORES DE MÁQUINAS VIRTUAIS PARA KVM... 33 5 IMPLEMENTAÇÃO DO AMBIENTE DE VIRTUALIZAÇÃO... 34 5.1 DEFINIÇÕES DO AMBIENTE... 34 5.2 INSTALAÇÃO E CONFIGURAÇÃO DOS SERVIDORES KVM... 35 5.2.1 Instalação do KVM... 35 5.2.2 Configuração da Rede... 38 5.3 A CRIAÇÃO DE UMA MÁQUINA VIRTUAL... 40 5.4 GERENCIAMENTO DO AMBIENTE VIA CONVIRT... 43 5.4.1 Instalação do ConVirt... 44 5.4.2 Adicionar servidores KVM... 45 5.4.3 Criação de uma máquina virtual pelo ConVirt... 46 5.4.4 Gerenciamento de uma máquina virtual pelo ConVirt... 50 6 BENEFÍCIOS E RISCOS DA VIRTUALIZAÇÃO... 55 7 CONCLUSÃO... 56 REFERÊNCIAS... 57 ANEXOS... 62 ANEXO A Histórico De Comandos Executados No Servidor KVM-HP... 63 ANEXO B Histórico De Comandos Executados No Servidor KVM-AVELL... 65 ANEXO C Histórico De Comandos Executados No Servidor Virtual CONVIRT... 67

13 INTRODUÇÃO A virtualização é um dos assuntos mais discutidos atualmente na área de tecnologia da informação (TI), porém o conceito de máquina virtual é antigo. De acordo com CARISSIMI, na década de 60, os grandes e caros mainframes necessitavam serem compartilhados entre os usuários que desejavam acessá-los simultaneamente, este seria o primeiro passo para a virtualização, porém a motivação maior para o estudo da tecnologia era a incompatibilidade entre as aplicações que deveriam ser executadas nos mainframes. Nos anos 70 a IBM desenvolveu um mainframe capaz de juntar a multiprogramação e máquina estendida, a qual uma máquina virtual espelha exatamente o hardware verdadeiro. Segundo VERAS, ao passar dos anos os computadores foram se tornando menores e mais comuns, os sistemas operacionais também evoluíram e convergiram em três linhagens (Unix, Macintosh e Microsoft) que contemplavam públicos alvos distintos, sendo assim, softwares distintos, tornando a virtualização um tema pouco abordado. O avanço dos processadores, interfaces de redes e plataformas de desenvolvimento, tornaram os sistemas distribuídos cada vez mais comuns. Ainda por VERAS, máquinas virtuais se tornaram mais conhecidas com o aparecimento da linguagem Java, na qual os softwares não são desenvolvidos para uma linhagem de sistema operacional mencionado a cima, mas para a Java Virtual Machine (JVM), uma máquina virtual que funciona como interpretador de bytecodes, forma intermediaria de código, Java. A JVM pode ser instalada em sistemas operacionais que se tornaram padrões nos servidores, Unix-like, Solaris e Microsoft. Hoje em dia empresas mostram-se interessadas pela virtualização por questões físicas, financeiras e de aproveitamento de recursos. Porém, ao pensar na solução de virtualização é necessário o estudo de fatores importantes como gastos para implementação do projeto, desde a compra de servidores e storages á licenças para os softwares de virtualização. Por esta razão, há no mercado soluções livres, ou seja, que podem ser utilizadas corporativamente sem que haja gastos, diminuindo assim o preço do projeto. Desta maneira, este trabalho apresenta solução de virtualização para pequenas e medias empresas, que não dispõem de grande verba para a implantação de soluções de virtualização, através de conceitos teóricos e práticos.

14 OBJETIVOS Este trabalho tem por objetivo explicar, de forma perfunctória, os conceitos de virtualização, bem como os tipos de virtualizadores e seus recursos, sempre com foco na virtualização de servidores. Demonstrar os benefícios e problemas em um projeto de virtualização, elucidar sobre contingência na virtualização e comentar as tendências do mercado sobre o assunto. Criar um ambiente de virtualização totalmente open source baseado em Linux e Kernel-based Virtual Machine (KVM), concentrando os dados dos discos rígidos virtuais em storage.

15 METODOLOGIA Para conhecer o conceito e os recursos da virtualização será realizado estudo bibliográfico sobre o assunto. Também serão apresentados tipos de virtualizadores e como eles atuam. Em seguida será estudado através de referências bibliográficas e cases de mercado a importância da virtualização e o beneficio para as empresas. Será apresentada a solução KVM com um detalhamento maior, da história à instalação, com intuito de preparar o ambiente de virtualização, baseado em referências bibliográficas. Este trabalho também realizará pesquisa bibliográfica sobre os benefícios e problemas em adotar a virtualização.

16 1 CONCEITOS 1.1 Conceitos Básicos É importante entender que, segundo VIEIRA, há dois tipos de máquinas virtuais, uma destinada a aplicações, chamada máquina virtual de processos e outra à sistemas, o monitor de máquinas virtuais, ou hypervisor. Com tudo, também é relevante conhecer que o hypervisor pode fornecer virtualização total ou para-virtualização. Como mencionado, a virtualização começou nos anos 60 e 70 em grandes computadores da época que geravam cópias fieis ou distintas do seu ambiente de forma virtual, com o conceito de máquina estendida. TANENBAUM (2007) conceitua virtualização pela possibilidade de estender ou comutar um recurso, ou uma interface, existente por outro, a fim de obter comportamento semelhante. Assim sendo, a partir de um hardware real vários hardwares virtuais podem ser disponibilizados, possibilitando a criação de várias máquinas virtuais. Para entender o que é máquina virtual é importante relembrar dois conceitos, processos e hierarquia. Processo, segundo TANENBAUM (2003), é a abstração de um programa em execução em um ambiente compartilhado, composto por memória e registradores lógicos. A constante troca de contexto, dado pelo salvamento do estado da memória e pela alternância entre os registradores lógicos nos registradores físicos, da impressão de todos os programas serem executados ao mesmo tempo. Logo, pode-se assumir que um processo é um tipo de máquina virtual que executa um único programa. Para CARISSIMI, hierarquia pode ser definida em computação como a estruturação em camadas com níveis desiguais de abstrações e interfaces.

17 1.2 Interfaces Em um sistema computacional, CARISSIMI afirma que geralmente se encontram três tipos de interfaces: instruções de máquina privilegiadas; instruções de máquina não privilegiadas; e a interface aplicativa de programação, como ilustrado pela FIGURA 1. Fonte: CARISSIMI, A. Virtualização: da teoria a soluções. FIGURA 1 - Interfaces de um SO Ainda por CARISSIMI, os processadores detém um conjunto de instruções de máquina, divididas em privilegiadas e não privilegiadas, chamado de Instruction Set Architecture (ISA), o qual gera a interface entre software e hardware. Esta subdivisão cria níveis que separam os programas entre o nível usuário, aquele em que o software pode apenas executar instruções não privilegiadas, e o nível de programas com privilégios especiais, como um sistema operacional, que pode executar qualquer tipo de instrução. Seguindo a linha de raciocínio de CARISSIMI, outra interface é dada pelas instruções de máquina não privilegiadas e as chamadas do sistema. Nesta, é possível que os programas de usuários acessem de forma indireta e supervisionada os recursos de hardware, possibilitando a execução de instruções não privilegiadas direto no processador. A terceira interface relata CARISSIMI, é chamada de interface aplicativa de programação, Application Program Interface (API), é dada pela chamada a funções de bibliotecas que ocultam as chamadas de sistema.

18 1.3 Tipos de Máquinas Virtuais SEO afirma que as máquinas virtuais podem ser concebidas de duas formas. A máquina virtual de processo, ou seja, um programa que fornece um ambiente de execução de outras aplicações, como a JVM, ou que emule chamadas de sistemas operacionais, representada na FIGURA 2. Ou então a máquina virtual de sistema, uma camada de software, denominada de monitor de máquina virtual, Virtual Machine Monitor (VMM). Fonte: CARISSIMI, A. Virtualização: da teoria a soluções. FIGURA 2 - Máquina Virtual de Processo Ainda segundo SEO, esta nova camada pode estar acima da camada de hardware, criando o conceito de Bare-Metal, ou seja, a virtualização que está antes da camada do sistema operacional, ou então em seu núcleo. Em algumas literaturas o VMM neste modo é nomeado hypervisor tipo 1, ou então nativo. Há a possibilidade do monitor de máquina virtual ser criado a cima de um sistema operacional. Nesta maneira é chamado de hypervisor tipo 2. Porém, como não há padrões definidos de nomenclatura, muitos autores abstraem os termos e tratam o monitor de máquina virtual apenas como hypervisor, a seguir FIGURA 3 ilustrando os dois tipos de hypervisor.

19 Fonte: software.intel.com FIGURA 3 - Tipos de Máquina Virtual de Sistema CARISSIMI relata que o VMM é fornecido toda vez que o computador estiver ligado, realizando a proteção do sistema operacional ao acesso direto dos recursos físicos e possibilitando que seja consumida simultaneamente por diferentes programas. Ao se tratar de máquinas virtuais, surge o conceito simples de hóspede e hospedeiro. O hospedeiro é a máquina física onde as máquinas virtuais, chamadas de hóspedes, estão sendo executadas. 1.4 O Hardware Para haver virtualização é imprescindível que o processador auxilie o software na execução de tarefas. Nos anos 70, POPEK e GOLDBERG (1974), afirma que foram introduzidas três propriedades necessárias para o suporte a virtualização: eficiência, controle de recursos e equivalência. Estas propriedades têm por característica assegurar o isolamento, a estabilidade e legitimidade de uma máquina virtual. Para garantir que os processadores pequenos, de arquitetura x86 de 32 ou 64 bits, fossem capazes de suportar a virtualização os fabricantes Advanced Micro Devices (AMD) e Intel os aprimoraram criando a tecnologia AMD Virtualization (AMD-V) e Intel Virtualization Technology (Intel VT), que embora tenham as mesmas funcionalidades não são compatíveis.

20 2 MODOS DE VIRTUALIZAÇÃO 2.1 Emulação e Simulação As técnicas de simulação, por LOTTI e PRADO, são baseadas em manter modelos matemáticos que dadas as entradas e condições de funcionamento de um sistema, os resultados esperados de retorno seja semelhante ao de um ambiente real, por exemplo, em um simulador de voo. Já as técnicas de emulação consistem em criar uma camada de software, que segundo MARSHALL, REYNOLDS, e MCCRORY (2006), faz a tradução de todas as instruções da máquina emulada para a máquina hospedeira, por exemplo, a emulação de uma plataforma de 8 bits, no caso de um emulador de videogame antigo. 2.2 Virtualização Parcial, Virtualização Completa e Paravirtualização A virtualização parcial, segundo LOTTI e PRADO, foi um marco histórico da virtualização, este tipo consiste em promover a virtualização por espaços de endereçamento em que a máquina virtual simula várias instâncias de um hardware abaixo dela. A partir deste modelo surgiu a virtualização completa. CARISSIMI afirma que, a virtualização total, apresentada na FIGURA 4, promove uma cópia virtual da camada de hardware, desta maneira, as aplicações são executadas exatamente como seriam em um hardware original. Assim, o sistema operacional virtualizado não necessita ser modificado para executar sobre um monitor de máquinas virtuais. Porém há custos para este modelo, como todas as instruções não serão modificadas, deve-ser haver o teste destas para identificar se são ou não sensíveis, consumindo processamento. Também há o fator de que a imitação do exato comportamento de cada dispositivo é complicada, sendo necessário criar um VMM que suporte genericamente um conjunto de dispositivos. Ainda há a

21 questão de que cada sistema operacional é implementado de uma forma e o hypervisor deve ser flexível a ponto superar estes desencontros, por exemplo, em uma paginação de memória, isto contribui para a queda do desempenho. Fonte: CARISSIMI, A. Virtualização: da teoria a soluções. FIGURA 4 - Virtualização Total No caso da paravirtualização, representada na FIGURA 5, o objetivo é apresentar técnicas para solucionar os problemas da virtualização total. Segundo LAUREANO e MAZIERO o sistema virtualizado é modificado a cada instrução sensível, logo o teste de cada instrução que poderia acessar diretamente os recursos físicos e abalar a integridade das máquinas virtuais não se torna mais necessário. Também há drivers na VMM que facilitam a comunicação aos dispositivos de hardware real. Fonte: CARISSIMI, A. Virtualização: da teoria a soluções. FIGURA 5 - Paravirtualização

22 3 O MERCADO E A VIRTUALIZAÇÃO A terceirização nas empresas faz-se presente em diversos setores, a principal vantagem desta se da pelo fato de não ser necessário manter funcionários próprios no seu quadro, basta contratar o serviço em questão, explica GIOSA. Na TI a terceirização também é frequente, BERNSTORFF e CUNHA apresentam em seu estudo que empresas como Settle fornecem serviços de banco de dados aos seus clientes. Neste caso não seria necessário a presença de um administrador de banco de dados na folha e pagamento das empresas clientes. Porém não são apenas pessoas que são terceirizadas, atualmente as empresas buscam reduzir custos também na compra de equipamentos e softwares, um exemplo de software como um serviço (SaaS) é a solução Google Docs, do Google, no qual é possível fazer uso de editores de texto ou criar planilhas, sem a necessidade de adquirir ou instalar alguma solução. Para equipamentos a empresa Locaweb, por exemplo, especialista em hospedagem e armazenamento, tem soluções do tipo infraestrutura como um serviço, Infraestructure as a Service (IaaS) em inglês, ou seja, as empresas não necessitam comprar servidores e switches, basta apenas contratar o serviço. 3.1 Virtualizadores Dentre as soluções disponibilizadas no mercado para virtualização de servidores destacam-se as empresas VMware, Microsoft, Citrix e Red Hat, com os produtos vsphere, Hyper-V, XenServer e Red Hat Enterprise Virtualization (RHEV) respectivos. Este estudo apresentará de forma perfunctória as características destas soluções.

23 3.1.1 VMware As soluções corporativas da empresa VMware são as mais conhecidas, são totalmente bare-metal e dotada de vários recursos, porém são soluções proprietárias e caras. Atualmente foi lançado o vsphere 5, uma plataforma completa de virtualização que, segundo a própria VMware, converge na arquitetura ESX de hypervisors para virtualização de computadores, esta arquitetura também é proprietária e foi desenvolvida pela VMware. Para realizar o gerenciamento do ambiente a VMWare disponibiliza o gerenciador vsphere Client, exemplificado na FIGURA 6. As versões mais novas deste gerenciador são web. Esta solução destaca-se por ter suporte a novas tecnologias como USB 3.0 e smartcards, também por prover suporte a gráficos avançados, além de suportar máquinas virtuais extremamente potentes com mais de 32 CPUs e 1TB de RAM. Fonte: vmware.com FIGURA 6 vsphere Web Client

24 3.1.2 Microsoft Hyper-V O Hyper-V é a solução da Microsoft para virtualização de computadores. Este produto utiliza a técnica de bare-metal. Segundo a Microsoft, a última versão disponível no mercado é o Hyper-V Server 2008 R2, que para ser acessado é necessário uma licença do Windows Server 2008. Para o gerenciamento das máquinas virtuais, utiliza-se o Hyper-V Manager, exemplificado na FIGURA 7, uma aplicação que está presente nos recursos do Windows e pode ser ativado no servidor ou em computadores clientes que executam o Windows 7. A solução é bem completa, porém como os produtos Microsoft, é proprietária e de custo elevado. Contudo, pode ser bem aceita por empresas parceiras a este fornecedor ou para aquelas que não detêm de expertise em ambientes Unix-like. Fonte: microsoft.com FIGURA 7 Hyper-V Manager

25 3.1.3 Citrix XenServer Em 2007, segundo o site da Citrix, a empresa comprou a XenSource, a qual desenvolvia softwares para virtualização. Hoje o XenServer é uma forte solução de virtualização para servidores no mercado. Este produto opera adicionando um módulo Xen para virtualização no kernel do Linux, categorizando assim a virtualização bare-metal. O XenServer conta com o XenCenter, FIGURA 8, uma solução web para o gerenciamento do ambiente, porém, por se tratar de XEN, outras ferramentas podem ser utilizadas. Atualmente o XenServer é disponibilizado no mercado nas modalidades gratuita e Premium, esta ultima é paga. Fonte: citrix.com FIGURA 8 XenCenter

26 3.1.4 Red Hat Enterprise Virtualization A empresa Red Hat, especialista em soluções envolvendo distribuição Linux para empresas desenvolveu o Red Hat Enterprise Virtualization, uma ferramenta de virtualização baseada em KVM. Segundo a Red Hat, o RHEV suporta máquinas virtuais com mais de 64 CPUs virtuais e 512GB de RAM. O gerenciamento pode ser feito através do RHEV Manager, exemplificado na FIGURA 9. Esta solução esta tem bastante espaço no mercado, principalmente naquelas que usam o Red Hat Enterprise Linux, a distribuição Linux deste fornecedor. Fonte: redhat.com FIGURA 9 RHEV Manager

27 3.2 Cloud Computing e VPS No mercado atual, o conceito de IaaS está bem consolidado e significa a contratação de uma empresa para disponibilizar servidores, ao invés de compra-los e armazena-los. A vantagem desta alternativa é o fato de que a empresa contratante não precisa se preocupar em criar salas especiais para manter os servidores resfriados e com alta disponibilidade, basta apenas um link de internet para conseguir acessar o servidor contratado. Ao solicitar um serviço de IaaS, há as opções de ser ou um servidor virtual privado, Virtual Private Server (VPS) em inglês, ou em nuvem, Cloud, ou ainda um servidor físico alocado no DataCenter do fornecedor do serviço. Segundo a empresa Locaweb do ramo de virtualização e hospedagem, o VPS, como o próprio nome informa, é um servidor virtual, porém este está sendo executado sobre uma máquina física conhecida, caso aconteça falha no servidor hóspede as máquinas virtuais serão afetadas. Ainda de acordo com a Locaweb, na modalidade Cloud o servidor virtual contratado está em uma floresta de servidores de virtualização e é difícil de saber ao certo onde está sendo executado, pois há dinamismo e a máquina virtual migra entre os servidores físicos, ao acontecer falha em um destes, a máquina virtual pode ser movimentada a outro servidor sem que haja perdas. 3.3 Cases Virtualização Empresarial Segundo a COMPUTERWORLD, a virtualização em corporações está bem difundida, um exemplo é a General Eletric (GE) que criou uma unidade global de integração e gerenciamento da infraestrutura de TI, aponta que 60% dos servidores na américa latina são virtualizados. A GE economiza 1.4 milhões de dólares com a virtualização de seus servidores. Além do mercado mundial, o setor de pesquisa também utiliza do recurso de consolidação de servidores, a Organização Europeia de Pesquisa Nuclear, de acordo com GREENEMEIER, planeja dividir quatro mil servidores físicos em trinta e cinco mil servidores virtuais, economizando energia e resfriamento.

28 4 KVM (KERNEL-BASED VIRTUAL MACHINE) O Kernel-based Virtual Machine, ou KVM como é conhecido, foi desenvolvido primeiramente pela empresa Qumranet Technologies, segundo KIVITY, líder dos desenvolvedores do projeto, KVM é um sistema de virtualização para arquitetura x86 baseada em Linux capaz de executar várias máquinas virtuais isoladamente, semelhante as soluções de virtualização e emulação concorrentes. 4.1 História No começo dos anos 2000, a Qumranet Technologies começou a desenvolver a solução de virtualização KVM, um projeto que segundo KIVITY era simples e relativamente pequeno, contendo apenas, aproximadamente, dez mil linhas de código, diferentemente das soluções concorrentes da época, como o VMware ou XEN. Em 2008, a Red Hat adquiriu a Qumranet visando dar continuidade aos projetos de virtualização e ofertar o KVM em sua distribuição Linux, o Red Hat Enterprise Linux, segundo o site da própria Red Hat. 4.2 Funcionamento Para compreender o funcionamento do KVM é necessário entender que este utiliza um software chamado QEMU. De acordo com o site do QEMU, este é um software de código aberto que pode trabalhar como emulador ou virtualizador. Segundo a Red Hat, o módulo do KVM foi incluído ao kernel do Linux desde a versão 2.6.20. A IBM menciona que este módulo transforma o kernel Linux em um hypervisor.

29 TANEMBAUM diz que um processo tem dois modos de execução: O modo kernel,o qual pode ser executado instruções de máquina privilegiadas e o modo usuário, onde apenas instruções não privilegiadas são aceitas. Porém, como uma máquina virtual é um processo mais complexo que um processo comum e necessita de maior prioridade além da garantia de integridade, de acordo com a IBM, ao adicionar o módulo KVM ao kernel é criado um terceiro modo, o modo convidado. Neste novo modo, é adicionado o dispositivo kvm, em /dev/kvm, que permite que cada máquina virtual tenha seu próprio espaço de endereço de memória separado do kernel ou de qualquer outra máquina virtual que esteja sendo executada. Ainda pela IBM, os dispositivos em /dev são comuns a todos os usuários, mas não em /dev/kvm, neste cada processo de máquina virtual abre um mapa diferente, suportando assim o isolamento. O modo convidado, explica a IBM, serve para executar algumas instruções dos sistemas operacionais convidados, ou seja, dos sistemas operacionais que estão sendo executados em uma máquina virtual. Segundo a IBM, o KVM trabalha com um QEMU levemente modificado para virtualizar a entrada e saída. Cada requisição de entrada e saída de um sistema operacional convidado é interceptada e redirecionada ao modo de usuário para que o QEMU as emule, a FIGURA 10 demonstra a virtualização de uma máquina virtual através do KVM. Fonte: Adaptado de IBM. Discover the Linux Kernel Virtual Machine. FIGURA 10 - Virtualização com KVM

30 4.3 Recursos Dentre os recursos do KVM destaca-se sua alta capacidade de virtualizar máquinas muito potentes com dezenas de CPUs virtuais e muita RAM. Porém, um recurso interessante do KVM é a possibilidade tanto da migração offline quanto da migração ao vivo. A Red Hat diz que a migração consiste em transferir uma máquina virtual de um servidor para outro, porém para que isso ocorra o disco virtual deve estar em uma área compartilhada entre ambos servidores. A migração ao vivo, ou live migration em inglês, segundo a Red Hat é a transferência da memória da máquina virtual que está em execução para outro servidor de virtualização, a FIGURA 11 faz uma representação esquemática do processo. Toda modificação nas páginas de memória da máquina virtual são monitoradas ao iniciar a migração. De acordo com a Red Hat, numa primeira iteração é enviado ao servidor destino todas as informações memória da máquina virtual, porém ao passo que as informações trafegam para outro servidor, há alteração nas páginas de memória, então há mais iterações entre os servidores para o envio da memória alterada. Estas iterações acontecem até que as duas máquinas estejam completamente sincronizadas, após isto a máquina virtual é suspensa no servidor que estava sendo executada, após isto é carregado o valor dos registradores na máquina virtual no outro servidor e então passa a ser executada normalmente. O interessante, ainda de acordo com a Red Hat, é o fato de que a máquina virtual fica totalmente operante enquanto está migrando de servidores, ou seja, nenhuma informação é perdida. Porém este método é mais lento do que a migração com a máquina virtual desligada ou suspensa. De acordo com o site do KVM, a migração de máquinas virtuais pode ser feita entre servidores com processadores Intel e AMD, respeitando o fato de que servidores com processadores 32bits somente serão capazes de receber máquinas virtuais vindas de servidores com processadores com palavra de igual tamanho. Desta maneira, ao criar um ambiente de virtualização não é necessário manter a fidelidade em uma linha especifica de processadores.

31 Fonte: Adaptado de technet.microsoft.com FIGURA 11 - Migração ao vivo 4.4 Instalação A instalação do KVM e a execução das máquinas virtuais, como aponta a IBM, não tem um requisito mínimo quanto a hardware, exceto possuir um processador dotado das tecnologias para a virtualização mencionadas nesta monografia, porém como este servidor será utilizado para executar máquinas virtuais com sistemas operacionais completos é recomendado que possua pelo menos 2GB de memória RAM e um processador Dual Core 1,5GHz. Atualmente o KVM pode ser instalado em processadores 32 e 64 bits além de alguns modelos de PowerPC, informa o site do KVM. 4.4.1 Sistemas Operacionais O Kernel-based Virtual Machine, como o próprio nome sugere, é baseado no Kernel do Linux, porém este não é o único sistema operacional onde se pode ser instalado, no site do KVM há a informação de esta solução é suportada em BSD s.

32 No tópico 4.2 foi explicado que os módulos do KVM são nativos em Linux kernel 2.6.20 ou superiores, no entanto, não há problemas em instalar estes módulos em kernel mais antigo como 2.6.18 utilizado no Red Hat Enterprise Linux 5. São muitas as distribuições onde se pode instalar o KVM, porém as mais utilizadas no mercado para este fim são a OpenSUSE, Debian, Fedora e Red Hat Enterprise Linux, ou sua versão da comunidade, o CentOS. 4.4.2 Pacotes da Instalação A instalação é, comumente, realizada através dos pacotes encontrados nos repositório da distribuição emprega como servidor, estes são facilmente adquiridos e instalados pelo gerenciador de pacotes. Para agilizar a instalação, é possível instalar o grupo de pacotes KVM que já inclui tudo que é necessário ou então instalar oito pacotes, sendo eles kmod-kvm, kvm, kvmqemu-img, kvm-tools, python-virtinst, virt-manager, uml_utilities e bridge-utils, segundo a NixCraft. Ainda segundo a equipe NixCraft, o kmod-kvm é responsável pelo adicionamento do módulo kvm ao kernel, já o pacote kvm é a própria solução KVM, o pacote kvm-qemuimg contém o utilitário do QEMU para as imagens do disco, kvm-tools são ferramentas para debug e diagnostico do KVM, módulos Python e utilitários para a instalação de máquinas virtuais são adicionados ao instalar o python-virtinst, virt-manager contém ferramentas para gerenciamento das máquinas virtuais, uml_utilities e bridge-utils contém as ferramentas necessárias para criar bridges entre placas de rede, esta ponte é responsável por fazer a comunicação entre a placa de rede física com as placas de redes virtuais.

33 4.5 Gerenciadores de Máquinas Virtuais para KVM Ao instalar o KVM, é instalado um gerenciador de máquinas virtuais chamado Virtual Machine Manager ou simplesmente Virt-Manager, este gerenciador também se faz presente quando instalado o XEN. Segundo o site do Virt-Manager, este programa é escrito em Python e tem como base a API LibVirt, cuja funcionalidades são capazes de interagir com os mais diversos hypervisors do mercado. No entanto, o Virt-Manager é uma aplicação desktop, o que pode gerar alguns problemas para os administradores, pois seria necessário tê-lo instalado para gerenciar os servidores. Entretanto, no momento da instalação, também é adicionada ao servidor a ferramenta virsh, que segundo a Red Hat, trata-se de um gerenciador texto baseado na API mencionada acima, ajudando assim, os administradores visto que pode ser acessado através de qualquer SSH. Porém com o avanço e a tendência a migração a Web, os gerenciadores de máquinas virtuais mais utilizados no mercado, atualmente, são no formato Web. No site do KVM há uma tabela com todos os gerenciadores compatíveis com este hypervisor. Dentre as soluções open-source de gerenciamento, destacam-se o Eucalyptus, ovirt e Convirt, sendo os dois primeiros capazes de construir e servir Clouds, já o último só apresenta este recuso na versão proprietária.

5 IMPLEMENTAÇÃO DO AMBIENTE DE VIRTUALIZAÇÃO 34 Com base na pesquisa realizada, este trabalho irá contar com a implementação de um ambiente de virtualização totalmente open-source visando pequenas e médias empresas, a fim de tentar demonstrar que não é necessário investimento alto para obter resultados consideráveis para realização do projeto. 5.1 Definições do Ambiente Para simular os servidores de uma empresa serão utilizados computadores portáveis, sendo dois Notebooks para representação dos servidores KVM e um Netbook para representar um storage iscsi o qual concentrará as imagens dos discos virtuais. O primeiro Notebook, da marca Avell, tem 8GB de memória RAM e processador Intel i7, o segundo, da marca HP, conta com processador Intel i3 e 4GB de RAM. O Netbook tem disponível 50GB de espaço em disco. Todos os dispositivos serão conectados via cabo de rede, para chegar o mais próximo possível a ambientes coorporativos. Para representação do storage foi selecionado a distribuição Linux OpenFiler na modalidade gratuita, a qual é capaz de prover serviços de armazenamento de dados e transferências com tecnologia iscsi. O sistema operacional escolhido para os servidores KVM foi o CentOS 6.3 com arquitetura de 64 bits, pelo fato de ser uma distribuição gratuita e com licença para fins comerciais, além de ser a mais próxima do Red Hat Enterprise Linux, distribuição empresarial utilizada em grandes corporações. O nome dado aos Notebooks com KVM foi atribuído conforme suas marcas, sendo o primeiro Notebook nomeado como KVM-Avell e o segundo KVM-HP. Para o storage o nome dado foi OpenFiler. Todos os computadores fazem parte do domínio fictício lcarneiro.com.br. A configuração do storage e seus serviços não fazem parte do escopo deste projeto,

35 será adotado que os servidores entenderão que se trata de um storage já implementado e que basta mapear e montar os LUN s deste. Por conveniência o /mnt dos servidores será destinado somente a esta finalidade, e todos os dados dentro desta pasta fazem referência aos dados no storage. Por se tratar de um ambiente com finalidade apenas de pesquisa e demonstração de recursos, não será implementado um servidor de DHCP, logo todos os computadores terão IP fixo com na faixa 192.168.1.0 e máscara CIDR /24. Será utilizada a ferramenta Putty para Windows para realizar a conexão aos servidores via SSH a fim de realizar a configuração dos mesmos. Para acesso gráfico via VNC será utilizado o software UltraVNC. 5.2 Instalação e Configuração dos servidores KVM 5.2.1 Instalação do KVM Ao começar a instalação do KVM, muitos tutoriais fazem questão da verificação das flags vmx ou svm nas informações do processador, como é o caso do tutorial disponibilizado no Wiki do CentOS, estas flags são os identificadores das tecnologias de virtualização nos processadores, sendo vmx referencia ao Intel-VT e svm para AMD-V explica a IBM. Caso efetuada a verificação e não se obtiver retorno, o processador não tem tais tecnologias, sendo descartado na empregabilidade de servidor de máquinas virtuais. Como os processadores empregados nesta pesquisa são novos, a verificação retorna com resultado, como ilustrado na FIGURA 12.

36 Fonte: Autoria própria FIGURA 12 - Verificação das flags do processador Depois de realizada a constatação que o processador é compatível para a finalidade desejada, é necessário realizar a instalações dos pacotes apresentados no item 4.4.2 desta monografia. Na distribuição utilizada, o gerenciador de pacotes é o Yum. A FIGURA 13 a seguir exemplifica essa instalação.

37 Fonte: Autoria própria FIGURA 13 - Instalação dos pacotes Com a instalação completa, deve-se reiniciar o servidor e então verificar se o módulo do kvm está presente no kernel. Fonte: Autoria própria FIGURA 14 - Verificação do Módulo kvm Como observado na FIGURA 14, está presente o módulo kvm no kernel do servidor, desta forma, tudo que é necessário para o ambiente estar funcional se faz presente. É necessário ativar o serviço libvirtd, baseado na API libvirt apresentada anteriormente, que é responsável pela comunicação com o hypervisor e gerenciamento. É muito importante que este serviço sempre esteja ativo, explica a Red Hat.

38 5.2.2 Configuração da Rede Ao instalar o KVM uma interface de rede virtual, virbr0, é automaticamente adicionada, como apresentado na FIGURA 15, esta interface é responsável pelo Network Address Translation (NAT) no dispositivo de Ethernet padrão, relata a Red Hat. Porém máquinas virtuais criadas com placas de rede em modo NAT recebem um IP fora da faixa de utilização pelos demais computadores da rede em questão, logo a máquina virtual fica isolada apenas a faixa de NAT, segundo a VMWare. Ainda de acordo a VMWare, para resolver este problema existem as pontes, conhecidas pelo seu nome em inglês, Bridges. Estas bridges são responsáveis por fazer a comunicação do dispositivo Ethernet físico com as placas de rede virtuais, desta forma, as máquinas virtuais criadas com placas de rede em bridge recebem IP na mesma faixa dos demais computadores na rede. Fonte: Autoria própria FIGURA 15 - Interface de rede 'virbr0' Para configurar a bridge, é necessário entender o que é TUN e TAP. Ambos são dispositivos de rede virtual, TAP é a simulação de um dispositivo na camada 2, de enlace, onde trafegam-se os frames, TUN é simula o dispositivo que trabalha na camada 3, de rede,

39 onde trafegam-se os pacotes, explica CASSIMIRI. TAP é utilizado para a construção de pontes, para ligar dois MACs e TUN para é utilizado para o roteamento, visto que basta endereçar o pacote ao seu destino, relata a VMWare. Logo, para que a máquina virtual tenha comunicação com a rede em que o servidor se encontra, sua placa de rede virtual deve ter uma ponte com a placa de rede do servidor através do MAC. Para criar a bridge, é utilizado o pacote instalado anteriormente, o bridge-utils, neste se encontra a ferramenta brclt capaz de gerenciar interfaces ponte. Então, se cria a ponte br0 entre a interface física eth0 e a interface TAP tap0, de acordo com o Wiki do CentOS. A interface tap0 ficará fixa e iniciará com as demais, ao iniciar uma máquina virtual, automaticamente é criada uma interface tap exclusiva para ela de acordo com seu endereço MAC. Ainda concordando com o Wiki, deve-se garantir que o diretório /dev/net/tun seja lido e escrito pelo usuário root e pelo grupo kvm, como a FIGURA 16 ilustra. Fonte: Autoria própria FIGURA 16 - Criação e configuração das interfaces virtuais Neste momento, ao executar a ferramenta ifconfig para consultar a rede, serão exibidas as placas br0 e tap0 além das já existentes, desta forma, as máquinas virtuais poderão trabalhar com sua placa de rede virtual em modo bridge, demonstrado na FIGURA 17.

40 Fonte: Autoria própria FIGURA 17 - Interfaces de rede 5.3 A Criação de uma Máquina Virtual Com o ambiente completamente configurado é possível criar de uma máquina virtual com disponibilidade de comunicação com outras máquinas da rede, visto que sua faixa de IP será a mesma que as demais. A criação será feita através da ferramenta de linha de comando virt-install contida no virt-manager instalado anteriormente, pois o acesso ao servidor, como mencionado, é feito através de SSH. No entanto, a criação pode ser feita de forma gráfica através da interface do virt-manager e o assistente de criação, FIGURA 18.

41 Fonte: Autoria própria FIGURA 18 - Virt-Manager ao fundo, com mouse destacando o botão de criação de máquina virtual e o assistente de criação à frente. Será criado uma imagem de um disco virtual de 10GB em branco, nomeado VM- Linux.img. Depois de criado o disco, é necessário iniciar a máquina virtual para a instalação do sistema operacional. Com a ferramenta virt-install conectada ao Qemu-KVM local do servidor são passados os parâmetros para criação da VM como nome, arquitetura do processador, total de processadores e memórias virtuais, entre outros. É possível configurar os parâmetros --vnc --vncport e --vnclisten para que o virtinstall juntamente ao Qemu-KVM crie um servidor Virtual Network Computing (VNC) para realizar a comunicação gráfica com a máquina virtual. Segundo a AT&T, este protocolo é baseado no conceito remote framebuffer (RFB), capaz de ler remotamente o buffer de saída do vídeo e realizar interação com mouse e teclado.

42 Na FIGURA 19 abaixo, é representada a criação do disco e da máquina virtual através do virt-install. Foi parametrizado o VNC na porta 5900 do servidor de virtualização KVM-HP, também foi parametrizado a imagem de um CD de instalação do CentOS no CDROM da máquina virtual. Fonte: Autoria própria FIGURA 19 - Criação da Máquina Virtual Para realizar a instalação do sistema operacional nesta máquina virtual, basta conectar via VNC no servidor utilizando as configurações parametrizadas acima e realizar o processo da instalação, como representado na FIGURA 20. Nesta máquina virtual será instalado a solução de o gerenciador de máquinas virtuais da empresa Convirture, o ConVirt. Por se tratar de um gerenciador Web, a administração fica mais acessível o usuário. Esta solução foi adotada pela razão de ser open-source e simples. O fato de não ter a possibilidade de criar Clouds, como citado acima, não atrapalhará sua empregabilidade, visto que o projeto é destinado a empresas de porte pequeno à médio.

43 Fonte: Autoria própria FIGURA 20 - Instalação do Sistema Operacional em máquina virtual através de VNC 5.4 Gerenciamento do ambiente via ConVirt O ConVirt é uma solução de gerenciamento de ambientes de virtualização desenvolvido pela empresa Convirture e atualmente a versão gratuita mais recente é a 2.1.1. Esta solução foi desenvolvida para tornar a administração mais simples, com a interface parecida com a solução do VMWare Infrastructure Client, o ConVirt conta com funcionalidades interativas, histórico de tarefas e dashboards para análise e monitoramento do ambiente, informa a empresa que desenvolveu o produto. Ainda de acordo com a Convirture, este produto conta com a funcionalidade de criação de modelos para pré-definição das máquinas virtuais, tornando mais eficiente sua

44 utilização. Também é possível criar snapshots da máquina virtual com apenas alguns cliques. Para a funcionalidade de migração da máquina virtual entre os servidores, basta clicar e arrastar. 5.4.1 Instalação do ConVirt A instalação desta solução se dá em duas partes, sendo a primeira no servidor onde o gerenciador será executado e a outra nos servidores de virtualização gerenciados pelo ConVirt. Nos servidores de virtualização, é necessário instalar o pacote chamado convirt-tool e dependendo do servidor, será necessário instalar algumas dependências para que o pacote funcione normalmente. O ConVirt pode ser instalado em um servidor de virtualização ou então em uma máquina virtual, para este projeto será utilizada a máquina virtual criada acima. A instalação é feita através dos pacotes convirt-install e convirt. Depois de instalado o ConVirt pode ser acessado via protocolo HTTP utilizando a porta 8081 e o IP da máquina onde foi instalado. Pode ser configurada uma regra de firewall para que as requisições na porta 80 sejam encaminhas a porta 8081, tornando mais confortável seu uso, também é recomendado criar entradas no servidor DNS para apontar para o ConVirt. Para realizar o login é necessário utilizar uma conta com credenciais pré-configurada no pacote de instalação com usuário e senha sendo admin, informa a Convirture. Nesta versão do ConVirt é possível a criação de novos usuários e grupos, no entanto não é possível definir papeis a estes o que torna a funcionalidade não muito utilizável. As configurações e o gerenciamento do ambiente desenvolvido neste projeto serão apresentados de forma perfunctória, visando às tarefas do cotidiano da administração.

45 5.4.2 Adicionar servidores KVM Após realizar o primeiro login no ConVirt é necessário adicionar os servidores de virtualização, para isto, basta clicar em Servers no menu lateral e então selecionar a opção de adicionar novo servidor na combo-box de ações no canto superior direito. Ou então, como mostra a FIGURA 21, há uma maneira mais próxima ao ambiente do usuário, basta clicar em Servers no menu lateral com o botão direito do mouse e selecionar Add Server. O assistente solicitará a plataforma utilizada para virtualização, neste caso será o KVM, porém o produto suporta também o XEN. O próximo passo, FIGURA 22, é completar as informações necessárias para a comunicação via SSH com o servidor, para isso é necessário passar o IP do servidor no campo do nome do host e a senha do usuário root. Fonte: Autoria própria FIGURA 21 - Adicionar Servidor I

46 Quanto o servidor adicionado estiver fora do alcance para o gerenciamento ele será listado normalmente, porém seu ícone será representado em tons de cinza. Para os nós KVM ativos o ícone é um servidor com um símbolo K em azul. As máquinas virtuais que não foram criadas pelo ConVirt, como é o caso da máquina criada no item 5.3 desta monografia, não serão listadas e não poderão ser gerenciadas por esta solução. Fonte: Autoria própria FIGURA 22 - Adicionar servidor II 5.4.3 Criação de uma máquina virtual pelo ConVirt Com os servidores adicionados é possível criar máquinas virtuais, para acessar esta funcionalidade se deve clicar em cima do servidor desejado para ser o hospedeiro e selecionar Provision Virtual Machine em Ações.

47 A interface de criação da máquina virtual é completa, bem divida e de fácil entendimento. Todas as configurações de uma máquina real podem ser configuradas na virtual. Há também opção para que a máquina virtual seja automaticamente iniciada quando o servidor ficar disponível, esta é uma função que pode ser estratégica. Para o ambiente em questão é necessário estipular que os discos virtuais das máquinas sejam criados no ponto de montagem onde se encontra o storage, desta forma ambos servidores terão acesso. Outro ponto importante na criação é que a placa de rede seja adicionada se baseando na bridge criada anteriormente, é recomendado que o modelo da placa de rede virtual seja rtl8139, pois as distribuições comuns do mercado trazem o driver deste modelo por padrão. O problema da utilização desta placa é que ela trabalha em 100Mbps, caso o usuário desejar maior performance, recomenda-se o modelo virtio, porém é necessário a instalação de driver em alguns sistemas operacionais. Este trabalho demonstrará a configuração de uma máquina virtual para o Windows Server 2008. Esta terá 1GB de memória RAM, 14GB de disco e 1 processador. A primeira tela de configuração ficará como apresentado na FIGURA 23 a seguir, não foi alterada a opção de grupo de template, porém foi selecionado o modelo Windows_CD_Install. O nome atribuído foi Windows-2008 e não foi alterado o caminho para o arquivo de configuração da máquina. Em memória, foi estipulado 1024, pois estão em Mega Bytes. Foi configurado 1 CPUs virtual. Nas opções do sistema operacional do visitante foi configurado para trabalhar como tipo Windows, nome Windows 2008 e foi atribuído SP2 na versão. Não foram selecionadas as opções de iniciação da máquina virtual assim que ela for provida e nem que esta máquina deve ser iniciada assim que o servidor estiver ligado.

48 Fonte: Autoria própria FIGURA 23 - Tela geral de criação de MV Fonte: Autoria própria FIGURA 24 - Tela de parametrização de disco e drive virtual

49 Na FIGURA 24 acima, foram editadas as configurações, através do botão Edit, do disco virtual para que este tenha capacidade de 14GB e criado em /mnt. Foi editado o drive virtual de CD para que seja utilizada uma imagem de um DVD de instalação do Windows Server 2008. Fonte: Autoria própria FIGURA 25 - Configurações da placa de rede Como apresentado na FIGURA 25, foi selecionada a placa de rede virtual br0 anteriormente configurada. Não foi preenchido um endereço MAC, desta forma será atribuído automaticamente. No modelo da placa de rede foi selecionado rtl8139 pelo motivo apresentado acima. Não foi alterado nada na tela de configuração de boot nem na tela dos parâmetros do modelo. Em miscelâneas foi alterado o campo plataforma para KVM, pois este estava constando Xen. Foi ativado, trocando o valor de 0 para 1, o APIC e o ACPI.

50 Após confirmar a tarefa, será processado e assim que concluído será apresentada a máquina virtual numa hierarquia abaixo ao servidor selecionado para prove-la. No inferior da tela, o histórico apresentará o status da tarefa, como demonstrado na FIGURA 26. Fonte: Autoria própria FIGURA 26 - Máquina virtual criada com sucesso 5.4.4 Gerenciamento de uma máquina virtual pelo ConVirt A interface intuitiva do ConVirt deixa o usuário a vontade para trabalhar com segurança. Na a FIGURA 27, são mostradas as funcionalidades para o gerenciamento de uma máquina virtual, ao clicar com o botão direito do mouse em cima de seu nome. A seguir, breve apresentação das funcionalidades segundo o Convirture. A primeira opção refere-se à tela de edição das configurações, esta tela é a mesma utilizada na criação da VM, porém preenchida com seus respectivos dados. A segunda opção da lista são as configurações da máquina em modo texto, pode ser útil para edição rápida.

Ambas as configurações são carregadas quando a máquina é iniciada, logo qualquer alteração não será interpretada no ato. 51 Fonte: Autoria própria FIGURA 27 Opções de gerenciamento de máquina virtual A opção View Console concede acesso ao console da máquina virtual, ou seja, tudo que é mostrado na saída pode ser acessado com esta opção, além da possibilidade de entrada de dados utilizando protocolo VNC. Para utilizar esta opção é necessário que o navegador tenha habilitado o Java Plugin, pois o ConVirt conta com um cliente VNC é plataforma, não sendo necessário a instalação de algum outro programa na máquina. Migrar máquina virtual é a próxima opção, esta foi discutida ao decorrer da pesquisa e consiste em transmitir os dados de configuração e da memória de uma máquina virtual para outro servidor. Esta função, como discutido anteriormente, pode ser realizada com a máquina virtual ligada sem que haja perdas ou então com a esta desligada, sendo a primeira forma descrita mais lenta devido as iterações para envio do estado da memória e a segunda mais

rápida. O usuário pode utilizar este recurso simplesmente clicando e arrastando a máquina virtual para o novo nó. Será necessária a confirmação da ação, como exibido na FIGURA 28. 52 Fonte: Autoria própria FIGURA 28 - Confirmação de migração da máquina virtual Na FIGURA 29 é demonstrado que a migração a quente, sem haver perda de informações ou, no caso, de pacotes em requisições ICMP.

53 Fonte: Autoria própria FIGURA 29 - Migração e requisições ICMP A opção Start tem a funcionalidade de iniciar uma máquina virtual. Para a funcionalidade Start and View Console inicia a máquina e automaticamente abre o cliente VNC. A função de pausar faz com que o servidor congele e pare de processar a memória virtual, porém o processo de virtualização da mesma não é retirado da memória do servidor. Ao realizar a função de resumir o servidor continuará a processar a máquina do estado em que parou. Shutdown é utilizado para desligar a máquina de forma ordenada sem que haja perda de dados, enviando um sinal de desligamento. Caso haja a necessidade de desligar a máquina de forma imediata, há a opção Kill, porém esta não da segurança sobre os dados. Para reiniciar a máquina basta utilizar a função Reboot. A função de hibernar faz com que o servidor mantenha uma imagem da máquina virtual armazenada, para que possa ser restaurada caso haja alguma falha. Em alguns gerenciadores de máquina virtual esta funcionalidade se chama snap-shot.