Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Virtualizzazione con KVM su un Server CentOS 6.2

Questa guida spiega come installare e utilizzare KVM per creazione ed esecuzione di macchine virtuali su un server CentOS 6.2. Vi mostrerò come creare macchine virtuali basate su immagine e anche macchine virtuali che utilizzano un volume logico (LVM). KVM è breve per Kernel-based Virtual Machine e fa uso di virtualizzazione hardware, vale a dire, avete bisogno di una CPU che supporta la virtualizzazione hardware, ad esempio Intel VT o AMD-V.

Io non rilasciano alcuna garanzia che questo funziona per voi!

 

1 Nota preliminare

Sto usando un server CentOS 6.2 con il nome host Server1 e IP indirizzo 192.168.0.100 qui come il mio host KVM.

Avevo SELinux disabilitato sul mio sistema CentOS 6.2. Non ho provato con SELinux su; potrebbe funzionare, ma se non, è meglio disattivare SELinux pure:

vi /etc/selinux/config

Impostare SELINUX = disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

… e riavviare:

reboot  

Abbiamo anche bisogno di un sistema desktop dove abbiamo installato virt-manager in modo che ci si può collegare alla console grafica delle macchine virtuali che installiamo. Sto usando un desktop di Fedora 16 qui.

 

2 l’installazione KVM

CentOS 6.2 Host KVM:

In primo luogo verificare se la CPU supporta la virtualizzazione hardware – se questo è il caso, il comando

egrep '(vmx|svm)' --color=always /proc/cpuinfo

dovrebbe visualizzare qualcosa, ad esempio come questo:

[root@server1 ~] # egrep ‘(vmx|svm)’-colore = sempre/proc/cpuinfo
bandiere: fpu vme de pse tsc msr pae mce cx8 apic settembre mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
NX mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
bandiere: fpu vme de pse tsc msr pae mce cx8 apic settembre mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
NX mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#

Se non viene visualizzato nulla, quindi il tuo processore non supporta la virtualizzazione hardware, e si deve fermare qui.

Ora importiamo le chiavi GPG per pacchetti software:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Per installare KVM e virtinst (uno strumento per creare macchine virtuali), corriamo

yum install kvm libvirt python-virtinst qemu-kvm

Quindi avviare il demone libvirt:

/etc/init.d/libvirtd start

Per controllare se è stato installato correttamente KVM, eseguire

virsh -c qemu:///system list

Dovrebbe mostrare qualcosa come questo:

[root@server1 ~] # virsh qemu – c: / / / elenco di sistema
ID nome stato
———————————-

[root@server1 ~]#

Se viene visualizzato un errore, invece, poi qualcosa è andato storto.

Poi abbiamo bisogno di impostare un bridge di rete sul nostro server in modo che le nostre macchine virtuali sono accessibili da altri host come se fossero sistemi fisici della rete.

To do this, we install the package bridge-utils

yum install bridge-utils

… and configure a bridge. Create the file /etc/sysconfig/network-scripts/ifcfg-br0 (please use the IPADDRPREFIXGATEWAY, DNS1 and DNS2 values from the /etc/sysconfig/network-scripts/ifcfg-eth0 file); make sure you use TYPE=Bridge, not TYPE=Ethernet:

vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.100
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br0"

Modify /etc/sysconfig/network-scripts/ifcfg-eth0 as follows (comment out BOOTPROTOIPADDRPREFIXGATEWAYDNS1, and DNS2 and add BRIDGE=br0):

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=00:1E:90:F3:F0:02
TYPE=Ethernet
#BOOTPROTO=none
#IPADDR=192.168.0.100
#PREFIX=24
#GATEWAY=192.168.0.1
#DNS1=8.8.8.8
#DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
BRIDGE=br0

Restart the network…

/etc/init.d/network restart

… and run

ifconfig

It should now show the network bridge (br0):

[root@server1 ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:103 errors:0 dropped:0 overruns:0 frame:0
TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7434 (7.2 KiB) TX bytes:21398 (20.8 KiB)

eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:19511 errors:0 dropped:0 overruns:0 frame:0
TX pacchetti: 11592 errori: 0:0 overruns: 0 carrier: 0
collisioni: 0 txqueuelen:1000
RX bytes: 25980124 (24,7 MiB) TX bytes: 1104371 (1,0 MiB)
Indirizzo: 0x6000 interrupt: 28 Base

lo Link encap Loopback
inet addr:127.0.0.1 Mask: 255.0.0.0
inet6 addr::: 1/128 Scope: Host
UP LOOPBACK RUNNING 16436 Metric: 1
RX pacchetti: 7 errori: 0:0 overruns: 0 frame: 0
TX pacchetti: 7 errori: 0:0 overruns: 0 carrier: 0
collisioni: 0 txqueuelen:0
RX bytes: 3608 (3,5 KiB) TX bytes: 3608 (3,5 KiB)

virbr0 Link encap HWaddr 6A:12:69:18:2B:05
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask: 255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1
RX pacchetti: 0 errori: 0:0 overruns: 0 frame: 0
TX pacchetti: 0 errori: 0:0 overruns: 0 carrier: 0
collisioni: 0 txqueuelen:0
RX bytes: 0 (0.0 b) TX bytes: 0 (0.0 b)

[root@server1 ~]#

 

3 installazione di virt-viewer o virt-manager On Your Fedora 16 Desktop

Desktop di Fedora 16:

Abbiamo bisogno di un mezzo di collegamento alla console grafica dei nostri ospiti – possiamo usare virt-manager per questo. Parto dal presupposto che si sta utilizzando un desktop di Fedora 16.

Diventate root…

su

… ed eseguire…

yum install virt-manager libvirt qemu-system-x86 openssh-askpass

… per installare virt-manager.

(Se si sta utilizzando un desktop di Ubuntu 11.10, è possibile installare virt-manager come segue:

sudo apt-get install virt-manager

)

 

4 creazione di una Debian Squeeze Guest (basata su immagine) dalla riga di comando

CentOs 6.2 Host KVM:

Ora torniamo al nostro ospite di CentOS 6.2 KVM.

Da un’occhiata

man virt-install

per imparare a usare virt-install.

Creeremo il nostro macchine virtuali basate su immagine nella directory /var/lib/libvirt/immagini/ che è stato creato automaticamente quando abbiamo installato KVM nel capitolo due.

Per creare un ospite di Debian Squeeze (in modalità di bridging) con il nome vm10, 512 MB di RAM, due CPU virtuali e il disco immagine /var/lib/libvirt/images/vm10.img (con una dimensione di 12 GB), inserire il CD di Netinstall Debian Squeeze nell’unità CD e Correre

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

Naturalmente, è anche possibile creare un’immagine ISO del Debian Squeeze Netinstall CD (si prega di crearlo nella /var/lib/libvirt/immagini/ directory perché più tardi vi mostrerò come creare macchine virtuali attraverso virt-manager dal tuo desktop di Fedora, e virt-manager andrà a cercare immagini ISO nella /var/lib/libvirt/immagini/ directory)…

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso

… e utilizzare l’immagine ISO nel comando virt-install:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

L’output è il seguente:

[root@server1 ~] # virt-install– collegare qemu: / / / sistema – n vm10 – r 512 – vCPU = 2–disco path=/var/lib/libvirt/images/vm10.img,size=12 – c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso– vnc – noautoconsole – os-tipo linux – sistema operativo-variante Squeeze – accelerare – rete = ponte: br0 – hvm

A partire di installare…
L’allocazione di ‘vm10.img’ | 12 GB 00:00
Creazione di dominio… | 0 B 00:00
Installazione di dominio ancora in corso. È possibile riconnettersi a
la console per completare il processo di installazione.
[root@server1 ~]#

5 collegamento all’ospite

Desktop di Fedora 16:

L’ospite KVM sarà ora il boot dal CD Netinstall di Debian Squeeze e avviare l’installatore Debian – è per questo che abbiamo bisogno di connettersi alla console grafica dell’ospite. È possibile farlo con virt-manager sul desktop Fedora 16.

Vai alla applicazioni > strumenti di sistema > Virtual Machine Manager per avviare virt-manager:

Quando si avvia virt-manager per la prima volta, molto probabilmente vedrete il seguente messaggio (Impossibile aprire una connessione con il daemon di gestione libvirt.). È possibile ignorare questo perché non vogliamo collegare al demone libvirt locali, ma a quella nel nostro ospite CentOS 6.2 KVM. Fare clic su Chiudi

… e andare a File > Aggiungi connessione… per connettersi al nostro ospite di CentOS 6.2 KVM:

Selezionare QEMU/KVM come Hypervisor, quindi controllo connessione all’host remoto, seleziona SSH nel menu a discesa Metodo , tipo nella root come nome utente e il nome host (Server1o l’indirizzo IP (192.168.0.100) dell’host CentOS 6.2 KVM nel campo Hostname . Quindi fare clic su Connetti:

Se questa è la prima connessione al server KVM remoto, è necessario digitare in  e fare clic su OK:

In seguito digitare la password di root dell’host CentOS 6.2 KVM:

Si dovrebbe vedere vm10 come in esecuzione. Marchio che gli ospiti e fare clic sul pulsante Apri per aprire la console grafica dell’ospite:

Digitare nuovamente la password di root dell’host KVM:

Si dovrebbe ora essere collegato alla console grafica dell’ospite e vedere l’installatore Debian:

Ora installare Debian come si farebbe normalmente su un sistema fisico. Siete pregati di notare che al termine dell’installazione, l’ospite Debian ha bisogno di un riavvio. L’ospite poi si arresta, quindi è necessario avviare nuovamente, con virt-manager o come questo sulla nostra linea di comando host CentOS 6.2 KVM:

CentOS 6.2 Host KVM:

virsh --connect qemu:///system
start vm10
quit

In seguito, è possibile collegare all’ospite nuovamente con virt-manager e configurare l’ospite. Se si installa OpenSSH (pacchetto openssh-server) nel guest, è possibile connettersi ad esso con un client SSH (ad esempio PuTTY).

6 Creazione di un ospite di Debian Squeeze (Image-Based) da The Desktop con virt-manager

Invece di creare una macchina virtuale da linea di comando (come illustrato nel capitolo 4), è possibile anche creare dal desktop Fedora usando virt-manager (naturalmente, la macchina virtuale verrà creata nell’host di CentOS 6.2 KVM – nel caso in cui ti chiedi se virt-manager è in grado di creare macchine virtuali su sistemi remoti).

Per effettuare questa operazione, fare clic sul pulsante seguente:

Il dialogo di Nuova VM viene in su. Immettere un nome per la macchina virtuale (ad esempio vm11), selezionare locale installare media (immagine ISO o CD-ROM)e fare clic su Avanti:

Quindi selezionare Linux nel menu a discesa tipo di OS e Debian Squeeze nel menu a discesa versione , poi controllare uso ISO immagine e fare clic sul pulsante Sfoglia… :

Selezionare l’immagine di debian-6.0.2.1-amd64-netinst. ISO creato nel capitolo 4 e fare clic su Scegli Volume:

Ora cliccate su Avanti:

Assegnare la memoria e il numero di CPU alla macchina virtuale e fare clic su Avanti:

Ora veniamo all’archiviazione. Verifica consentono l’archiviazione per questa macchina virtuale, selezionare Crea un’immagine del disco sul disco rigido del computer, specificare la dimensione del disco rigido (ad esempio 12 GB) e verifica Allocate intero disco in questo momentoQuindi fare clic su Avanti:

Ora veniamo all’ultimo passaggio del dialogo Nuova VM . Andare nella sezione Opzioni avanzate . Selezionare vnet0 dispositivo Host (ponte ‘br0’)Questo è il nome del ponte che abbiamo creato nel capitolo 2. Fare clic su Finish in seguito:

Ora viene creato l’immagine del disco della macchina virtuale:

Successivamente, inizierà la VM. Digitare la password di root dell’host CentOS 6.2 KVM:

Si dovrebbe ora essere collegato alla console grafica dell’ospite e vedere l’installatore Debian:

Ora installare Debian come si farebbe normalmente su un sistema fisico.

7 Gestione Guest KVM dalla riga di comando

CentOS 6.2 Host KVM:

KVM ospiti possono essere gestiti tramite virsh, la shell”virtuale”. Per connettersi alla shell virtuale, eseguire

virsh --connect qemu:///system

Ecco come appare la shell virtuale:

[root@server1 ~] # virsh – collegare qemu: / / / sistema
Benvenuti a virsh, il terminale interattivo di virtualizzazione.

Tipo: ‘help’ per l’aiuto con i comandi
‘Esci’ per uscire da

virsh n.

È ora possibile digitare comandi sul guscio virtuale per gestire i vostri ospiti. Correre

help

per ottenere un elenco dei comandi disponibili:

Guida di # virsh
Comandi raggruppati:

Gestione del dominio (parola chiave della guida ‘dominio’):
dispositivo di allegare allegare il dispositivo da un file XML
disco di allegare allegare periferica disco
interfaccia di allegare allegare interfaccia di rete
autostart autostart un dominio
blkiotune ottenere o impostare i parametri blkio
blockpull popolare un disco dalla sua immagine di backup.
blockjob gestire le operazioni di blocco attivo.
Console di connettersi alla console di ospite
CPU-linea di base di calcolo base CPU
CPU-confrontare confrontare CPU host con un CPU descritto da un file XML
creare creare un dominio da un file XML
definire definire (ma non iniziare) un dominio da un file XML
distruggere (fermata) di distruggere un dominio
dispositivo di scollegamento scollegare il dispositivo da un file XML
staccare-disco Scollega dispositivo disco
interfaccia di staccare staccare interfaccia di rete
DomiD convertire un nome di dominio o l’UUID in dominio id
domjobabort interruzione lavoro di dominio attivo
informazioni sul processo di dominio domjobinfo
DOMname convertire un dominio id o UUID in nome di dominio
domuuid convertire un id o un nome di dominio in dominio UUID
domxml-da-nativo convertire nativo config al dominio XML
dominio di Convert domxml a nativo XML nativo config
il nucleo di un dominio in un file per l’analisi del dump di dump
informazioni sul dominio dumpxml in XML
modifica modificare XML di configurazione per un dominio
iniettare-nmi iniettare NMI per l’ospite
tasto Send invia keycodes all’ospite
managedsave riuscito salvataggio di uno stato di dominio
managedsave-remove rimuovere gestito salva di un dominio
maxvcpus connessione vcpu massimo
memtune ottenere o impostare i parametri di memoria
eseguire la migrazione la migrazione dominio a un altro host
la migrazione-setmaxdowntime imposta tempo di inattività massimo tollerabile
la migrazione-setspeed impostare la larghezza di banda massima migrazione
riavvio riavvio un dominio
Ripristino configurazione di un dominio da uno stato salvato in un file
Resume del resume un dominio
Salva salvare uno stato di dominio in un file
Salva-immagine-definire ridefinire il codice XML per un dominio di salvato file dello stato
Salva-immagine-dumpxml stato dominio informazioni salvate in formato XML
Salva-immagine-modifica modifica XML per il file di stato salvato di un dominio
schedinfo Visualizza e imposta i parametri di pianificazione
Screenshot di prendere uno screenshot di una console di dominio corrente e memorizzarlo in un file
setmaxmem modificare il limite massimo della memoria
SETMEM modificare l’allocazione di memoria
setvcpus cambiare il numero di CPU virtuali
arresto con grazia arresto un dominio
Start avvia un dominio inattivo (precedentemente definito)
sospendere sospendere un dominio
console tty ttyconsole
annullare la definizione di annullare la definizione di un dominio inattivo
aggiornamento aggiornamento-dispositivo da un file XML
vcpucount dominio vcpu conta
vcpuinfo dominio vcpu informazioni dettagliate
vcpupin controllo o query affinità vcpu del dominio
Visualizza versione
display vnc vncdisplay

Monitoraggio del dominio (parola chiave della guida ‘monitor’):
informazioni sulle dimensioni di domblkinfo dominio blocco dispositivo
domblklist elenco tutti i blocchi di dominio
domblkstat ottenga lo stats di blocco del dispositivo per un dominio
stato di interfaccia del controllo dominio domcontrol
domifstat ottenere statistiche di interfaccia di rete per un dominio
informazioni di dominio dominfo
dommemstat ottenere statistiche di memoria per un dominio
stato del dominio domstate
elencare i elenco domini

Host e Hypervisor (parola chiave della guida ‘host’):
funzionalità di funzionalità
collegare (ri) connettersi hypervisor
memoria libera di FreeCell NUMA
stampa nome host il nome host hypervisor
nodecpustats cpu stampe statistiche del nodo.
informazioni sul nodo di NodeInfo
nodememstats statistiche di memoria di stampe del nodo.
QEMU-allegare allegare QEMU
Monitor di QEMU QEMU-monitor-comando
sysinfo stampare il controllo sysinfo hypervisor
l’hypervisor di stampa Uri URI canonico

Interfaccia (parola chiave della guida ‘interfaccia’):
iface-iniziare a creare uno snapshot delle impostazioni correnti di interfacce, che può essere compiuto successivamente (iface-commit) o ripristinata (iface-rollback)
iface-commit commit le modifiche apportate dall’iface-iniziare e gratuito punto di ripristino
iface-definire definire (ma non iniziare) un’interfaccia host fisico da un file XML
iface-distruggere distruggere un’interfaccia host fisico (disattivarlo / “Se-down”)
informazioni sull’interfaccia iface-dumpxml in XML
iface-modifica modifica configurazione XML per un’interfaccia host fisico
interfacce iface-elenco elenco host fisico
iface-mac convertire un nome di interfaccia per l’indirizzo MAC dell’interfaccia
iface-nome convertire un’interfaccia indirizzo MAC in nome dell’interfaccia
rollback di iface-rollback alla precedente configurazione salvata creata tramite iface-iniziare
iface-start avvia un’interfaccia host fisico (abilitarlo / “if-up”)
iface-undefine annullare la definizione di un’interfaccia host fisico (rimuoverlo dalla configurazione)

Filtro di rete (parola chiave della guida ‘filtro’):
nwfilter-definire definire o aggiornare un filtro di rete da un file XML
nwfilter-dumpxml filtro di rete in XML
nwfilter-modifica modifica configurazione XML per un filtro di rete
filtri di rete elenco nwfilter-elenco
nwfilter-undefine annullare la definizione di un filtro di rete

Networking (parola chiave della guida ‘rete’):
NET-autostart autostart una rete
NET di creare creare una rete da un file XML
NET-definire definire (ma non iniziare) una rete da un file XML
NET-distruggere distruggere (fermata) una rete
informazioni di rete NET-dumpxml in XML
NET-modifica modifica configurazione XML per una rete
informazioni di rete NET-info
reti di NET-elenco elenco
NET-nome convertire una rete UUID in nome di rete
NET-start avviare una rete inattiva (precedentemente definita)
net-undefine annullare la definizione di una rete inattiva
NET-uuid convertire un nome di rete in rete UUID

Node Device (help keyword ‘nodedev’):
nodedev-creare creare un dispositivo definito da un file XML sul nodo
nodedev-distruggere distruggere (fermata) un dispositivo sul nodo
dispositivo di nodo di sganciare nodedev-sganciare dal relativo driver di dispositivo
nodedev-dumpxml dettagli di dispositivo nodo in XML
nodedev-elenco enumerare i dispositivi su questo host
nodedev-riattaccare ricollegare nodo periferica per il driver di periferica
nodedev-reset Ripristina dispositivo nodo

Segreto (parola chiave della guida ‘segreto’):
segreto-definire definire o modificare un segreto da un file XML
in XML gli attributi segreto segreto-dumpxml
segreto-get-valore uscita un valore segreto
Segreti segreti-elenco elenco
segreto-insieme-valore impostato un valore segreto
segreto-undefine annullare la definizione di un segreto

Istantanea (parola chiave della guida ‘snapshot’):
creare snapshot crea uno snapshot da XML
snapshot-creare-come creare uno snapshot da un insieme di args
corrente istantanea Get o set lo snapshot corrente
snapshot-delete Elimina uno snapshot di dominio
snapshot-dumpxml Dump XML per un’istantanea di dominio
snapshot-modifica modifica XML per un’istantanea
snapshot-elenco elenco snapshot per un dominio
snapshot-padre ottenere il nome del padre di uno snapshot
snapshot-revert ripristina un dominio a uno snapshot

Pool di archiviazione (parola chiave della guida ‘pool’):
trovare-deposito-piscina-fonti-come trovare potenziali fonti di piscina di deposito
trovare-deposito-piscina-fonti scoprire potenziali fonti di pool di archiviazione
piscina-autostart autostart una piscina
piscina-costruire costruire una piscina
piscina-creare-come creare un pool da un insieme di args
piscina-creare creare una piscina da un file XML
piscina-definire-come definire un pool da un insieme di args
piscina-definire definire (ma non iniziare) una piscina da un file XML
piscina-delete Elimina un pool
piscina-distruggere distruggere (fermata) una piscina
informazioni di piscina piscina-dumpxml in XML
piscina-modifica modifica configurazione XML per un pool di archiviazione
informazioni sul pool di storage pool-info
piscine elenco elenco pool
nome del pool convertire una piscina UUID in nome del pool
piscina-Aggiorna aggiorna una piscina
piscina-start avviare un pool inattivo (precedentemente definito)
piscina-undefine undefine una piscina inattiva
piscina-uuid convertire un nome di piscina in piscina UUID

Volume di archiviazione (parola chiave della guida ‘volume’):
Vol-clone clonare un volume.
vol-creare-come creare un volume da un insieme di args
vol-creare creare una vol da un file XML
vol-creare-da creare una vol, usando un altro volume in ingresso
Vol-delete Elimina una vol
Vol-download scaricare un volume su un file
Vol-dumpxml vol informazioni in XML
Vol-informazioni deposito vol
tasto Vol restituisce il tasto del volume per un dato volume nome o percorso
Vol-elenco elenco vols
Vol-name Restituisce il nome del volume per un dato volume chiave o percorso
Vol-path restituisce il percorso del volume per un dato volume nome o la chiave
Vol-piscina restituisce il pool di archiviazione per un dato volume chiave o percorso
Vol-caricamento per caricare un file in un volume
Vol-pul pulisce una vol

Virsh stesso (parola chiave della guida ‘virsh’):
CD cambia la directory corrente
Eco Eco argomenti
uscita chiusura questo terminale interattivo
Guida di guida di stampa
pwd stampa la directory corrente
smettere di uscire da questo terminale interattivo

virsh n.

list

Mostra tutti gli ospiti in esecuzione;

list --all

Mostra tutti gli ospiti, in esecuzione e inattivi:

lista di # virsh– tutti
ID nome stato
———————————-
3 esecuzione vm11
-spegnere il vm10

virsh n.

Se si modifica il file xml di un ospite (che si trova nella directory/etc/libvirt/qemu / ), è necessario ridefinire l’ospite:

define /etc/libvirt/qemu/vm10.xml

Siete pregati di notare che ogni volta che si modifica il file xml dell’ospite in/etc/libvirt/qemu /, è necessario eseguire il comando di Definire nuovamente!

Per avviare un ospite arrestato, eseguire:

start vm10

Per interrompere un ospite, eseguire

shutdown vm10

Per fermarlo immediatamente (cioè, tirare la spina di alimentazione), eseguire

destroy vm10

Sospendere un ospite:

suspend vm10

Riprendere un ospite:

resume vm10

Questi sono i comandi più importanti.

Tipo

quit

per lasciare la shell virtuale.

8 Creazione di un Guest basato su LVM dalla riga di comando

CentOS 6.2 Host KVM:

Basato su LVM ospiti presentano alcuni vantaggi rispetto gli ospiti basati su immagine. Essi non sono così pesanti sul disco rigido IO, e sono più facili da eseguire il backup (utilizzo di snapshot di LVM).

Per utilizzare gli ospiti basato su LVM, è necessario un gruppo di volumi che ha spazio libero non allocato a qualsiasi volume logico. In questo esempio, utilizzare il gruppo di volume /dev/vg_server1 con una dimensione di circa 465 GB…

vgdisplay

[root@server1 ~] # vgdisplay
—Gruppo di volume–
Nome di VG vg_server1
ID di sistema
Formato lvm2
Metadati zone 1
Metadati di sequenza non 5
VG accesso in lettura/scrittura
VG stato ridimensionabile
MAX LV 0
Cur LV 3
Aprire LV 3
Max PV 0
Cur PV 1
Atto PV 1
VG dimensioni 465.27 GiB
PE dimensione 4.00 MiB
Totale PE 119109
Alloc PE / dimensioni 24480 / 95.62 GiB
Free PE / Size 94629 / 369.64 GiB
VG UUID jk2N5a-pQdV-I49Y-UCR9-A0Js-jEe0-0y6Ipg

[root@server1 ~]#

… che contiene i volumi logici /dev/vg_server1/lv_root con una dimensione di circa 50 GB, /dev/vg_server1/lv_home con una dimensione di circa 40 GB e /dev/vg_server1/lv_swap (circa 6 GB) – il resto non viene allocato e può essere utilizzato per gli ospiti KVM:

lvdisplay

[root@server1 ~] # lvdisplay
—Volume logico–
Nome LV /dev/vg_server1/lv_root
Nome di VG vg_server1
UUID di LV il99XH-Q7QV-R16x-Q51X-GOzp-8uq1-aMUb82
Accesso in scrittura LV lettura/scrittura
Condizione di LV disponibile
# aprire 1
LV dimensioni 50.00 GiB
LE corrente 12800
Segmenti 1
Allocazione di ereditare
Auto avanti settori di lettura
-attualmente impostato a 256
253:0 dispositivo di blocco

—Volume logico–
Nome LV /dev/vg_server1/lv_home
Nome di VG vg_server1
LV UUID 2OqWO9-4P91-UDzK-K6i3-zgJz-vJWN-9OMXpi
Accesso in scrittura LV lettura/scrittura
Condizione di LV disponibile
# aprire 1
LV dimensioni 40.00 GiB
LE corrente 10240
Segmenti 1
Allocazione di ereditare
Auto avanti settori di lettura
-attualmente impostato a 256
253:2 dispositivo di blocco

—Volume logico–
Nome LV /dev/vg_server1/lv_swap
Nome di VG vg_server1
UUID di LV f5e90C-DMt8-896t-MmNo-S2FM-7hSd-gtVGjy
Accesso in scrittura LV lettura/scrittura
Condizione di LV disponibile
# aprire 1
LV dimensione 5,62 GiB
Corrente LE 1440
Segmenti 1
Allocazione di ereditare
Auto avanti settori di lettura
-attualmente impostato a 256
253:1 dispositivo di blocco

[root@server1 ~]#

Ora voglio creare la macchina virtuale vm12 come un guest basato su LVM. Vm12 voglio di avere 20 GB di spazio su disco, quindi creare il volume logico /dev/vg_server1/vm12 con una dimensione di 20 GB:

lvcreate -L20G -n vm12 vg_server1

In seguito, usiamo il comando virt-install nuovamente per creare l’ospite:

virt-install --connect qemu:///system -n vm12 -r 512 --vcpus=2 --disk path=/dev/vg_server1/vm12 -c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm 

Please note that instead of –disk path=/var/lib/libvirt/images/vm12.img,size=20 I use –disk path=/dev/vg_server1/vm12, and I don’t need to define the disk space anymore because the disk space is defined by the size of the logical volume vm12 (20GB).

Now follow chapter 5 to install that guest.

 

9 Converting Image-Based Guests To LVM-Based Guests

CentOS 6.2 Host:

No let’s assume we want to convert our image-based guest vm10 into an LVM-based guest. This is how we do it:

First make sure the guest is stopped:

virsh --connect qemu:///system
shutdown vm10
quit

Then create a logical volume (e.g. /dev/vg_server1/vm10) that has the same size as the image file – the image has 12GB, so the logical volume must have 12GB of size as well:

lvcreate -L12G -n vm10 vg_server1

Now we convert the image:

qemu-img convert /var/lib/libvirt/images/vm10.img -O raw /dev/vg_server1/vm10

Afterwards you can delete the disk image:

rm -f /var/lib/libvirt/images/vm10.img

Now we must open the guest’s xml configuration file /etc/libvirt/qemu/vm10.xml

vi /etc/libvirt/qemu/vm10.xml

… and change the following section…

[...]
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/var/lib/libvirt/images/vm10.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
[...]

… so that it looks as follows:

[...]
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source dev='/dev/vg_server1/vm10'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
[...]

In seguito dobbiamo ridefinire l’ospite:

virsh --connect qemu:///system
define /etc/libvirt/qemu/vm10.xml

Ancora sul guscio virsh , possiamo iniziare l’ospite…

start vm10

… e lasciare il guscio di virsh :

quit

 

  • KVM: http://www.linux-kvm.org/
  • CentOS: http://www.centos.org/
  • Fedora: http://fedoraproject.org/
  • Debian: http://www.debian.org/

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp