Product SiteDocumentation Site

5.3. Virtualização

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 arranque 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 interactiva (guestfish) já está disponível para aceder 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 partilhada 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 é partilhada, 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. Utilizadores 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 está dependente do carga da máquina. Utilizar memória "huge page backed" tem, contudo, uma desvantagem - nunca mais pode 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 ter 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.
Utilizadores querendo proteger as suas máquinas virtuais contra crashes do servidor, normalmente desactivam 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. Utilizadores 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 binário aplicacional (ABI) que inclui, por exemplo, um modelo de CPU, APIC, PIT, tabelas ACPI, IDE/USB/controladores VGA, NICs, etc. Quando o QEMU é actualizado 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 actualizaçõ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 aceder e modificar imagens de máquinas virtuais. Usando o kernel do Linux e código qemu, libguestfs consegue aceder aos mesmos tipos de sistema de ficheiros 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 interactiva para edição de sistemas de ficheiros de máquinas virtuais e execução de comandos no contexto da máquina virtual.
  • virt-df - Mostra espaço livre nos sistemas de ficheiros 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 ficheiro do interior de uma máquina virtual.

5.3.7. Gestão do Interface de Rede

As normais configurações de rede de equipamentos, como bridges, bonds, VLANs e combinações menos usuais, podem agora ser criadas utilizando a biblioteca de configuracão de rede de uso geral, netcf. As melhorias da API do libvirt expoem esta nova funcionalidade a equipamentos de administração remota com olibvirtd

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 partilham 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 a gerir directamente o hardware, a performance do I/O equipara-se à performance do equipamento físico.

5.3.9. Standard gPXE para Máquinas Virtuais

As máquinas virtuais QEMU utilizam agora o gpxe que é mais moderno e actualmente mantido, em vez da obsoleta ferramenta ethertool para o arranque PXE.

5.3.10. Privilégios Virt

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 actualizadas para permitir que utilizadores não privilegiados possam utilizar hardware de aceleração.
  • Os processos QEMU criados pelo virt-manager num ambiente de trabalho local corre agora com os privilégios do utilizador.
  • Os processos QEMU criados pelo serviço privilegiado libvirtd corre agora como uma conta sem privilégios, utilizador 'qemu', grupo 'qemu'.
  • libvirtd irá alterar no arranque o proprietário de qualquer disco atribuído a uma máquina virtual, para utilizador 'qemu' e grupo 'qemu'. Excepção para discos apenas de leitura ou partilhados.
  • Para reverter ao comportamento anterior do Fedora de executar todas as instancias do QEMU como 'root', foram introduzidos dois parametros de configuracã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 multiplas ferramentas.

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 suite 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.
5.3.12.2. Repositório de Ante-Visão de Tecnologia de Virtualização
O Repositório de Ante-Visão 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 objectivo principal ajudar a testar e permitir novas experimentações. Não é destinado a ambientes de produção.
5.3.12.3. Suporte Kernel Xen
O pacote kernel no Fedora 12 suporta o arranque 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.
Arrancar 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.