Il server su cui si eseguirà l’installazione è un Server HP Proliant DL 385 G2 con AMD64 Opteron
Il sistema operativo è ovviamente Linux e tra le varie distribuzioni abbiamo optato per la debian, solita stabile, ideale per un server, facilmente amministrabile e da non sottovalutare dispone di apt come sistema di gestione pacchetti che definirei insuperabile.
Il server inquestione non ha periferiche come CD-ROM o Floppy, quindi andremo a preparare una chiave USB di installazione, per l’avvio appunto da dispositivo USB.
Premessa su XEN.
XEN è costituito da un hypervisor, che viene chiamato Dom0, o dominio ospite, e da tante Vitual Machine (VM), chiamate DomU che altro non sono che i nostri server virtuali.
il Dom0 nel caso di XEN 3 non è altro che un sistema operativo Linux opportunamente patchato per fungere appunto da hypervisor.
Le macchine virtuali possono essere installate in modi diversi, il più semplice è quello di realizzare dei file immagine, ma nel caso di un server è preferibile avere una partizione o un volume logico al posto di un file immagine.
Tra partizione e Volume Logico è preferibile il secondo, visto che all’occorrenza se lo spazio utilizzato dalla macchina virtuale dovesse essere modificato un volume logico presta meno difficoltà di ridimensionamento che non una partizione.
PASSO PRIMO – Installazione del sistema operativo da patchare come Dom0
Il sitema operativo di base che diverrà poi il nostro Dom0 lo installeremo su normali partizioni, mentre lasceremo l’installazione delle nostre macchine virtuali su Volumi Logici.
Andiamo a creare le nostre partizioni
creeremo:
una partizione (primaria/ext3) di 100Mb come /boot
una partizione (logica/ext3) di 5Gb come /
una partizione (logica/swap) di 1Gb come swap
il resto del disco lo dedicheremo per la creazione di Volumi Logigi (VLM) per destinati all’installazione delle nostre macchine virtuali (DomU)
Avviamo quindi l’installazione di Debian, settiamo il nome della macchina la password di root, e selezioniamo i pacchetti da installare, ovvero andiamo ad installare il solo sistema standard.
La procedura scaricherà a questo punto i pacchetti mancanti dalla rete.
Riavviato il sistema si lancia apt per fare un aggiornamento dei pacchetti.
# apt-get update
# apt-get dist-upgrade
e difatti c’è un pacchetto che ha un aggiornamento
Imposto la rete con un indirizzo statico e non con DHCP modificando il file /etc/network/interfaces
cambio
iface eth0 inet dhcp
con
iface eth0 inet static
gateway 192.168.1.1
netmask 255.255.255.0
address 192.168.1.210
Su una guida ho trovato che indicavano di rimuovere questi pacchetti e di installarne altri
# apt-get remove exim4 exim4-base lpr nfs-common portmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig
# apt-get install iproute bridge-utils python-twisted gcc-3.3 binutils make zlib1g-dev python-dev transfig bzip2 screen ssh debootstrap
libcurl3-dev libncurses5-dev
Su un’altra guida indicavano di installare questi pacchetti
apt-get install bridge-utils
apt-get install xen-utils-3.0-unstable-1
xen-hypervisor-3.0.3-1-i386
xen-ioemu-3.0-unstable
xen-docs-3.0-unstable
linux-image-2.6.18-2-xen-686
linux-modules-2.6.18-2-xen-686
libc6-xen
xen-tools
sysfsutils
file
Precisiamo che ci sono tre modi per installare XEN, da pacchetto(deb o rpm), da binario (tar.gz), o compilandosi il tutto dal sorgente.
La cosa più semplice è l’uso del pacchetto, la cosa migliore e però più complessa è quella di ricompilare il kernel da sorgente.
i pacchetti li recuperate dal vostro repository, mentre il sorgente o i binari li trovate sul sito di xensource.
Per chi vuole provare con la compilazione da sorgente può andarsi a recuperare il sorgente dell’ultima versione stabile ovvero la 3.0.3 (mentre scrivo è scaricabile anche la 3.0.4 come unstable)
wget http://bits.xensource.com/oss-xen/release/3.0.3-0/src.tgz/xen-3.0.3_0-src.tgz
ed eseguire la compilazione (che non tratto qui adesso)
SECONDO PASSO – Installiamo i pacchetti per XEN via APT
Vado ad installare i pacchetti per la mia architettura
apt-get install bridge-utils
xen-utils-3.0.3-1
xen-utils-common
xen-hypervisor-3.0.3-1-amd64
xen-ioemu-3.0.3-1
xen-docs-3.0
linux-image-2.6.18-4-xen-amd64
linux-modules-2.6.18-4-xen-amd64
sysfsutils
file
libc6-xen è un pacchetto da installare ma non esiste per l’architettura amd64
xen-tools permette di creare con facilità dei file immagine relativi alle macchine virtuali, cosa che non andrò ad utilizzare volendo installare le macchine virtuali come Volumi Logici.
installati i pacchetti vi trovate già modificato il file di avvio di Grub, per l’avvio di XEN
prima di riavviare la macchina modificate il file di configurazione del demone xend ovvero:
# vi /etc/xen/xend-config.sxp
decommentare le impostazioni
(network-script network-bridge)
(vif-script vif-bridge)
commentando eventuali altre righe con instruzione
(network-script *)
(vif-script *)
Questo imposterà la rete in bridge, se si vuole impostare in route vanno cambiati sempre questi parametri.
Un’ottima spiegazione (in inglese) è data dalla documentazione di xensource
riavviando la macchina troviamo come prima voce del menu du grub, appunto XEN, e dovrebbe avviarsi senza alcun problema.
se lanciate il comando xm list avrete l’elenco delle macchine che stanno girando in quel momento, e quindi dovreste vedere solo il vostro Dom0.
TERZO PASSO – Creiamo i Volumi Logici per i DomU grazie a LVM
In fase di partizionamento nell’installazione avevamo lasciato dello spazio libero non partizionato, creiamo quindi una nuova partizione logica comprendente tutto lo spazio libero del disco.
Per la creazione di un Volume Logico, prima deve essere creato uno o più Volumi Fisici (Physical Volume), ed uno o più Gruppi di Volume (Volume Group), ed in fine si crea il nostro Volume Logico (Logical Volume).
Iniziamo con la creazione di un Volume Fisico (PV)
# pvcreate /dev/cciss/c0d0p7 (ovviamente dovete mettere il nome della vostra partizione /dev/hda3 o simili)
Creiamo un Gruppo di Volume (VG) associandogli uno o più Volumi Fisici
# vgcreate xenvm /dev/cciss/c0d0p7 (ovviamente invece di xenvm potete scegliere il nome di gruppo che preferite)
Creiamo adesso i nostri Volumi Logici
creeremo due volumi per ogni macchina virtuale, uno per il sistema ed uno per lo swap.
# lvcreate -n domu1 --size 10G xenvm
# lvcreate -n domu1-swap --size 512M xenvm # mkfs.ext3 /dev/xenvm/domu1
# mkswap /dev/xenvm/domu1-swap
Ripetiamo queste operazioni per ogni DomU (la nostra Macchina Virtuale) che vogliamo creare.
una panoramica più approfondita dei comandi utilizzati per la creazione di Volumi Logici la trovate in questo documento.
QUARTO PASSO – Installiamo le nostre macchine virtuali con debootstrap
montiamo il volume logico
# mount -o loop /dev/xenvm/domu1 /mnt
avviamo l’installazione di Debian Etch
# debootstrap --arch amd64 etch /mnt http://ftp.it.debian.org/debian/
potete utilizzare un qualsiasi altro repository, anche se è preferibile scegliere il più vicino
se installi Sarge devi disabilitare TLS
# mv /mnt/lib/tls /mnt/lib/tls.disabled
copiamo i repository configurati per APT dal Dom0 al nuovo DomU
# cp /etc/apt/sources.list /mnt/etc/apt/
copiamo i moduli di XEN sul DomU
# cp -a /lib/modules/2.6.18-4-xen-amd64/ /mnt/lib/modules/
copiamo le impostazioni del DNS
# cp /etc/resolve.conf /mnt/etc/
impostiamo la configurazione della rete
cp /etc/network/interfaces /mnt/etc/network/
vi /mnt/etc/network/interfaces
con DHCP
#To use Specific IP address - edit the /mnt/etc/network/interfaces manually.
#To use DHCP, edit and include the following:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
o con IP statico
#To use Specific IP address - edit the /mnt/etc/network/interfaces manually.
#To use DHCP, edit and include the following:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
addess 192.168.1.10
gateway 192.168.1.1
netmask 255.255.255.0
Cambiamo il nome della macchina
# vi /mnt/etc/hostname
Editiamo fstab del DomU
# vi /mnt/etc/fstab
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda2 none swap sw 0 0
Smontiamo il nostro DomU
# umount /mnt/
QUINTO PASSO – Configuriamo le Macchine Virtuali per XEN
# vi /etc/xen/domu1.cfg
kernel = "/boot/vmlinuz-2.6.18-4-xen-amd64"
ramdisk = "/boot/initrd.img-2.6.18-4-xen-amd64"
memory = 256
name = "domu1"
vif = ['bridge=xenbr0']
disk = ['phy:/dev/xenvm/domu1,sda1,w', 'phy:/dev/xenvm/domu1-swap,sda2,w']
# DHCP
# per usare il dhcp commenta le righe relative a ip, gateway and netmask
# e modifica dhcp = "dhcp"
dhcp = "off"
ip = "192.168.1.10"
gateway = "192.168.1.1"
netmask = "255.255.255.0"
root = "/dev/sda1 ro"
extra = '4'
SESTO PASSO – Avviamo la Macchina Virtuale
per l’avvio della macchina virtuale possiamo usare questo comando
# xm create /etc/xen/domu1.cfg -c
in questo modo si avvierà la macchina virtuale e verrà aperta una console su la macchina creata, avremo quindi la richiesta di login, potete quindi entrare con l’utente root, senza alcuna password, e vi conviene a questo punto impostare la password con il comando passwd
Se omettiamo l’opzione -c la macchina viene creata ed avviata ma non verrà aperta la console sulla nuova macchina
# xm create /etc/xen/domu1.cfg
per aprire in un secondo tempo una console su quella macchina basta eseguire
# xm console domu1
mettendo il nome assegnato alla macchina virtuale o il proprio id
per vedere le macchine che sono attive potete usare il comando
# xm list
e sempre con xm vengono gestite le varie macchine (controllate la documentazione di xm) ad esempio
# xm reboot domu1
# xm shutdown domu1
e via dicendo… è anche possibile aumentare o diminuire la memoria assegnata
Una nota, quando aprite la console di una macchina virtuale per tornare alla console del Dom0 dovete premere i tasti CTRL + 5 ve lo dico perché io quando ho fatto il mio primo accesso alla console non sapevo come tornare indietro
SETTIMO PASSO – configuriamo
Non vi resta adesso che impostare le varie macchine virtuali, con il software che dovranno ospitare (apache, mysql, php, ecc.), configurare la password di root, ssh per l’accesso da remoto, webmin per l’amministrazione da remoto e quant’altro.
Buona configurazione a tutti
zauker linux, programmi, software libero
Commenti recenti