28
abr

Virtualização – XEN x KVM

xen_logoAgora a virtualização oficial das distribuições de Linux (OpenSource) é o KVM (ou QEMU acelerado por hardware).

Andei lendo a respeito, pois no lançamento do Fedora 10 me decepcionei com o fato de que ele não pode ser Host de virtualização XEN (Dom0). O último Fedora que tinha está função era o Fedora 8 que uso em alguns servidores ainda. Por isso achei legal compartilhar num lugar só minhas conclusão das várias informações que juntei de várias leituras.

O Ubuntu 8.04 (Hardy) foi a última versão de Ubuntu a ter esta funcionalidade também. Nem o 8.10 (Intrepid) e 9.04 (Jaunty) podem ser Hosts XEN (Dom0).

Ambos Ubuntu e Fedora estavam aguardando um tal de parops entrar no Kernel padrão, para não precisar um Kernel totalmente separado de XEN que não consegue acompanhar as evoluções dos Kernels atuais usados nas principais distribuições. Resumindo, pra ser um Host, o servidor de virtualização, ou hypervisor, no Linux usando XEN, você tem que usar um Kernel especificamente criado para isso.

A grande vantagem do XEN é a para-virtualização (eu vou continuar usando hífen!), que gerencia Guests bem perto do Kernel perdendo menos de 2% de performance em overhead. Este está longe de ser implementado no Windows, ainda mais que a Microsoft quis inventar seu próprio Hypervisor para concorrer. Então esta vantagem pode ser usada apenas com Linux, por enquanto.

kvmbanner-logo2

Quando se trata de virtualização completa, como no caso do Windows, o aplicativo OpenSource oficial tanto no Ubuntu como no Fedora agora é o KVM. Ele faz uso das extensões de virtualização dos novos processadores (normalmente se a memória já é DDR2 o processador já deve ter esta função, Intel VT-x e AMD SVM) do mesmo jeito que o XEN fazia, e a performance e estabilidade está ótima. Dizem até que o KVM ganha do XEN neste tipo de virtualização, principalmente pelo fato dos Kernels do XEN estarem tão desatualizados.

Lembre-se, para-virtualização compartilha Kernel e hardware, enquanto KVM, QEMU, VMWare, VirtualBox e outros virtualizam um PC completo, com todo um hardware virtualizado, por isso com um overhead bem maior. Veja link abaixo para saber se seu processador é um dos que suporta virtualização acelerada. A para-virtualização não requer estas extenções, mas para rodar um belo de um servidor Windows debaixo de um servidor Linux 64bits com performance espantosa, você precisa delas.

Já cheguei a comparar o Windows 2003 Server 32bits rodando num notebook e rodando no mesmo notebook debaixo de um Linux 64bits no mesmo notebook usando XEN/KVM e sabe o que? O Windows virtualizado fica até mais rápido. Por quê? Por causa de alguns detalhes do tipo: os drivers de IDE/SATA do Linux são mais rápidos que os do Windows. Tendo memória disponível, o seu servidor Linux pode fazer todo o swap do Windows ser virtual, deixando ele muito mais rápido. O resto do hardware é todo virtualizado também… fora as combinações, RAIDs e customizações que podem ser feitas.

Dicas e Observações:

  • Usando KVM/QEMU, no primeiro login do Windows, se você estiver usando teclado ABNT no Ubuntu, o CTRL-ALT-DEL não funciona. Para funcionar entre em Sistema/Preferências/Teclado em Disposições troque o Modelo do teclado para Genérico/ACPI Padrão. Envie o CTRL-ALT-DEL pelo menu da máquina virtual, entre no Windows, execute gpedit.msc e em Configurações do Windows/Configurações de segurança/Diretivas locais/Opções de segurança ative “Logon interativo: não exigir Ctrl-Alt-Del”. Agora o Windows não vai mais esperar um CTRL-ALT-DEL para fazer login e você pode voltar seu teclado ao normal (ABNT), se for o caso.
  • Se seu processador não tem as novas funções de virtualização, você ainda pode acelerar seu QEMU usando o módulo KQEMU de Kernel (se não me engano também tem KQEMU para Windows… sim você pode virtualizar usando QEMU no Windows também). Veja link abaixo.
  • Para o Window desligar junto com o servidor Ubuntu, use o SSH do Cygwin e crie um script de shutdown e configure-o no scripts RC do Linux.
  • Quebrando a cabeça com o Shorewall? Você precisa adicionar a opção “routeback” nas configurações de qualquer interface que seja uma bridge! Normalmente uso interfaces bridge para meus servidores virtualizados. Se não o fizer, o Shorewall trava toda a comunicação do Host.

Links e Refs:

Alroger Filho

3 Responses to “Virtualização – XEN x KVM”

  1. 1
    Dante Says:

    Olá amigo, estou entrando um pouco no mundo Linux por necessidades.
    Atualmente uso o Fedora 11, e instalei o QEMU, já que meu processador atual é um E7400 (sem suporte para virtualização), mas minha dúvida é a seguinte, vale a pena virtualizar um servidor proxy (squid+firewall)?
    Tenho mais dúvida, se você puder, gostaria de ter uma forma de contato mais ágil contigo…

    Agradeço a atenção, seu post foi muito bom!

    Abraçoss

  2. 2
    Alroger Filho Says:

    Ola, Dante.
    Seu processador E7400 tem sim todo o suporte a virtualização. Praticamente todos os servidores ou PCs que usam memória DDR2 ou mais nova tem a nova tecnologia de virtualização.
    Por isso, além de mexer com o QEMU, pesquise no Fedora como ativar o KVM, um QEMU alterado para usar a tecnologia de virtualização do processador.
    As vantagens de virtualizar um servidor de internet, a princípio são:
    -isolar a internet de outros serviços importantes da rede como banco de dados, arquivos, etc.
    -dividir a carga do servidor melhor. exemplo: um cliente com 25+ PCs na rede pode ter um uso muito grande do serviço squid e do samba, sendo que a prioridade é o SAMBA. não queremos que o servidor de internet atrapalhe o servidor de arquivos, então dividimos. aloquei apenas 1 processador virtual para o servidor da internet, e 2 processadores pro servidor de arquivos, memoria, etc… qqr problema com o servidor de Internet (até erros “out of memory”) nada é afetado no servidor de arquivos. daí por diante da pra ter uma idéia das utilidades.

  3. 3
    Marcos Gillan Says:

    Olá meu caro.Vejo que vc domina como ninguem o sistema livre e gostaria de tirar algumas duvidas com vc.Tento aqui instalar duas dstribuições Linux mas encontro erros.Se puder me esclarecer,ajudaria muito.Muitissimo obrigado.

    Dream Linux

    drivers/rtc/hctosy.C: unable to open rtc device (rtc0)
    no cdrom or usb storage unit found.
    no Distro main module found ! exiting…….
    switch_root: can’t open ‘ /dev/console’ No such file or directory
    Kernel panic – not syncing : Attemped to kill init !
    Pid : 1, comm: switch_root not tainted 3.1.1-dream-3#2
    Call trace:

    [] panic+04e/0x145
    [] do_exit+0x71/0x637
    [] do_group_exit+0x6b/0x94
    [] sys_exit_group+0x13/0x13
    [] syscall_call+0x7/0xb

    Big Linux

    UDEVD – EVENT [1506/1521/1621]:Run Program: ‘ /sbin/modprobe ‘ abnormal exit
    Busy Box v1.1.3 (Debian 1:1.1.1.3-5ubuntu)Built-in shell (ash)
    Enter ‘help’ for a list of built-in commands.

    (initramfs)

© 2017 Cafe TI – pra perder o sono. | [RSS] Artigos and [RSS] Comentários

Design by Web4 Sudoku - Powered By Wordpress