6. Virtualization
This section contains information about updates made to Red Hat Enterprise Linux suite of Virtualization tools.
6.1. Feature Updates
- Il toolkit dello spazio utente blktap (blocktap) è stato aggiornato in modo da fornire la funzionalità di controllo delle statistiche di trasferimento dei blktap backed virtualized guest.
- È stato aggiunto il supporto per la caratteristica Intel Extended Page Table (EPT), migliorando così le prestazioni di guest completamente virtualizzati su hardware che supporta EPT.
- Con questo aggiornamento è stato aggiunto l'emulazione del dispositivo di rete
e1000
per i guest, con il solo supporto dei guest Windows 2003 su architetture ia64. Per utilizzare l'emulazione e1000 è necessario usare il comando xm. - I driver per
virtio
, la piattaforma per la virtualizzazione I/O in KVM, sono stati modificati ed aggiornati a Red Hat Enterprise Linux 5.3 da Linux Kernel 2.6.27. I suddetti driver permetteranno ai guest KVM di ottenere livelli di prestazione I/O più elevati. Diversi componenti dello spazio utente come ad esempio:anaconda
,kudzu
,lvm
,selinux
emkinitrd
sono stati aggiornati per supportare i dispositivi virtio. - Il kernel nativo di Linux supporta
vmcoreinfo
automaticamente, ma per impostare kdump sui domini dom0 era necessario il pacchettokernel-xen-debuginfo
. Con questa release il kernel e l'ipervisore sono stati modificati ed ora supportano la lettura e la scrittura di kdump in modo nativo da parte di vmcoreinfo. Gli utenti che desiderano utilizzare kdump per debugging o altri processi investigativi sui domini dom0, possono espletare tali funzioni senza installare i pacchettidebuginfo
odebuginfo-common
. - Gli ospiti Red Hat Enterprise Linux 5 completamente virtualizzati andavano incontro ad una prestazione substandard durante l'utilizzo di dispositivi di disco e rete emulati. In questo aggiornamento, è stato incluso il pacchetto kmod-xenpv per semplificare l'uso dei dischi e delle reti paravirtualizzati negli ospiti completamente virtualizzati.L'uso di questi driver negli ospiti completamente virtualizzati può migliorare significativamente le prestazioni e la funzionalità degli ospiti completamente virtualizzati. Le correzioni dei bug effettuate per driver netfront e block front vengono immediatamente realizzate e sincronizzate con il pacchetto kernel.
- Ora gli ospiti hanno la possibilità di utilizzare le tabelle di memoria della pagina di supporto 2MB, che migliora le prestazioni del sistema.
6.2. Resolved Issues
6.2.1. All Architectures
- Lo spegnimento di un guest paravirtualizzato poteva causare la sospensione di dom0 per un determinato periodo di tempo. Ritardi di diversi secondi erano previsti con guest con una quantità di memoria molto grande (es. 12GB o maggiore). Con questo aggiornamento il kernel virtualizzato permette di eseguire un arresto 'pre-emptible' di un guest paravirtualizzato molto grande risolvendo così questo problema.
crash
was unable to read the relocation address of the hypervisor from a vmcore file. Consequently, opening a Virtualized kernel vmcore file with crash would fail, resulting in the error:crash: cannot resolve "idle_pg_table_4"
In this update, the hypervisor now saves the address correctly, which resolves this issue.- Precedentemente i guest paravirtualizzati potevano avere solo un massimo di 16 dispositivi a disco. Con questo aggiornamento il limite è stato aumentato fino ad un massimo di 256 dispositivi.
- La memoria riservata per il kernel kdump era incorretta causando crash dump non utilizzabili. Con questo aggiornamento la prenotazione della memoria è ora corretta, permettendo così una generazione corretta dei crash dump.
- Il collegamento di un disco con un nome specifico (es.
/dev/xvdaa
,/dev/xvdab
,/dev/xvdbc
ecc.) ad un guest paravirtualizzato, risultava in un dispositivo/dev
corrotto all'interno del guest. Questo aggiornamento risolve il suddetto problema, ora il collegamento ai dischi con i nomi ad un guest paravirtualizzato crea il dispositivo/dev
corretto all'interno del guest. - Precedentemente il numero di dispositivi loopback era limitato a 4. Di conseguenza questo limitava la possibilità di creare bridge sui sistemi con più di 4 interfacce di rete. Con questo aggiornamento il driver
netloop
ora è in grado di creare dispositivi di loopback aggiuntivi in base alla necessità. - Era possibile il verificarsi di corse critiche durante la creazione e la distruzione dei dispositivi di rete virtuali. In alcuni casi — ed in modo particolare in situazioni di carico elevato — questo poteva causare l'assenza di risposta da parte del dispositivo virtuale. Con questo aggiornamento lo stato del dispositivo virtuale viene controllato in modo da evitare qualsiasi condizione di corsa critica.
- è possibile avere una perdita di memoria in
virt-manager
se l'applicazione è stata lasciata in esecuzione. Così facendo l'applicazione consumerebbe in modo costante più risorse con un conseguente stato di memory starvation. Con questo aggiornamento la perdita di memoria è stata corretta risolvendo così questo problema. - the
crash
utility could not analyzex86_64
vmcores from systems runningkernel-xen
because the Red Hat Enterprise Linux hypervisor was relocatable and the relocated physical base address is not passed in the vmcore file's ELF header. The new--xen_phys_start
command line option for the crash utility allows the user to pass crash the relocated base physical address. - Non tutti gli eventi del mouse venivano catturati e processati dal
Paravirtual Frame Buffer (PVFB)
. In questa situazione la rotella di scorrimento non funzionava durante l'interazione con un guest paravirtualizzato con laVirtual Machine Console
. Con questo aggiornamento gli eventi della rotella di scorrimento vengono gestiti correttamente risolvendo così questo problema. - L'utilizzo della virtualizzazione su di una macchina con un numero molto grande di CPU poteva causare l'arresto inaspettato dell'ipervisore durante l'installazione del guest. Con questo aggiornamento la suddetta problematica è stata risolta.
- Sui processori Intel che restituiscono un valore famiglia CPUID di 6, solo un registro del contatore di prestazione è stato abilitato in
kernel-xen
. Di conseguenza, solo il contatore 0 ha fornito campioni. In questo aggiornamento, questo problema è stato risolto.
6.2.2. x86 Architectures
- On systems with newer CPU's, the CPU APIC ID differs from the CPU ID. Consequently, the virtualized kernel was unable to initialize CPU frequency scaling. In this update, the virtualized kernel now retrieves CPU APIC ID from the hypervisor, allowing CPU frequency scaling to be initialized properly.
- Durante l'esecuzione di un guest paravirtualizzato x86, se un processo era in grado di accedere una memoria invalida esso entrava in uno stato di loop invece di ottenere un segnale SEGV. Tale comportamento causava un errore durante i controlli execshield con l'ipervisore. Con questo aggiornamento il suddetto problema è stato risolto.
6.2.3. ia64 Architecture
- A
xend
bug that previously caused guest installation failures is now fixed. - il dispositivo canale evento
evtchn
mancava di blocchi e barriere di memoria. Questo portava a una mancanza di riposta da xenstore . In questo aggiornamento, questo problema è stato risolto. - Le informazioni Non-Uniform Memory Access (NUMA) non venivano mostrate dal comando
xm info
. Di conseguenza il valorenode_to_cpu
per ogni nodo veniva ritornato incorrettamente comeno cpus
. In questo aggiornamento la suddetta problematica viene risolta. - In precedenza, la creazione di un ospite sulla Hardware Virtual Machine (HVM) falliva sui processori con tecnologia VT-i2 in dotazione. In questo aggiornamento, questo problema è stato risolto.
6.2.4. x86_64 Architectures
- Quando i Dynamic IRQ disponibili per le macchine virtuali del guest venivano terminati, il kernel
dom0
poteva arrestarsi inaspettatamente. Con questo aggiornamento la condizione di crash è stata corretta, ed il numero di IRQ disponibili è stato aumentato risolvendo così il problema. - On systems with newer CPU's, the CPU APIC ID differs from the CPU ID. Consequently, the virtualized kernel was unable to initialize CPU frequency scaling. In this update, the virtualized kernel now retrieves CPU APIC ID from the hypervisor, allowing CPU frequency scaling to be initialized properly.
6.3. Known Issues
6.3.1. All Architectures
- Il media dell'unità disco non risulterà accessibile se si utilizza il kernel virtualizzato. Per risolvere questo problema utilizzare invece una unità disco collegata alla porta USB.Da notare che il media dell'unità disco funziona bene con altri kernel non virtualizzati.
- In live migrations of paravirtualized guests, time-dependent guest processes may function improperly if the corresponding hosts' (dom0) times are not synchronized. Use NTP to synchronize system times for all corresponding hosts before migration.
- La ripetuta migrazione live dei guest paravirtualizzati tra due host potrebbe causare il panic di un host. Se riavviate un host dopo la migrazione del guest fuori dal sistema, e prima di reintegrarlo al suo interno, potrete evitare il virificarsi di tale errore.
- La formattazione di un disco durante l'esecuzione di Windows 2008 o Windows Vista come guest, potrebbe arrestarsi inaspettatamente quando il guest è stato avviato con CPU virtuali multiple. Per risolvere questo problema avviare il guest con una CPU virtuale singola durante la formattazione.
- I guest completamente virtualizzati creati attraverso
virt-manager
, potrebbero impedire talvolta il movimento libero del mouse sulla schermata. Per risolvere questo problema utilizzarevirt-manager
per configurare un dispositivo USB per il guest. - Il numero di CPU massimo deve essere minore di 128 su sistemi con 128 o più CPU. Il numero massimo supportato è di 126. A tale scopo utilizzare l'argomento dell'ipervisore
maxcpus=125
per limitare l'Ipervisore a 126 - Gli ospiti pienamente virtualizzati non possono recuperare il tempo perduto a causa della messa in pausa e successiva ripresa del dominio. Riuscire a monitorare correttamente il tempo durante gli eventi di messa in pausa e di ripresa è uno dei vantaggi dei kernel paravirtualizzati. Si sta affrontando il problema a monte con timer sostituibili, pertanto gli ospiti virtualizzati disporranno di timer paravirtualizzati. Al momento, questo codice è in via di sviluppo a monte e dovrebbe essere disponibile in versioni successive di Red Hat Enterprise Linux.
- La migrazione ripetuta degli ospiti paravirtualizzati può risultare in messaggi
bad mpa
sulla consoledom0
. In alcuni casi, anche l'hypervisor potrebbe panicare.Per impedire il panico del kernel di un hypervisor, riavviare gli ospiti migrati una volta comparsi i messaggi bad mpa. - Durante l'impostazione dell'interface bonding su
dom0
, lo script predefinitonetwork-bridge
poteva causare lo smistamento alternato suunavailable
eavailable
da parte delle interfacce interessate. Tale comportamento è comunemente conosciuto come flapping.Per evitare questo tipo di comportamento sostituire la riga standardnetwork-script
in/etc/xen/xend-config.sxp
con la seguente:(network-script network-bridge-bonding netdev=bond0)
Così facendo verrà disabilitato il dispositivo netloop, impedendo una condizione d'errore dell'Address Resolution Protocol (ARP) monitoring durante il processo di trasferimento dell'indirizzo. - When running multiple guest domains, guest networking may temporarily stop working, resulting in the following error being reported in the dom0 logs:
Memory squeeze in netback driver
To work around this, raise the amount of memory available to the dom0 with thedom0_mem
hypervisor command line option.
6.3.2. x86 Architectures
- Migrating paravirtualized guests through
xm migrate [domain] [dom0 IP address]
does not work. - When installing Red Hat Enterprise Linux 5 on a fully virtualized SMP guest, the installation may freeze. This can occur when the host (
dom0
) is running Red Hat Enterprise Linux 5.2.Per evitare questo tipo di comportamento impostate il guest per l'utilizzo di un processore singolo utilizzando il processo d'installazione. Per fare ciò utilizzate l'opzione--vcpus=1
invirt-install
. Una volta completato il processo d'installazione potrete impostare il guest su SMP, modificandovcpus
in virt-manager.
6.3.3. x86_64 Architectures
- Migrating paravirtualized guests through
xm migrate [domain] [dom0 IP address]
does not work. - Installing the Virtualization feature may cause a
time went backwards
warning on HP systems with model numbers xw9300 and xw9400.Per risolvere questo problema sulle macchine xw9400, configurate le impostazioni del BIOS in modo da abilitare il timer HPET. Da notare che questa opzione non è disponibile su macchine xw9300. - Installing Red Hat Enterprise Linux 3.9 on a fully virtualized guest may be extremely slow. In addition, booting up the guest after installation may result in
hda: lost interrupt
errors.Per evitare questo errore configurate il guest in modo da utilizzare il kernel SMP. - Upgrading a host (
dom0
) system to Red Hat Enterprise Linux 5.2 may render existing Red Hat Enterprise Linux 4.5 SMP paravirtualized guests unbootable. This is more likely to occur when the host system has more than 4GB of RAM.Per risolvere questo problema, avviate ogni guest Red Hat Enterprise Linux 4.5 in modalità CPU singola, e aggiornate il rispettivo kernel all'ultimissima versione (per Red Hat Enterprise Linux 4.5.z).
6.3.4. ia64 Architecture
- Migrating paravirtualized guests through
xm migrate [domain] [dom0 IP address]
does not work. - On some Itanium systems configured for console output to VGA, the
dom0
virtualized kernel may fail to boot. This is because the virtualized kernel failed to properly detect the default console device from the Extensible Firmware Interface (EFI) settings.Quando si verifica tale comportamento, aggiungete il parametro d'avvioconsole=tty
alle opzioni d'avvio del kernel in/boot/efi/elilo.conf
. - On some Itanium systems (such as the Hitachi Cold Fusion 3e), the serial port cannot be detected in
dom0
when VGA is enabled by the EFI Maintenance Manager. As such, you need to supply the following serial port information to thedom0
kernel:- Velocità in bit/secondi
- Numero di bit dei dati
- Parità
- indirizzo
io_base
Queste informazioni devono essere specificate nella rigaappend=
del kerneldom0
in/boot/efi/elilo.conf
. Per esempio:append="com1=19200,8n1,0x3f8 -- quiet rhgb console=tty0 console=ttyS0,19200n8"
In questo esempiocom1
è la porta seriale,19200
è la velocità (in bit/secondi),8n1
specifica il numero delle impostazioni bit/parità dei dati, e0x3f8
è l'indirizzoio_base
. - Virtualization does not work on some architectures that use Non-Uniform Memory Access (NUMA). As such, installing the virtualized kernel on systems that use NUMA will result in a boot failure.Alcuni numeri d'installazione installano il kernel virtualizzato per default. Se siete in possesso di uno dei suddetti numeri e se il vostro sistema utilizza NUMA e non funziona con kernel-xen, deselezionate l'opzione di Virtualizzazione durante il processo di installazione.
- Currently, live migration of fully virtualized guests is not supported on this architecture. In addition,
kexec
andkdump
are also not supported for virtualization on this architecture.