La virtualizzazione in Fedora 12 ha subito notevoli modifiche e presenta nuove caratteristiche che continuano a supportare Xen, KVM e molte altre piattaforme di macchine virtuali.
KVM e QEMU hanno guadagnato numerose nuove caratteristiche in questa versione. L'utilizzo di memoria degli ospiti di KVM e le prestazioni sono state migliorate grazie all'aggiunta di KSM e KVM Huge Page Backed Memory. Le prestazioni dell'immagine qcow2 sono state fortemente miglioratae È stato aggiunto il supporto per entrambi gli hotplug SR-IOV e NIC. Infine, gPXE ora viene usato al posto di etherboot per l'avvio di ospiti PXE.
Dal lato libvirt, sono state aggiunte le API per la gestione del disco e la gestione delle interfacce di rete. Ora libvirt esegue anche processi QEMU non privilegiati.
Ora sono disponibili una nuova libreria (libguestfs) ed uno strumento interattivo (guestfish) per accedere e modificare le immagini del disco della macchina virtuale.
5.3.1. Kernel Same Page Merging e ridotto utilizzo della memoria per i guest
Kernel SamePage Merging (KSM) consente alle pagine di memoria identiche di essere unite dal kernel in una singola pagina condivisa fra uno o più processi. Questa caratteristica viene usata da KVM per consentire a più macchine virtuali ospiti simili di avere una impronta in memoria ridotta. Siccome la memoria è condivisa, l'utilizzo di memoria combinata degli ospiti è ridotta.
5.3.2. KVM Huge Page Backed Memory
Abilitare i guest KVM ad usare huge page backed memory per ridurre il consumo di memoria e migliorare le prestazioni, riducendo la pressione di cache sulla CPU. Gli utenti degli ospiti KVM che utilizzano huge page backed memory dovrebbero notare delle prestazioni migliori con alcuni risparmi nell'occupazione della memoria principale. I benefici di prestazioni dipendono dal carico di lavoro. Comunque, l'uso di huge pages per la memoria dei guest provoca degli svantaggi - non è più possibile eseguire lo swap oppure il balloon della memoria del guest.
Le interfacce di rete ora possono essere aggiunte ad un ospite KVM usando
libvirt/
virt-manager senza la necessità di riavviare l'ospite.
5.3.4. Prestazioni KVM qcow2
Il formato del file dell'immagine del disco nativo di
qemu è
qcow2. Qcow2 fornisce caratteristiche avanzate sulle immagini raw, che includono: immagini base, snapshot, compressione e cifratura.
Gli utenti che desiderano proteggere le macchine ospiti da errori dell'host comunemente disabilitano la cache di scrittura sull'host. Precedentemente, questo comportava delle prestazioni molto scarse per gli ospiti nelle immagini qcow2.
Le prestazioni I/O delle immagini di disco qcow2 sono state notevolmente migliorate. Gli utenti che non usavano qcow2 a causa delle scarse prestazioni potrebbero considerare di cambiare e trarre vantaggio delle caratteristiche aggiuntive fornite dal formato rispetto alle immagini raw.
Gli ospiti KVM vengono presentati con una piattaforma hardware emulata o una interfaccia di applicazione binaria che li include (es. un modello CPU, APIC, PIT, tabelle ACPI, controllori IDE/USB/VGA, NICs ecc.). Quando QEMU è aggiornato ad una nuova versione, alcuni aspetti di questa piattaforma potrebbero cambiare se vengono aggiunte nuove funzionalità. Questi sono problemi per gli ospiti Windows dove una modifica dell'ospite ABI potrebbe richiedere ad una installazione di essere riattivata.
Le macchine virtuali ospiti ora verranno presentate con lo stesso ABI attraverso gli aggiornamenti di QEMU.
5.3.6. Libreria libguestfs per la manipolazione di macchine virtuali
Aggiunto in un momento avanzato del ciclo di sviluppo di Fedora 11,
libguestfs ora è una caratteristica ufficiale in Fedora 12.
libguestfs è una libreria per l'accesso e la modifica delle immagini disco ospiti. Usando il kernel Linux e il codice
qemu,
libguestfs può accedere a qualsiasi tipo di filesystem ospite per Linux e QEMU.
I seguenti strumenti vengono forniti o migliorati da libguestfs:
Binding per i linguaggi di programmazione OCaml, Perl, Python, Ruby e Java.
guestfish - Fornisce una shell interattiva per la modifica dei filesystem delle macchine virtuali e l'esecuzione di comandi nel contesto ospite.
virt-df - Mostra lo spazio libero sul filesystem della macchina virtuale
virt-inspector - Mostra la versione OS, il kernel, i driver, punti di montaggio, applicazioni, ecc. in una macchina virtuale.
virt-cat - Effettua il "cat" di alcuni file dall'interno di una macchina virtuale.
Per maggiori informazioni fare riferimento a:
5.3.7. Gestione interfaccia di rete
Configurazioni di rete usate comunemente, come bridge, bond, VLAN e combinazioni di queste ora possono essere create usando la libreria di configurazione di rete general-purpose, netcf. Miglioramenti alle API di
libvirt portano questa nuova funzionalità alla gestione remota di host con
libvirtd
Per maggiori informazioni fare riferimento a:
5.3.8. Virtualizzazione Single Root I/O
Single Root I/O Virtualization è una caratteristica PCI che consente di creare funzioni virtuali (VF) che condividono le risorse di una funzione fisica (PF). I dispositivi VF sono assegnati a macchine virtuali ospiti e appaiono come dispositivi fisici PCI nell'ospite. Siccome l'OS ospite effettua le operazioni hardware direttamente, le prestazioni di I/O sono al pari con le prestazioni bare metal.
Per maggiori informazioni fare riferimento a:
5.3.9. gPXE è ora predefinito per gli ospiti
Gli ospiti QEMU ora fanno uso del più moderno e attualmente mantenuto
gpxe piuttosto che di etherboot, che è stato deprecato per l'avvio PXE.
Per maggiori informazioni fare riferimento a:
Sono state introdotte modifiche per macchine virtuali QEMU/KVM per migliorare la sicurezza dell'host in caso di un difetto nei binari di QEMU.
I permessi su /dev/kvm sono stati aggiornati per consentire agli utenti non privilegiati di usare l'accelerazione hardware KVM.
I processi QEMU lanciati da virt-manager su una installazione desktop locale sono ora eseguiti come da utente desktop.
I processi QEMU lanciati dal demone libvirtd privilegiato sono ora eseguiti come da un account non privilegiato, utente 'qemu', gruppo 'qemu'.
libvirtd cambierà i permessi dei dischi assegnati ad una macchina virtuale all'avvio, all'utente 'qemu', gruppo 'qemu', eccetto per i dischi in sola lettura/condivisi.
Per tornare al comportamento precedente di Fedora su tutte le istanze QEMU in esecuzione come 'root', vengono introdotti due parametri di configurazione in /etc/libvirt/qemu.conf. Non è raccomandabile modificarli.
Per maggiori informazioni fare riferimento a:
5.3.11. Gestione della memoria virtuale
NPIV (Fiber Channel N_Port ID Virtualization) consente la creazione di N_Ports virtuali multiple su un singolo adattatore bus di host fisico. Le API del nodo dispositivo libvirt sono state estese per creare e distruggere adattatori di rete usando NPIV.
Le API che consentono la discovery di storage e la creazione di pool sono state estese per scoprire e ricontrollare lo storage su base host-SCSI. Gli amministratori ora possono scoprire, configurare e prevedere gli storage per le macchine virtuali senza la necessità di strumenti multipli.
Per maggiori informazioni fare riferimento a:
5.3.12. Altri miglioramenti
5.3.12.1. Kit di compatibilità di tecnologia libvirt
Fedora adesso include il kit di compatibilità di tecnologia (TCK). Il TCK è una suite di test di funzionalità che fornisce rapporti dettagliati sulla disponibilità di funzionalità per ogni driver libvirt e può essere usata per identificare rapidamente fallimenti o regressioni nello sviluppo delle caratteristiche di virtualizzazione di Fedora.
Per maggiori informazioni fare riferimento a:
5.3.12.2. Repositorio anteprima di tecnologia di virtualizzazione
Il repositorio anteprima di tecnologia di virtualizzazione è stato creato per persone che desiderano testare gli ultimissimi pacchetti di virtualizzazione. Questo repositorio è pensato principalmente come aiuto al test e alla sperimentazione prematura. Non è pensato per essere messo in 'produzione'.
Per maggiori informazioni fare riferimento a:
5.3.12.3. Supporto kernel xen
Il pacchetto kernel di Fedora 12 supporta l'avvio come guest domU, ma non funzionerà come dom0 fino a quando non verrà fornito il supporto necessario in upstream. La funzione è in fase di sviluppo e si stima che il supporto venga incluso nel kernel 2.6.30 e in Fedora 13.
La versione più recente di Fedora con supporto dom0 è Fedora 8.
L'avvio di un guest domU di Xen all'interno di un host Fedora 12 necessita di uno xenner basato su KVM. Xenner esegue il kernel ospite insieme ad un piccolo emulatore Xen come guest KVM.
KVM richiede caratteristiche di virtualizzazione hardware nel sistema host.
I sistemi che non sono dotati di funzioni di virtualizzazione hardware attualmente non supportano i guest Xen.
Per maggiori informazioni fare riferimento a: