Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Virtualization
A reference guide for virsch, xm, vmm and xend.
Edizione 2.0
Sommario
http://bugzilla.redhat.com/bugzilla/
), specificando il prodotto, Red Hat Enterprise Linux
, ed il componente Virtualization_Guide
.
Capitolo 1. Architettura del sistema di Red Hat Virtualization
Capitolo 2. Supporto sistema operativo
- Intel VT-x o AMD-V Pacifica e la tecnologia Vanderpool per le modalità full e paravirtualization.
- Intel VT-i per ia64
- I sistemi operativi UNIX e Linux, incluso NetBSD, FreeBSD, e Solaris.
- Microsoft Windows as an unmodified guest operating system with Intel Vanderpool or AMD's Pacifica technology.
grep vmx /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
grep svm /proc/cpuinfo cat /proc/cpuinfo | grep svm
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dt acpi mmx fxsr sse sse2 ss ht tm syscall nx mmtext fxsr_opt rdtscp lm 3dnowext pni cx16 lahf_lm cmp_legacy svm cr8_legacy
Nota
Capitolo 3. Supporto hardware
- Celeron
- Pentium II
- Pentium III
- Pentium IV
- Xeon
- AMD Athlon
- AMD Duron
mem=32G
sulla linea di comando del kernel. Questo esempio mostra come abilitare i parametri corretti nel file grub.conf
:
title Red Hat Enterprise Linux Server (2.6.18-4.elxen) root (hd0, 0) kernel /xen.gz-2.6.18-4-el5 mem=32G module /vmlinuz -2.6.18-4.el5xen ro root=LABEL=/ module /initrd-2.6.18-4.el5xen.img
grep pae /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 mmx fxsr sse syscall mmtext 3dnowext 3dnow up ts
Capitolo 4. Requisiti del sistema per Red Hat Virtualization
- Una distribuzione Red Hat RHEL 5 Linux funzionante
- Un bootloader GRUB funzionante
- Accesso root
- Processore di classe P6 (o versione precedente)
- Il Linux bridge-utils
- I sistemi hotplug di Linux
- installazione di sviluppo zlib
- Python 2.2 runtime
- initscripts
Capitolo 5. Avvio del sistema
service xend start
chkconfig xend
durante il processo di installazione, per poter abilitare xend
al momento dell'avvio.
Capitolo 6. Configurazione di GRUB
/boot/grub/grub.conf
) is used to create a list of operating systems to boot in GRUB's menu interface. When you install the kernel-xen RPM, a post script adds kernel-xen entries to the GRUB configuration file. You can edit the grub.conf
file and enable the following GRUB parameter:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0; 0) kernel /xen.gz.-2.6.18-3.el5 module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
initrd
, ed il kernel di Linux. Poichè la entry del kernel si trova sopra le altre entry, il kernel viene caricato prima nella memoria. Il boot loader invia (e riceve) gli argomenti della linea di comando da e per l'hypervisor, ed il kernel di Linux. Il seguente esempio mostra come limitare la memoria del kernel di linux del Domain0 a 800 MB:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0; 0) kernel /xen.gz.-2.6.18-3.el5 dom0_mem=800M module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
mem
com1=115200, 8n1
dom0_mem
dom0_max_vcpus
acpi
/* **** Linux config options: propagated to domain0 ****/ /* "acpi=off": Disables both ACPI table parsing and interpreter. */ /* "acpi=force": Overrides the disable blacklist. */ /* "acpi=strict": Disables out-of-spec workarounds. */ /* "acpi=ht": Limits ACPI from boot-time to enable HT. */ /* "acpi=noirq": Disables ACPI interrupt routing. */
noacpi
Capitolo 7. Avvio di un dominio guest
xm
. È possibile altresì usare virsh
ed il Virtual Machine Manager, per avviare i guest. Un prerequisito per l'avvio di un dominio guest è quello di installare prima un guest host. Questo esempio utilizza xm
per creare il sottocomando:
# xm create -c guestdomain1
guestdomain1
è il file di configurazione per il dominio che state avviando. L'opzione -c
collega alla console dopo l'avvio.
Capitolo 8. Avvio/Arresto di un dominio al momento dell'avvio
/etc/xen/
. Tutti i domini che desiderate avviare al momento dell'avvio, devono essere collegati tramite link simbolico 'symlinked' a /etc/xen/auto
.
chkconfig xendomains on
chkconfig xendomains on
non avvia in modo automatico i domini; esso li riavvia durante il processo d'avvio successivo.
chkconfig xendomains off
chkconfig xendomains off
arresta i domini durante il processo d'avvio successivo.
Capitolo 9. File di configurazione
/etc/xen
directory.
Tabella 9.1. File di configurazione di Red Hat Virtualization
Item | Descrizione |
---|---|
pae
|
Specifica i dati di configurazione dell'estensione physical address extention.
|
apic
|
Specifica i dati di configurazione dell'advanced programmable interrupt controller.
|
memoria
|
Specifica la dimensione della memoria in megabytes.
|
vcpus
|
Specifica i numeri delle CPU virtuali.
|
console
|
Specifica i numeri della porta verso la quale esportare le console del dominio.
|
nic
|
Specifica il numero di virtual network interfaces.
|
vif
|
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
|
disk
|
Elenca i dispositivi a blocchi sui quali esportare il dominio, ed esporta i dispositivi fisici sul dominio con un accesso di sola lettura.
|
dhcp
|
Aabilita il networking utilizzando DHCP.
|
netmask
|
Specifica le maschere di rete IP configurate.
|
gateway
|
Specifica i gateway IP configurati.
|
acpi
|
Specifica i dati di configurazione per l'advanced configuration power interface.
|
Capitolo 10. Gestione delle CPU
Capitolo 11. Migrazione di un dominio
xm migrate domain-id [destination domain]
xm migrate domain-id -l [destination domain]
Capitolo 12. Configurazione per un utilizzo su di una rete
dom0
by a point to point link. These devices are vif
<domid>
and <vifid>
. vif1.0
for the first interface in domain 1; vif3.1
for the second interface in domain 3.
network-bridge
and vif-bridge
. xend calls these scripts when certain events occur. Arguments can be passed to the scripts to provide additional contextual information. These scripts are located in the /etc/xen/scripts
directory. You can change script properties by modifying the xend-config.sxp configuration file located in the /etc/xen
directory.
network-bridge
— Ogni qualvolta xend viene avviato o arrestato, il suddetto script inizializza o arresta la rete virtuale. Successivamente, l'inizializzazione della configurazione crea il bridge xen—br0
, spostando eth0
sul bridge in questione , modificando conseguentemente il routing. Quando xend abbandona il processo esistente, il bridge verrà cancellato e eth0
rimosso, ripristinando così l'IP originale e la configurazione del routing.
vif-bridge
rappresenta uno script invocato per ogni interfaccia virtuale presente sul dominio. Configura le regole firewall ed è in grado di aggiungere vif
al bridge appropriato.
network-route
, network-nat
, vif-route,
e vif-nat
. Questi script possono essere sostituiti anche con varianti appartenenti alla virtualizzazione.
Capitolo 13. Come rendere sicuro Domain0
- Esecuzione del numero più basso di servizi necessari. Non è consigliabile includere un numero troppo elevato di compiti e servizi nel domain0. Minor numero di compiti e servizi in esecuzione presenti all'interno di domain0, più elevato è il livello di sicurezza.
- Abilitate SeLINUX in modo da rendere sicuro domain0.
- Utilizzate un firewall per limitare il traffico per il domain0. È possibile impostare un firewall con regole default-reject il quale assicura una protezione nei confronti del domain0. È altresì importante limitare l'esposizione della rete ai servizi.
- Non permettete ad utenti normali di accedere al domain0. Se abilitate il loro accesso potrete correre il rischio di rendere domain0 vulnerabile. Ricordate, domain0 risulta essere privilegiato, e garantire account non privilegiati potrebbe compromettere il livello di sicurezza.
Capitolo 14. Storage
Capitolo 15. Gestione delle Macchine virtuali con virsh
xend/qemu
, allora dovreste abilitare xend/qemu
in modo da eseguirlo come un servizio. Dopo aver modificato il file di configurazione corrispondente riavviate il sistema, in questo modo xend/qemu
verrà eseguito come un servizio. Utilizzate virsh per far funzionare vm. In modo simile al tool xm, è possibile eseguire virsh dalla linea di comando.
15.1. Collegamento ad un Hypervisor
virsh connect <name>
<name>
is the machine name of the hypervisor. If you want to initiate a read—only connection, append the above command with —readonly
.
15.2. Creazione di una macchina virtuale
virsh create <path to XML configuration file>
15.3. Configurazione di un XML Dump
virsh dumpxml [domain-id | domain-name | domain-uuid]
stdout
. If you save the data to a file, you can use the create
option to recreate the virtual machine.
15.4. Sospensione di una macchina virtuale
virsh suspend [domain-id | domain-name |domain-uuid]
resume
option.
15.5. Ripristino di una macchina virtuale
virsh resume [domain-id | domain-name | domain-uuid]
suspend
e resume
.
15.6. Salvataggio di una macchina virtuale
virsh save [domain-name][domain-id | domain-uuid][filename]
restore
option.
15.7. Ripristino di una macchina virtuale
virsh save
option:
virsh restore [filename]
15.8. Arresto di una macchina virtuale
virsh shutdown [domain-id | domain-name | domain-uuid]
on_shutdown
del file xmdomain.cfg
.
15.9. Riavvio di una macchina virtuale
virsh reboot [domain-id | domain-name | domain-uuid]
on_reboot
del file xmdomain.cfg
.
15.10. Come terminare un dominio
virsh destroy [domain-name | domain-id | domain-uuid]
destroy
option only when the virtual machine's operating system is non-responsive. For a paravirtualized virtual machine, you should use the shutdown
option.
15.11. Conversione di un Domain Name in un Domain ID
virsh domid [domain-name | domain-uuid]
15.12. Conversione di un Domain ID in un Domain Name
virsh domname [domain-name | domain-uuid]
15.13. Conversione di un Domain Name in un UUID
virsh domuuid [domain-id | domain-uuid]
15.14. Visualizzazione informazioni della macchina virtuale
virsh dominfo [domain-id | domain-name | domain-uuid]
15.15. Visualizzazione informazioni del nodo
virsh nodeinfo
CPU model x86_64 CPU (s) 8 CPU frequency 2895 Mhz CPU socket(s) 2 Core(s) per socket 2 Threads per core: 2 Numa cell(s) 1 Memory size: 1046528 kb
15.16. Visualizzazione delle macchine virtuali
virsh list domain-name [ ——inactive | —— -all]
——inactive
elenca i domini inattivi (i domini definiti ma non ancora attivi). Il — -all
domain elenca tutti i domini attivi o meno. Il vostro output dovrebbe somigliare a quanto segue:
ID Name State ———————————————— 0 Domain0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
running lists domains currently active on the CPU blocked lists domains that are blocked paused lists domains that are suspended shutdown lists domains that are in process of shutting down shutoff lists domains that are completely down. crashed lists domains that are crashed
15.17. Visualizzazione informazioni della CPU virtuale
virsh vcpuinfo [domain-id | domain-name | domain-uuid]
15.18. Configurazione affinità CPU virtuale
virsh vcpupin [domain-id | domain-name | domain-uuid] [vcpu] , [cpulist]
[vcpu]
è il numero della VCPU virtuale e [cpulist]
elenca il numero fisico delle CPU.
15.19. Configurazione conteggio CPU virtuale
virsh setvcpus [domain-name | domain-id | domain-uuid] [count]
15.20. Configurazione assegnazione della memoria
virsh setmem [domain-id | domain-name] [count]
[count]
in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. You can adjust the Virtual Machine memory as necessary.
15.21. Configurazione memoria massima
virsh setmaxmem [domain-name | domain-id | domain-uuid] [count]
15.22. Gestione reti virtuali
virsh net-list
[root@domain ~]# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
virsh net-dumpxml [vnet name]
[root@domain ~]# virsh net-dumpxml vnet1 <network> <name>vnet1</name> <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid> <forward dev='eth0'/> <bridge name='vnet0' stp='on' forwardDelay='0' /> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254' /> </dhcp> </ip> </network>
virsh net-autostart [nome rete]
— Avvia automaticamente una rete specificata come [nome rete]virsh net-create [XML file]
— Genera ed avvia una nuova rete utilizzando un file XML già esistentevirsh net-define [file XML]
— Genera una nuova rete da un file XML preesistente senza avviarlovirsh net-destroy [nome della rete]
— Annulla una rete specificata come [nome della rete]virsh net-name [UUID della rete]
— Converte un [UUID della rete] specifico in un nomevirsh net-uuid [nome della rete]
— Converte un [nome della rete] specificato in un UUIDvirsh net-start [nome di una rete inattiva]
— Avvia una rete inattiva precedentemente non definitavirsh net-undefine [nome di una rete inattiva]
— Rimuove definizione di una rete inattiva
Capitolo 16. Gestione macchine virtuali utilizzando xend
xend-config.sxp
, il quale è situato all'interno della directory etc/xen
. Ecco i parametri da abilitare o disabilitare nel file di configurazione xend-config.sxp
:
Tabella 16.1. Parametri configurazione di xend per Red Hat Virtualization
Oggetto | Descrizione |
---|---|
console-limit
|
Determines the console server's memory buffer limit and assigns values on a per-domain basis
|
min-mem
|
Determina il numero minimo di megabyte riservati per il domain0 (se inserite 0, il valore non varia)
|
dom0 cpus
|
Determina il numero delle CPU utilizzate dal domain0 (almeno 1 CPU è assegnata per default)
|
enable-dump
|
Determina la presenza di un arresto inaspettato 'crash', e abilita un dump (il default è 0)
|
external-migration-tool
|
Determina lo script o l'applicazione che gestisce la migrazione del dispositivo esterno (gli script devono risiedere in
etc/xen/scripts/external-device-migrate )
|
logfile
|
Determina la posizione del file di log (il default è
/var/log/xend.log )
|
loglevel
|
Filtra i valori log mode: DEBUG, INFO, WARNING, ERROR, o CRITICAL (il default è DEBUG)
|
network-script
|
Determina lo script che abilita l'ambiente di networking (gli script devono risiedere nella directory
etc/xen/scripts )
|
xend-http-server
|
Abilita il server per l'http stream packet management (il default è no)
|
xend-unix-server
|
Abilita il server unix domain socket (un server socket rappresenta un punto finale delle comunicazioni, che gestisce i collegamenti low level network ed accetta o rifiuta i collegamenti in entrata)
|
xend-relocation-server
|
Abilita il server di riposizionamento per migrazioni 'cross-machine' (il default è no)
|
xend-unix-path
|
Determina la posizione dove il comando
xend-unix-server esegue l'output dei dati (il default è var/lib/xend/xend-socket )
|
xend-port
|
Determina la porta utilizzata dal server di gestione http (il default è 8000)
|
xend-relocation-port
|
Determina la porta utilizzata dal server di riposizionamento (il default è 8002)
|
xend-relocation-address
|
Determina gli indirizzi della macchina virtuale abilitati per la migrazione del sistema
|
xend-address
|
Determina l'indirizzo al quale si lega il server del domain socket.
|
service xend start
service xend stop
service xend restart
service xend status
Capitolo 17. Gestione delle macchine virtuali utilizzando xm
17.1. File di configurazione xm
xmdomain.cfg
, il quale è situato all'interno della directory etc/xen
. È possibile abilitare o disabilitare i parametri all'interno del file di configurazione xmdomain.cfg
:
Tabella 17.1. Il file di configurazione xmdomain.cfg
Oggetto | Descrizione |
---|---|
kernel
|
Determina il percorso corretto per l'immagine del kernel
|
ramdisk
|
Determina il percorso corretto per initrd per la ramdisk iniziale
|
memoria
|
Determina la quantità di RAM (in MB) da assegnare al dominio al momento del suo avvio
|
nome
|
Determina il nome unico per un dominio
|
root
|
Determina il dispositivo root per un dominio
|
nic
|
Determina il numero di schede per l'interfaccia di rete per un dominio (il default è 1)
|
disco
|
Determina gli array delle stanza del dispositivo a blocchi — le tre Stanza sono:
·
mode - modalità di accesso al dispositivo
·
backend-dev - il dominio backend esportabile al dominio guest
·
frontend-dev - determina il modo attraverso il quale deve apparire un dispositivo in un dominio guest
|
vif
|
Determina gli array delle stanza dell'interfaccia virtuale (ogni stanza rappresenta un set di operazioni nome=valore).
|
builder
|
Determina il builder per la creazione del dominio (il default è linux)
|
cpu
|
Determina il conteggio CPU per mezzo del quale viene avviato il dominio. 0 indica la prima CPU, 1 la seconda, ecc. (il default è -1)
|
cpus
|
Determines which CPUs on the domain's VCPUs are executable
|
extra
|
Determina le informazioni aggiuntive da aggiungere alla fine della riga di parametro del kernel
|
nfs_server
|
Determina l'indirizzo IP del server NFS da utilizzare per il dispositivo root
|
nfs_root
|
Determina la directory root come percorso corretto per il server NFS
|
vcpus
|
Determina il numero di CPU virtuali da assegnare ad un dominio (il default è 1)
|
on_shutdown
|
Determina il parametro d'interruzione il quale aziona un processo di spegnimento corretto 'graceful-shutdown' (o spegnimento xm) all'interno di
DomU
|
on_reboot
|
Determina il parametro d'interruzione del dominio il quale aziona un processo di riavvio corretto 'graceful-reboot' (o un
xm reboot ) all'interno di DomU
|
on_crash
|
Determina il parametro d'interruzione del dominio che genera interruzioni inaspettate di
DomU .
|
17.1.1. Configurazione di vfb
xmdomain.cfg.5
file, must be separated by commas. The vfb entry in your configuration file resembles:
vfb = [ "stanza" ] "name1=value1, name2=value2, "
Tabella 17.2. Opzioni di configurazione di vfb
Oggetto | Descrizione |
---|---|
tipo
|
Il tipo di opzione
vnc inizializza una sessione del server VNC, la quale si collega ad un visualizzatore VNC esterno. L'opzione sdl inizializza il visualizzatore interno.
|
vncdisplay
|
Determina il numero del display VNC da utilizzare (il default per il valore ID del dominio). Il server VNC risulterà in ascolto sulla porta 5900 + il numero del display.
|
vnclisten
|
The VNC server's listening address (defaults to 127.0.0.1).
|
vncunused
|
Determina il valore numerico, e se risulta essere un valore diverso da zero abilita il server VNC, in modo da risultare in ascolto per la prima porta non utilizzata oltre 5900.
|
vncpasswd
|
Annulla la password predefinita configurata da Xend.
|
display
|
Abilita il display per il visualizzatore interno da utilizzare (il default è la variabile di ambiente DISPLAY).
|
xauthority
|
Abilita il file authority per il visualizzatore interno da utilizzare (il default è la variabile di ambiente XAUTHORITY).
|
17.2. Creazione e gestione dei domini con xm
17.2.1. Collegamento ad un dominio
xm console domain-id
domain-id
's text console.
17.2.2. Creazione di un dominio
xm
:
xm create domain001 [-c]
domain001
, con il file situato all'interno della directory /etc/xen/
. L'opzione [-c]
è utile durante il processo di troubleshooting, permettendovi di collegarvi alla console di testo.
17.2.3. Come salvare un dominio
xm save [domain-id] [statefile]
17.2.4. Come terminare un Domain ID
xm destroy [domain-id]
domain-id
. Se preferite un altro metodo per terminare in modo sicuro la vostra sessione, potrete utilizzare il parametro shutdown
.
17.2.5. Come arrestare un dominio
xm shutdown [domain-id] [ -a | -w ]
[ -a]
arresta tutti i domini presenti sul vostro sistema. L'opzione [-w]
attende l'arresto completo di un dominio.
17.2.6. Ripristino di un dominio
xm restore [state-file]
17.2.7. Sospensione di un dominio
xm suspend [domain-id]
17.2.8. Ripristinare un dominio
xm resume [domain-id]
17.2.9. Come riavviare un dominio
xm reboot [domain-id] [ -a | -w ]
[ -a]
riavvia tutti i domini sul vostro sistema. L'opzione [-w]
attende il riavvio completo del dominio. È possibile controllare il comportamento di un dominio durante il suo processo d'avvio, modificando il parametro on_boot
del file xmdomain.cfg
.
17.2.10. Come rinominare un dominio
xm
per assegnare un nuovo nome ad un dominio esistente:
xm rename [domain-name] [new domain-name]
17.2.11. Pausa di un dominio
xm pause [domain-id]
17.2.12. Come rimuovere la pausa di un dominio
xm unpause [domain-id]
17.2.13. Conversione di un Domain Name in un Domain ID
xm
per convertire un domain name in un domain ID:
xm domid [domain-name]
17.2.14. Conversione di un Domain ID in un Domain Name
xm domname [domain-id]
17.2.15. Configurazione assegnazione della memoria
xm mem-set [domain-id] [count]
Nota
17.2.16. Configurazione della memoria massima
xm mem-max [domain-id] [count]
[count]
in megabytes.
17.2.17. Configurazione del conteggio VCPU
xm vcpu-set [domain-id] [count]
[count]
in megabytes.
Nota
17.2.18. Come fissare una VCPU
xm
per fissare una VCPU:
xm vcpu-pin [domain-id] [vcpu] [cpus]
[vcpu]
è la VCPU alla quale desiderate collegarvi, e [cpus]
è il target. Questo processo assicura l'esecuzione delle VCPU su determinate CPU.
17.2.19. Migrazione di un dominio
xm migrate [domain-id] [host] [options]
[domain-id]
è il dominio che desiderate migrare, e [host]
è il target. [options]
include ——live
(or -l) per una migrazione live, o ——resource
(or -r) per specificare la velocità massima della migrazione (in Mb).
xend
sia in esecuzione su tutti i domini host. Altresì tutti gli host devono eseguire Red Hat RHEL 5.0+ e possedere porte TCP di migrazione aperte, per poter accettare i collegamenti da host sicuri.
17.3. Monitoraggio e Diagnosi
17.3.1. Esecuzione di un Core Dump
xm dump-core [-C] [domain-id]
xendump
file located in the /var/lib/xen/dump/
directory. You can terminate the virtual machine by including the -C
option.
17.3.2. Monitoraggio dei domini in tempo reale
xm top [domain-id]
17.3.3. Visualizzazione degli stati del dominio
xm
per visualizzare gli stati delle attività del dominio di uno o più domini:
xm list [domain-id] [ ——long | ——label]
[——long]
fornisce una descrizione più dettagliata del dominio specificato. L'opzione [——label]
aggiunge una colonna supplementare contenente lo stato dell'etichetta. L'output mostra quanto segue:
Name ID Mem(MiB) VCPUs State Time Label ———————————————— Domain0 0 927 8 r—————— 204.9 INACTIVE Domain202 1 927 8 s—————— 205.0/command ACTIVE DomainQ/A 2 927 8 b—————— INACTIVE Domain9600 3 927 8 c—————— 205.1 ACTIVE
Tabella 17.3. Stati del dominio
Stato | Descrizione |
---|---|
in esecuzione
|
elenca i domini attualmente attivi su di una CPU
|
bloccato
|
elenca i domini bloccati (un dominio risulta bloccato quando la vcpu è in attesa che si verifichi un evento esterno)
|
sospeso
|
elenca i domini sospsesi
|
arrestati
|
elenca i domini in procinto di essere arrestati
|
interrotti
|
elenca i domini completamente inattivi.
|
arrestati inaspettatamente
|
elenca i domini arrestati inaspettatamente
|
inattivi
|
elenca i domini che sono istanze inattive
|
——tutti
|
elenca i domini attivi e le istanze vcpu inattive
|
17.4. Visualizzazione Uptime
xm uptime [domain-id]
Name ID Uptime Domain0 0 4:45:02 Domain202 1 3:32:00 Domain9600 2 0:09:14 DomainR&D 3 2:21:41
17.5. Visualizzazione informazioni della VCPU
xm vcpu-list [domain-id]
17.6. Visualizzazione informazioni del dominio
xm info
host : redhat83-157.brisbane.redhat.com release : 2.6..18-1.2714.el5xen version : #1 SMP Mon Oct 21 17:57:21 EDT 2006 machine : x86_64 nr_cpus : 8 nr_nodes : 1 sockets_per_node : 2 cores_per_socket : 2 threads_per_core : 2 cpu_mhz : 2992 hw_caps : bfeebbef:20100000:00000000:00000000 total_mememory : 1022 free_memory : 68 xen_major : 3 xen_minor : 0 xen_extra : -unstable xen_caps : xen-3.0-x86_84 xen_pagesize : 4096 platform_params : virt_start=0xffff88000000000000000000 xen_changeset : unavailable cc_compiler : gcc compiler version 4.1.1 200060928 cc_compile_by : brewbuilder cc_compile_domain : build.redhat.com cc_compile_date : Mon Oct 2 17:00 EDT 2006 xend_config_format : 2
17.7. Visualizzazione dispositivi TPM
xm vtpm-list [domain-id] [——long]
[——long]
fornisce una descrizione più dettagliata del dominio specificato.
17.8. Visualizzazione del log di xend
xend
:
xm log
xend
.
17.9. Visualizzazione del Message Buffer
xm
per visualizzare xend message buffer:
xm dmesg
xend
.
17.10. Visualizzazione delle informazioni sullo stato ACM
xm dumppolicy [policy.bin]
17.11. Visualizzazione dei dispositivi a blocchi virtuali
xm block-list [domain-id] [ ——long]
17.12. Visualizzazione delle interfacce di rete virtuali
xm network-list [domain-id] [ ——long]
17.13. Creazione di un nuovo dispositivo di rete virtuale
xm network-attach [domain-id] [script=scriptname] [ip=ipaddr] [mac-macaddr] [bridge=bridge-name] [backend-bedomain-id]
Tabella 17.4. Parametri
Parametro | Descrizione |
---|---|
[script=scriptname]
|
Utilizza il nome dello script specificato per attivare la rete
|
[ip=ipaddr]
|
Passa il nome dello script specificato all'adattatore
|
[mac-macaddr]
|
L'indirizzo MAC visto dal dominio sul proprio dispositivo ethernet
|
[bridge-bridgename]
|
Il nome del dispositivo al quale collegare
vif
|
[backend=bedomain-id]
|
Il domain id di backend.
|
17.14. Creazione di una etichetta di sicurezza del dominio
xm addlabel [labelname] [domain-id] [configfile]
17.15. Test delle risorse del dominio
xm dry-run [configfile]
17.16. Visualizzazione risorse del sistema
xm resources
17.17. Configurazione Credit Scheduling
xm sched-credit -d <domain> [ -w [=WEIGHT] | -c [CAP] ]
[ -w]
, e Cap con l'opzione [ -c]
.
17.18. Creazione di un nuovo dispositivo a blocchi virtuale
xm block-attach [domain-id] [bedomain-id] [fe-dev] [be-dev] [mode]
Tabella 17.5. Nuovi parametri del dispositivo a blocchi
Parametro | Descrizione |
---|---|
[domain-id]
|
The guest domain's domain-id that attaches to the device
|
[be-dev]
|
Il dispositivo nel dominio di backend esportato
|
[fe-dev]
|
Il dispositivo presentato al dominio guest
|
[mode]
|
The guest domain's device access mode
|
[bedomain-id]
|
Il dominio di backend che ospita il dispositivo
|
17.19. Come terminare un dispositivo a blocchi virtuale
xm block-detach [domain-id] [DevID]
17.20. Sicurezza
17.20.1. Rimozione di una etichetta di sicurezza del dominio
xm
per rimuovere una etichetta di sicurezza del dominio:
xm rmlabel [domain-id] [configfile]
acm_policy
dal configfile.
17.20.2. Creazione di una etichetta di sicurezza delle risorse
xm addlabel [labelname] res [resource] [policy]
17.20.3. Rimozione di una etichetta di sicurezza delle risorse
mx rmlabel [domain-id] res [resource]
17.20.4. Configurazione controllo accesso
Tabella 17.6. Gestione etichetta ACP
Etichetta | Descrizione |
---|---|
Simple Type Enforcement
|
L'ACP interpreta le etichette assegnando le richieste d'accesso ai domini che richiedono un accesso virtuale (o fisico). La policy di sicurezza controlla l'accesso tra i domini, assegnando le etichette corrette ai rispettivi domini. Per default l'accesso ai domini con un Simple Type Enforcement non è abilitato.
|
Chinese Wall
|
La policy di sicurezza di tipo Chinese Wall controlla e risponde alle richieste d'accesso provenienti da un dominio.
|
chinese_wall.client_V1
si riferisce al file della policy /example/chinese_wall.client_v1.xml
.
17.20.5. Creazione di una policy
xm makepolicy [policy]
[policy.bin]
.
17.20.6. Caricamento della policy
xm loadpolicy [policy.bin]
17.20.7. Creazione policy per una configurazione del processo d'avvio
xm cfgbootpolicy [kernelversion]
/boot
, modificando la riga corrispondente nel file /boot/grub/menu.1st
.
17.20.8. Creazione di una etichetta
xm addlabel [configfile] [policy]
17.20.9. Visualizzazione etichette della policy
xm
:
xm labels [policy] [type=dom | res | any]
dom
), e da voi definite al momento della creazione della policy.
17.20.10. Visualizzazione delle etichette di sicurezza del dominio
xm
:
xm getlabel domain-id [configfile]
17.20.11. Visualizzazione delle etichette di sicurezza delle risorse
xm
per visualizzare le etichette di sicurezza per una risorsa:
xm getlabel res [resource]
17.20.12. Configurazione di Access Control Security
xen_source__dir/Config.mk
ACM_SECURITY ?= y ACM_DEFAULT_SECURITY_POLICY ? = ACM_CHINESE_WALL__AND_SIMPLE_TYPE_ENFORCEMENT_POLICY
17.20.13. Compilazione di una policy di sicurezza
xm makepolicy chinesewall_ste.client_v1
client_v1.map
and client_v1.bin
all'interno della directory /etc/xen/acm-security/policies/example/chinesewall_ste
.
17.20.14. Caricamento di una policy di sicurezza
client_v1.bin
:
xm loadpolicy example.chwall_ste.client_v1
17.20.15. Configurazione di una policy di sicurezza per l'avvio
client_v1.bin
:
xm cfgbootpolicy chinesewall_ste.client_v1
17.20.16. Visualizzazione delle etichette di sicurezza
xm
per visualizzare le etichette definite:
xm labels chinesewall_ste.client_v1 type=dom
dom
:
dom_StorageDomain dom_SystemManagement dom_NetworkDomain dom_QandA dom_R&D
17.20.17. Come collegare una etichetta di sicurezza
SoftwareDev
):
xm addlabel myconfig.xm dom_SoftwareDev
SoftwareDev
user domains. This example includes the myconfig.xm
configuration file represents a domain that runs workloads related to the SoftwareDev
's infrastructure.
addlabel
abbia aggiunto correttamente la voce access_control
(insieme ai parametri associati) alla fine del file:
kernel = "/boot/vmlinuz — 2.6.16 —xen" ramdisk="/boot/U1_SoftwareDev_ramdisk.img" memory = 164 name = "SoftwareDev" vif = [ '' ] dhcp = "dhcp" access_control = [policy=example.chwall_ste.client_v1, label=dom_SoftwareDev]
Capitolo 18. Gestione macchine virtuali con Virtual Machine Manager
18.1. Architettura del Virtual Machine Manager
18.2. Finestra apri collegamento
test:///default
nel campo dell'URL sotto riportato. Una volta all'interno della modalità di prova, sarà possibile collegarsi ad un hypervisor di prova libvirt. Anche se la schermata host Xen remoto risulta visibile, la funzionalità per il collegamento a questo tipo di host non è implementata con RHEL 5.0.
Figura 18.1. Virtual Machine Manager Connection window
18.3. Finestra del Virtual Machine Manager
Figura 18.2. Virtual Machine Manager main window
18.4. Finestra dattegli della macchina virtuale
Figura 18.3. Virtual Machine Manager Details window
18.5. Console grafica della macchina virtuale
Figura 18.4. Finestra console grafica
18.6. Starting the Virtual Machine Manager
Applications
fate clic su System Tools
e selezionate Virtual Machine Manager
.
Figura 18.5. Starting the Virtual Machine Manager
18.7. Creazione di una nuova macchina virtuale
- Creare nuovi domini.
- Configure or adjust a domain's resource allocation and virtual hardware.
- Riassumere i domini in esecuzione tramite statistiche, in tempo reale, relative all'utilizzo delle risorse e sulla prestazione.
- Visualizzare grafici in grado di mostrare le prestazioni e l'utilizzo delle risorse nei periodi desiderati.
- Usare il visualizzatore del client VNC embedded, il quale è in grado di presentare una console grafica al dominio del guest.
Nota
Procedura 18.1. Creazione di un sistema operativo guest
- Dal menu Applicazioni, selezionate Tool del sistema e successivamente Virtual Machine Manager.Apparirà la finestra principale del Virtual Machine Manager.
Figura 18.6. Virtual Machine Manager window
- Dal menu File, selezionate Nuova macchina.
Figura 18.7. Selezione di una nuova macchina
A questo punto apparirà il wizard Creazione di un nuovo sistema virtuale. - Fate clic su Avanti.
Figura 18.8. Creazione del wizard di un nuovo sistema virtuale
- Inserite il nome del nuovo sistema virtuale e successivamente fate clic su Avanti.
Figura 18.9. Come nominare il sistema virtuale
- Inserire la posizione del vostro media d'installazione. La posizione del file kickstart è facoltativa. Successivamente fate clic su Avanti .
Figura 18.10. Determinare il media d'installazione
- Eseguite una installazione su di una partizione del disco fisico, oppure su di un file system virtuale all'interno di un fle.
Nota
Questo esempio riporta l'installazione di un sistema virtuale all'interno di un file.La policy SELinux di default permette alle immagini del disco di xen di risiedere in /var/lib/xen. Se SELinux risulta essere abilitato, e se desiderate specificare un percorso personalizzato per il disco virtuale, allora sarà necessario modificare conseguentemente la policy di SELInuxAprite un terminale e create la directory /xen, impostate la policy di SELinux con il comandorestorecon -v /xen
. Specificate la posizione e la misura del disco virtuale, e successivamente fate clic su Avanti.Figura 18.11. Assegnzione dello spazio di storage
- Selezionate la memoria per assegnare il guest ed il numero di CPU virtuali, e successivamente fate clic su Avanti.
Figura 18.12. Assegnzione della memoria e della CPU
- Selezionate Avanti per aprire la console e per iniziare l'installazione dei file.
Figura 18.13. Assegnzione della memoria e della CPU
- Completate la vostra installazione all'interno della finestra.
Figura 18.14. L'installazione ha ora inizio...
Avvertimento
Quando installate Red Hat Enterprise Linux 5.0 su di un guest completamente virtualizzato, non utilizzate il kernelkernel-xen
. Usando il suddetto kernel su guest completamente virtualizzati, potreste causare una sospensione del vostro sistema.Se state utilizzando un Numero d'installazione durante l'installazione di Red Hat Enterprise Linux 5.0 su di un guest completamente virtualizzato, assicuratevi di deselezionare il gruppo del pacchettoVirtualization
durante l'installazione. L'opzione del gruppo del pacchettoVirtualization
installa il kernelkernel-xen
.Da notare che i guest paravirtualizzati non sono interessati da questo problema. I suddetti guest utilizzano sempre il kernelkernel-xen
. - Digitate
xm create -c xen-guest
per avviare il guest di Red Hat Enterprise Linux 5.0. Fate clic con il pulsante destro del mouse sul guest all'interno del Virtual Machine Manager, e successivamente selezionate Apri per aprire la console virtuale.Figura 18.15. Red Hat Enterprise Linux 5.0 (guest)
- Per poter continuare ad usare il Virtual Machine Manager, inserite il nome utente e la password.
18.8. Ripristino di una macchina precedentemente salvata
- Dal menu File, selezionate Ripristina una macchina salvata.
Figura 18.16. Restoring a Virtual Machine
- Apparirà la finestra principale di ripristino macchina virtuale.
Figura 18.17. Selezione di una sessione virtual machine salvata
- Andate nella directory corretta e selezionate il file della sessione salvata.
- Fate clic su Apri.
Figura 18.18. Sessione Virtual Machine Manager ripristinata
18.9. Displaying Virtual Machine Details
- Nella finestra principale del Virtual Machine Manager, selezionate la macchina virtuale che desiderate visualizzare.
Figura 18.19. Selezione della macchina virtuale da visualizzare
- Dal menu Modifica del Virtual Machine Manager, selezionate Dettagli macchina (oppure fate clic sul pulsante Dettagli, nella parte bassa della finestra principale del Virtual Machine Manager).
Figura 18.20. Visualizzazione Menu dettagli della macchina virtuale
Visualizzazione finestra panoramica dei dettagli della macchina virtuale. Questa finestra riassume l'utilizzo della memoria e della CPU per i domini specificati.Figura 18.21. Visualizzazione panoramica dettagli della macchina virtuale
- Nella finestra dei dettagli della macchina virtuale fate clic su Hardware .A questo punto sarete in grado di visualizzare la finestra Hardware dei dettagli della macchina virtuale.
Figura 18.22. Visualizzazione finesra Hardware dei dettagli della macchina virtuale
- Sulla tabella Hardware, fate clic su Processore per visualizzare o modificare l'assegnazione corrente della memoria del processore.
Figura 18.23. Visualizzazione assegnazione del processore
- Sulla tabella Hardware, fate clic su Memoria per visualizzare o modificare l'assegnazione della memoria RAM corrente.
Figura 18.24. Visualizzazione assegnazione della memoria
- Sulla tabella Hardware, fate clic su Disco per visualizzare o modificare la configurazione corrente del disco fisso.
Figura 18.25. Visualizzazione configurazione del disco
- Sulla tabella Hardware, fate clic su Rete per visualizzare o modificare la configurazione di rete corrente.
Figura 18.26. Visualizzazione configurazione di rete
18.10. Configuring Status Monitoring
- Dal menu Modifica, selezionate Preferenze.
Figura 18.27. Modifica preferenze della macchina virtuale
Verrà visualizzata la finestra preferenze del Virtual Machine Manager. - Dalla casella di selezione dello Status monitoring, specificare il periodo (in secondi) che il sistema deve aggiornare.
Figura 18.28. Configuring Status Monitoring
- Dall'area della console, specificare come aprire una console insieme al dispositivo input.
18.11. Visualizzazione del Domain ID
- Dal menu Visualizza, selezionate la casella Domain ID.
Figura 18.29. Visualizzazione Domain-ID
- The Virtual Machine Manager lists the Domain ID's for all domains on your system.
Figura 18.30. Visualizzazione Domain-ID
18.12. Visualizzazione dello stato della macchina virtuale
- Dal menu Visualizza, selezionate la casella Stato.
Figura 18.31. Visualizzazione dello stato della macchina virtuale
- Il Virtual Machine Manager elenca lo stato di tutte le macchine virtuali presenti sul vostro sistema.
Figura 18.32. Visualizzazione dello stato della macchina virtuale
18.13. Visualizzazione delle CPU virtuali
- Dal menu Visualizza, selezionate la casella CPU virtuali.
Figura 18.33. Visualizzazione delle CPU virtuali
- Il Virtual Machine Manager elenca le CPU virtuali per tutte le macchine virtuali presenti sul vostro sistema.
Figura 18.34. Visualizzazione delle CPU virtuali
18.14. Visualizzazione utilizzo della CPU
- Dal menu Visualizza, selezionate la casella Utilizzo CPU.
Figura 18.35. Visualizzazione utilizzo della CPU
- Il Virtual Machine Manager elenca la percentuale di CPU in uso per tutte le macchine virtuali presenti sul vostro sistema.
Figura 18.36. Visualizzazione utilizzo della CPU
18.15. Visualizzazione utilizzo della memoria
- Dal menu Visualizza, selezionate la casella Utilizzo memoria.
Figura 18.37. Visualizzazione utilizzo della memoria
- Il Virtual Machine Manager elenca la percentuale di memoria in uso (in megabyte), per tutte le macchine virtuali presenti sul vostro sistema.
Figura 18.38. Visualizzazione utilizzo della memoria
18.16. Gestione di una rete virtuale
- Dal menu Modifica, selezionate Dettagli host.
Figura 18.39. Selezione Dettagli host
- Ciò aprirà il menu Dettagli host. A questo punto fate clic sulla scheda Reti virtuali.
Figura 18.40. Configurazione rete virtuale
- Tutte le reti virtuali disponibili vengono elencate nella casella sinistra del menu. È possibile modificare la configurazione di una rete virtuale, selezionandola direttamente da questa casella e modificandola in modo da voi desiderato.
18.17. Creazione di una rete virtuale
- Open the Host Details menu (refer to Sezione 18.16, «Gestione di una rete virtuale») and click the Add button.
Figura 18.41. Configurazione rete virtuale
In tal modo aprirete il menu Crea una nuova rete virtuale. Per continuare fate clic su Avanti.Figura 18.42. Creazione di una nuova rete virtuale
- Inserite il nome appropriato per la vostra rete virtuale e successivamente fate clic su Avanti.
Figura 18.43. Come nominare la vostra rete virtuale
- Inserite uno spazio per l'indirizzo IPv4 per la vostra rete virtuale e fate clic su Avanti.
Figura 18.44. Scelta di uno spazio per l'indirizzo IPv4
- Definire il DHCP range per la vostra rete virtuale specificando un range di Inizio e Fine di indirizzi IP. Fate clic su Avanti per continuare.
Figura 18.45. Selezione di una gamma DHCP
- Selezionate il modo attraverso il quale una rete virtuale si collega alle rete fisica.
Figura 18.46. Collegamento alla rete fisica
Se selezionate Inoltro ad una rete fisica, scegliete se la Destinazione debba essere NAT per qualsiasi dispositivo fisico o NAT per il dispositivo fisico eth0.Fate clic su Avanti per continuare. - Ora sarete in grado di creare una rete. Controllate la configurazione della vostra rete e fate clic su Fine.
Figura 18.47. Pronti per creare la rete
- La nuova rete virtuale sarà ora disponibile tramite la scheda Rete virtuale del menu Dettagli host.
Figura 18.48. È ora disponibile la nuova rete virtuale
Capitolo 19. Troubleshooting di Red Hat Virtualization
19.1. Panoramica di logfile e posizioni
- La directory di configurazione principale di Red Hat Virtualization è
/etc/xen/
. Questa directory contiene il demonexend
insieme ad altri file di configurazione della macchina virtuale. Anche i file per lo script di networking risiedono qui (nella sottodirectory/scripts
). - Tutti i file di log che consulterete per il processo di troubleshooting, risiedono nella directory
/var/log/xen
.
- Ricordate che la directory predefinita per tutte le immagini del disco basate sul file della macchina virtuale, risiede nella directory
/var/lib/xen
. - Le informazioni di Red Hat Virtualization per il file system
/proc
, risiedono nella directory/proc/xen/
.
19.2. Descrizioni Logfile
xend
ed il processo qemu-dm
, le due utility che scrivono i file di log multipli sulla directory /var/log/xen/
:
xend.log
è il file di log che contiene tutti i dati raccolti dal demonexend
, sia se si tratta di un evento normale del sistema, che di un'azione inizializzata da un operatore. Tutte le operazioni della macchina virtuale (come la creazione, l'arresto e la distruzione ecc.) appaiono qui.xend.log
rappresenta generalmente il luogo dove poter controllare eventi o problemi relativi alla prestazione. Contiene voci dettagliate e condizioni relative ai messaggi d'errore.xend-debug.log
è il file di log che contiene i record degli errori relativi ad un evento dixend
, insieme ai sottosistemi di Virtualizzazione (come ad esempio framebuffer, script Python, ecc.).
xen-hotplug-log
è il file di log che contiene i dati degli eventi hotplug. Se un dispositivo o uno script di rete non risultano online, l'evento viene visualizzato qui.qemu-dm.[PID].log
è il file di log creato dal processoqemu-dm
per ogni guest completamente virtualizzato. Se utilizzate il suddetto file di log, è necessario riprendere il PID del processo diqemu-dm
in questione, tramite l'utilizzo del comandops
, in modo da esaminare gli argomenti del processo per isolare il processoqemu-dm
sulla macchina virtuale. Da notare che è necessario sostituire il simbolo [PID] con il processoqemu-dm
del PID.
virt-manager.log
che risiedono nella directory /.virt-manager
. Da notare che ogni qualvota si riavvia il Virtual Machine Manager, esso sovrascriverà i contenuti del logfile esistente. Assicuratevi di eseguire il backup del file virt-manager.log
, prima di riavviare il Virtual Machine manager dopo aver incontrato un errore.
19.3. Posizioni directory importanti
- Le immagini delle macchine virtuali risiedono nella directory
/var/lib/xen/images
.
- Quando riavviate il demone
xend
, verrà aggiornatoxend-database
il quale risiede nella directory/var/lib/xen/xend-db
.
- I dump della macchina virtuale (da voi eseguiti con il comando
xm dump-core
), risiedono nella directory/var/lib/xen/dumps
.
- La directory
/etc/xen
contiene i file di configurazione da voi utilizzati per gestire le risorse del sistema. Il file di configurazione del demonexend
viene chiamatoxend-config.sxp
, ed è possibile utilizzare il suddetto file per implementare modifiche relative a tutto il sistema, e configurare i networking callouts.
- I comandi
proc
rappresentano un'altra risorsa usata per raccogliere informazioni relative al sistema. Le suddette voci proc risiedono nella directory/proc/xen
:
/proc/xen/capabilities
/proc/xen/balloon
/proc/xen/xenbus/
19.4. Tool per il Troubleshooting
xentop
xm dmesg
xm log
vmstat
iostat
lsof
XenOprofile
systemTap
crash
sysrq
sysrq t
sysrq w
ifconfig
tcpdump
brctl
brctl
è un tool di networking che controlla e configura la configurazione dell'ethernet bridge nel kernel linux di Virtualizzazione. È necessario possedere un accesso root prima di eseguire i seguenti comandi:
# brctl show bridge-name bridge-id STP enabled interfaces ----------------------------------------------------------------------------- xenbr0 8000.feffffff no vif13.0 xenbr1 8000.ffffefff yes pddummy0 xenbr2 8000.ffffffef no vif0.0 # brctl showmacs xenbr0 port-no mac-addr local? ageing timer 1 fe:ff:ff:ff:ff: yes 0.00 2 fe:ff:ff:fe:ff: yes 0.00 # brctl showstp xenbr0 xenbr0 bridge-id 8000.fefffffffff designated-root 8000.fefffffffff root-port 0 path-cost 0 max-age 20.00 bridge-max-age 20.00 hello-time 2.00 bridge-hello-time 2.00 forward-delay 0.00 bridge-forward-delay 0.00 ageing-time 300.01 hello-timer 1.43 tcn-timer 0.00 topology-change-timer 0.00 gc-timer 0.02
19.5. Troubleshooting con i Log
xend.log
file contains the same basic information as when you run the xm log
command. It resides in the /var/log/
directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error') Traceback (most recent call list) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py" line 107 in_perform val = op_method (op,req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py line 71 in op_create raise XendError ("Error creating domain: " + str(ex)) XendError: Error creating domain: (0, 'Error')
xend-debug.log
, è molto utile per gli amministratori di sistema poichè esso contiene informazioni ancora più dettagliate rispetto a xend.log
. Di seguito viene riportato lo stesso error data relativo allo stesso problema di creazione del dominio del kernel:
ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: GUEST_OS=netbsd, GUEST_VER=2.0, XEN_VER=2.0; LOADER=generic, BSD_SYMTAB' ERROR: Error constructing guest OS
19.6. Troubleshooting con la console seriale
grub.conf
, in modo da abilitare una console seriale 38400-bps, su com1 /dev/ttyS0
:
title Red Hat Enterprise Linix (2.6.18-8.2080_RHEL5xen0) root (hd0,2) kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc module /initrd-2.6.18-8.el5xen.img
sync_console
can help determine a problem that causes hangs with asynchronous hypervisor console output, and the "pnpacpi=off"
works around a problem that breaks input on the serial console. The parameters "console=ttyS0"
and "console=tty"
means that kernel errors get logged with on both the normal VGA console and on the serial console. Then you can install and set up ttywatch
to capture the data on a remote host connected by a standard null-modem cable. For example, on the remote host you could type:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
nel file /var/log/ttywatch/myhost.log
.
19.7. Accesso console guest paravirtualizzato
xm console [domain name or number]
domain100
rappresenta un nome in esecuzione oppure un numero. È possibile utilizzare il Virtual Machine Manager per visualizzare la console di testo virtuale. Sulla finestra dei dettagli della macchina virtuale, selezionate Console seriale dal menu Visualizza.
19.8. Accesso completo alla console del guest di virtualizzazione
grub.conf
file, and include the 'console =ttyS0 console=tty0'
parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). If you plan to use the virtual serial console in a full virtualized guest, you must edit the configuration file in the /etc/xen/
directory. On the host domain, you can then access the text console by typing:
xm console
19.9. Implementazione Peristenza Lun
udev
per implementare la persistenza lun. Prima di implementarla sul vostro sistema, assicuratevi di avere gli UUID appropriati. Una volta ottenuti gli UUID corretti, sarà possibile configurare la persistenza lun modificando il file scsi_id
che risiede nella directory /etc
. Una volta aperto questo file all'interno di un editor di testo, decommentate la seguente riga:
# options=-b
# options=-g
# scsi_id -g -s /block/sdc
[root@devices] # scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
il quale risiede nella directory /etc/udev/rules.d
. Le regole per il device naming qui create dovrebbero avere il seguente formato:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e ", NAME="mydevicename"
/dev/sd*
, per l'ispezione dell'UUID dato. Una volta trovato un dispositivo corrispondente, verrà creato un nodo chiamato /dev/devicename
. Per questo esempio, il nodo del dispositivo è /dev/mydevice
. Per finire, sarà necessario aggiungere il file rc.local
il quale risiede all'interno della directory /etc
con il seguente percorso:
/sbin/start_udev
multipath.conf
, il quale risiede all'interno della directory /etc/
:
multipath { wwid 3600a0b80001327510000015427b625e alias oramp1 } multipath { wwid 3600a0b80001327510000015427b6 alias oramp2 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp3 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp4 }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
, e dev/mpath/oramp4
. I suddetti dispositivi risiedono nella directory /dev/mpath
. Questi nomi resterenno inalterati dopo l'esecuzione dei processi di riavvio, poichè verranno creati i nomi alias su wwid dei lun.
19.10. Considerazioni su SELinux
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_trans
imposta xend
in modalità unconfined dopo il riavvio del demone. Vi suggeriamo disabilitare la protezione per un demone singolo invece di disabilitarla per l'inero sistema. È consigliabile non rietichettare le directory come xen_image_t
utilizzate in altre parti.
19.11. Accesso dei dati su di una immagine del disco guest
yum install kpartx kpartx -av /dev/xen/guest1 add map guest1p1 : 0 208782 linear /dev/xen/guest1 63 add map guest1p2: 0 16563015 linear /dev/xen/guest1 208845
# kpartx -a /dev/xen/guest1 #vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type 1vm2 # vgchange -ay VolGroup00 2 logical volume(s) in volume group VolGroup00 now active. # lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M # mount /dev/VolGroup00/LogVol00 /mnt/ .... #umount /mnt/ #vgchange -an VolGroup00 #kpartx -d /dev/xen/guest1
vgchange -an
, rimuovere le partizioni con kpartx-d
, e cancellare il dispositivo loop con losetup -d
una volta terminato.
19.12. Situazioni comuni di Troubleshooting
xend
non accadrà nulla. Digitate xm list1
e ricevete quanto segue:
Error: Error connecting to xend: Connection refused. Is xend running?
xend start
manualmente, ma ricevete più errori:
Error: Could not obtain handle on privileged command interfaces (2 = No such file or directory) Traceback (most recent call last:) File "/usr/sbin/xend/", line 33 in ? from xen.xend.server. import SrvDaemon File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py" , line 26 in ? from xen.xend import XendDomain File "/usr//lib/python2.4/site-packages/xen/xend/XendDomain.py" , line 33, in ? from xen.xend import XendDomainInfo File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line37, in ? import images File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line30, in ? xc = xen.lowlevel.xc.xc () RuntimeError: (2, 'No such file or directory' )
xen-hypervisor
. Per correggere questo problema è necessario selezionare il kernel xen-hypervisor
al momento dell'avvio (oppure impostare il kernel xen-hypervisor
), come default all'interno del vostro file grub.conf
.
19.13. Errori del dispositivo loop
/etc/modprobe.conf
. Durante la modifica del file modprobe.conf
, è necessario includere questa riga:
options loop max_loop=64
phy: block device
o tap:aio
. Per impiegarli invece su di un sistema completamente virtualizzato, utilizzate i comandi phy: device
o file: file
.
19.14. Errori durante la creazione di un guest
"Invalid argument"
error message. This usually means that the kernel image you are trying to boot is incompatible with the hypervisor. An example of this would be if you were attempting to run a non-PAE FC5 kernel on a PAE only FC6 hypervisor.
grub.conf
si smista sul kernel bare-metal invece di un kernel di Virtualizzazione.
/etc/sysconfig/kernel/
. Assicuratevi che il parametro kernel-xen
, sia impostato come opzione di default all'interno del vostro file gb.conf
.
19.15. Errori della console seriale
grub.conf
ed i parametri della com port:
serial --unit=1 --speed=115200
title RHEL5 i386 Xen (2.6.18-1.2910.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200, 8n1 module /boot/vmlinuz-2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=tty console=ttyS1115200 module /boot/initrd-2.8.6.18-12910.el5xen.img title RHEL5 i386 xen (2.6.18.-1.2910.el5xen root (hd0, 8) kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200 console=com2l module /boot/vmlinuz2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=xvc xencons=xvc module /boot/ititrd-2.6.18-1.2910.el5xen.img
grub.conf
dovrebbero permettere alla vostra console seriale di funzionare correttamente. Dovreste essere in grado di utilizzare qualsiasi numero per il ttyS
, il quale dovrebbe operare come ttyS0
.
19.16. Errori Network Bridge
/etc/sysconfig/network-scripts
. You should use a process to setup multiple Xen bridges. This is an example config file for a second NIC called 'eth1'
:
#/etc/sysconfig/network-scripts/fcfg-eth1 DEVICE=eth1 BOOTPROTO=static ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 GATEWAY=10.1.1.254 ARP=yes
/etc/xen/scripts/network-bridge
su /etc/xen/scripts/network-bridge.xen
.
/etc/xen/xend-config.sxp
and add a line to your new network bridge script (this example uses "network-virtualization-multi-bridge"
).
xend-config.sxp
la nuova riga dovrebbe riflettere il vostro nuovo script:
network-script network-xen-multi-bridge
network-script network-bridge
xenbr0
e xenbr1
), e li collega rispettivamente a eth1
e eth0
.
# !/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong set -e # First arg is operation. OP=$1 shift script=/etc/xen/scripts/network-bridge.xen case ${op} in start) $script start vifnum=1 bridge=xenbr1 netdev=eth1 $script start vifnum=0 bridge=xenbr0 netdev=eth0 .. ,, stop) $script stop vifnum=1 bridge=xenbr1 netdev=eth1 $script stop vifnum=0 bridge=xenbr0 netdev=eth0 .. ,, status) $script status vifnum=1 bridge=xenbr1 netdev=eth1 $script status vifnum=0 bridge=xenbr0 netdev=eth0 .. ,, *) echo 'Unknown command: ' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
19.17. Configurazioni laptop
ifcfg-dummy0
e risiede nella directory /etc/sysconfig/network-scripts/
:
DEVICE =dummy0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 ARP=yes
xenbr0
a dummy0
, in modo da permettere un collegamento di rete anche quando risulta scollegato dalla rete fisica.
xend-config.sxp
file. You must locate the ( network-script 'network-bridge' bridge=xenbr0
) section and add include this in the end of the line:
netdev=dummy0
/etc/sysconfig/
directory to reflect the example below:
NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0
S99XenLaptopNAT
, il quale risiede nella directory /etc/rc3.d
in modo da riflettere l'esempio riportato:
#!/bin/bash/ PATH=/usr/bin:/sbin:/bin:/usr:/sbin export PATH GATEWAYDEV= "ip route | grep default | awk {print $5'}' iptables -F case "$1" in start) if test -z "$GATEWAYDEV"; then echo "No gateway device found" else echo "Masquerading using $GATEWAYDEV" /sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE fi echo "Enabling IP forwarding" echo 1 . /proc/sys/net/ipv4/ip_forward echo "IP forwarding set to 'cat /proc/sys/net/ipv4/ip_forward'" echo "done" .. '' *) echo "Usage: $0 {start | restart | status}" .. ,, esac
/etc/rc3.d/S99XenLaptopNAT
modprobe.conf
includere le seguenti righe:
alias dummy0 dummy options dummy numdummies=1
19.18. Starting Domains Automatically During System Boot
/etc/xen/auto
. Il suddetto file indica i file di configurazione del guest da avviare automaticamente. Il processo d'avvio è a fasi, ciò significa che maggiore è il numero dei guest, più lungo sarà il processo d'avvio. Questo esempio mostra come utilizzare i link simbolici per il guest rhel5vm01
:
[root@python xen]# cd /etc/xen [root@python xen]# cd auto [root@python auto]# ls [root@python auto]# ln -s ../rhel5vm01 . [root@python auto]# ls -l lrwxrwxrwx 1 root root 14 Dec 14 10:02 rhel5vm01 -> ../rhel5vm01 [root@python auto]#
19.19. Modifica di Domain0
grub.conf
configuration file, that resides in the /etc
directory. Because of the large number of domains to manage, many system administrators prefer to use the 'cut and paste' method when editing grub.conf
. If you do this, make sure that you include all five lines in the Virtualization entry (or this will create system errors). If you require Xen hypervisor specific values, you must add them to the 'xen' line. This example represents a correct grub.conf
Virtualization entry:
# boot=/dev/sda/ default=0 timeout=15 #splashimage=(hd0, 0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0, 0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200, 8n1 module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
'dom0_mem=256M'
. This example represents the respective grub.conf
xen entry:
# boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grubs/splash.xpm.gz hiddenmenu serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200, 8n1 dom0_mem=256MB module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
19.20. File di configurazione del guest
name = "rhel5vm01" memory = "2048" disk = ['tap:aio:/xen/images/rhel5vm01.dsk,xvda,w',] vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', "type=ieomu, mac=00:16:3e:09:f0:13 ] vnc = 1 vncunused = 1 uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed" bootloader = "/usr/bin/pygrub" vcpus=2 on_reboot = "restart" on_crash = "restart"
serial="pty"
is the default for the configuration file. This configuration file example is for a fully-virtualized guest:
name = "rhel5u5-86_64" builder = "hvm" memory = 500 disk = ['file:/xen/images/rhel5u5-x86_64.dsk.hda,w'] vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1'] uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5' device_model = "/usr/lib64/xen/bin/qemu-dm" kernel = "/usr/lib/xen/boot/hvmloader/" vnc = 1 vncunused = 1 apic = 1 acpi = 1 pae = 1 vcpus =1 serial ="pty" # enable serial console on_boot = 'restart'
19.21. Clonazione dei file di configurazione del guest
uuidgen(1)
command). Then for the vif
entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr
entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk='
section to point to the correct guest image.
/etc/sysconfig/network
file to match the new guest's hostname.
/etc/sysconfig/network-scripts/ifcfg-eth0
, in modo da corrispondere all'output del file ifconfig eth0
, e se utilizzate indirizzi IP statici, modificate la voce IPADDR.
19.22. Creazione di uno script per generare gli indirizzi MAC
#! /usr/bin/python # macgen.py script generates a MAC address for Xen guests # import random mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] print ':'.join(map(lambda x: "%02x" % x, mac)) Generates e.g.: 00:16:3e:66:f5:77 to stdout
19.23. Configurazione della Virtual Machine Live Migration
xm migrate
), è da notare che è possibile eseguire una migrazione live dallo stesso comando. Ricordiamo che sono presenti altre modifiche aggiuntive riguardanti il file di configurazione xend-config
. Questo esempio identifica le voci da modificare in modo da eseguire una migrazione corretta:
(xend-relocation-server yes)
- The default for this parameter is 'no', which keeps the relocation/migration server deactivated (unless on a trusted network) and the domain virtual memory is exchanged in raw form without encryption.
(xend-relocation-port 8002)
- Questo parametro imposta la porta utilizzata da
xend
per il processo di migrazione. Questo valore risulta essere corretto, assicuratevi solo di rimuovere il commento che lo precede. (xend-relocation-address )
- Questo parametro risulta essere l'indirizzo in ascolto per i collegamenti socket di riposizionamento, dopo aver abilitato
xend-relocation-server
. Durante l'ascolto esso limita la migrazione ad una particolare interfaccia. (xend-relocation-hosts-allow )
- This parameter controls the host that communicates with the relocation port. If the value is empty, then all incoming connections are allowed. You must change this to a space-separated sequences of regular expressions (such as
xend-relocation-hosts-allow- '^localhost\\.localdomain$'
). A host with a fully qualified domain name or IP address that matches these expressions are accepted.
19.24. Interpretazione dei messaggi d'errore
failed domain creation due to memory shortage, unable to balloon domain0
xend.log
:
[2006-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20 [2006-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202 Domain construction failed
xm list Domain0
command. If domain0 is not ballooned down, you can use the command "xm mem-set Domain-0 NewMemSize"
to check memory.
wrong kernel image: non-PAE kernel on a PAE
[root@smith]# xm create -c va base Using config file "va-base" Error: (22, 'invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs (XendDomainInfo:202) Domain construction failed Traceback (most recent call last) File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain() File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449] XendDlomainInfo.destroy: domin=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457] XendDlomainInfo.destroy:Domain(1)
Unable to open a connection to the Xen hypervisor or daemon
/etc/hosts
. Controllate il file e verificate se la voce localhost è stata abilitata. Di seguito viene riportato un esempio di voce locahost incorretta:
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost localhost.localdomain. localhost
xen-xend.log file
):
Bridge xenbr1 does not exist!
[root@trumble virt]# xm create r5b2-mySQL01 Using config file " r5b2-mySQL01" Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen) kernel: /vmlinuz-2.6.18-12747.el5xen initrd: /initrd-2.6.18-1.2747.el5xen.img Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
xend.log
visualizza i seguenti errori:
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0 [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2 [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2) [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status
vif
. Una volta localizzata la voce vif
del file di configurazione, assumendo che stiate utilizzando xenbr0
come bridge predefinito, assicuratevi che la voce corretta assomigli alla seguente:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
[root@python xen]# xm shutdown win2k3xen12 [root@python xen]# xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning: Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile (defconfig, globs, locs,) Error: invalid syntax 9win2k3xen12, line1)
19.25. Risorse online per il Troubleshooting
- Red Hat Virtualization Center
http://www.openvirtualization.com
- Documentazione di Red Hat Enterprise Linux 5 Beta 2
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/index.html
- Libvirt API
http://www.libvirt.org
- virt-manager Project Home Page
http://virt-manager.et.redhat.com
- Xen Community Center
http://www.xensource.com/xen/xen/
- Panoramica sulle tecnologie di Virtualizzazione
http://virt.kernelnewbies.org
- Progetti tecnologie emergenti
http://et.redhat.com
Capitolo 20. Risorse aggiuntive
20.1. Siti web utili
- http://www.cl.cam.ac.uk/research/srg/netos/xen/ — Il sito web del para-virtualization machine manager Xen™, dal quale deriva Red Hat Virtualization. Il sito gestisce i binari dell'upstream del progetto Xen ed il codice sorgente insieme alle informazioni, architetture, panoramiche, alla documentazione e link relativi, riguardanti Xen e le tecnologie ad esso associate.
- http://www.libvirt.org/ — Il sito web ufficiale per il
libvirt
virtualization API che interagisce con la struttura di virtualizzazione di un host OS. - http://virt-manager.et.redhat.com/ — Il sito web del progetto per il Virtual Machine Manager (virt-manager), l'applicazione grafica per la gestione delle macchine virtuali.
20.2. Documentazione installata
/usr/share/doc/xen-<version-number>/
—. This directory contains a wealth of information about the Xen para-virtualization hypervisor and associated management tools, including a look at various example configurations, hardware-specific information, and the current Xen upstream user documentation.man virsh
and/usr/share/doc/libvirt-<version-number>
— Contains subcommands and options for thevirsh
virtual machine management utility as well as comprehensive information about thelibvirt
virtualization library API./usr/share/doc/gnome-applet-vm-<version-number>
— Documentation for the GNOME graphical panel applet that monitors and manages locally-running virtual machines./usr/share/doc/libvirt-python-<version-number>
— Provides details on the Python bindings for thelibvirt
library. Thelibvirt-python
package allows python developers to create programs that interface with thelibvirt
virtualization management library./usr/share/doc/python-virtinst-<version-number>
— Provides documentation on thevirt-install
command that helps in starting installations of Fedora and Red Hat Enterprise Linux related distributions inside of virtual machines./usr/share/doc/virt-manager-<version-number>
— Provides documentation on the Virtual Machine Manager, which provides a graphical tool for administering virtual machines.
Appendice A. Lab 1
- Per determinare se la vostra CPU possiede un supporto PAE, digitate:
grep pae /proc/cpuinfo
- Il seguente output mostra una CPU con supporto PAE. Se il comando non ritorna alcun output, allora la CPU non presenta alcun supporto PAE. Tutti gli esercizi presenti all'interno del lab, necessitano di una CPU i386 con estensione PAE, x86_64 o ia64 per poter procedere.
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up est tm2
virt-install
.
virt-install
.
- Per installare il vostro guest Xen di Red Hat Enterprise Linux 5 Beta 2, al prompt digitate quanto segue:
virt-install
. - Quando vi verrà richiesto di installare un guest completamente virtualizzato digitate:
no
. - Digitate
rhel5b2-pv1
per il nome della vostra macchina virtuale. - Digitate 500 per l'allocazione della vostra RAM.
- Digitate
/xen/rhel5b2-pv1.img
per il vostro disco (immagine guest). - Digitate 6 per la misura del vostro disco (immagine guest).
- Digitate
yes
per abilitare il supporto grafico. - Digitate
nfs:server:/path/to/rhel5b2
per la posizione della vostra installazione. - L'installazione ha inizio. Procedere normalmente con la vostra installazione.
- Dopo aver terminato l'installazione, digitate
/etc/xen/rhel5b2-pv1
, ed eseguite le seguenti modifiche: #vnc=1#vncunused=1sdl=1 - Utilizzate un editor di testo per modificare
/etc/inittab
, aggiungendo quanto segue al file:init 5.#id:3:initdefault:id:5:initdefault:
virt-manager
.
virt-manager
.
- Per installare il vostro guest Xen di Red Hat Enterprise Linux 5 Beta 2, al prompt del comando digitate:
virt-manager
. - Sulla finestra Apri collegamento, selezionate host Xen locale e cliccate su Collega.
- Start Red Hat's Virtual Machine Manager application, and from the File menu, click on New.
- Fate clic su Avanti.
- Digitate
rhel5b2-pv2
per il nome della vostra macchina, e fate clic su Avanti. - Selezionate Paravirtualizzato e fate clic su Avanti.
- Digitate
nfs:server:/path/to/rhel5b2
per l'URL del vostro media d'installazione, e successivamente fate clic su Avanti. - Selezionate
Simple File
, digitate/xen/rhel5b2-pv2.img
per la posizione del vostro file. Scegliete 6000 MB, e fate clic su Avanti. - Selezionate 500 per il vostro VM startup e memoria massima, e successivamente fate clic su Avanti.
- Fate clic su Fine.
- To determine if your CPU has Intel-VT or AMD-V support, type the following command:
egrep -e 'vmx|svm' /proc/cpuinfo
- Il seguente output mostra una CPU in grado di supportare Intel-VT:
.flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pni monitor vmx est tm2 xtpr
Se il comando non ritorna alcun output, allora la CPU non presenta alcun supporto Intel-VT o AMD-V. - Per determinare se la vostra CPU presenta un supporto Intel-VT o AMD-V, digitate il seguente comando:
cat /sys/hypervisor/properties/capabilities
- The following output shows that Intel-VT support has been enabled in the BIOS. If the command returns nothing, then go into the BIOS Setup Utlility and look for a setting related to 'Virtualization', i.e. 'Intel(R) Virtualization Technology' under 'CPU' section on a IBM T60p. Enable and save the setting and do a power off to take effect.
xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
virt-install
:
- Per installare il vostro guest Xen di Red Hat Enterprise Linux 5 Beta 2, al prompt digitate quanto segue:
virt-install
. - Quando è necessario installare un guest completamente virtualizzato digitate
yes
. - Digitate
rhel5b2-pv2
per il nome della vostra macchina virtuale. - Digitate 500 per l'allocazione della vostra memoria.
- Digitate
/xen/rhel5b2-fv1.img
> per il vostro disco (immagine guest). - Digitate 6 per la misura del vostro disco (immagine guest).
- Digitate
yes
per abilitare il supporto grafico. - Digitate
/dev/cdrom
per l'immagine CD virtuale. - The VNC viewer appears within the installation window. If there is an error message that says “main: Unable to connect to host: Connection refused (111)”, then type the following command to proceed:
vncviewer localhost:5900
. VNC port 5900 refers to the first Xen guest that is running on VNC. If it doesn't work, you might need to use 5901, 5902, etc.
virt-manager
:
- Per installare il vostro guest Xen di Red Hat Enterprise Linux 5 Beta 2, al prompt del comando digitate:
virt-manager
. - Sulla finestra Apri collegmento, selezionate host Xen locale, e successivamente fate clic su Collega.
- Start Red Hat's Virtual Machine Monitor application, and from the File menu, click on New.
- Fate clic su Avanti.
- Digitate
rhel5b2-fv2
per il nome del vostro sistema, e successivamente su Avanti. - Selezionate completamente virtualizzato e successivamente fate clic su Avanti.
- Specificare CD-ROM o DVD, ed inserire il percorso per installare il media. Specificate la posizione dell'immagine ISO se desiderate installare da una immagine ISO. Successivamente fate clic su Avanti.
- Selezionate Simple File, digitate
/xen/rhel5b2-fv2.img
per la posizione del vostro file. Specificate 6000 MB, e successivamente fate clic su Avanti. - Selezionate 500 per il vostro VM startup e memoria massima, e successivamente fate clic su Avanti.
- Fate clic su Fine.
- Verrà visualizzata la finestra per la console della macchina virtuale.
virt-manager
.
virt-manager
:
- Qui sono valide le stesse istruzioni presenti all'interno della Sequenza 6.
virt-manager
virt-manager
.
- Qui sono valide le stesse istruzioni presenti all'interno della Sequenza 6.
virt-manager
.
virt-manager
.
- Per installare il vostro Red Hat Enterprise Linux 5 sul vostro host Windows XP, al prompt del comando digitate:
virt-manager
. - Nella finestra Apri collegamento, selezionate host Xen locale, e fate clic su Collega.
- Start Red Hat's Virtual Machine Manager application, and from the File menu click on New.
- Fate clic su Avanti.
- Digitate
winxp
per il nome del vostro sistema, e successivamente fate clic su Avanti. - Selezionate completamente virtualizzato e successivamente fate clic su Avanti.
- Specificare CD-ROM o DVD, ed inserire il percorso per installare il media. Specificate la posizione dell'immagine ISO se desiderate installare da una immagine ISO. Successivamente fate clic su Avanti.
- Selezionate Simple File, digitate
/xen/winxp.img
per la posizione del vostro file. Specificate 6000 MB, e successivamente fate clic su Avanti. - Selezionate 1024 per la vostra VM Startup e memoria massima, e selezionate 2 per le vostre VCPU. Successivamente fate clic su Avanti .
- Fate clic su Fine.
- A questo punto apparirà la finestra per la console della macchina virtuale. Procedete normalmente e terminate l'installazione.
- Scegliete di formattare la partizione
C:\
nel formato file system FAT. Red Hat Enterprise Linux 5 non presenta i moduli del kernel NTFS. Il montaggio o la scrittura dei file sull'immagine del guest Xen potrebbe non essere così semplice, se è necessario formattare la partizione in un formato file system NTFS. - Dopo aver riavviato per la prima volta il sistema, modificate l'immagine guest
winxp
:losetup /dev/loop0 /xen/winxp.imgkpartx -av /dev/loop0mount /dev/mapper/loop0p1 /mntcp -prv $WINDOWS/i386 /mnt/
. Ciò correggerà il problema che potrete incontrare in una fase successiva dell'installazione di Windows. - Riavviate manualmente il guest Xen digitando:
xm create -c winxp/
. - Nella finestra Virtual Machine Manager, selezionate il guest Xen
winxp
e fate clic su Apri. - A questo punto apparirà la finestra per la console della macchina virtuale. Procedete normalmente e terminate l'installazione.
- Whenever a 'Files Needed' dialog box appears, change the path
GLOBALROOT\DEVICE\CDROM0\I386
toC:\I386
. Depending on your installation, you may or may not see this problem. You may be prompted for missing files during the installation. Changing the path toC:\I386
should compensate for this problem. - Se la console del guest Xen si blocca, fate clic su
shutdown
, ed apportate le seguenti modifiche in/etc/xen/winxp:#vnc=1#vncunused=1sdl=1#vcpus=2
- Ripetete fase 14 e procedete normalmente con l'installazione.
Appendice B. Lab 2
host1
e host2
.
xm
), iniziando altresì una comunicazione con xend. Per abilitare la migrazione live tra macchine è necessario eseguire una configurazione atta a supportare una migrazione live:
- Per creare un backup del vostro file
xend-config.sxp
:cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default
- Modificate
/etc/xen/xend-config.sxp
ed apportate i seguenti cambiamenti:#(xend-unix-server yes)(xend-relocation-server yes)(xend-relocation-port 8002)(xend-relocation-address '')(xend-relocation-hosts-allow '')#(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
- Riavviate
xend:service
exend restart
.
- Modificate
/etc/exports
ed includere la riga:/xen *(rw,sync,no_root_squash)/
- Salvate
/etc/exports
e riavviate il server NFS. Assicuratevi che il server NFS venga avviato dadefault:service nfs startchkconfig nfs on
. - Dopo aver avviato il server NFS sull'
host1,
sarà possibile montarlo suhost2:mount host1:/xen
. - Ora avviate il guest di Xen su
host1
e selezionatefc6-pv1
(ofc6-pv2
dal Lab 1):xm create -c fc6-pv1
- Scaricate
gnump3d-2.9.9.9.tar.bz2
tarball dahttp://www.gnump3d.org/
. Estraete il tarball e nella directorygnump3d-2.9.9.9/
compilate ed installategnump3d application:tar xvjf gnump3d-2.9.9.9.tar.bz2cd gnump3d-2.9.9.9/make install
- Create a
/home/mp3
directory and copy TruthHappens.ogg from Red Hat's Truth Happens page tomkdir /home/mp3wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
- Iniziate lo streaming server digitando
command:gnump3d
- Su uno dei due host di Xen eseguite Movie Player. Se non è installato, installate gli rpm totem e iso-codec prima di eseguire Movie Player. Fate clic su Applicazioni, successivamente Suono & Video, e per finire Movie Player.
- Fate clic su Movie e successivamente Apri posizione. Inserite http://guest:8888/TruthHappens.ogg.
- Eseguite il file
TruthHappens.ogg
su di uno dei due host di Xen. - Eseguite una migrazione live da
host1
ahost2
:xm migrate –live fc6-pv1 host2
- Aprite la finestra di terminali multipli su entrambi gli host di Xen con il seguente comando:
watch -n1 xm list
- Osservate l'inizio del processo di migrazione live. Notate quanto tempo è necessario per completare tale processo.
gdm
starts up. Run VNC viewer and connect to the Xen guest. Play with the Xen guest when the live migration occurs. Attempt to pause/resume, and save/restore the Xen guest and observe what happens to the VNC viewer. If you connect to the VNC viewer via localhost:590x
, and do a live migration, you won't be able to connect to the VNC viewer again when it dies. This is a known bug.
Appendice C. Cronologia
Diario delle Revisioni | ||||
---|---|---|---|---|
Revisione 2.0-15.400 | 2013-10-31 | Rüdiger Landmann | ||
| ||||
Revisione 2.0-15 | 2012-07-18 | Anthony Towns | ||
| ||||
Revisione 5.1.0-10 | Fri Aug 3 2007 | Michael Hideo Smith | ||
|