Menu Principal

quinta-feira, 9 de fevereiro de 2012

Máquinas Virtuais

Fonte: http://www.softelabs.com/Suporte/Tech_Support_Linux_and_Virtualization/Entendendo_a_Virtualiza%C3%A7%C3%A3o_-_Linux_Scrpting_com_VmWare

O que é então uma máquina virtual? É geralmente definida como uma aplicação de software " que roda num computador que executa programas como se de uma máquina real se tratasse". Essencialmente, é um Sistema Operativo "hóspede" ou "guest" que é executado e encapsulado num "mundo virtual" isolado de memória, de disco e um espaço de "host operativo" de um sistema. O Sistema O/S convidado não tem "consciência" de que não está em execução física, e que não dispõe de um hardware real. A memória, CPU , disco e interfaces de rede que são utilizados, são recursos fornecidos pelo computador host e pelo software ou núcleo de virtualização (designado de hypervisor "), que está em execução no host VM, e que está encarregado de criar um ambiente totalmente encapsulado que faz crer aos sistemas "condidados" de que estes dispõem de hardware e recursos exclusivos.
Um dos principais benefícios da computação através da virtualização e que desde o ano de 2000 é explorado, é o da consolidação: em vez de correr vários computadores físicos, que normalmente operam em 5% a 10% das suas capacidades, e usando um hardware separado, podemos executar os mesmos sistemas operativos, com todas as suas configurações separadas e aplicações, num único "host" que implementa o suporte de máquina virtual. Os diferentes sistemas operativos convidados e aplicaticações comportam-se exactamente como se estivessem a ser executados no hardware físico exclusivo, apesar de no entanto partilharem o mesmo hardware físico do sistema Host de Virtualização.
Outra vantagem bem importante é a resiliência e a normalização. O hardware virtual "de uma máquina virtual (VM) é a mesma entre todas as VMs (assumindo que eles estão todos usando o mesmo software de virtualização) e por isso é uma coisa simples e trivial a operação de movimentação ou copia de uma máquina virtual, ou instância virtual, de um host para outro - se para fins de failover , ou para a provisão - não importa o hardware físico, de qualquer fornecedor, está a ser usado para as máquinas de acolhimento, ou instância virtuais, que supõem ter recursos de hardware exclusivo.
A líder desde o seu ínicio é a VMware, Inc., fundada em 1998, que é reconhecida como líder de virtualização para a plataforma x86/AMD de 32 e 64 Bits. Os seus produtos incluem o VMware Workstation, usado principalmente em computadores desktop, e VMware Infrastructure (anteriormente chamado ESX), bem como uma versão mais limitada, mas aberta e gratuita chamada VMware Server e actualmente na sua versão 2.x, que no entanto se bem explorada encerra enorme potencial de utilização em produção no Data-Center.
A Meta a atingir
Eu, Pessoalmente e Profissionalmente, tenho máquinas virtuais há muitos anos, e uso esta tecnologia nos meus projectos e nas empresas com as quais tenho colaborado desde 1999. Antes das tecnologias em que também a VMware foi pioneira, e agora líder absoluto de mercado, eu necessitava  testar as configurações de diferentes sistema operativos ou mesmo efectuar o desenvolvimento em ambientes de sistemas Windows e Linux, e desde o começo considerei a adopção destas tecnologias para substituir um laboratório em que seria necessário dispor de dúzias de computadores físicos.
Assim com apenas uma instância do VMware Workstation ou Servidor (VmwServer ou ESX) descobri que também poderia demonstrar vários produtos de software para os meus clientes usando o VMware, e, portanto, mais uma vez a vantagem de um laboratório móvel, sem a necessidade de me arrastar em torno de vários computadores físicos e dos problemas de manutenção que são inerentes a muitos componentes físicos, por mais robustos que eventualmente sejam.
Isso foi há mais de 10 anos. mas hoje em dia regularmente executo quatro ou cinco máquinas virtuais num simples Laptop, bem como mais de uma dezena de outras máquinas virtuais, suportadas através do VMware Server ou Vmware ESXi assente num único servidor físico, para testar e desenvolver várias configurações de software. O software VMware funciona excepcionalmente bem e a sua robustez é comparável à dos ambientes de mainframes, normalmente plataformas corporativas de elevados custos de aquisição e manutenção.
Aqui poderá ter uma visão da consola central simplificada do VMware Server 2.0, através de Web-Browser:
VmwareServer-Console.jpgEmbora a administração baseada em consola Web seja já  excelente, no entanto tudo depende de ter uma conexão HTTPS com o servidor numa porta específica, optimizado adequadamente e suportado e mantido de uma forma robusta. 
Os Requisitos de Automatização
Muito embora se tenham construído inúmeras soluções de software para simplificar e automatizar as operações de administração e manutenção, eu no entanto tenho vindo a criar o meu próprio caminho, a este respeito, e procurei criar e dispor de soluções que me permitam realizar as tarefas de exploração dos ambientes de virtualização, de uma maneira mais automatizada para as minhas máquinas virtuais e dos meus clientes, aliando "tunning" especifico para estes ambientes. 
O Staff da VMware desenvolveu bastantes utilitários e scripts em Linux e UNIX, bem como API´s, comandos e vasta documentação que nos permite utilizar a linha de comandos Linux e assim tomar o controle sobre as máquinas virtuais que rodam em plataformas da VMware.
Por "linha de comando", pergunta você ? Bem, enquanto a Web baseada em GUI VMware (conforme acima) ela é excelente para tornar a gestão das máquinas virtuais mais fácil e intuitiva, e disponível ao alcance de um clique sobre um ponto de um interface gráfico. No entanto estas funcionalidades a que todos já se habituaram, não estão orientadas nem se se prestam à automatização nem permitem os níveis de segurança que são necessários implementar hoje em dia. É sempre requerida a interacção humana - olhos no Ecran e os dedos no mouse - para realizar qualquer tarefa por mais simples ou rotineira que seja. !!! 
Os comandos passados através de linha de comando, ao contrário, podes ser programados, e assim podem criar-se mecanismos e programas configurados para fazer exactamente o que queremos de uma forma muito definida e precisa.
Este é o caminho para a necessária automatização que confere aos sistemas e plataformas de cloud-computing a fiabilidade e eficácia necessárias, nos dias de hoje aos sistemas computacionais e ainda a forma mais fácil de reduzir custos de implementação , administração e manutenção dos referidos sistemas.
O utilitário de linha de comando, fornecidas pela VMware é chamado VMrun. Este utilitário vem com o VMware Workstation 6.5 e VMware Server 2.0 (mas não com versões anteriores), e achei a documentação no site da VMware. Esta solução particular vou descrever é para a versão Linux somente.
Desta forma a criação de programas ou scripts em Linux são a forma que conheço desde sempre em TI traduzindo e permitindo implementar maior eficácia, com melhores performances e também a mais barata para automatizar e gerir todos os componentes de hardware e software do seu Data-Center. 
Para isso é no mínimo necessário dispor de comandos (ou API´s), que possam ser usandos em scripts Linux, para tarefas que isoladamente podem parecer primárias, mas são importantíssimas para os objectivos de optimização e gestão em ambientes virtualizados, como o:
  • exibir as máquinas virtuais disponíveis, que podem ser executados num determinado host
  • exibir o status das máquinas virtuais que estão actualmente em execução
  • iniciar máquinas virtuais a partir de comandos e scripts no servidor host
  • parar as máquinas virtuais no servidor host
  • reinicialização (reset) das máquinas virtuais no servidor host
  • gerir grupos de máquinas virtuais em conjunto
  • executar comandos no sistema operativo convidado (guest OS) das máquinas virtuais
O último requisito é significativo, em relação à minha necessidade para desligar todas as aplicações rodando em minha máquina de convidado, para não perder ou danificar os dados. Para simplesmente "parar" a máquina virtual poderia ser análogo ao pressionar o botão de energia em um computador físico. É assim que se escreve "a perda de dados". Então, eu quero usar os comandos que irá encerrar as aplicações eo sistema operacional de forma segura.
Abordagens e Soluções propostas
Para alcançar esses objectivos, tenho desenvolvido e modificado scripts Linux explorados pela comunidade, para uso em sistemas Linux  em que esteja instalado o  VMware Server 2.0, ou no caso do Vmware ESX (Enterprise version) que possam correr nestes sistemas. 
Através de variáveis de ambiente específicas, que são relativos às máquinas específica de uma determinada instalação e que poderão estar contidas num roteiro de configuração. Este script secundário é chamado pelo script primário (vmutil.sh) para definir todos os parâmetros necessários que são específicos para o host VMware. Isso torna a solução altamente portátil: eu posso usar o mesmo script vmutil.sh no host VMware máquinas diferentes, apenas alterando o script de configuração para cada ambiente diferente.
Os scripts e linhas de comando (em geral), seja em Linux ou em qualquer outro sistema operativo como o Windows, fazem maravilhas para automatizar tarefas repetitivas e que podem ser cronogramadas. E estas vão desde a completa automatização de backups, sem qualquer paragem das máquinas virtuais, que podem ser exploradas 7 X 24 horas e com alta disponibilidade portanto, até à monitorização pro-activa de processos e aplicações, bem como a geração de alertas por e-mail, SMS ou relatórios via WEB, ou mesmo a tomada de acções correctivas face a anomalias detectadas em procedimentos de monitorização de sistemas e aplicações.
Um exemplo simples através do comando VMrun
Como mencionado, a VMware criou o utilitário VMrun para permitir que os utilizadores controlem as máquinas virtuais a partir da linha de comandos , que é toda a base das soluções de scripting em que me tenho empenhado na sua construçõão e adaptação a partir de uma base existente na comunidade, de molde a fornecer soluções de TI e de virtualização robustas, eficazes e assistindo na automatização da maioria das tarefas repetitivas, que hoje em dia caracteriza a realidade dos data-centers, tornando-os por isso altamente ineficazes e obrigando a custos cada vez maiores na sua administração e suporte.
A partir da documentação VMrun, aprendemos que a sintaxe do comando é a seguinte :
VMrun-T-h servidor https://SOftelabs.com:8333/sdk  -u root -p 'Paswd' [start]  "[Virtual Live Library @ Softelabs] eLabs-Hobbit/eLabs-Hobbit.vmx" [hard|soft]
Através da utilização de todas as variantes de um simples comando como o VRUN podem criar-se scripts sofisticados para gerir todas as máquinas virtuais existentes, automatizando processos e minimizando intervenções a que qualquer programa dotado de um "mínimo de inteligência" poderá assistir e resolver, sem qualquer intervenção humana. E não foi para isso que o ser humano criou e aposta em continuar a desenvolver os computadores ???!!!
Outro exemplo do uso do comando VMrun, para iniciar uma máquina virtual, é:
VMrun-T-h servidor https://eLabs:8333/sdk u root -p 'secretpw' start VMwareService "[storage library1] SLES10/SLES10.vmx"
O parâmetro "-T servidor" (tipo) especifica VMware Server 2.0 (em vez de VMware Workstation). O parâmetro para o servidor (host) URL "-h https://eLabs:8333/sdk"especifica os meios pelos quais podemos comunicar com o servidor VMware, usando Secure HTTP na porta 8333 (padrão). O VMware administrador username ("u") e senha ("p") são especificadas, e que o comando é "start". O local para a configuração da máquina virtual (. Vmx) arquivo é na sintaxe do "[<storagegroup>] <diretorio> / <nome_do_arquivo>. Vmx". Grupos de armazenamento são configurados na GUI administrativa VMware eo padrão inicial do grupo de armazenamento para o VMware Server 2.0 (definido durante a instalação) é chamado "standard] [".
Por último e para demonstrar a capacidade que os Scripts em Linux / UNIX e a linha de comandos UNIX podem resolver questões e problemas de automatização de backups, administração e manutenção, etc, de forma tão ou mais eficaz que soluções de software e hardware de mercado que custam autênticas fortunas, e que na maioria das vezes não conseguem sequer ser implementados ou se tira partido insignificantes destas fortunas gastas, apresento um projecto de script para o backup automático ou a consolidação de backups de todas as máquinas virtuais existentes num Data-Center.
O Script Linux que aqui apresento tem base na comunidade como muitos outros e pode ser modificado, e mesmo compilado, para uma implementação especifica, apenas através de algum "know-how" e algumas horas de trabalho, que serão altamenente rentáveis, face aos processos de intervenção humana que ele pode pura e simplemente eliminar.
O serverVCB.sh - script de backup para VMware Server no Linux host
Este "pequeno" script, de que poder efectuar o download a seguir, permite efectuar full live backups a todas as suas instâncias virtuais de forma automática, e constitui um script baseado no ghettoVCB.sh da autoria de William Lam, e que foi adaptado da plataforma ESX, para suporte também na plataforma de virtualização gratuita Vmware Server 2.0.
O ghettoVCB.sh script executa backups de máquinas virtuais que estejam suportadas em Linux hosts. Este efectua snapshots das máquinas virtuais, e em seguida faz o backup do master VMDK (s) e, após a conclusão, apaga o instantâneo (snaphot) até ao próximo backup programado de forma totalmente segura e rápida. 
Linux Virtual Server.pngEste script poder ser por sua vez implementado nos sistemas Linux via crontab, definindo acções programadas em função dos objectivos pretendidos. 
Os backups são efectuados com as máquinas em funcionamento real e sem grande penalização em termos de CPU ou memória e poderão produzir-se e analisar-se de forma totalmente automática acções em função dos resultados das operações efectuadas por este script (ver mais detalhes deste no link aqui).
Este script, para além de muitas outras funcionalidades, permite também efectuar controle e implementar a rotação de até três backups a executar sobre cada uma das instâncias virtuais em pleno funcionamento, e sem prejudicar gravemente os tempos de resposta dos respectivos servidores aplicacionais, como atrás já foi salientado
Nota: Para que o backup funcione, e até face à estratégia que atrás está descrita sobre o molde de funcionamento destes script, as maquinas virtuais não poderão nenhum snapshot associado através da consola de administração web.
Notas Finais
Em suma, o Linux e a Virtualização estão a trazer para o Data-Center o poder da automatização e do controle sobre os processos e operações repetitivas e também sugadoras de recursos humanos ao basearem a exploração dos sistemasUbuntu2.jpg exclusivamente em interfaces gráficos e navegação através de cliques.
Têm ainda vantagem de resolver problemas e permitirem construir soluções fiáveis e robustas que constituem alternativas muito mais económicas, face às soluções e software de mercado muito caras, sobretudo nas áreas da monitorização, manutenção e automatização de sistemas.
Como tal os scripts são uma peça fundamental em todo este processo e o "know-how" nestes domínios mandatórios no repensar de estratégias futuras para a introdução e manutenção de sistemas e plataformas de virtualização na sua empresa.
Para qualquer dúvida, questão ou "feedback" agradeço o seu contacto para fgoncalves@softelabs.com
Consulte e efectue o download do documento abaixo : Building an enterprise monitoring system using Linux
grid_computing_technology.gifSe quer reduzir custos e optimizar a sua infra-estrutura tecnológica, deixe o desenho de arquitecturas e o suporte de sistemas Linux por nossa conta !!! 
Quer racionalizar a administração e manutenção dos seus sistemas LinuxUnix e Windows e optimizar as performances destes, reduzindo custos consideráveis em hardware e software caro eSoftelabs-small.gif ineficiente ? Ou pretende automatizar, de forma eficaz e a baixos custos, os procedimentos de backups e a sincronização em tempo real dos dados dos seus servidores Linux e sistemas de virtualização VmwareVirtualBox,Xen , KVM ou de Cloud-Computing ? Então fale connosco em info@softelabs.com  e verá os seus problemas resolvidos rápidamente com inovação, eficácia e eficiência, aliando elevada redução de custos em software e hardware. Consulte-nos sem qualquer compromisso e experimente as soluções e os serviços que lhe poderemos garantir.

Nenhum comentário:

Postar um comentário