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

Paravirtualizzazione con Xen su CentOS 5.6 (x86_64)

In questa esercitazione vengono fornite istruzioni dettagliate su come installare Xen(versione 3.0.3) su un sistema CentOS 5.6 (x86_64).

Xen consente di creare sistemi operativi guest (* nix sistemi operativi come Linux e FreeBSD), così chiamato “macchine virtuali” o domUs, sotto un sistema operativo host (dom0). Utilizzando Xen è possibile separare le applicazioni in diverse macchine virtuali che sono totalmente indipendenti gli uni dagli altri (ad esempio una macchina virtuale per un server di posta, una macchina virtuale per un sito web ad alto traffico, un’altra macchina virtuale che serve dei vostri clienti siti Web, una macchina virtuale per DNS, ecc.), ma ancora utilizzare lo stesso hardware. Ciò consente di risparmiare denaro, e ciò che è ancora più importante, è più sicuro. Se la macchina virtuale del server DNS viene violata, non ha alcun effetto sulle altre macchine virtuali. Inoltre, è possibile spostare macchine virtuali da un server Xen a quello successivo.

Io uso CentOS 5.6 (x86_64) per l’host OS (dom0) e l’ospite OS (domU).

Questo howto è da intendersi come una guida pratica; non copre gli sfondi teorici. Sono trattati in un sacco di altri documenti nel web.

Questo documento viene fornito senza garanzia di alcun tipo! Voglio dire che questo non è l’unico modo di impostazione di un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo di che prendere. Io non rilasciano alcuna garanzia che questo funziona per voi!

 

1 Nota preliminare

Questa guida vi spiegherà come configurare macchine virtuali basate su immagine e anche macchine virtuali basate su LVM.

Assicurarsi che SELinux è disabilitato o permissiva:

vi /etc/sysconfig/selinux
# 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 - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

Se dovuto modificare /etc/sysconfig/selinux, si prega di riavviare il sistema:

reboot  

 

2 l’installazione di Xen

Per installare Xen, abbiamo semplicemente eseguire

yum install kernel-xen xen

Consente di installare Xen e un kernel Xen sul nostro sistema CentOS.

Prima che si possa avviare il sistema con il kernel Xen, si prega di controllare la configurazione del bootloader GRUB. Apriamo /boot/grub/menu.lst:

vi /boot/grub/menu.lst

Il primo kernel elencati deve essere il kernel Xen che hai appena installato:

[...]
title CentOS (2.6.18-238.9.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-238.9.1.el5
        module /vmlinuz-2.6.18-238.9.1.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-238.9.1.el5xen.img
[...]

Modificare il valore predefinito 0 (in modo che il primo kernel (kernel Xen) verrà avviato per impostazione predefinita):

[...]
default=0
[...]

Il completo /boot/grub/menu.lst dovrebbe assomigliare a questo:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-238.9.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-238.9.1.el5
        module /vmlinuz-2.6.18-238.9.1.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-238.9.1.el5xen.img
title CentOS (2.6.18-238.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-238.el5.img

In seguito, abbiamo riavviare il sistema:

reboot

Il sistema dovrebbe ora avvio automaticamente il nuovo kernel Xen. Una volta avviato il sistema, possiamo verificare che eseguendo

uname -r

[root@server1 ~] # uname – r
2.6.18-238.9.1.el5xen
[root@server1 ~]#

Così è davvero usare il nuovo kernel Xen!

Ora possiamo eseguire

xm list

per controllare se ha iniziato a Xen. Esso dovrebbe elencare dominio-0 (dom0):

[root@server1 ~] # xm list
Nome ID Mem(MiB) vCPU stato time (s)
Dominio-0 0 3343 2 r—18,1
[root@server1 ~]#

3 creare una macchina virtuale basato su immagine

Voglio memorizzare le immagini disco delle mie macchine virtuali basate su immagini nella directory /vmNaturalmente, è possibile utilizzare qualsiasi altra directory che disponga di sufficiente spazio a sinistra. Se si utilizza un’altra directory, è possibile sostituire /vm con la propria directory in questo tutorial.

Se si desidera salvare le macchine virtuali in /vm, troppo, ma non hai creato una partizione per esso o se la directory /vm non esiste sul sistema, è possibile crearlo come questo:

mkdir /vm

CentOS è dotato di un simpatico strumento chiamato virt-install con cui possiamo creare macchine virtuali per Xen. Per avviarlo, corriamo semplicemente

virt-install --prompt 

Gli strumenti pone qualche domanda prima di creare una macchina virtuale. Voglio chiamare la mia prima macchina virtuale vm01, con 512 MB di RAM e una dimensione di disco di 4 GB. Voglio conservarlo nel file /vm/vm01.img:

Vorresti un guest completamente virtualizzato (Sì o no)? Questo vi permetterà di eseguire sistemi operativi non modificati. < no
Qual è il nome della macchina virtuale? <-vm01
Quanta RAM deve essere allocato (in megabyte)? < – 512
Quello che vuoi utilizzare come disco (percorso file)?<-/vm/vm01.img
Quanto grande volete il disco (/ vm/vm01.img) per essere (in gigabyte)? < – 4
Qual è l’URL di installazione? <-http://wftp.tu-chemnitz.de/pub/linux/centos/5.6/os/x86_64

Si dovrebbe rispondere alla prima domanda su guest completamente virtualizzato con Nessun perché altrimenti non si vedrà il programma di installazione di CentOS – l’installazione del sistema guest vi sembrerà per appendere.

Come installare URL, è necessario specificare un mirror vicino dove il programma di installazione può scaricare tutti i file necessari per l’installazione di CentOS 5.6 nella nostra macchina virtuale. È possibile trovare un elenco dei mirror di CentOS qui: http://www.centos.org/modules/tinycontent/index.php?id=13

Dopo abbiamo risposto tutte le domande, virt-install avvia il programma di installazione di CentOS 5.6 normale (in modalità testo) nella nostra macchina virtuale vm01 . Si conosce già il programma di installazione di CentOS, quindi non dovrebbe essere nessun problema per voi completare l’installazione di CentOS in vm01.

Dopo l’installazione, abbiamo soggiornato presso il console vm01 . Per lasciarlo, digitare CTRL +] se sei al console, o CTRL + 5 , se si sta utilizzando PuTTY. Sarete quindi torna alla console del dom0 .

virt-install ha creato il file di configurazione vm01 /etc/xen/vm01 per noi (in dom0). Dovrebbe assomigliare a questo:

cat /etc/xen/vm01
name = "vm01"
uuid = "809dd76e-f48e-8a3d-343b-1dd8b1d585ea"
maxmem = 512
memory = 512
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
disk = [ "tap:aio:/vm/vm01.img,xvda,w" ]
vif = [ "mac=00:16:36:33:80:b7,bridge=xenbr0,script=vif-bridge" ]

Correre

xm console vm01 

per accedere nuovamente quella macchina virtuale (tipo CTRL +] se sei presso la console, o CTRL + 5 , se si sta utilizzando PuTTY per tornare a dom0), o utilizzare un client SSH per connettersi ad esso.

Per ottenere un elenco di macchine virtuali in esecuzione, digitare

xm list 

L’output dovrebbe assomigliare a questo:

[root@server1 ~] # xm list
Nome ID Mem(MiB) vCPU stato time (s)
Dominio-0 0 2702 2 r—83,4
VM01 3 512 1 – b—18,2
[root@server1 ~]#

Per arrestare vm01, procedere come segue:

xm shutdown vm01 

Per avviare nuovamente vm01 , eseguire

xm create /etc/xen/vm01 

Se si desidera vm01 per avviare automaticamente al prossimo avvio del sistema, quindi procedere come segue:

ln -s /etc/xen/vm01 /etc/xen/auto

Qui ci sono i comandi più importanti di Xen:

creare xm – c /path/to/config – avvia una macchina virtuale.
xm shutdown < nome > – fermata una macchina virtuale.
xm distruggere < nome > – fermata una macchina virtuale immediatamente senza spegnerlo. È come se si spegne il tasto di accensione. 
elenco di xm – elenco di tutti i sistemi in esecuzione.
xm console < nome > – Log in su una macchina virtuale.
Guida di xm – elenco di tutti i comandi.

 

4 creazione di una macchina virtuale basato su LVM

Questo capitolo spiega come è possibile configurare macchine virtuali basate su LVM invece di macchine virtuali che utilizzano immagini disco. Macchine virtuali che utilizzano immagini disco sono molto lento e pesante sul disco IO.

In questo esempio sto usando un host di CentOS 5.6 con il LVM volume gruppo /dev/VolGroup00 che ha circa 465 GB di spazio. /dev/VolGroup00 contiene due volumi logici, /dev/VolGroup00/LogVol00 e /dev/VolGroup00/LogVol01 che consumano circa 104 GB di spazio – il resto non viene allocato e può essere utilizzato per creare volumi logici per nostro virtuale macchine:

vgdisplay

[root@server1 ~] # vgdisplay
/ dev/hda: apertura non riuscita: nessun mezzo trovato
—Gruppo di volume–
VolGroup00 nome VG
ID di sistema
Formato lvm2
Metadati zone 1
Metadati sequenze No 3
VG accesso in lettura/scrittura
VG stato ridimensionabile
MAX LV 0
Cur LV 2
Aprire LV 2
Max PV 0
Cur PV 1
Atto PV 1
VG dimensioni 465,66 GB
PE dimensione 32,00 MB
Totale PE 14901
Alloc PE / dimensioni 3303 / 103,22 GB
Free PE / Size 11598 / 362,44 GB
VG UUID veUbuN-BNGq-BP3S-H3mP-bWOF-tbAX-GeIhy6

[root@server1 ~]#

lvdisplay

[root@server1 ~] # lvdisplay
/ dev/hda: apertura non riuscita: nessun mezzo trovato
—Volume logico–
Nome LV /dev/VolGroup00/LogVol00
VolGroup00 nome VG
LV UUID 5tEz3i-YlR7-rdQB-VCPK-xHlB-GsWU-4Rijqk
Accesso in scrittura LV lettura/scrittura
Condizione di LV disponibile
# aprire 1
LV dimensioni 97,66 GB
LE corrente 3125
Segmenti 1
Allocazione di ereditare
Auto avanti settori di lettura
-attualmente impostato a 256
253:0 dispositivo di blocco

—Volume logico–
Nome LV /dev/VolGroup00/LogVol01
VolGroup00 nome VG
LV UUID 3qp5ia-uBJl-eeNZ-JOkH-4E6o-ZAbf-HvdNms
Accesso in scrittura LV lettura/scrittura
Condizione di LV disponibile
# aprire 1
LV dimensioni 5,56 GB
LE corrente 178
Segmenti 1
Allocazione di ereditare
Auto avanti settori di lettura
-attualmente impostato a 256
253:1 dispositivo di blocco

[root@server1 ~]#

Voglio creare la macchina virtuale vm02 che utilizza ora il volume logico /dev/VolGroup00/vm02Voglio che la macchina virtuale per avere uno spazio su disco di 10GB, quindi creo il volume logico /dev/VolGroup00/vm02 come segue:

lvcreate -L10G -n vm02 VolGroup00

In seguito possiamo eseguire

virt-install --prompt

ancora una volta:

Vorresti un guest completamente virtualizzato (Sì o no)? Questo vi permetterà di eseguire sistemi operativi non modificati. < no
Qual è il nome della macchina virtuale? <-vm02
Quanta RAM deve essere allocato (in megabyte)? < – 512
Quello che vuoi utilizzare come disco (percorso file)? <-/dev/VolGroup00/vm02
Qual è l’URL di installazione? <-http://wftp.tu-chemnitz.de/pub/linux/centos/5.6/os/x86_64

Come il percorso del file su disco, specifichiamo il nostro nuovo gruppo di volume /dev/VolGroup00/vm02Siete pregati di notare che virt-install non chiedere per lo spazio su disco più perché lo spazio su disco è determinato dalla dimensione del volume logico (10 GB).

 

Piaciuto l'articolo? Condividilo sui social!

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