Xen - Xen

Xen
Xen hypervisor logo black.svg
Xen screenshot.png
Xen rodando NetBSD e três distribuições Linux
Autor (es) original (is) Keir Fraser, William Perkins jr, Steven Hand, Ian Pratt , University of Cambridge Computer Laboratory
Desenvolvedor (s) Linux Foundation
Intel
lançamento inicial 2003 ( 2003 )
Versão estável
4,15 / 8 de abril de 2021 ; 6 meses atrás ( 2021-04-08 )
Repositório
Escrito em C
Modelo Hipervisor
Licença GPLv2
Local na rede Internet xenproject .org

Xen (pronunciado / z ɛ n / ) é um tipo-1 hipervisor , fornecendo serviços que permitem que vários computador sistemas operacionais a executar no mesmo hardware de computador simultaneamente. Foi originalmente desenvolvido pelo Laboratório de Computação da Universidade de Cambridge e agora está sendo desenvolvido pela Linux Foundation com o suporte da Intel , Citrix , Arm Ltd , Huawei , AWS , Alibaba Cloud , AMD , Bitdefender e epam .

A comunidade do Projeto Xen desenvolve e mantém o Projeto Xen como software livre e de código aberto , sujeito aos requisitos da GNU General Public License (GPL), versão 2. O Projeto Xen está atualmente disponível para IA-32 , x86-64 e ARM conjuntos de instruções .

Arquitetura de software

O Xen Project é executado em um estado de CPU com mais privilégios do que qualquer outro software na máquina.

As responsabilidades do hipervisor incluem gerenciamento de memória e programação de CPU de todas as máquinas virtuais ("domínios") e para iniciar o domínio mais privilegiado ("dom0") - a única máquina virtual que, por padrão, tem acesso direto ao hardware. A partir do dom0, o hipervisor pode ser gerenciado e domínios não privilegiados ("domU") podem ser iniciados.

O domínio dom0 é normalmente uma versão do Linux ou BSD . Os domínios do usuário podem ser sistemas operacionais tradicionais, como o Microsoft Windows, sob o qual as instruções privilegiadas são fornecidas pelas instruções de virtualização de hardware (se o processador host suportar virtualização x86 , por exemplo, Intel VT-x e AMD-V ), ou sistemas operacionais paravirtualizados em que o O sistema operacional está ciente de que está sendo executado dentro de uma máquina virtual e, portanto, faz hypercalls diretamente, em vez de emitir instruções privilegiadas.

O Projeto Xen inicializa a partir de um gerenciador de inicialização , como GNU GRUB , e geralmente carrega um sistema operacional host paravirtualizado no domínio host (dom0).

História

O Xen se originou como um projeto de pesquisa na Universidade de Cambridge liderado por Ian Pratt , um professor sênior do Laboratório de Computação , e seu aluno de doutorado Keir Fraser. O primeiro lançamento público do Xen foi feito em 2003, com a v1.0 seguinte em 2004. Logo depois, Pratt e Fraser, juntamente com outros ex-alunos de Cambridge, incluindo Simon Crosby e o CEO fundador Nick Gault, criaram a XenSource Inc. para transformar o Xen em um produto empresarial competitivo .

Para oferecer suporte a sistemas embarcados como smartphone / IoT com recursos de computação de hardware relativamente escassos, a arquitetura Secure Xen ARM em uma CPU ARM foi exibida no Xen Summit em 17 de abril de 2007, realizado no IBM TJ Watson. O primeiro lançamento público do código-fonte Secure Xen ARM foi feito no Xen Summit em 24 de junho de 2008 por Sang-bum Suh , um ex-aluno de Cambridge, na Samsung Electronics.

Em 22 de outubro de 2007, a Citrix Systems concluiu sua aquisição da XenSource e o projeto Xen mudou para o domínio xen.org. Essa mudança havia começado há algum tempo e tornava pública a existência do Conselho Consultivo de Projetos Xen (Xen AB), que contava com membros da Citrix , IBM , Intel , Hewlett-Packard , Novell , Red Hat , Sun Microsystems e Oracle . O Conselho Consultivo Xen aconselha o líder do Projeto Xen e é responsável pela marca registrada Xen, que a Citrix licenciou gratuitamente para todos os fornecedores e projetos que implementam o hipervisor Xen . A Citrix também usou a própria marca Xen para alguns produtos proprietários não relacionados ao Xen, incluindo XenApp e XenDesktop .

Em 15 de abril de 2013, foi anunciado que o Projeto Xen foi movido sob os auspícios da Linux Foundation como um Projeto Colaborativo. A Linux Foundation lançou uma nova marca registrada para "Xen Project" para diferenciar o projeto de qualquer uso comercial da antiga marca registrada "Xen". Um novo site da comunidade foi lançado em xenproject.org como parte da transferência. Os membros do projeto no momento do anúncio incluíam: Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung e Verizon. O próprio projeto Xen é autogerido.

Desde a versão 3.0 do kernel Linux , o suporte Xen para dom0 e domU existe no kernel principal.

Histórico de lançamento

Versão Data de lançamento Notas
1.0 2 de outubro de 2003
2.0 5 de novembro de 2004 Migração ao vivo de convidados PV.
3,0 5 de dezembro de 2005

As versões até 3.0.4 também adicionaram:

  • Suporte para as extensões de virtualização AMD SVM .
  • Suporte para a arquitetura PowerPC .
  • Suporte a framebuffer gráfico para convidados paravirtualizados.
3,1 18 de maio de 2007 Migração ao vivo para convidados HVM, XenAPI
3,2 17 de janeiro de 2008 Passagem PCI e modo de espera ACPI S3 para o sistema host.
3,3 24 de agosto de 2008 Melhorias para passagem de PCI e gerenciamento de energia. Código-fonte do hipervisor Xen ARM lançado para suporte de CPU ARM
3,4 18 de maio de 2009 Contém uma primeira versão da "Iniciativa Cliente Xen", em breve XCI.
4,0 7 de abril de 2010 Torna possível usar um kernel Linux dom0, que foi implementado usando PVOps. Um kernel Linux da versão 2.6.31 foi modificado para este propósito, porque o kernel Linux oficial na verdade não suporta o uso como kernel dom0 (data de julho de 2010).
4,1 25 de março de 2011 Algumas das melhorias: Suporte para mais de 255 processadores, melhor estabilidade. O kernel Linux v2.6.37 e posteriores suportam o uso como kernel dom0.
4,2 8 de setembro de 2012 XL se tornou a pilha de ferramentas padrão. Suporte para até 4095 processadores host e até 512 processadores convidados.
4,3 9 de julho de 2013 Suporte a ARM experimental. Agendamento compatível com NUMA. Suporte para Open vSwitch .
4,4 10 de março de 2014 Suporte libvirt sólido para libxl, nova interface de canal de evento escalável, hipervisor ABI para ARM declarado estável, virtualização aninhada em hardware Intel.
4,5 17 de janeiro de 2015 Com 43 novos recursos importantes, 4.5 inclui o maior número de atualizações na história do projeto.
4,6 13 de outubro de 2015 Focado na melhoria da qualidade do código, reforço da segurança, habilitação de dispositivos de segurança e previsibilidade do ciclo de lançamento.
4,7 24 de junho de 2016 Melhorado: segurança, migrações ao vivo, performances e carga de trabalho. Suporte de hardware (ARM e Intel Xeon).
4.8.1 12 de abril de 2017
4,9 28 de junho de 2017 Notas de versão do Xen Project 4.9
4,10 12 de dezembro de 2017 Notas de versão do projeto Xen 4.10
4,11 10 de julho de 2018 Notas de versão do projeto Xen 4.11
4,12 2 de abril de 2019 Notas de versão do projeto Xen 4.12
4,13 18 de dezembro de 2019 Notas de versão do projeto Xen 4.13
4,14 24 de julho de 2020 Notas de versão do projeto Xen 4.14
4,15 8 de abril de 2021 Notas de versão do projeto Xen 4.15

Usos

As empresas de serviços de hospedagem na Internet usam hipervisores para fornecer servidores virtuais privados . Amazon EC2 (desde agosto de 2006), IBM SoftLayer , Liquid Web, Fujitsu Global Cloud Platform , Linode , OrionVM e Rackspace Cloud usam Xen como o hipervisor VM primário para suas ofertas de produtos.

Monitores de máquina virtual (também conhecidos como hipervisores) também costumam operar em mainframes e grandes servidores executando IBM, HP e outros sistemas. A virtualização de servidor pode fornecer benefícios como:

  • Consolidação levando ao aumento da utilização
  • Provisionamento rápido
  • Tolerância dinâmica a falhas contra falhas de software (por meio de inicialização ou reinicialização rápida)
  • Tolerância a falhas de hardware (por meio da migração de uma máquina virtual para outro hardware)
  • Separações seguras de sistemas operacionais virtuais
  • Suporte para software legado, bem como novas instâncias de sistema operacional no mesmo computador

O suporte do Xen para migração ao vivo de máquina virtual de um host para outro permite o balanceamento de carga e a prevenção de tempo de inatividade.

A virtualização também traz benefícios ao trabalhar no desenvolvimento (incluindo o desenvolvimento de sistemas operacionais): rodar o novo sistema como convidado evita a necessidade de reinicializar o computador físico sempre que ocorrer um bug. Os sistemas convidados em área restrita também podem ajudar na pesquisa de segurança do computador, permitindo o estudo dos efeitos de algum vírus ou worm sem a possibilidade de comprometer o sistema host.

Finalmente, os fornecedores de dispositivos de hardware podem decidir enviar seus dispositivos executando vários sistemas convidados, de modo a poder executar vários softwares que requerem sistemas operacionais diferentes.

Tipos de virtualização

O Xen oferece cinco abordagens para executar o sistema operacional convidado:

  • HVM (máquina virtual de hardware)
  • HVM com drivers PV
  • PVHVM (paravirtualização com virtualização completa de hardware, ou seja, HVM com drivers PVHVM)
  • PVH (PV em um contêiner HVM)
  • PV (paravirtualização).

O Xen fornece uma forma de virtualização conhecida como paravirtualização, na qual os convidados executam um sistema operacional modificado. Os convidados são modificados para usar uma ABI de hiperchamada especial , em vez de certos recursos arquitetônicos. Por meio da paravirtualização, o Xen pode atingir alto desempenho mesmo em sua arquitetura de host (x86), que tem uma reputação de não cooperação com as técnicas tradicionais de virtualização. O Xen pode executar convidados paravirtualizados ("convidados PV" na terminologia Xen) mesmo em CPUs sem qualquer suporte explícito para virtualização. A paravirtualização evita a necessidade de emular um conjunto completo de serviços de hardware e firmware, o que torna um sistema PV mais simples de gerenciar e reduz a superfície de ataque exposta a convidados potencialmente mal-intencionados. No x86 de 32 bits, o código do kernel do host Xen é executado no Ring 0 , enquanto os domínios hospedados são executados no Ring 1 (kernel) e no Ring 3 (aplicativos).

As CPUs que oferecem suporte à virtualização possibilitam a execução de convidados não modificados, incluindo sistemas operacionais proprietários (como o Microsoft Windows). Isso é conhecido como virtualização assistida por hardware ; no entanto, no Xen, isso é conhecido como máquina virtual de hardware (HVM). As extensões HVM fornecem modos de execução adicionais, com uma distinção explícita entre os modos mais privilegiados usados ​​pelo hipervisor com acesso ao hardware real (chamado "modo raiz" em x86) e os modos menos privilegiados usados ​​por kernels convidados e aplicativos com " hardware "acessa sob controle total do hipervisor (em x86, conhecido como" modo não raiz "; os modos raiz e não raiz têm anéis de 0 a 3). Tanto a Intel quanto a AMD contribuíram com modificações para o Xen para explorar suas respectivas extensões de arquitetura Intel VT-x e AMD-V. O uso de extensões de virtualização ARM v7A e v8A veio com o Xen 4.3. As extensões HVM também costumam oferecer novas instruções para permitir chamadas diretas por um convidado / driver paravirtualizado no hipervisor, normalmente usado para E / S ou outras operações que precisam de alto desempenho. Isso permite que os convidados HVM com pequenas modificações adequadas obtenham muitos dos benefícios de desempenho da E / S paravirtualizada. Nas versões atuais do Xen (até 4.2), apenas convidados HVM totalmente virtualizados podem fazer uso dos recursos de hardware para vários níveis independentes de proteção de memória e paginação. Como resultado, para algumas cargas de trabalho, convidados HVM com drivers PV (também conhecidos como PV-on-HVM ou PVH) fornecem melhor desempenho do que convidados PV puros. O Xen HVM tem emulação de dispositivo com base no projeto QEMU para fornecer virtualização de E / S para as máquinas virtuais. O sistema emula o hardware por meio de um daemon QEMU "gerenciador de dispositivos" (qemu-dm) corrigido, rodando como backend no dom0. Isso significa que as máquinas virtualizadas veem uma versão emulada de um PC bastante básico. Em um ambiente de desempenho crítico, o disco PV-on-HVM e os drivers de rede são usados ​​durante a operação normal do convidado, para que o hardware do PC emulado seja usado principalmente para inicializar.

Recursos

Os administradores podem "migrar ao vivo" máquinas virtuais Xen entre hosts físicos em uma LAN sem perda de disponibilidade. Durante este procedimento, a LAN copia iterativamente a memória da máquina virtual para o destino sem interromper sua execução. O processo requer uma interrupção de cerca de 60–300 ms para realizar a sincronização final antes que a máquina virtual comece a ser executada em seu destino final, fornecendo uma ilusão de migração contínua. Uma tecnologia semelhante pode servir para suspender as máquinas virtuais em execução no disco, "congelando" seu estado de execução para retomada em uma data posterior.

O Xen pode escalar para 4.095 CPUs físicas, 256 VCPUs por convidado HVM, 512 VCPUs por convidado PV, 16 TB de RAM por host e até 1 TB de RAM por convidado HVM ou 512 GB de RAM por convidado PV.

Disponibilidade

O hipervisor Xen foi transferido para várias famílias de processadores:

  • Intel: IA-32, IA-64 (antes da versão 4.2), x86-64
  • PowerPC: anteriormente compatível com o projeto XenPPC, não está mais ativo após o Xen 3.2
  • ARM: anteriormente suportado no projeto XenARM para versões anteriores do ARM sem extensões de virtualização, como o Cortex-A9. Atualmente com suporte desde o Xen 4.3 para versões mais recentes do ARM com extensões de virtualização, como o Cortex-A15 .
  • MIPS : porta experimental XLP832

Hosts

O Xen pode ser enviado em uma plataforma de virtualização dedicada, como o Citrix Hypervisor (anteriormente Citrix XenServer, e antes do XenEnterprise do XenSource).

Como alternativa, o Xen é distribuído como uma configuração opcional de muitos sistemas operacionais padrão. O Xen está disponível e é distribuído com:

Convidados

Os sistemas convidados podem ser executados totalmente virtualizados (o que requer suporte de hardware), paravirtualizados (que requerem um sistema operacional convidado modificado) ou totalmente virtualizados com drivers paravirtualizados (PVHVM). A maioria dos sistemas operacionais que podem ser executados em PCs podem ser executados como um convidado Xen HVM. Os sistemas a seguir podem operar como convidados Xen paravirtualizados:

O Xen versão 3.0 introduziu a capacidade de executar o Microsoft Windows como um sistema operacional convidado sem modificações se o processador da máquina host suportar a virtualização de hardware fornecida pela Intel VT-x (anteriormente codinome Vanderpool) ou AMD-V (anteriormente codinome Pacifica). Durante o desenvolvimento do Xen 1.x, Microsoft Research , juntamente com o grupo da Universidade de Cambridge Sistema Operacional, desenvolveu um porto de Windows XP para Xen - possibilitada pela Microsoft Academic Licensing Program 's. Os termos desta licença não permitem a publicação deste porte, embora a documentação da experiência apareça no artigo original do Xen SOSP . James Harper e a comunidade de código aberto Xen começaram a desenvolver drivers de paravirtualização de software livre para Windows. Eles fornecem drivers front-end para o bloco Xen e dispositivos de rede e permitem desempenho de disco e rede muito mais alto para sistemas Windows em execução no modo HVM. Sem esses drivers, todo o tráfego de disco e rede deve ser processado por meio do QEMU-DM. Posteriormente, a Citrix lançou sob uma licença BSD (e continua a manter) drivers PV para Windows.

Gestão

Os desenvolvedores de terceiros criaram várias ferramentas (conhecidas como Consoles de gerenciamento Xen) para facilitar as tarefas comuns de administração de um host Xen, como configuração, inicialização, monitoramento e interrupção de convidados Xen. Exemplos incluem:

  • HyperVM baseado na web
  • O kit de ferramentas de gerenciamento de nuvem OpenNebula
  • No openSUSE, YaST e virt-man oferecem gerenciamento gráfico de VM
  • O OpenStack oferece suporte nativo a Xen como um alvo de hipervisor / computação
  • Apache CloudStack também oferece suporte a Xen como um hipervisor
  • O PlateSpin Orchestrate da Novell também gerencia máquinas virtuais Xen para envio de Xen no SUSE Linux Enterprise Server.

Versões comerciais

O hipervisor Xen é coberto pela GNU General Public License, portanto, todas essas versões contêm um núcleo de software livre com código-fonte. No entanto, muitos deles contêm adições proprietárias.

Visão geral das versões do Citrix XenServer e versões do projeto Xen relacionadas
Versão de distribuição comercial Data de lançamento da versão comercial Versão de projetos Xen Data EOL do lançamento comercial
Citrix XenServer 6.0 30/09/2011 4.1.1 26-09-2016
Citrix XenServer 6.1 28/09/2012 4.1.3 30/09/2016
Citrix XenServer 6.2 18/06/2013 4.1.5 26/06/2018
Citrix XenServer 6.2 SP1 16/12/2013 4.1.5 26/06/2018
Citrix XenServer 6.5 13/01/2015 4.4.1 26/06/2018
Citrix XenServer 6.5 SP1 12/05/2015 4.4.1 26/06/2018
Citrix XenServer 7.0 24/05/2016 4.6.1 2021-05-19
Citrix XenServer 7.1 23/02/2017 4.7.1 2022-08-01
Citrix XenServer 7.4 27/02/2018 4.7.4 30/09/2018
Citrix XenServer 7.5 30/05/2018 4.7.x 20/04/2019
Citrix XenServer 7.6 06/09/2018 4.7.6 06/07/2019

Veja também

Referências

Leitura adicional

links externos