Capitolo 15. Virtualizzazione

Miglioramenti prestazioni del processore KVM

Condivisione intervallo di tempo della CPU virtuale
La condivisione dell'intervallo di tempo della CPU virtuale è una funzione di ottimizzazione delle prestazioni a livello scheduler di Linux, dove la spinning CPU virtuale è in grado di conferire il resto del proprio intervallo di tempo ad un'altra CPU. Questa funzione risolve una vecchia problematica relativa all'holder presente nei sistemi SMP e può impattare negativamente sulle prestazioni delle CPU virtuali. Questa funzione fornisce una prestazione stabile in guest con processori multipli. Essa è supportata su processori Intel e AMD ed è chiamata Pause Loop Exiting (PLE) sui processori Intel e Pause Filter su processori AMD.
Miglioramenti delle prestazioni di rete KVM

Le prestazioni di rete KVM sono un requisito critico per la virtualizzazione e le soluzioni ed i prodotti basati sul cloud. Red Hat Enterprise Linux 6.2 fornisce un certo numero di ottimizzazioni per migliorare le prestazioni del driver paravirtualizzato di rete KVM nelle varie impostazioni.

Migliorate le prestazioni KVM per messaggi brevi
Red Hat Enterprise Linux 6.2 migliora le prestazioni dei messaggi brevi di KVM per soddisfare una varietà di carichi di lavoro del networking che generano i suddetti messaggi (< 4K).
Requisito di velocità di trasmissione nei driver di rete KVM
I prodotti cloud e la virtualizzazione che eseguono i carichi di lavoro del networking hanno bisogno di una velocità di trasmissione. Fino a Red Hat Enterprise Linux 6.1 l'unico modo per ottenere una velocità di trasmissione su un Ethernet NIC di 10 GB con un utilizzo basso della CPU, era quello di utilizzare una assegnazione del dispositivo PCI (attraverso), il quale limita altre funzioni come la migrazione del guest e di memory overcommit.
La capacità macvtap/vhost zero-copy permette all'utente di usare le suddette funzioni quando è necessaria una elevata prestazione. Questa funzione aumenta le prestazioni per qualsiasi guest di Red Hat Enterprise Linux 6.x nel caso di un utilizzo VEPA. Questa funzione è stata introdotta come Anteprima di tecnologia.
Ottimizzazione del checksum UDP per driver di rete KVM
L'ottimizzazione del checksum UDP elimina la necessità per il guest di convalidare il checksum se è stata eseguita una convalida dei NIC dell'host. Questa funzione velocizza UDP su guest con schede ethernet di 10 GB con guest e host di Red Hat Enterprise Linux 6.2. L'ottimizzazione del checksum UDP viene implementata nel driver virtio-net.
Prestazioni del percorso I/O migliorate quando l'host è più lento del guest
Il driver di rete KVM di Red Hat Enterprise Linux 6.2 ha una migliore prestazione del percorso I/O con interruzioni ed abbandoni ridotte della macchina virtuale, e rende possibile una consegna più veloce dei dati. Questo miglioramento permette all'utente di eseguire un guest più rapido su un host più lento senza intaccare le prestazioni. Questa operazione viene eseguita con una struttura ad anello virtio ed un supporto dell'indice degli eventi in virtio e vhost-net.
Miglioramenti usabilità e gestione dei sistemi KVM

Monitoraggio sistema tramite SNMP
Questa caratteristica fornisce un supporto KVM per una tecnologia stabile già implementata nel centro dati con sistemi di tipo bare metal. SNMP rappresenta uno standard per il monitoraggio facile da capire ed efficiente. Il monitoraggio del sistema tramite SNMP con Red Hat Enterprise Linux 6.2 permette agli host KVM di inviare le trap SNMP sugli eventi in modo da comunicare all'utente gli eventi dell'hypervisor tramite un protocollo SNMP standard. Questa funzione viene fornita grazie all'aggiunta di un nuovo pacchetto: libvirt-snmp ed è stata introdotta come Anteprima di tecnologia.
Capacità di debugging del guest migliorate
Gli utenti che eseguono la virtualizzazione del proprio centro dati avranno bisogno di un debugging in presenza di una sospensione del sistema operativo del guest per poter inizializzare un crash dump. Con i sistemi fisici sono disponibili due metodi:
  • Attivazione di un non-maskable interrupt (NMI) nel guest
  • Invio delle sequenze SysRq al guest
Anche se queste funzioni sono fornite direttamente da una console KVM, un certo numero di utenti utilizzano KVM attraverso l'API libvirt e virsh, dove queste due funzioni risultavano mancanti. Red Hat Enterprise Linux 6.2 migliora le capacità di debugging del guest attraverso lo stack KVM permettendo ad un utente di innescare NMI nei guest ed inviare le sequenze SysRq agli stessi.
Miglioramento accesso processo d'avvio della macchina virtuale
Gli utenti che eseguono una virtualizzazione dei centri dati hanno bisogno di monitorare il processo d'avvio del guest e visualizzare dall'inizio i messaggi d'avvio del kernel e l'intero BIOS. L'assenza di questa funzione impedisce agli utenti un uso interattivo della console virsh prima del processo d'avvio. Per questo motivo è stato aggiunto a Red Hat Enterprise Linux 6.2 un nuovo pacchetto sgabios insieme ad altre modifiche a qemu-kvm.
Snapshot Live
Red Hat Enterprise Linux 6.2 introduce la funzione Live Snapshot come Anteprima di tecnologia. Questa funzione fornisce un backup automatico delle immagini delle macchine virtuali sull'hard drive, fornendo una snapshot trasparente per ogni unità dei dischi virtuali usando immagini qcow2 esterne. La creazione di snapshot live di dischi multipli assiste nella gestione dell'integrità dei dati arrestando gemu prima di eseguire un numero di snapshot conformi al numero di dischi. Per questo motivo le snapshot di dischi multipli su un sistema, rappresenteranno accuratamente i dati presenti sui dischi interessati riportati nello stesso istante.
È importante sapere che vi è un limite nella consistenza del file system. Tuttavia il riutilizzo dell'immagine della snapshot è crash-consistent. Sarà necessario per un utente eseguire un controllo del file system (fsck) o eseguire nuovamente le voci del journal, il quale sarà simile ad un riavvio dopo aver scollegato il cavo di alimentazione.
Miglioramento della regolazione dei processori multipli (NUMA)
Red Hat Enterprise Linux 6.2 apporta alcuni miglioramenti sulla regolazione allo stack delle API libvirt, con una migliore prestazione durante l'esecuzione di misurazioni SPECvirt. Red Hat Enterprise Linux 6.2 è in grado di riservare (pin) la memoria associata con un nodo NUMA dopo la creazione di una macchina virtuale.
Miglioramenti USB
Per qemu-kvm è stata implementata l'emulazione USB 2.0. È disponibile solo per QEMU. Il supporto Libvirt è previsto per la prossima release.
Aggiunto un supporto per il wakeup remoto per il controller host USB. Insieme al sistema operativo del guest esso permette di arrestare la modalità di polling 1000hz mettendo il dispositivo in uno stato di sospensione. Tale operazione migliora drammaticamente l'uso dell'alimentazione ed il consumo della CPU delle macchine virtuali con una emulazione del mouse USB (o un tablet) — uno dei dispositivi comuni presenti in ogni macchina virtuale.
Migliormaneti Xen

Memory ballooning
Il Memory ballooning è ora supportato dai guest Xen paravirtualizzati di Red Hat Enterprise Linux 6.
Limite memoria del dominio
Il limite della memoria per i guest x86_64 domU PV è stato aumentato a 128 GB: CONFIG_XEN_MAX_DOMAIN_MEMORY=128.
Conteggio dell'ora
xen_sched_clock (il quale ritorna il numero di nanosecondi disponibili) è stato sostituito da xen_clocksource_read.
Documentazione per la Virtualizzazione

La Red Hat Enterprise Linux Virtualization Guide è stata suddivisa in diverse guide:

spice-protocol

Il pacchetto spice-protocol è stato aggiornato alla versione 0.8.1, e fornisce le seguenti funzioni:

  • Supporto per la modifica del volume
  • Supporto per le interruzioni e la scrittura I/O del guest asincrone
  • Supporto per la scrittura I/O del guest relativa al suspend (S3)
  • Supporto per 'interruzione che indica un bug del guest
Contenitori di Linux

I contenitori di Linux forniscono un approccio flessibile al contenimento del runtime delle applicazioni su sistemi bare-metal senza la necessità di una virtualizzazione completa del carico di lavoro. Red Hat Enterprise Linux 6.2 fornisce contenitori a livello applicazione per separare e controllare le politiche sull'uso delle risorse dell'applicazione tramite cgroup e namespaces. Questa release introduce una gestione di base del ciclo di vita per mezzo della creazione, modifica e cancellazione dei contenitori con API libvirt e la GUI di virt-manager. I Contenitori di Linux sono una Anteprima di tecnologia.

Red Hat Enterprise Virtualization Hypervisor RPM multi-installable

Per installazioni side-by-side del pacchetto rhev-hypervisor, configurare Yum in modo da rendere rhev-hypervisor un pacchetto di tipo installonly attraverso la modifica del file /etc/yum.conf e aggiungendo l'opzione installonlypkgs:

[main]
...
installonlypkgs=rhev-hypervisor
Includere in questa opzione l'elenco predefinito di pacchetti installonly disponibile nella pagina man di yum.conf (man yum.conf 5) nella sezione relativa all'opzione installonlypkgs.