abr
Virtualização – XEN x KVM
Agora 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.
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
çõ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:
- Como saber se seu processador tem extensões de virtualização: Intel VT-x ou AMD-V.
- Site do QEMU e KQEMU (com download para Linux e Windows!)
- Dicas QEMU em portugues.
- Site do KVM.
- XenSource desvinculado da Citrix! Artigo no XEN-BR.
Alroger Filho