Xen é um hypervisor tipo 1 que cria conjuntos lógicos de recursos do sistema de modo que muitas máquinas virtuais possam compartilhar os mesmos recursos físicos.
O Xen executa diretamente no hardware do sistema. Ele insere uma camada de virtualização entre o hardware do sistema e as máquinas virtuais, transformando o hardware em um conjunto de recursos computacionais lógicos que Xen pode alocar dinamicamente para qualquer sistema operacional guest.
Os sistemas operacionais em execução nas máquinas virtuais interagem com os recursos virtuais como se fossem recursos físicos.
A figura abaixo mostra um sistema com Xen executando máquinas virtuais:
Recursos
Os conceitos principais da arquitetura Xen são:
- Virtualização integral.
- Xen pode executar diversos OS, cada um em sua VM.
- Em vez de um driver, acontecem muitas coisas ótimas no daemon do Xen, xend.
Virtualização integral
A maioria dos hypervisors é baseada em virtualização integral, o que significa que eles emulam completamente todos os dispositivos de hardware para as máquinas virtuais.
Sistemas operacionais guest não requerem modificações e se comportam como se cada um tivesse acesso exclusivo ao sistema inteiro.
A virtualização completa geralmente inclui contrapartidas no desempenho pois a emulação completa demanda mais recursos de processamento (e mais gasto adicional) do hypervisor.
O Xen é baseado em paravirtualização. Ele requer que os sistemas operacionais guest sejam modificados para suportar o ambiente operacional do Xen. No entanto, os aplicativos e bibliotecas do espaço do usuário não precisam ser modificados.
Modificações no sistema operacional são necessárias por motivos como:
- Para que Xen possa substituir o sistema operacional como o software mais privilegiado.
- Para que Xen possa usar interfaces mais eficientes (tais como dispositivos de bloco virtual e interfaces de rede virtuais) para emular dispositivos — isso aumenta o desempenho.
Xen pode executar diversos OS, cada um em sua VM
Xen pode executar vários sistemas operacionais guest, cada um executando em sua própria máquina virtual ou domínio. Quando o Xen é instalado, ele cria automaticamente o primeiro domínio, Domínio 0 (ou dom0).
O Domínio 0 é o domínio de gerenciamento e é responsável por gerenciar o sistema. Ele realiza tarefas como desenvolver domínios adicionais (ou máquinas virtuais), gerenciar os dispositivos virtuais para cada máquina virtual, suspender, recuperar e migrar máquinas virtuais. O Domínio 0 executa um sistema operacional guest e é responsável pelos dispositivos de hardware.
Em vez de um driver, acontecem muitas coisas ótimas no daemon do Xen
O daemon do Xen, xend, é um programa Python executado em dom0. É o ponto central de controle para gerenciar recursos virtuais em todas as máquinas virtuais executando no hypervisor Xen.
A maior parte da análise de comandos, validação e sequenciamento acontece no espaço do usuário em xend, e não em um driver.
A IBM suporta a versão do SUSE Linux Enterprise Edition (SLES) 10 do Xen, que suporta a seguinte configuração:
- Quatro máquinas virtuais por processador e até 64 máquinas virtuais por sistema físico.
- SLES 10 como sistema operacional guest (paravirtualizado apenas).
Implementando virtualização
Para implementar a virtualização do Xen:
- Instale Xen no sistema.
- Crie e configure máquinas virtuais (isso inclui o sistema operacional guest).
Instale o software Xen usando um destes métodos:
- Instalação interativa: Use este procedimento para instalar diretamente em uma máquina virtual dedicada no servidor Xen. Essa máquina virtual dedicada é chamada de computador cliente no procedimento de instalação.
- Instalação a partir do console CommCell: Use este procedimento para instalar remotamente em uma máquina virtual dedicada no servidor Xen.
Para mais informações sobre implementação de virtualização, consulte Recursos ao final do artigo.
Gerenciando suas máquinas virtuais
Há vários gerenciadores de máquinas virtuais disponíveis, incluindo:
Gerenciadores de software livre:
- OpenXenManager: um clone de software livre do XenServer XenCenter da Citrix que gerencia XCP e XenServer da Citrix.
- Xen Cloud Control System (XCCS): é um pacote de frontend leve para o excelente sistema de computação em nuvem Xen Cloud Platform.
- Zentific: uma interface de gerenciamento baseada na Web para controle efetivo de máquinas virtuais executadas em um hypervisor Xen.
Gerenciadores comerciais:
- Convirture: ConVirt é uma solução de gerenciamento centralizado que permite fornecer, monitorar e gerenciar o ciclo de vida completo de uma implementação do Xen.
- Citrix XenCenter: é uma interface gráfica com o usuário do Windows para gerenciar Citrix XenServer e XCP.
- Versiera: é uma tecnologia da Internet baseada na Web, criada para gerenciar e monitorar ambientes de nuvem e empresas com segurança e suporte para Linux, FreeBSD, OpenBSD, NetBSD, OS X, Windows, Solaris, OpenWRT e DD-WRT.
Escolhendo o Xen
Vantagens:
- O servidor Xen foi desenvolvido sobre o hypervisor Xen de software livre e usa uma combinação de paravirtualização e virtualização assistida por hardware. Essa colaboração entre o OS e a plataforma de virtualização permite o desenvolvimento de um hypervisor mais simples, que entrega desempenho altamente otimizado.
- Xen fornece balanceamento sofisticado de carga de trabalho, capturando dados de CPU, memória, E/S de disco e E/S de rede. Ele oferece dois modos de otimização: um para desempenho e outro para densidade.
- O servidor Xen usa um recurso exclusivo de integração de armazenamento, chamado Citrix Storage Link. Com ele, o administrador do sistema pode utilizar diretamente recursos alavancados de arrays de empresas como HP, Dell Equal Logic, NetApp, EMC e outras.
- O servidor Xen inclui suporte para processador de vários núcleos, migração de produção, ferramentas de conversão physical-server-to-virtual-machine (P2V) e conversão virtual-to-virtual (V2V), gerenciamento centralizado de vários servidores, monitoramento de desempenho em tempo real e desempenho rápido para Windows e Linux.
Desvantagens:
- O Xen tem uma área de cobertura relativamente grande e depende de Linux em dom0.
- Depende de soluções de terceiros para obter drivers de dispositivo de hardware, armazenamento, backup e recuperação e tolerância a falhas.
- Fica lento com qualquer coisa que tenha uma alta taxa de E/S, ou que consuma muitos recursos e deixe poucos para outras VMs.
- A integração do Xen pode ser problemática e se tornar um peso no kernel Linux com o tempo.
- XenServer 5 não possui entroncamento de rede local virtual (VLAN) 802.1Q. Quanto à segurança, não oferece integração com serviços de diretório, controle de acesso baseado na função, criação de log e auditoria de segurança e nem ações administrativas.
Recursos
Aprender
Links para esta série:
- O site PowerVM.
- Guia de Administração do Red Hat Enterprise Virtualization 3.0.
- Guia de Iniciação Rápida do VMware versão 5.17 | versão 4.15.
- Visão geral do VMware vSphere.
- Manual on-line Getting Started with Xen Deployment.
- Xen.org.
- Lista de documentação KVM.
- Guia de Administração do Red Hat Enterprise Virtualization 3.0 (para ajuda com KVM).
- Virtualization Manager do IBM Director permite gerenciar todos os sistemas virtualizados z/VM a partir de um mesmo console.
Nos recursos para desenvolvedores de nuvem do developerWorks, descubra e compartilhe o conhecimento e a experiência dos desenvolvedores de aplicativos e serviços que estão criando os seus projetos de implementação de nuvem.
Descubra como acessar o IBM SmartCloud Enterprise.
Obter produtos e tecnologias
- Consulte as imagens do produto disponíveis para IBM SmartCloud Enterprise.
Discutir
- Participe de um grupo sobre computação em nuvem no developerWorks.
- Leia todos os ótimos blogs sobre nuvem no developerWorks.
- Participe da comunidade do developerWorks, uma rede profissional e conjunto de ferramentas comunitárias para conectar, compartilhar e colaborar.
Artigo originalmente publicado em http://www.ibm.com/developerworks/br/cloud/library/cl-hypervisorcompare-xen/index.html
Sobre o autor
Bhanuprakash trabalha na indústria de software há oito anos com várias tecnologias e produtos, como desenvolvimento de aplicativos em Pocket PCs, aplicativos baseados na web, soluções de transmissão de vídeo e produtos como Tivoli Workload Scheduler, WebSphere Data Interchange, Tivoli Service Automation Manager e Tivoli Provisioning Manager. Como integrante da IBM SmartCloud Enterprise, ele adquiriu profundo conhecimento sobre infraestruturas e hypervisores em nuvem.