A virtualização no Fedora 12 inclui grandes mudanças e novas funcionalidades, que continuará a suportar KVM, Xen e muitas outras plataformas de máquinas virtuais.
O KVM e o QEMU ganharam imensas novas funcionalidades neste lançamento. A utilização e performance da memória em máquinas virtuais KVM foi melhorada pela adição do KSM e Memória KVM "Huge Page Backed". A performance do formato de imagem qcow2 foi grandemente melhorada. Foi adicionado suporte, tanto para SR-IOV, como para "hotplug" de NICs. Finalmente, o gPXE é agora utilizado em vez do etherboot para boot de máquinas virtuais PXE.
Quanto à libvirt, foram adicionadas APIs para gestão de armazenamento e gestão da interface de rede. A libvirt agora também executa os processos QEMU sem privilégios.
A nova biblioteca (libguestfs) e uma ferramenta interativa (guestfish) já está disponível para acessar e modificar imagens de disco de máquinas virtuais.
5.3.1. "Kernel Same Page Merging" e Utilização Reduzida de Memória nas Máquinas Virtuais (Guest)
"Kernel SamePage Merging" (KSM) permite que páginas idênticas de memória sejam empacotadas pelo kernel numa única página compartilhada por um ou mais processos. Esta funcionalidade é potenciada pelo KVM para permitir que múltiplas, similares, máquinas virtuais tenham uma utilização de memória reduzida. Como a memória é compartilhada, a utilização combinada desta pelas máquinas virtuais é reduzida.
5.3.2. Memória KVM "Huge Page Backed"
Configure as máquinas virtuais KVM para utilizar memória "huge page backed" de modo a reduzir o consumo de memória e melhorar a performance reduzindo a pressão sobre a cache. Usuários de máquinas virtuais utilizando memória "huge page backed" devem notar performance melhorada com alguma poupança no consumo de memória do servidor. O benefício na performance depende da carga da máquina. Utilizar memória "huge page backed" tem, contudo, uma desvantagem - nunca mais poderá trocar nem dimensionar a memória das máquinas virtuais.
5.3.3. NIC Hotplug em KVM
Interfaces de rede podem agora ser adicionados a uma máquina virtual KVM utilizando
libvirt/
virt-manager sem a necessidade de reiniciar a máquina virtual.
5.3.4. Performance KVM qcow2
O formato nativo das imagens de disco do
qemu é
qcow2. O qcow2 tem funcionalidades melhoradas, quando comparado com imagens raw, incluindo: imagens base, snapshots, compressão, e cifra.
Usuários querendo proteger as suas máquinas virtuais contra crashes do servidor, normalmente desativam a cache de escrita no servidor. Antes, isto provocava uma pobre performance para as máquinas virtuais em imagens qcow2.
A performance de I/O das imagens de disco qcow2 foi grandemente melhorada. Usuários que não utilizavam qcow2 por causa da fraca performance devem reconsiderar e tirar partido das funcionalidades adicionais que o formato apresenta sobre imagens de disco raw.
5.3.5. KVM Guest ABI Estável
Para as máquinas virtuais KVM é apresentado um plataforma de hardware emulada ou um interface de aplicativo binário (ABI - application binary interface) que inclui, por exemplo, um modelo de CPU, APIC, PIT, tabelas ACPI, IDE/USB/controladores VGA, NICs, etc. Quando o QEMU é atualizado para uma nova versão, alguns aspectos desta plataforma podem mudar, quando novas capacidades de hardware são adicionadas. Isto é problemático para máquinas virtuais Windows onde uma mudança de ABI pode requerer uma reinstalação.
As máquinas virtuais a partir de agora terão acesso sempre à mesma ABI entre atualizações do QEMU.
5.3.6. Biblioteca libguestfs para Manipulação de Máquinas Virtuais
Adicionado tardiamente ao ciclo de desenvolvimento do Fedora 11,
libguestfs é agora uma característica oficial no Fedora 12.
libguestfs é uma biblioteca para acessar e modificar imagens de máquinas virtuais. Usando o kernel do Linux e código
qemu,
libguestfs consegue acessar aos mesmos tipos de sistema de arquivos de máquinas virtuais que o Linux e o QEMU.
As seguintes ferramentas são disponibilizadas ou aumentadas pela libguestfs:
Bindings para as linguagens de programação OCaml, Perl, Python, Ruby, e Java.
guestfish - Fornece uma shell interativa para edição de sistemas de arquivos de máquinas virtuais e execução de comandos no contexto da máquina virtual.
virt-df - Mostra espaço livre nos sistemas de arquivos de máquinas virtuais
virt-inspector - Mostra a versão do SO, kernel, drivers, pontos de montagem, aplicações, etc. de uma máquina virtual.
virt-cat - Mostra qualquer arquivo do interior de uma máquina virtual.
Para mais detalhes consulte:
5.3.7. Gestão do Interface de Rede
As configurações normais de rede de equipamentos, como bridges, bonds, VLANs e combinações menos usuais, podem agora ser criadas utilizando a biblioteca de configuração de rede de uso geral, netcf. As melhorias da API do
libvirt expoem esta nova funcionalidade a equipamentos de administração remota com o
libvirtd
Para mais detalhes consulte:
5.3.8. Raiz Única de Virtualização de I/O
Raiz Única de Virtualização de I/O é uma funcionalidade PCI que permite a criação de funções virtuais (VF) que compartilham os recursos de uma função física (PF). Os dispositivos VF são atribuídos a máquinas virtuais e aparecem internamente como dispositivos físicos. Porque a máquina virtual está na realidade gerenciando diretamente o hardware, a performance do I/O equipara-se à performance do equipamento físico.
Para mais detalhes consulte:
5.3.9. gPXE padrão para Máquinas Virtuais
As máquinas virtuais QEMU utilizam agora o
gpxe que é mais moderno e atualmente mantido, em vez da obsoleta ferramenta ethertool para o boot PXE.
Para mais detalhes consulte:
Foram feitas alterações às máquinas virtuais QEMU/KVM para melhorar a segurança do servidor no evento de uma falha no binário do QEMU.
As permissões em /dev/kvm foram atualizadas para permitir que usuários não privilegiados possam utilizar hardware de aceleração.
Os processos QEMU criados pelo virt-manager num ambiente de trabalho local são executados agora com os privilégios do usuário.
Os processos QEMU criados pelo serviço privilegiado libvirtd são executados agora como uma conta sem privilégios, usuário 'qemu', grupo 'qemu'.
libvirtd irá alterar no boot o proprietário de qualquer disco atribuído a uma máquina virtual, para usuário 'qemu' e grupo 'qemu'. Excepção para discos apenas de leitura ou compartilhados.
Para reverter ao comportamento anterior do Fedora de executar todas as instancias do QEMU como 'root', foram introduzidos dois parâmetros de configuração em /etc/libvirt/qemu.conf. Não é recomendado que se alterem.
Para mais detalhes consulte:
5.3.11. Gestão de Armazenamento Virt
A Virtualização de ID N_Port do Canal de Fibra ou NPIV permite a criação de múltiplos N_Ports virtuais num único adaptador de bus do equipamento físico. As APIs dos nós do libvirt foram extendidos para criar e destruir adaptadores virtuais utilizando o NPIV.
As APIs que permitem a descoberta de armazenamento e a criação de grupos foram extendidas para descobrir e re-examinar armazenamento por servidor SCSI. Os administradores podem agora descobrir, configurar e aprovisionar armazenamento para máquinas virtuais sem a necessidade de múltiplas ferramentas.
Para mais detalhes consulte:
5.3.12. Outros Melhoramentos
5.3.12.1. Kit de Compatibilidade da Tecnologia Libvirt
O Fedora inclui agora o kit de compatibilidade tecnológica libvirt (TCK). O TCK é uma suíte de testes funcionais que providencia informações detalhadas das funcionalidades disponíveis em cada driver libvirt e pode ser utilizada para identificar falhas ou regressões no desenvolvimento de funcionalidades de virtualização do Fedora.
Para mais detalhes consulte:
5.3.12.2. Repositório Preview de Tecnologia de Virtualização
O Repositório Preview de Tecnologia de Virtualização foi criado para pessoas que gostariam de testar os pacotes mais recentes relacionados com virtualização. Este repositório tem como objetivo principal ajudar a testar e permitir novas experimentações. Não é destinado a ambientes de produção.
Para mais detalhes consulte:
5.3.12.3. Suporte Kernel Xen
O pacote kernel no Fedora 12 suporta o boot como domU (máquina virtual), mas não irá funcionar como dom0 (máquina física) até que esse suporte seja disponibilizado "upstream". Os trabalhos estão em curso e espera-se que esse suporte seja incluído no kernel 2.6.33 e Fedora 13.
O lançamento mais recente do Fedora com suporte para dom0 é o Fedora 8.
Bootar uma máquina virtual Xen domU dentro do Fedora 12 requer o xenner baseado no KVM. O xenner executa o kernel da máquina virtual e um pequeno emulador Xen em conjunto com a máquina virtual KVM.
O KVM requer funcionalidades de virtualização de hardware no servidor físico.
Sistemas sem virtualização em hardware não suporta neste momento máquinas virtuais Xen.
Para mais detalhes consulte: