11 MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DECEx - DEE - DEPA ESCOLA DE ADMINISTRAÇÃO DO EXÉRCITO E COLÉGIO MILITAR DE SALVADOR 1º Ten Al ELTON LUIZ SIQUEIRA DOS SANTOS ANÁLISE DA APLICABILIDADE DA VIRTUALIZAÇÃO DE SERVIDORES EM UMA ORGANIZAÇÃO MILITAR DO EXÉRCITO BRASILEIRO Salvador 2009 ELTON LUIZ SIQUEIRA DOS SANTOS ANÁLISE DA APLICABILIDADE DA VIRTUALIZAÇÃO DE SERVIDORES EM UMA ORGANIZAÇÃO MILITAR DO EXÉRCITO BRASILEIRO TCC EsAEx 2009 1º Ten Al ELTON LUIZ SIQUEIRA DOS SANTOS ANÁLISE DA APLICABILIDADE DA VIRTUALIZAÇÃO DE SERVIDORES EM UMA ORGANIZAÇÃO MILITAR DO EXÉRCITO BRASILEIRO Trabalho de Conclusão de Curso apresentado à Comissão de Avaliação de Trabalhos Científicos da Divisão de Ensino da Escola de Administração do Exército, como exigência parcial para a obtenção do título de Especialista em Aplicações Complementares às Ciências Militares. Orientador: Cap QCO Carlos Eduardo Arruda de Souza Salvador 2009 1º Ten Al ELTON LUIZ SIQUEIRA DOS SANTOS ANÁLISE DA APLICABILIDADE DA VIRTUALIZAÇÃO DE SERVIDORES EM UMA ORGANIZAÇÃO MILITAR DO EXÉRCITO BRASILEIRO Trabalho de Conclusão de Curso apresentado à Comissão de Avaliação de Trabalhos Científicos da Divisão de Ensino da Escola de Administração do Exército, como exigência parcial para a obtenção do título de Especialista em Aplicações Complementares às Ciências Militares. Aprovado em: 30 de outubro de 2009 ________________________________________ JOSÉ PEREIRA EMILIANO – Maj – Presidente Escola de Administração do Exército _____________________________________________________ CARLOS EDUARDO ARRUDA DE SOUZA – Cap – 1º Membro Escola de Administração do Exército ________________________________________ LUIZ FERNANDO S FONTE – Cap – 2º Membro Escola de Administração do Exército Dedico, aos meus familiares e amigos mais próximos pela paciência, confiança e motivação. AGRADECIMENTOS Agradeço primeiramente a Deus, que me fortalece e me resguarda todos os dias da minha vida. À minha família e minha noiva, que são meu alicerce, a minha motivação para prosseguir em busca dos meus objetivos e sonhos. Ao meu orientador Cap QCO Carlos Eduardo Arruda de Souza pelos ensinamentos, apoio e principalmente pela confiança. A todos os militares e funcionários civis da Escola de Administração do Exército e Colégio Militar de Salvador, pela excelência dos serviços prestados. Aos amigos de alojamento que, unidos, testemunharam a conclusão desta importante etapa da minha vida. Aos militares da seção de informática do 2º Grupo de Artilharia de Campanha Leve pelo apoio, amizade e camaradagem. Por fim, meus agradecimentos ao Exército Brasileiro, pela oportunidade de realização desta pesquisa. RESUMO A proliferação dos processos informatizados em todos os segmentos da sociedade obriga as organizações, governamentais ou empresariais, a aumentarem constantemente a capacidade de seus parques tecnológicos com o objetivo de informatizar ou até mesmo manter seus processos, implementando para isso, com certa frequência, novos computadores servidores. Este crescimento descontrolado no número de servidores acaba gerando grandes transtornos para a gestão da Tecnologia da Informação nas Organizações Militares do Exército Brasileiro, pois ocasiona aumentos referentes a investimentos, complexidade e custos indiretos. O presente trabalho analisa o emprego de técnicas de consolidação de servidores por meio da virtualização como uma opção para minimizar esses problemas nessas organizações. Utiliza, para estudo, dados de uma infra-estrutura funcional implementada em uma Organização Militar os quais foram analisados e estudados por um determinado período de tempo. Baseado nesse estudo e empregando algumas práticas de consolidação de servidores foi proposto um ambiente virtualizado o qual consolidou, para efeitos de análise, alguns servidores dessa Organização Militar. Essa implementação possibilitou avaliar, especificamente, a aplicabilidade da ferramenta de virtualização Open Source XEN fornecendo condições para que o ambiente implementado seja seguro, eficiente e de alta disponibilidade, características essas fundamentais em qualquer organização informatizada. Cabe ressaltar ainda que por ser livre, a ferramenta de virtualização XEN está de acordo com as políticas estipuladas pelo governo federal no que tange à utilização de software em suas repartições. Palavras-chave: Infra-estrutura. Consolidação. Virtualização. XEN. ABSTRACT The proliferation of computerized processes in all segments of society, governmental and business organizations alike find themselves obligated to constantly increase the capacity of their technological parks with the objective of computerize or even hold their processes, implementing to this end, with certain frequency, new servers. This soaring increase in the number of servers ends up generating great inconvenience in the management of information technology in the military organizations of the Brazilian Army, because it causes increases related to investments, complexity and overhead. This work examines the use of server consolidation techniques through virtualization as an option to minimize these problems in these organizations. It is used, to study, data from a functional infrastructure implemented in a military organization, which have been examined and studied for a determined period of time. Based on this study and employing some server consolidation practices, a virtualized environment was proposed, which consolidated for purposes of review, some servers of this military organization. This implementation made it possible to specifically assess the applicability of the open source virtualization tool XEN in consolidating servers on a military organization of the Brazilian Army, which provides conditions for the deployed environment to be safe, efficient and highly available – fundamental features in any computerized organization. It is highlighted that XEN is a free virtualization tool and, therefore, is in accordance with the policies set by the Federal Government regarding the use of software in their offices. Key-words: Infrastructure. Consolidation. Virtualization. XEN. LISTA DE ILUSTRAÇÕES Figura 1 - Emprego da Virtualização. .............................................................................. 14 Figura 2 - Ambiente virtualizado....................................................................................... 16 Figura 3 - Consolidação de servidores .............................................................................. 22 Figura 4 - Tendências de Consolidação ............................................................................ 23 Figura 5 - Aumento da complexidade da infra-estrutura .................................................. 25 Figura 6 - Tela de execução do comando top..................................................................... 33 Figura 7 - Tela de execução do programa IPTraf............................................................... 33 Figura 8 - Tela de edição do arquivo xen-tools.conf........................................................... 39 Figura 9 - Tela do comando xen-create-image....................................................................40 Figura 10 - Tela de exibição do comando xm top............................................................... 42 LISTA DE GRÁFICOS Gráfico 1 - Utilização de recursos pelo servidor Domínio/Arquivo .................................. 35 Gráfico 2 - Utilização de recursos pelo servidor SisBol ..................................................... 36 Gráfico 3 - Utilização de recursos pelo servidor Sirf-Offline ............................................ 36 Gráfico 4 - Utilização de recursos pelo servidor E-mail/ DNS ......................................... 36 LISTA DE ABREVIATURAS E SIGLAS 2° GAC L 2° Grupo de Artilharia de Campanha Leve ACPI Advanced Configuration and Power Interface AGP Accelerated Graphics Port API Application Programming Interface CPU Central Processing Unit DGP Departamento Geral de Pessoal DHCP Dynamic Host Configuration Protocol DNS Domain Name System dom0 Domain 0 (zero) domU Domain Unprivileged DRM Digital rights management E/S Entrada/Saída EB Exército Brasileiro EsAEx/CMS Escola de Administração do Exército e Colégio Militar de Salvador GNU General Public License IP Internet Protocol address LVM Logical Volume Management NFS Network File System OM Organização Militar PAE Physical Address Extension PCI Peripheral Component Interconnect RAM Random Access Memory SMP Symmetric Multi-Processing SO Sistema Operacional SOA Service Oriented Architecture SOSP Symposium an Operating Systems Principles TI Tecnologia da Informação USB Universal Serial Bus VM Virtual Machine VMM Virtual Machine Monitor SUMÁRIO 1 INTRODUÇÃO .............................................................................................................. 11 2 VIRTUALIZAÇÃO ....................................................................................................... 13 2.1 Aplicação ao longo do tempo ..................................................................................... 13 2.2 Tipos de virtualização ................................................................................................ 14 2.3 Máquinas virtuais e emuladores................................................................................. 15 2.4 Aplicações de um ambiente de virtualizado …......................................................... 17 2.5 Tipos de máquinas virtuais ........................................................................................ 18 2.6 Técnicas de virtualização ......................................................................................... 19 3 CONSOLIDAÇÃO DE SERVIDORES POR MEIO DA VIRTUALIZAÇÃO ....... 21 3.1 Consolidação e sua aplicação..................................................................................... 21 3.2 Vantagens..................................................................................................................... 23 3.3 Planejamento............................................................................................................... 26 4 CONSOLIDAÇÃO DE SERVIDORES COM O HYPERVISOR XEN ................... 30 4.1 Terminologia da ferramenta XEN .............................................................................. 30 4.2 Planejamento do ambiente virtual ............................................................................. 31 4.3 Ambientação................................................................................................................ 32 4.4 Instalação e configuração de dom0 ........................................................................... 38 4.5 Criando máquinas virtuais (domU) ............................................................................ 39 4.6 Operando máquinas virtuais (domU) ......................................................................... 40 4.7 Análise dos resu.ltados ............................................................................................... 42 5 CONCLUSÃO .................................................................................................................44 REFERÊNCIAS .................................................................................................................46 11 1 INTRODUÇÃO Atualmente as organizações operam em um cenário em que o domínio da informação é considerado um item chave para sua sobrevivência, bem como, em alguns casos para a sua competitividade. Dessa forma, organizações de todos os segmentos buscam implementar, o máximo possível, tecnologias que lhes proporcionarão os meios necessários para o controle das informações inerentes aos seus processos. Essa tendência acaba gerando uma constante ampliação da infra-estrutura nessas organizações, pois o aumento da demanda por serviços informatizados ocasiona, muito das vezes, um crescimento desordenado no número de servidores, pois determinados serviços requerem um ambiente isolado, sendo desaconselhável sua implementação juntamente com outros já existentes na organização. Esse aumento na infra-estrutura traz juntamente consigo diversos problemas referentes à complexidade do ambiente, consumo de energia, dispositivos de resfriamento, custos operacionais, custos administrativos, bem como uma redução de espaço físico. Segundo Cunha Neto (2009), estudos realizados com participação de algumas grandes organizações de TI (Tecnologia da Informação) como IBM, Oracle, Microsoft, Sun, dentre outras, demonstram que as organizações de uma forma geral utilizam apenas entre 5% a 15% da capacidade dos servidores localizados em seus data centers. Esse cenário fez com que a comunidade científica juntamente com grandes organizações despertassem novamente para o conceito de virtualização, mais especificamente nesse caso voltada à consolidação de servidores, como uma forma de aproveitar recursos já existentes e subutilizados nas organizações, ou como uma forma de reduzir a complexidade de gerenciamento de infra-estrutura, sem comprometer o isolamento necessário a determinados serviços. Atualmente existe uma série de soluções comerciais e outras não comerciais que proporcionam um ambiente consolidado através da virtualização com a finalidade minimizar os impactos causados pelo aumento excessivo no número de servidores em uma organização. O presente trabalho realiza o monitoramento, por um período considerado de tempo, nos servidores de uma OM (Organização Militar) com a finalidade de constatar uma possível ociosidade na utilização de seu hardware e posteriormente analisa a viabilidade do emprego de técnicas de consolidação de servidores por meio da virtualização, com a utilização de uma ferramenta Open Source denominada XEN. A escolha dessa ferramenta está intimamente 12 influenciada pela política de utilização de softwares livres pelas instituições governamentais. A fundamentação teórica foi feita em bibliografias especializadas e em material eletrônico. Este trabalho encontra-se organizado em três capítulos. O capítulo “Virtualização” apresenta diversos conceitos importantes referentes à virtualização, bem como sua aplicação em diversos segmentos de TI. O capítulo “Consolidação de Servidores por meio da Virtualização”, demonstra técnicas de consolidação de servidores, destacando vantagens, bem como a importância da realização de um planejamento detalhado no processo de implantação. O capítulo “Consolidação de Servidores com o hypervisor XEN”, com base nos dados obtidos em uma infra-estrutura em uma OM do Exército Brasileiro, analisa aspectos referentes à aplicabilidade de um ambiente virtualizado, criando para isso um ambiente simulado com o objetivo único de estudo e análise. Esse capítulo descreve aspectos desde o planejamento até o emprego de um ambiente virtualizado com a ferramenta Open Source XEN. 13 2 VIRTUALIZAÇÃO Atualmente existem muitos conceitos, definições e divisões envolvendo virtualização. Essa palavra por si só realmente engloba uma série de técnicas bastante distintas. Este capítulo tem como principal objetivo trabalhar o conceito de virtualização, além de descrever suas características, diferenças em relação a outras técnicas, bem como sua interação com os sistemas computacionais. Segundo Williams e Garcia (2007) antes de conceituar virtualização é necessário saber em qual contexto ela está ou será aplicada, entretanto Nanda e Chiueh (2005) enquadram tal tecnologia como sendo uma técnica que combina ou divide recursos computacionais para prover um ou mais ambientes operacionais de execução. 2.1 Aplicação ao longo do tempo O termo virtualização vem sendo empregado desde primórdios da computação. Ele foi inicialmente implementado na década de 1950 na Universidade de Manchester localizada na Inglaterra onde se desenvolveu a técnica de virtualização de memória (memória virtual) bastante utilizada pelos processadores e sistemas operacionais modernos. Essa técnica desvincula os endereços da memória utilizados pelas aplicações dos endereços físicos propriamente ditos. Conforme descrevem Carmona et al. (2008), na década de 1960 a IBM lançou um sistema voltado para mainframes implementando o conceito de virtualização de hardware, que permitia particionar o hardware da máquina real em unidades lógicas menores, isoladas e autônomas. Com essa tecnologia a IBM gerou um maior aproveitamento de seus caríssimos mainframes, pois eles desvinculavam ainda mais, o sistema operacional do hardware real, permitindo a execução de várias instâncias de sistemas operacionais simultaneamente. Esse sistema foi denominado de CP67 e tinha como principal objetivo, segundo Nanda e Chiueh (2005), reduzir o custo de aquisição de hardware e melhorar a produtividade, implementando a consolidação de várias máquinas em uma única. Nas décadas de 1970 e 1980 o conceito de virtualização permaneceu pouco empregado, isso se deve segundo Carmona et al. (2008) ao barateamento do hardware, ao 14 surgimento de ambientes multitarefa e ao advento dos computadores pessoais com alto poder de processamento e possibilidade de armazenamento local de informações. Desktops passaram a ser sinônimo de produtividade, redes de computadores a ser igual à versatilidade e salas de processamentos de servidores a serem entendidas como arrojo e investimento em TI. Na década de 1990, devido ao surgimento de uma variedade de sistemas operacionais e hardwares específicos, as idéias de virtualização estavam na demanda novamente, dessa vez voltada para a execução de aplicativos originalmente direcionados para um hardware ou sistema operacional específico. Recentemente a tecnologia de virtualização ressurgiu com força total “[...] e segundo a empresa Gartner irá revolucionar a atual estrutura de TI, causando um forte impacto em gestão, desenvolvimento, planejamento e aquisição de qualquer tipo de tecnologia voltada para informação.” (IT WEB, 2009). 2.2 Tipos de virtualização Como já foi mencionado anteriormente a virtualização abrange um campo bastante amplo da tecnologia da informação segundo Griffin e Coffing (2006) ela pode ser direcionada para os seguintes objetivos, conforme demonstrado na figura 1. Nome Interfaces virtuais Exemplo de implementação Virtualização de Armazenamento Servidor para o disco físico IBM SAN VC, FalconStor, DataCore, Rhapsody, PolyServe Memória virtual Processador para RAM Todos os SO modernos Virtualização de dispositivos de E/S Servidor para canais de E/S eGenera, Topspin Máquinas virtuais Sistema operacional para hardware XEN, VMware, Microsoft Virtual Server Virtualização de API Aplicativos para sistema operacional Mosix, Meiosys, Qlusters Dados compartilhados em cluster Aplicativos/sistema operacional para arquivos IBM Parallel Sysplex, PolyServe, VAXclusters Figura 1: Emprego da Virtualização. Fonte: Griffin e Coffing (2006, p. 9, tradução nossa). 15 Esta pesquisa aborda, especificamente, a virtualização voltada para implementação de um ambiente consolidado com o emprego de máquinas virtuais. Portanto o conceito de virtualização daqui por diante será voltado a um ambiente constituído por máquinas virtuais. 2.3 Máquinas virtuais e emuladores Máquinas virtuais são definidas segundo Mathews (2009) como sendo uma cópia isolada de um sistema físico, e essa cópia está totalmente protegida. Laureano (2006) refere-se à máquina virtual como sendo uma duplicata eficiente e isolada de uma máquina real. Um ambiente de máquina virtual consiste de três partes básicas: a) O sistema real, ou sistema hospedeiro (host system), que contém os recursos reais de hardware e software do sistema; b)O sistema virtual, também denominado sistema convidado (guest system), que é executado sobre o sistema virtualizado. Em alguns casos, vários sistemas virtuais podem coexistir, sendo executados sobre o mesmo sistema real; c)A camada de virtualização, ou monitor de virtualização (VMM - Virtual Machine Monitor), que constrói as interfaces virtuais a partir da interface real. É bastante comum confundir máquinas virtuais com emuladores, entretanto emuladores são softwares criados especificamente para transcrever instruções voltadas para um processador ou até mesmo uma determinada camada do sistema computacional para outro tipo de processador ou camada o qual está executando. Podendo citar como exemplo os jogos de Super Nintendo, que funcionam normalmente em computadores com o auxílio de emuladores, os quais transcrevem instruções originalmente voltadas à arquitetura de um vídeo game Super Nintendo para a arquitetura x86 dos computadores pessoais. Segundo Laureano (2006) um emulador “engana” uma determinada aplicação, fazendo com que todas as operações de uma determinada máquina real sejam implementadas por um software. Já uma máquina virtual é um ambiente proporcionado por um monitor de máquina virtual, também conhecido como hypervisor, e em algumas ocasiões denominado “sistema operacional para sistemas operacionais” 1. Segundo Mathews (2009) os monitores de _______________ Segundo LAUREANO (2006) a finalidade primária de um Sistema Operacional (SO) é viabilizar que aplicações interajam e gerenciem o hardware de um sistema computacional, por tal motivo o monitor de máquinas virtuais pode ser considerado com “sistema operacional para sistemas operacionais”. 16 máquinas virtuais estão se tornando peças chaves na computação moderna, pobrque permitem que diferentes sistemas operacionais e configurações coexistam na mesma máquina física. Com o emprego desse VMM, pode-se criar uma ou mais máquinas virtuais a partir de uma única máquina real. As máquinas virtuais implementadas trabalham como um computador completo e estão totalmente isoladas e independentes entre si e podem receber uma variedade de sistemas operacionais, pois as mesmas acreditam que estão sendo executadas em um ambiente convencional com acesso exclusivo e direto ao hardware, conforme pode ser observado na figura 2. Figura 2: Ambiente virtualizado. Fonte: Laureano (2006). O hypervisor tem com principal finalidade “[...] abstrair recursos físicos do computador hospedeiro (host), disfarçando-os como contrapartidas virtuais discretas que podem ser alocadas para uso por hóspedes individuais.” (MATHEWS, 2009, p.2), estabelecendo desta forma uma interface uniforme e padronizada com o hardware, protegendo os hospedes de detalhes de mais baixo nível, permitindo desta forma a portabilidade desses hospedes, que é considerada uma característica importantíssima em um ambiente virtualizado. 17 2.4 Aplicações de um ambiente de virtualizado Um ambiente virtualizado pode ser empregado em diversas situações, mas segundo Laureano (2006) as situações mais comuns são: a) Ensino - proporciona um ambiente técnico de ensino e treinamento bastante versátil. Esse ambiente pode ser implementado de tal maneira que o aluno tenha em um único computador toda uma infra-estrutura complexa composta por vários servidores e desktops interligados em rede, facilitando a abordagem e a prática de técnicas que necessitem deste tipo infra-estrutura. Pode, ainda, ser implementado de uma maneira em que o professor disponibilize aos alunos máquinas virtuais em vez de físicas, dessa forma podem ser abordados na prática, conceitos que resultem em deformação e até mesmo na inutilização de sistemas operacionais. O único trabalho que o professor teria, nessa situação, seria a substituição das máquinas virtuais danificadas por outras em condições; b) Honeypots e honeynets - tem como principal objetivo criar um ambiente virtualizado com a intenção de proteger uma outra infra-estrutura, e até mesmo atrair invasores para estudar os diversos tipos de ataques e técnicas, registrando todas as informações para uma posterior análise; c) Servidores de hospedagem - quando o serviço de hospedagem é classificado como sendo de servidor dedicado, isso significa que o administrador do site tem a sua disposição um sistema completo, inclusive com acesso às funcionalidades do sistema operacional, podendo instalar, remover e configurar aplicativos com total liberdade e flexibilidade. A virtualização é largamente utilizada neste tipo de serviço, pois ela permite dividir robustos servidores em máquinas de configurações mais simples, de acordo com a necessidade do cliente, para fins de locação; d) Confinamento de processos - máquinas virtuais são úteis para fornecer ambientes seguros e isolados (sandboxes) para executar aplicativos externos ou não confiáveis sem comprometer a estrutura computacional da organização. Tecnologia de virtualização pode, assim, ajudar a compilação de plataformas de computação segura; Williams e Garcia (2007) evidenciam também, a importância da utilização da virtualização nas seguintes situações: a) Suporte a aplicativos de legado - é essencial para as organizações manter suas aplicações em funcionamento. Em muitos casos, com o passar do tempo, o hardware 18 necessita ser atualizado. Essa prática, em algumas situações, exige também a atualização do sistema operacional e consequentemente pode exigir mudanças em determinadas aplicações, mas por diversos motivos algumas aplicações essenciais não podem ser modificadas. A utilização de um ambiente virtualizado pode solucionar este problema, pois é possível instalar e configurar uma máquina virtual sobre um hardware de última geração e nela instalar um SO mais antigo capaz de rodar tal aplicação; b) Desenvolvimento, teste e depuração - desenvolvedores de softwares procuram constantemente maneiras de diminuir custos e acelerar processos para a geração de aplicações. A virtualização proporciona um ambiente de desenvolvimento otimizado, onde é possível implementar várias máquinas virtuais em único computador com sistemas operacionais distintos oferecendo excelentes e seguros ambientes de depuração, simulação e testes. De uma forma geral, com a virtualização aplicada no processo de desenvolvimento de software, pode-se reduzir o número de equipamentos necessários para simular o ambiente de implementação. Segundo relato da empresa de desenvolvimento de software Kaizen [...] a virtualização aumentou a produtividade, pois proporcionou facilidades para administração e monitoração do ambiente, obtendo-se uma redução nos tempos de interrupção dos serviços, melhoria no suporte e na qualidade do ciclo de desenvolvimento, teste e homologação das aplicações. (KAIZEN, 2009). 2.5 Tipos de máquinas virtuais Na implementação da virtualização existem basicamente duas abordagens, elas se diferem quanto à localização do monitor de máquinas virtuais em relação às interfaces de abstração. Segundo Williams e Garcia (2007) elas estão divididas em: α) Tipo 1 – onde o monitor é implementado diretamente sobre o hardware e proporciona condições para receber diversas máquinas virtuais, estas por sua vez se comportam como se fossem realmente máquinas físicas e isoladas podendo receber seu próprio sistema operacional. Segundo Maziero (2008), nesta situação, a função do monitor é replicar os recursos de hardware (memória, discos, interfaces de rede, etc) de forma que cada máquina virtual tenha um conjunto de recursos próprio e independente; 19 β) Tipo 2 – nela o monitor é implementado como sendo um processo de um sistema real denominado sistema anfitrião, o que difere o seu funcionamento do Tipo 1 é a existência de um sistema abaixo dele. Segundo Laureano (2006), neste caso, o monitor usa os recursos oferecidos pelo sistema operacional real para oferecer recursos virtuais ao sistema operacional convidado que executa sobre ele. Monitores do Tipo 2 são mais flexíveis que os monitores do Tipo 1, pois podem ser facilmente instalados e removidos em máquinas com sistemas operacionais já instalados. Entretanto um monitor do Tipo 1, como é o caso da ferramenta XEN, tem melhor desempenho que um monitor do Tipo 2, uma vez que este último tem de usar os recursos oferecidos pelo sistema operacional subjacente, enquanto o primeiro pode acessar diretamente o hardware real. Para atenuar esse problema de desempenho, segundo Laureano (2006), os monitores raramente são usados em sua forma conceitual, ele defende a existência de “abordagens híbridas”, pois na prática, várias otimizações são implementadas para um melhoramento no desempenho dos sistemas convidados, surgindo desta forma algumas técnicas de virtualização. 2.6 Técnicas de virtualização Segundo Williams e Garcia (2007), as técnicas de virtualização podem ser divididas basicamente em: a) Virtualização total - considerada uma técnica de virtualização que fornece simulação completa do hardware subjacente. O resultado é um sistema no qual todos os softwares que executam normalmente em um hardware real podem ser implementados na máquina virtual. Virtualização completa pode receber como convidados uma maior diversidade de sistemas operacionais; b) Paravirtualização - uma técnica que virtualiza parcialmente o hardware subjacente. Laureano (2006) acrescenta que o sistema a ser paravirtualizado (sistema convidado) sofre modificações para proporcionar uma maior eficiência. Essa técnica permite o sistema convidado acesse diretamente alguns recursos de hardware, esse acesso é controlado pelo monitor de máquinas virtuais que estabelece limites do sistema. As modificações realizadas nos sistemas convidados reduzem sua portabilidade, mas segundo Laureano (2006), a performance obtida compensa tal perda; 20 c) Virtualização nativa - conforme descreve Carmona et al. (2008), a arquitetura dos processadores x86 não suportam nativamente a virtualização, fruto disso os ambientes que promovem a virtualização se utilizam de várias técnicas para driblar essa situação. Recentemente os fabricantes de CPU (Central Processing Unit) do mundo x86 começaram a dar suporte à virtualização nativamente, a Intel com sua Intel Virtualization Tecnology (VT, Codename Vanderpool) e a AMD com sua AMD I/O Virtualization Tecnology (Codename Pacífica). Segundo Williams e Garcia (2007) esse suporte oferecido pelos fabricantes gerou uma nova técnica de virtualização, que é considerada uma espécie de combinação de virtualização completa e paravirtualização, com técnicas de aceleração de dispositivos de entrada e saída. Resumidamente, com essa técnica é possível aproveitar os benefícios da paravirtualização sem precisar modificar os sistemas convidados e consequentemente manter a portabilidade. 21 3 CONSOLIDAÇÃO DE SERVIDORES POR MEIO DA VIRTUALIZAÇÃO O aumento dos processos informatizados é responsável pela maioria das mudanças estruturais nas organizações. A tecnologia da informação acompanha de perto esse progresso. Segundo Shiveley (2008), as organizações têm observado seus centros de dados expandirem para incluírem centenas ou até mesmo milhares de sistemas que executam diversas aplicações e sistemas operacionais distintos. Os volumes de dados aumentam sem parar, devido à quantidade de informações envolvidas nas operações, sem contar que, a cada dia, são lançadas novas aplicações para viabilizar a continuidade das operações nas organizações. A implementação de novos servidores aumenta na mesma proporção, com o objetivo de suportar essa demanda, o que acaba ocasionando, consequentemente, uma série de problemas referentes à ampliação de infra-estrutura. O Exército Brasileiro, como sendo uma organização governamental, não está alheio a essas mudanças, pois a cada dia informatiza mais os seus processos. Para minimizar esse impacto negativo nas organizações, a consolidação por intermédio da virtualização pode ser uma solução útil, pois ela visa enxugar a infra-estrutura e otimizar os processos. Castle et al. (2006) descrevem os seguintes itens como sendo os principais fatores que ocasionam um elevado crescimento no número de servidores nas organizações: α) Adição de novos servidores para suportar o crescente número de usuários, bem como uma maior demanda de aplicativos colaborativos; β) Distribuição de servidores duplicados em locais específicos para suprir restrição referente à rede geográfica cliente/servidor; χ) Separação de servidores por função a fim de se obter um desempenho otimizado e para reduzir a probabilidade de impacto causado pelos usuários. 3.1 Consolidação e sua aplicação Esta pesquisa aborda em especial a consolidação de servidores definida como sendo: Processo que consiste em centralizar e/ou diminuir o número de equipamentos e de aplicações instaladas em cada um dos servidores da organização, com o objetivo de aumentar a produtividade da infra-estrutura, melhorar o gerenciamento do ambiente, 22 aumentar a segurança, diminuir a manutenção e economizar em recursos humanos, físicos e financeiros. (LAUREANO, 2006, p. 46). Atualmente as técnicas de consolidação de servidores vêm ocupando uma posição de destaque na gerência da infra-estrutura de TI, pois tem agregado inúmeros benefícios para as organizações. Segundo Carmona et al. (2008), servidores normais, não raramente, permanecem de 70% a 90% do tempo ociosos, ou seja, com carga de trabalho quase nula. Com a implementação da consolidação de servidores é possível reverter esta situação para que os mesmos servidores permaneçam de 70% a 90% ocupados. Segundo Cunha Neto (2009), o problema está no fato de ter um data center com dezenas e até centenas de servidores em uma média de utilização, isto quando são utilizados, entre 5% a 15% de sua capacidade. Qualquer servidor que não esteja sendo utilizado representa perdas de investimentos para a organização sem contar com a geração de custos indiretos referentes às operações, como pessoal, espaço, energia, resfriamento, dentre diversos outros. Segundo Shiveley (2008), a consolidação de servidores é uma estratégia importante para a redução de custos. Com ferramentas de virtualização rodando em servidores robustos, as organizações podem consolidar vários sistemas operacionais e aplicações de forma segura e sem causar danos aos processos vitais da organização. Cada servidor físico, dependendo de suas configurações, pode ser dividido em até 30 (trinta) servidores virtuais conforme exemplificado na figura 3, com o objetivo de simplificar a infra-estrutura, aumentar a agilidade e reduzir os custos totais. Figura 3: Consolidação de Servidores. Fonte: Shiveley (2008). Diversas organizações já perceberam os benefícios da consolidação e partiram para implementação. Segundo o Gartner Group (2008 apud Shiveley, 2008) 60% das empresas pesquisadas estão no processo de consolidação de suas infra-estruturas e 28% estão na fase de planejamento conforme o gráfico da figura 4. 23 Figura 4: Tendências de Consolidação. Fonte: Shiveley (2008). 3.2 Vantagens As organizações, de uma forma geral, ainda encaram os processos de virtualização e consolidação de servidores com certo receio, mas os resultados comprovam que o processo traz benefícios e organizações de todos os segmentos começam a investir nessa tecnologia. Um exemplo citado em Conecte (2009) é o da empresa Henkel que conseguiu reduzir de 30 servidores para apenas 2, atingindo desta forma outros benefícios referentes à economia de energia elétrica, manutenção, ganho de espaço físico e diversos outros. Dentre os principais benefícios gerados pela consolidação de servidores implementada através da virtualização são destacados como sendo os de maiores impactos para uma organização os seguintes: a) Redução e controle de custos de TI - controlar os custos de TI ainda é o principal motivo que as empresas vêem na consolidação de servidores, segundo Castle et al. (2006). Segundo Shiveley (2008), as economias nos custos potenciais são substanciais, pois um estudo realizado pela empresa VMware apresentou as seguintes economias obtidas através da consolidação de servidores utilizando um ambiente virtualizado. - hardware - 28% a 53% de economia; - operações - 72% a 79% de economia; - total - 29% a 64% de economia. Estes dados confirmam que a redução de custos não ocorre somente com os equipamentos, mas também com as operações de administração da infra-estrutura. 24 Outro aspecto bastante interessante é que a redução de custos proporcionada pela consolidação de servidores, através da virtualização, não se limita a bens monetários, mas abrange também bens intangíveis referentes a uma tendência ambiental denominada, segundo Larissa (2008), de TI Verde2; b) Gerenciamento aprimorado - segundo Castle et al. (2006), a técnica de consolidar servidores pode ajudar a melhorar o controle dos sistemas de informação das seguintes maneiras: - gerenciamento da organização - cria um ambiente consolidado no qual acontecem todas as operações relevantes para o negócio oferecendo uma gama de ferramentas integradas, instalações e sistemas de gerenciamento; - desempenho consistente - sistemas consolidados baseado em uma padronização de hardware e plataformas de sistemas operacionais são suscetíveis ao balanceamento de carga de trabalho, dando uma maior eficiência nos processos; - segurança - problemas relacionados a sistemas distribuídos, como frequência das falhas ou a necessidade de intervenção manual pela equipe de suporte remoto, podem ser reduzidos com sistemas consolidados; - minimizar restrições operacionais - o aumento do número de servidores e periféricos pode sobrecarregar uma organização, ocasionando aspectos negativos como a redução de espaços necessários para implementar uma estrutura ideal, aumento nas conexões de rede, consumo de energia e de dispositivos de resfriamento. Laureano (2006) acrescenta ainda uma considerável melhoria no serviço ao cliente, pois pode se estabelecer níveis de desempenho a serem cumpridos, através de um controle eficiente e centralizado proporcionado pelo ambiente virtualizado, ou seja, as configurações dos servidores podem variar conforme a demanda; c) Proteção aprimorada aos dados da organização - segundo Castle et al. (2006) a consolidação de servidores proporciona uma proteção aprimorada dos dados, pois: - melhora a segurança dos ativos físicos - reduzindo o número de centro de dados locais, é possível restringir o acesso não autorizado ou indesejado ao hardware _______________ 2 Segundo Larissa (2009) a preocupação com o meio ambiente já chegou ao mundo da informática. Uma tendência mundial tem sido a TI Verde, que busca soluções que minimizem o consumo de energia e recursos naturais. Em pouco tempo desde o surgimento, a TI Verde já vendo sendo considerada uma revolução maior que a da Internet. Nesta pesquisa mostra que 80% dos executivos dizem que esta vertente da informática está crescendo em importância para as organizações, e outros 43% ressaltam que consideram em sua seleção de fornecedores quão corretas são as empresas em termos ambientais. 25 dos servidores, ajudando a garantir um ambiente mais seguro; - melhora os procedimentos de backup, recuperação e integridade dos dados – a consolidação de servidores, implementada em conjunto com um sistema de armazenamento centralizado, oferece mecanismos para o desenvolvimento de um eficiente plano de recuperação de desastres, minimizando a interrupção de negócios devido a uma possível falha no sistema. Segundo Laureano (2006), a virtualização pode auxiliar a diminuir o tempo de recuperação dos servidores de dias para horas, uma vez que todas as máquinas virtuais podem estar armazenadas em um storage da organização, não estando associada a nenhum hardware específico, podendo desta forma, ser carregada em outros equipamentos da organização. d) Redução da complexidade técnica - com o crescimento no número de servidores, a administração de uma infra-estrutura tende cada vez mais a se tornar uma função bastante específica, exigindo muita das vezes dos profissionais, não apenas o conhecimento técnico, mas todo um conhecimento relativo à forma em que foi implantada a atual estrutura na organização. Por esse motivo segundo Hagen (2008), as grandes e médias organizações, quase sempre implementam essa técnica com foco na redução da complexidade de sua infra-estrutura. O aumento de servidores em uma organização gera um crescimento exponencial da complexidade do sistema conforme evidenciado na figura 5. Figura 5: Aumento da complexidade da infra-estrutura. Fonte: BMC (2002) apud Oliveira (2004). Conforme a implementação, as atuais arquiteturas de infra-estrutura tendem a se tornar muito complexas ao longo de sua expansão, com redes amplas, servidores locais, switchs de replicação e assim por diante. Hagen (2008) afirma que com a implementação da consolidação através da virtualização é possível reduzir a complexidade da infra-estrutura, 26 pois, conforme o tipo de configuração adotada pelas máquinas virtuais pode se obter uma redução no número de placas de interface de rede, simplificando, dessa maneira, todo o cabeamento da rede, reduzindo o número de switchs, bem como diversos outros equipamentos necessários em um data center. 3.3 Planejamento A consolidação de servidores através da virtualização já se tornou uma importante estratégia de TI que oferece vantagens fundamentais na eficiência dos centros de dados. Apesar disso, não adianta simplesmente “pular no trem”, um passo mal dado e acabamos ficando na plataforma de embarque. Ao se falar de virtualização, também é válido medir cada um dos custos e benefícios e avaliar os riscos. (CARMONA et al, 2008, p. 20). O que os autores enfatizam é que cada caso é um caso. É necessário um estudo detalhado, bem como um planejamento bem elaborado para se ter um projeto de consolidação bem sucedido. Quase sempre, o processo de consolidação de servidores envolvem novos produtos e novas tecnologias, assim como novos procedimentos de TI e novos modelos de uso. Segundo Shiveley (2008), as políticas para tomada de decisões normalmente também precisam mudar, já que os servidores físicos individuais poderão ser compartilhados entre múltiplas unidades de negócios. Segundo Messias (2009), muitos gestores sabem da importância do planejamento, entretanto alguns acabam deixando-o de lado no processo de consolidação de servidores através da virtualização por considerá-lo uma operação simples e desnecessária. Muitos parâmetros precisam ser pensados e levados em conta. É necessário ter a exata noção das variáveis que envolvem todo o processo antes de iniciar o projeto. Além disso, com o planejamento é possível saber o tempo de duração, configuração ideal para o host, sistemas operacionais adequados, melhor ferramenta de virtualização a ser empregada, bem como uma noção exata dos custos envolvidos. No que se refere à escolha da ferramenta de virtulização, segundo Sprang (2008), ainda não existe uma solução ideal para todos os propósitos e situações, nem todas as opções são indicadas para todos os casos. Segundo Williams e Garcia (2007), uma prática imprescindível no processo de planejamento é a coleta de dados por um período de tempo considerável referente ao 27 desempenho, levando em consideração as cargas de trabalho executas atualmente nos servidores físicos, especialmente durante as horas de pico, com o objetivo de fornecer subsídios para efetuar um planejamento adequado e justificar a razão da implementação da estratégia de virtualização. O objetivo dos esforços no processo de virtualização é consolidar vários servidores em uma plataforma de hardware física e específica. Segundo Oglesby e Herold (2005), dependendo que estratégia a organização tenha escolhido, é preciso definir quais servidores são suscetíveis de se tornarem máquinas virtuais, realizando uma revisão de toda infraestrutura, analisando individualmente cada servidor, determinando se ele irá continuar como uma máquina física ou será migrado ou recriado como uma máquina virtual. Segundo Hagen (2008), o melhor ponto de partida é considerar os softwares, ou seja, os serviços que os servidores precisam continuar prestando de forma eficiente após o processo de consolidação juntamente como suas especificações. Realizar um levantamento do hardware existente em cada servidor e a porcentagem dos recursos atualmente utilizados é considerado outro ponto de extrema importância. Os processos de identificação dos softwares existentes e que são passivos de serem movidos de servidores físicos para as máquinas virtuais envolvem diversos fatores, incluindo avaliação de requisitos de hardware, de software, de sistema operacional, fatores relacionados com sua execução propriamente dita, dentre outra variáveis. Hagen (2008) afirma, ainda, que o processo de coleta dos dados referentes ao hardware, sistema operacional e de execução é facilitado com a utilização de uma lista de verificação pré-determinada, pois garante que a coleta de dados foi a mesma para todos os aplicativos e sistemas alvos da consolidação, além de permitir uma rápida e precisa análise do planejamento. Dentre as principais informações a serem coletadas Hagen (2008) destaca as seguintes: a) Aplicativo e versão — o nome e número versão específica do aplicativo devem estar listados separadamente, pois pode ser que tenham requisitos de sistema operacional ou hardware específico; b) O sistema operacional atual e a versão — o sistema operacional em que o aplicativo está sendo executado no momento; c) Os patches (pacotes de correção ou atualização de softwares) do sistema operacional ou service packs — qualquer patches específicos que foram aplicados ao sistema operacional em execução, incluindo service packs para aplicativos baseados no Windows; 28 d) Outros sistemas operacionais suportados — outros sistemas operacionais que a versão do aplicativo em questão suporta; e) Ambiente de execução de software — bibliotecas auxiliares ou pacotes de software que o aplicativo requer, incluindo o número das versões. Isso inclui software, como a máquina virtual Java, gnu, Java Runtime Script e ambientes como Perl, Awk, Sed e assim por diante. Interpretadores e programas auxiliares o qual o aplicativo depende para ser executado. Decifrar compartilhamentos e requisitos dinamicamente vinculados às bibliotecas é considerada uma tarefa bastante complexa. Em sistemas Linux, pode ser usado o comando ldd (lista dependências dinâmicas) para identificar as bibliotecas que um aplicativo requer, incluindo a versão da Biblioteca C do sistema que ele usa (glibc, uclibc, newlib). Em sistemas Microsoft Windows, pode ser usado um aplicativo, como o Dependency Walker, que acompanha o Process Explorer; f) Privilégios necessários — qualquer tipo de privilégio necessário para a instalação e execução, incluindo usuários específicos; g) Hardware e drivers associados — qualquer hardware que é especificamente associado com a versão do aplicativo em questão, como placas de vídeo, som, interface de rede e até mesmo dispositivos de armazenamento; h) Resolução de vídeo atual — a resolução de vídeo na qual o aplicativo está atualmente em execução e as que ele suporta. i) Requisitos de memória — requisitos relativos à quantidade de memória específica para o aplicativo; j) Memória do servidor atual — a quantidade de memória instalada no sistema no qual a versão do aplicativo em questão está sendo executado atualmente; k) O desempenho do aplicativo atual — uma avaliação realizada pelos próprios usuários referente ao atual desempenho do aplicativo, servindo como instrumento para futuras comparações; l) Licenciamento atual — a necessidade e a forma de licença para o aplicativo, mensurado por cópia, processador, dentre outros tipos. Verificar se a atual estrutura de licenciamento do aplicativo prevê a sua utilização em ambientes virtualizados. Incluir também informações referentes a alterações ou necessidade de compra de licenças adicionais quando for o caso. Segundo Oglesby e Herold (2005), as empresas especialistas em consolidação de servidores através da virtualização, baseadas nas melhores práticas do mercado, defendem que nem todos os servidores de um data center são passíveis de sofrerem consolidação. Variáveis 29 como o número de acesso e utilização do hardware precisam ser minuciosamente analisadas. Não existe uma padronização, pois cada caso é um caso. Entretanto a comparação do número de usuários e o hardware exigido é essencial em todos os casos. 30 4 CONSOLIDAÇÃO DE SERVIDORES COM O HYPERVISOR XEN Este capítulo apresenta, para fins de estudo, o processo de análise e implementação de um ambiente consolidado de servidores com a ferramenta de virtualização XEN em uma OM do Exército Brasileiro. Tal implementação teve como objetivo testar a viabilidade dessa ferramenta, que se desponta como sendo uma possível solução frente aos problemas ocasionados pelo crescimento exagerado no número de servidores. 4.1 Terminologia da ferramenta XEN A infra-estrutura de um ambiente virtualizado com o hypervisor XEN funciona de maneira diferente dos outros produtos existentes no mercado. Enquanto que na maioria das ferramentas de virtualização, existe o conceito de máquinas hospedeiras (hosts) e máquinas hospedadas ou hóspedes (guests), no ambiente de virtualização XEN são adotados outros termos, considerados bem mais apropriados ao seu modo de funcionamento. Segundo Hagen (2008), em uma máquina onde esteja implementado o ambiente de virtualização XEN, antes que qualquer sistema operacional seja carregado, é invocado o hypervisor. O hypervisor é considerado a camada controladora que se encarregará de controlar os recursos de comunicação, memória e processamento das máquinas virtuais. As máquinas virtuais do XEN são chamadas de domínios, ou simplesmente dom. Segundo Carmona et al. (2008), o hypervisor isoladamente é incapaz de realizar qualquer interação com o usuário. Para que tal comunicação seja possível é necessário que exista um sistema inicial para ser invocado pelo hypervisor. Esse sistema é denominado de domínio 0 (zero) ou dom0. Não há distinção perceptível entre um sistema instalado do modo convencional e um sistema instalado como dom0, exceto o fato de que o kernel do dom0 deve ser capaz de operar com o hypervisor. O hypervisor não possui drivers de dispositivo. Isso tem o objetivo, segundo Hagen (2008), deixar o hypervisor mais enxuto e eficiente. A comunicação com dispositivos de disco, rede, USB (Universal Serial Bus), dentre outros é realizada diretamente pelo dom0. Desta forma, o dom0 tem a responsabilidade de coordenar as demais máquinas virtuais, denominadas de domU. Segundo Siqueira e Brendel (2007), essas são assim 31 chamadas por não possuírem os mesmos privilégios do dom0 e a letra U representa o termo Unprivileged (sem privilégios). Segundo Siqueira e Brendel (2007), as máquinas virtuais domU são criadas, iniciadas e interrompidas através do dom0, mas também se comunicam diretamente com o hypervisor, que controla os recursos de memória e processador. Já para os demais itens de hardware, são compartilhados os drivers do dom0 conforme observado. Todos os dispositivos compatíveis com o dom0 poderão ser utilizados pelas máquinas domU, mesmo que sejam sistemas operacionais diferentes. Um sistema operacional Windows executado em uma domU poderá utilizar os dispositivos de hardware da máquina através dos drivers do Linux instalado como dom0. Segundo Williams e Garcia (2007) é interessante minimizar o número de processos em execução dentro de dom0, pois este é um domínio altamente privilegiado e que qualquer comprometimento ou instabilidade induzido por um processo em execução afetará todos os domínios convidados e conseqüentemente os servidores virtualizados. Além disso, dom0 compartilha o mesmo hardware físico que os domínios convidados e quanto mais recursos ele consumir, menos estarão disponíveis para domUs. 4.2 Ambientação O 2º GAC L (2º Grupo de Artilharia de Campanha Leve) é uma unidade do Exército Brasileiro, e como toda organização possui uma infra-estrutura de TI destinada a manter diversos serviços informatizados essenciais para a administração interna e transações externas, empregando para isso diversos computadores com funções de servidores em uma rede com cerca de 110 (cento e dez) computadores, todos com acesso à internet. Constantemente são ativados novos servidores para suportar novos sistemas, alguns padronizados em âmbito Exército Brasileiro e outros não, os quais sempre visam informatizar processos administrativos. Esses sistemas, em sua grande maioria, requerem certo grau de isolamento, pois implementam processos vitais à administração que podem vir a interferir em outros processos caso sejam colocados juntos. Desta forma é desaconselhável, em alguns casos, empregá-los com outros serviços em um único sistema operacional. Em sua infraestrutura as OMs necessitam manter tanto sistemas específicos padronizados pelo Exército 32 Brasileiro quanto sistemas comuns a uma infra-estrutura de TI (serviços de impressão, nomes de domínio, arquivos, correio eletrônico, proxy, etc). 4.3 Planejamento do ambiente virtual Um dos fatores que influencia diretamente o processo de planejamento da consolidação de servidores é, sem duvida, a configuração do hardware do servidor que irá hospedar as máquinas virtuais. O hardware utilizado nesta pesquisa para hospedar as máquinas virtuais possui a seguinte configuração: - processador Intel(R)Core (TM)2 Duo T6400 @ 2.00Ghz; - 3 GB de memória RAM (Random Access Memory); - disco rígido de 300 GB; - 1 Placa de interface de rede Gygabit Ethernet PCI Express. Este computador é considerado uma máquina doméstica, e foi empregado nesta situação para fins de pesquisa. É importante salientar que caso o processo de consolidação fosse realmente empregado de forma funcional, seria interessante empregar uma máquina com configurações mais robustas. Dentre as diversas distribuições GNU/Linux existentes no mercado, a distribuição escolhida foi o Debian Lenny 5.0. Essa escolha teve como base algumas características como, instalação inicial mínima e bastante enxuta com apenas softwares necessários, estabilidade, confiabilidade e compatibilidade reconhecida pelos desenvolvedores da ferramenta de virtualização XEN e principalmente, a facilidade de customização da distribuição, além de ser a distribuição padronizada pelo Exército Brasileiro em seus servidores. Conforme abordado no capítulo 3, o planejamento é uma etapa indispensável no processo de consolidação. É necessário avaliar atentamente os servidores em uso, a fim de elencar aqueles que serão passíveis de se tornarem máquinas virtuais. Deve-se mensurar e avaliar diversos parâmetros para evitar decisões precipitadas que possam gerar uma futura indisponibilidade nos serviços essenciais da OM. Em uma primeira etapa foi realizado o levantamento dos servidores candidatos a sofrerem o processo de consolidação. Para efeito desta pesquisa, foram considerados apenas alguns servidores da infra-estrutura do 2º GAC L. Desses servidores foram levantados dados referentes a configurações, softwares instalados e 33 uma breve descrição de suas funções na infra-estrutura da OM. Segue abaixo um resumo dos dados levantados dos servidores candidatos à virtualização: a) Servidor de Domínio/Arquivo – este servidor centraliza os dados das diversas repartições da OM e permite a aplicação de uma eficiente política de acesso. Ele permite que as diversas seções da OM tenham pastas exclusivas aos seus integrantes, habilitando desta forma o acesso de qualquer máquina da OM através de um login e senha previamente cadastrados. Desta forma o trabalho da seção não será completamente interrompido caso haja qualquer problemas em seus computadores. - hardware: Intel Pentium IV 2.6 GHz, 1GB de memória RAM, 2 disco rígido de 300Gb, placa de rede Asus padrão 100Mbps; - software: Sistema Operacional Open Suse 10.2 instalado com interface gráfica, controlador de domínio e servidor de arquivos Samba, antivírus ClamAv e diversos utilitários próprios da distribuição. b) Servidor de E-mail/DNS - este servidor além de resolver nomes da rede interna e da internet implementa um serviço de e-mail funcional, personalizado e padronizado para os integrantes da OM. - hardware: Intel Celeron 1.46 GHz, 512 Mb de memória RAM, disco rígido de 80Gb, placa de rede 100Mbps; - software: Sistema operacional Debian Sarg instalado com interface gráfica, Bind, antivírus ClamAv, Apache Web Server, Postifix, Squirrelmail e utilitários. c) Servidor SisBol - implementa um sistema que informatiza e otimiza a confecção de boletins, mantém um cadastro de informações dos militares e gera as alterações 3 automaticamente, evitando a complicada confecção manual desses documentos. - hardware: Intel Celeron 1.46 GHz, 512Mb de memória RAM, disco rígido de 120Gb, placa de rede Asus 100Mbps; - software: Sistema operacional Debian Etch instalado com interface gráfica, Apache Web Server, sistema gerenciador de banco de dados MySql , PHP4, antivírus ClamAv e utilitários. d) Servidor Sirf-Offline – Sistema padronizado em âmbito Exército Brasileiro que tem por finalidade remeter dados referentes aos militares pertencentes à OM para o DGP, o qual irá alimentar as fichas individuais que são disponibilizadas on-line. _______________ 3 Documento que descreve detalhadamente todas as atividades e procedimentos que o militar esteve envolvido e que foram publicados em Boletim Interno da OM. 34 - hardware: Intel Celeron 1.46 GHz, 512Mb de memória RAM, disco rígido de 80Gb, placa de rede padrão Asus 100 Mbps; - software: Sistema operacional Debian Etch instalado com interface gráfica, Apache Web Server, TomCat , antivírus ClamAv e utilitários. Todos os servidores empregam desnecessariamente interface gráfica e algumas ferramentas defaults do Linux o que implica em um aumento de consumo de recursos. Ao longo de 10 (dez) dias, nessa infra-estrutura, foi realizado um monitoramento dos recursos de hardware utilizados por esses servidores durante o expediente de trabalho. Nessa ocasião foram coletados dados como a utilização da CPU, memória e interface de rede. Na coleta empregou-se os seguintes utilitários do Linux: a) top – comando Unix que fornece uma lista dos processos e quantidade de CPU utilizada por eles, também exibe outras informações sobre a saúde geral do sistema, incluindo a utilização de memória. A figura 6 apresenta um exemplo das informações fornecidas por esse comando; Figura 6: Tela de execução do comando top. Fonte: top – Elaborado pelo autor. b) IPTraf - é um programa que fornece uma interface gráfica para analisar o tráfego de rede. A figura 7 apresenta um exemplo da execução de uma das funcionalidades do programa. 35 Figura 7: Tela de execução do programa IPTra.f Fonte: IPTraf – Elaborado pelo autor. Os gráficos a seguir mostram como os servidores candidatos à virtualização utilizavam, dentro do período de monitoramento recursos como CPU, memória e interface de rede. Como esses dados serviram de base para o planejamento do ambiente consolidado, foi considerada a maior taxa de utilização obtida no corrente dia, garantindo desta forma que as máquinas virtuais fossem criadas com recursos suficientes para desempenhar suas funções na infra-estrutura. % Gráfico 1: Utilização de recursos pelo servidor Domínio/Arquivo. Fonte: Elaborado pelo autor. Pode-se observar, que dentre os demais servidores, o servidor Domínio/Arquivo é o que possui a maior utilização de recursos, destacando o tráfego de rede. Isso se deve pelo papel chave que ele desempenha na infra-estrutura da OM. 36 % Gráfico 2: Utilização de recursos pelo servidor SisBol. Fonte: Elaborado pelo autor. % Gráfico 3: Utilização de recursos pelo servidor Sirf-Offline. Fonte: Elaborado pelo autor. % Gráfico 4: Utilização de recursos pelo servidor E-mail/ DNS. Fonte: Elaborado pelo autor. 37 Analisando os gráficos pode-se observar que os recursos dos servidores estudados são bastante subutilizados. O servidor de arquivos é a máquina que possui a melhor configuração, comparada com as demais, e é a que mais utiliza recursos de rede de acordo com os gráficos, isso se deve pela função chave que desempenha na organização, onde todos os arquivos são armazenados, acessados, modificados e copiados remotamente por quase todos os computadores da rede, ocasionando uma carga de trabalho bastante diferenciada dos demais servidores analisados. O recurso mais utilizado em todos os casos é a memória, por isso é de extrema importância ao se planejar um ambiente consolidado virtualmente, configurar as máquinas virtuais com memória suficiente para o correto desempenho de suas funções. Outro ponto observado ao analisar esses servidores é que todos utilizam interface gráfica e uma série de ferramentas não utilizadas, o que eleva, de uma forma considerável, o consumo de recursos, principalmente de memória RAM. Segundo Oglesby e Herold (2005), praticamente todo servidor é passível de ser transformado em uma máquina virtual. O que vai realmente influenciar na decisão são os requisitos de hardware exigidos pelos hóspedes confrontados com os disponíveis na máquina hospedeira que irá suportá-los. Tendo como referência essa técnica e a análise dos gráficos, optou-se por não virtualizar o servidor de arquivos já que o mesmo atualmente utiliza boa parte de seus recursos de hardware, suportando uma considerável carga de trabalho na atual infra-estrutura da organização. Tal decisão levou em conta também a limitação do servidor hospedeiro, que nesse caso foi empregado unicamente com o objetivo de estudo da viabilidade da ferramenta de virtualização XEN. Um servidor virtual num ambiente de produção real não deve possuir recursos de hardware tão limitados. O planejamento realizado considerou, conforme alertado por Oglesby e Herold (2005), um possível crescimento da atual infra-estrutura e consequentemente o de acesso aos servidores virtualizados, deixando assim recursos livres na máquina hospedeira para uma possível expansão dos servidores consolidados. Após o planejamento, a distribuição de memória RAM para as máquinas virtuais ficou da seguinte forma: a) Dom0 – 768 Mb; b) SisBol – 512 Mb; c) E-mail/DNS – 512 Mb; d) Sirf-Offline – 512 Mb; e) Livre – 768 Mb. 38 4.4 Instalação e configuração de dom0 A forma mais simples de implementar o ambiente de virtualização Open Source XEN é transformar uma instalação existente de Linux no domínio 0 do sistema virtualizado e a partir daí seguir com a instalação das máquinas virtuais. No servidor hospedeiro foi realizada uma instalação enxuta da distribuição Debian Lenny. O Debian facilita bastante o processo de instalação do XEN graças sua ferramenta APT (Advanced Packaging Tool), que constitui um eficiente gerenciador de pacotes da distribuição, uma vez que todos os softwares necessários para tal processo podem ser encontrados em repositórios Debian na internet. A instalação propriamente dita do hypervisor XEN juntamente com alguns utilitários é realizada através do comando: apt-get install libxenstore3.0 linux-image-2.6.26-1-xen-arr linux-modules-2.6.26-1-xen xen-docs-3.2 xen-hypervisor-3.2-1-amd64 xen-shell xenstore-utils xen-tools xen-utils-3.21 xen-utils-common. Neste caso, a máquina hospedeira possui seu processador na arquitetura 64-bits, por isso é utilizado o hypervisor compatível. O XEN reserva uma parte da memória RAM para cada máquina virtual e essa memória não pode ser utilizada por outra. No planejamento ficou definido que o dom0 utilizaria 768 Mb de memória RAM e teria uma configuração bastante enxuta, executando apenas funções de gerência das outras máquinas virtuais. Para configurar o volume de memória utilizada pelo dom0, é necessário editar o arquivo /boot/grub/menu.lst, localizando a configuração do novo kernel e acrescentando a opção dom0_mem=768Mb na sua frente. O próximo passo é a preparação do dom0 para compartilhar a interface de rede. Esse processo é feito através de uma interface virtual que funciona em modo bridge, e atua como um simples repetidor, ou seja, tudo que passa pela interface real também é repassado para a interface virtual que fica responsável por selecionar os pacotes que são direcionados para as máquinas virtuais. Para criar essa interface virtual, é preciso instalar um pacote chamado bridge-utils, com o comando: apt-get install bridge-utils. Antes da criação dos servidores virtualizados (domU) é interessante reiniciar o servidor e verificar se o novo kernel foi carregado corretamente. 39 4.5 Criando máquinas virtuais (domU) Antes da criação dos servidores virtualizados (domU) é preciso definir a forma de armazenamento. Como esta implementação está voltada unicamente para a pesquisa e teste da ferramenta, será utilizado um arquivo de imagem de disco, que fará o papel do disco rígido para as domU, mas segundo Williams e Garcia (2007) em uma implementação funcional o LVM 4 (Logical Volume Management) seria a opção ideal, pois torna as operações de entrada e saída bem mais eficientes. A criação das máquinas virtuais no XEN pode ser realizada utilizando o comando xencreate-image, mas é necessário configurar primeiramente o arquivo /etc/xen-tools/xentools.conf e indicar algumas opções de instalação, conforme exemplificado na figura 8. Figura 8: Tela de edição do arquivo xen-tools.conf. Fonte: nano – Elaborado pelo autor. A seguir são analisadas algumas das opções definidas no arquivo de criação de máquinas virtuais: a) kernel /boot/vmlinuz-2.6.26-1-xen-amd64 - esta opção indica o kernel que será utilizado na máquina virtual. Note que o arquivo está no sistema de arquivo do dom0, diferentemente do que ocorre nos sistemas que utilizam virtualização total, nos quais todos os arquivos devem permanecer no disco virtual; b) initrd /boot/initrd.img-2.6.26-1-xen-amd64 - indica o disco de memória inicial correspondente ao kernel indicado na opção kernel; _______________ 4 A implementação LVM cria um grande disco virtual, que pode ser constituído por mais de um dispositivo de armazenamento, e divido em partições virtuais. A grande vantagem é permitir o redimensionamento das áreas de modo dinâmico, ou seja, com o sistema operacional sendo utilizado. 40 c) memory 512Mb - volume de memória que será reservado para essa máquina virtual; d) swap 512Mb - tamanho do disco de swap que será criado para a máquina virtual; e) size 4Gb - tamanho do disco virtual; f) image sparse - existem duas possibilidades para essa opção, uma é a "full", que solicita a alocação imediata de todo o espaço em disco que as imagens utilizarão. A outra possibilidade é a "sparse", que permite a alocação de espaço por demanda; g) fs ext3 - o XEN pode utilizar três tipos de sistema de arquivos, o ext3, reiserfs e o xfs; h) debootstrap - mecanismo que permite a instalação de um sistema Debian básico via internet; i) dist lenny - distribuição que será utilizada pelo debootstrap; j) mirror http://ftp.us.debian.org/debian - repositório que será utilizado durante a instalação do sistema básico na máquina virtual; k) netmask 255.255.255.0 - máscara da rede. Na execução do comando xen-create-image ainda é necessário indicar algumas configurações específicas da máquina virtual que está sendo criada, conforme a figura 9. Figura 9: Tela do comando xen-create-image. Fonte: XEN – Elaborado pelo autor. Para a criação das demais máquinas virtuais, basta modificar as opções referentes a ip, hostname, memory e outras que forem necessárias na execução do comando xen-create-image. Após a instalação das máquinas virtuais foram configurados nelas todos os serviços que rodavam antes nos servidores físicos da infra-estrutura do 2° GAC L. 4.6 Operando máquinas virtuais (domU) Com as máquinas virtuais criadas, o próximo passo foi configurá-las, instalando e configurando os serviços para rede, carregando base de dados e transferindo possíveis arquivos dos antigos servidores físicos. Esta pesquisa não tem como objetivo entrar em detalhes sobre esses procedimentos, apenas ressaltando que todos os trabalhos de instalação e 41 configuração nos servidores virtuais ocorrem como se fossem máquinas físicas. Por exemplo, para instalar o apache no servidor sisbol basta configurar os repositórios em /etc/apt/source.list, executar o comando apt-get update e logo em seguida o comando apt-get install apache2. Segundo Hagen (2008), tão fundamental quanto planejar é monitorar um ambiente virtualizado. A seguir são apresentados alguns comandos essenciais nas operações com máquinas virtuais em um ambiente virtualizado com o XEN: α) xm create -c <nome_da máquina_virtual>.cfg – inicializa uma máquina virtual. O terminal console em que o comando é executado passa a refletir ao console da máquina virtual em questão mostrando o processo de boot. Para retornar o terminal do dom0 basta usar a sequência de teclas “Crtl + ]”, passando à execução da máquina virtual em background; β) xm list – lista as máquinas virtuais em execução. Ela exibe alguns flags de status referentes às máquinas virtuais ativas, o status “r” significa running, ou seja, o domínio está em execução na CPU. O status "b" significa blocked, ou bloqueado, informando que o domínio está esperando alguma operação de entrada ou saída, ou está dormindo por falta de atividade; χ) xm shutdown -H <nome-da-máquina-virtual> - desliga uma máquina virtual do XEN; δ) xm reboot <nome-da-máquina-virtual> - reinicia uma máquina virtual do XEN; ε) xm top – monitora as máquinas virtuais em execução, demonstrando detalhadamente os recursos utilizados por elas em um determinado momento, conforme exemplificado na figura 10. Além desses comandos apresentados existem diversos outros relacionados às diversas formas de se configurar e administrar ambientes virtualizados com a ferramenta. Maiores detalhes podem ser obtidos no manual da ferramenta xm (man xm), ou na documentação oficial da ferramenta disponível em www.xen.org. Em um ambiente consolidado por meio da virtualização é interessante fazer com que todos os servidores virtualizados iniciem juntamente com o sistema, ao invés de carregá-los manualmente. Para automatizar a inicializaçao das domU durante o boot do dom0, é necessário criar o diretório /etc/xen/auto e também os links simbólicos apontando para o arquivo de configuração de cada máquina virtual a ser inicializada, o que pode ser realizado com os comandos: mkdir /etc/xen/auto ln –s /etc/xen/dns.cfg /etc/xen/auto/ 42 Figura 10: Tela de exibição do comando xm top. Fonte: XEN - Elaborado pelo autor. 4.7 Análise dos resultados Com os resultados obtidos pode-se verificar que a ferramenta de virtualização Open Source XEN desempenhou sua função como desejado. A ferramenta consolidou de uma forma eficiente três servidores, os quais operavam com uma baixa taxa de utilização de hardware, subempregando os recursos oferecidos pelas máquinas reais. Caso a efetivação dessa implementação viesse a ocorrer, a organização se beneficiaria nos seguintes aspectos: a) liberação para emprego de três máquinas; b) economia referente a consumo de energia; c) maior eficiência dos mecanismos de refrigeração; d) economia referente à manutenção da infra-etrutura; e) e principalmente, a liberação de espaço físico na sala dos servidores. Outro aspecto a ser observado é que nessa situação a ferramenta XEN virtualizou a interface de rede, proporcionando uma redução no número de cabos e consequentemente na complexidade na infra-estrutura da sala dos servidores, entretanto essa prática deve ser empregada com muita cautela, pois dependendo do tráfego de rede pode ocasionar o comprometimento de toda infra-estrutura, Mathews (2009) recomenda nesse caso a configuração de várias interfaces físicas de rede, uma para cada máquina virtual, dependendo da situação. Importante salientar que os servidores reais do 2° GAC L utilizavam interface gráfica, consumindo desnecessariamente recursos do hardware. No processo de consolidação esses servidores foram implementados sem interface gráfica o que ocasionou um ganho de recursos. A viabilidade dessa implementação está intimamente ligada ao processo de planejamento que procedeu a configuração da ferramenta, o qual analisou toda estrutura considerada, 43 realizando um monitoramento dos processos executados nos servidores físicos. Desta forma foi possível estabelecer as configurações ideais para os servidores virtuais. Enfim o planejamento permitiu prever, em tempo hábil, possíveis problemas no processo de consolidação. Após o término do processo de consolidação bem como a reinstalação, configuração e carregamento de dados, os servidores recém virtualizados substituíram momentaneamente os servidores físicos na infra-estrutura da organização, sendo submetidos a uma carga de teste por uma média de três horas. Durante esse período os servidores virtuais corresponderam às expectativas iniciais mantendo seus serviços totalmente disponíveis, não sendo constatado qualquer tipo de queda de performance em relação à antiga infra-estrutura. 44 5 CONCLUSÃO As organizações, em um contexto geral, dependem cada vez mais de sistemas computacionais. Esses sistemas são geralmente implementados de modo a fornecerem uma série de serviços em um ambiente compartilhado, baseado quase sempre na arquitetura cliente/servidor. É praticamente impossível uma organização, que esteja passando por um processo de implantação ou expansão tecnológica, deixar de implementar novos servidores para sustentar novas aplicações. Essa situação acaba, por muitas vezes, ocasionando um crescimento excessivo no número de máquinas em seus data centers, reforçado ainda mais, pelo advento da internet e pelo emprego de novas tecnologias, como por exemplo o SOA (Service Oriented Architecture), que acabam acrescentando novas camadas de serviços e consequentemente a necessidade de novos servidores. Com o constante avanço tecnológico, surgem computadores cada vez mais potentes, que na sua maioria, são utilizados de forma parcial, causando uma ociosidade dos recursos disponíveis, e um aumento de custos. A cada novo servidor implementado, a organização aumenta também, de uma forma indireta, a complexidade do ambiente, e os gastos com manutenção, administração, energia e dispositivos de resfriamento. Tal situação ocasiona também o desconforto da redução gradativa do espaço físico nos data centers. Atualmente é difícil encontrar uma organização militar do Exército Brasileiro que não detenha um certo número de servidores em sua infra-estrutura. Esse número tende a crescer cada vez mais, e as técnicas de consolidação de servidores por meio da virtualização implementadas com a ferramenta XEN propõem uma redução dessas máquinas, proporcionando às diversas organizações militares uma série de benefícios referentes à sua infra-estrutura, sem perder eficiência e segurança em suas operações. Este trabalho analisou a viabilidade das técnicas de consolidação de servidores por intermédio da virtualização utilizando a ferramenta Open Source XEN. Para isso a ferramenta foi implantada e analisada, substituindo, temporariamente, alguns servidores físicos da infraestrutura funcional do 2º Grupo de Artilharia de Campanha Leve, o que permitiu analisar, em ambiente real de produção, o comportamento da ferramenta. Terminados os trabalhos, pode-se concluir que as técnicas de consolidação de servidores por intermédio da virtualização, realmente trazem vantagens, uma vez que reduz o número de servidores físicos, aproveitando assim a capacidade de equipamentos ociosos já existentes na organização. Entretanto a implantação dessa técnica deve ser muito bem 45 planejada e estruturada, evitando-se assim resultados negativos que possam causar uma indisponibilidade de serviços essenciais. Concluiu-se ainda, que a ferramenta de virtualização XEN é extremamente eficiente na criação de um ambiente consolidado, evidenciando seriedade, confiabilidade e estabilidade. O fato de ser Open Source e mantida por uma comunidade juntamente com a empresa Citrix, recebendo importantes contribuições da Intel, Oracle, IBM e diversas outras organizações, mostra o promissor futuro dessa ferramenta no que tange aspectos relacionados à virtualização. Na implementação funcional de um ambiente consolidado virtual, que tinha como objetivo avaliar e testar a ferramenta, o XEN implementou, de uma forma eficiente, as funções de três servidores físicos em apenas uma máquina. Esse processo ocorreu levando em consideração todos os requisitos de hardware e software exigidos pelos servidores físicos. Ao serem submetidos às mesmas cargas de trabalho dos servidores reais, os servidores virtuais não apresentaram qualquer tipo de queda de performance. Isso ocorreu devido à utilização das técnicas de paravirtualização da ferramenta, as quais permitem que sistemas virtuais executem suas tarefas de forma similar aos sistemas reais. Conclui-se assim que a ferramenta Open Source XEN constitui uma solução eficiente para a consolidação de servidores por meio da virtualização, minimizando os impactos causados pelo crescimento exagerado no número de servidores em organizações militares do Exército Brasileiro. 46 REFERÊNCIAS CARMONA, T. et al. Virtualização. São Paulo: Linux New Media do Brasil, 2008. CASTLE, J. et al. Domino 7 Server Consolidation Best Practices to Get the Most Out of Your Domino Infrastructure. United States of América: Redpaper, 2006. CONECTE. Virtualização e consolidação de servidores traz excelente custo benefício para Henkel. Disponível em: <http://www.conectecomunicacao.com.br/conecte/publier4.0/texto.asp?id=259>. Acesso em: 9 maio 2009. CUNHA NETO, L. F. Por que virtualizar ?. Disponível em: <http://wiki.xen-br.org/index.php?title=Por_que_Virtualizar >. Acesso em: 15 maio 2009. GRIFFIN, C.; COFFING, C. SLES 10 Virtualization with XEN. United States of América: Novell, 2006. HAGEN, V. W. Professional XEN Virtualization. Canada: Wiley Publishing, 2008. IT WEB.Virtualização mudará as regras da TI. Disponível em: <http://www.financialweb.com.br/noticias/index.asp?cod=46962>. Acesso em: 9 abr. 2009. Não paginado. KAIZEN. Virtualização de Infra-Estrutura de TI. Disponível em: <http://www.kaizen.com.br/index.php/virtualizacao.html>. Acesso em: 15 mar. 2009. Não paginado. LARISSA, K. TI Verde. Disponível em: <http://www.nominuto.com/colunas/ciencia_e_voce/ti_verde_/19916/>. Acesso em: 15 abr. 2009. LAUREANO, M. Máquinas Virtuais e emuladores: Conceitos, técnicas e aplicações. São Paulo: Novatec, 2006. MAZIERO, C. A. Sistemas Operacionais: VIII - Máquinas Virtuais. Curitiba: Universidade Católica do Paraná, 2008. MATHEWS, J. N. Executando o XEN – Um Guia Prático para a Arte da Virtualização. Rio de Janeiro: Alta Books, 2009. MESSIAS, A. L. A importância do planejamento antes da Virtualização. Disponível em: <http://www.conectecomunicacao.com.br/conecte/publier4.0/texto.asp?id=266>. Acesso em: 30 maio 2009. NANDA, S.; CHIUEH, T. A Survey on Virtualization Technologies: Technical Report. Department of Computer Science. NY: University at Stony Brook, 2005. 47 OGLESBY, R.; HEROLD, S. VMware ESX Server: Advanced Technical Design Guide. United States of América: Brian Madden, 2005. OLIVEIRA, G. Estudo Comparativo de Metodologias de Consolidação de Servidores para a Elaboração de uma Proposta e Implementação. Joinville: Sociedade Educacional de Santa Catarina, 2004. SHIVELEY, R. Estratégias de Consolidação para Servidores baseados nos Processadores Intel. Disponível em: <http://www.intel.com/portugues/technology/magazine/archive/2006/apr/revista0406_2.pdf >. Acesso em: 15 ago. 2008. SIQUEIRA, L.; BRENDEL, J. Virtualização. São Paulo: Linux New Media do Brasil, 2007. SPRANG, H. São tantas opções de Virtualização. LINUX Magazine. São Paulo, n. 40, p. 4044, 2008. WILLIAMS, D. E.; GARCIA, J. G. Virtualization with XEN: Including XenEnterprise, XenServer, and XenExpress. United States of America: Syngress, 2007. XEN NETWORKING. Details, Installation, & Set-up of Debian based Linux Servers. Disponível em: <http://wiki.kartbuilding.net/index.php/Xen_Networking>. Acesso em: 15 maio 2009.