Installazione di Xen Server 4.6 su Ubuntu Server 16.04 da repository

9 Aprile 2018 0 Di Alessandro Scamporrino

In questo tutorial andiamo a spiegare come installare tramite il comando apt, il sistema di installazione dei pacchetti delle distribuzioni Debian-based.

1. Che cosa è Xen?

Xen è un servizio di hypervisor, una funzione che astrae – isola – i sistemi operativi e le applicazioni dall’hardware del computer host. Questa astrazione consente all’hardware della macchina host di gestire in modo indipendente una o più macchine virtuali come guest, consentendo a più macchine virtuali guest di condividere in modo efficace le risorse di elaborazione fisiche del sistema, quali cicli del processore, spazio di memoria, larghezza di banda della rete e così via. A volte un hypervisor viene anche chiamato monitor di una macchina virtuale.

2. Note

Questa guida può essere adattata ad altre versioni di Ubuntu/Debian. Io uso il comando apt, invece che del comando apt-get ma la sintassi ed i risultati sono equivalenti. Preferisco il comando apt solo ed esclusivamente perchè ha una barra di progresso delle operazioni in corso.

La guida fa riferimento all’installazione su di un sistema base, senza altri pacchetti installati. Nel caso seguite la guida

3. Preparazione del sistema

Tramite terminale, o collegandovi in SSH al PC.

Ottenere i diritti di root tramite il comando:

sudo su

aggiornare l’elenco dei pacchetti tramite il comando:

apt update

Aggiornare il sistema tramite il comando:

apt upgrade

Riavviare il sistema se necessario.

4. Installazione

Per installare Xen Hypervisor lanciare il comando:

apt-cache search xen-hypervisor

Otterrete un risultato del genere:

root@ubuntu:/# apt-cache search xen-hypervisor
xen-hypervisor-4.6-amd64 – Xen Hypervisor su AMD64
xen-hypervisor-4.4-amd64 – Transitional package for upgrade
xen-hypervisor-4.5-amd64 – Transitional package for upgrade

Questa operazione è necessaria per sapere come è indicato il pacchetto nei repository della propria distribuzione.

Eseguendo questo passaggio potete applicare il tutorial ad altre versioni ed altre architetture.

Il pacchetto che ci interessa è il primo della lista, quello che poi indica l’ultima versione installabile, cioè xen-hypervisor-4.6-amd64, dopo il trattino ( segno – ) è una descrizione del pacchetto e non è da inserire nel prossimo comando.

Installiamo finalmente il pacchetto tramite il comando:

apt -y install xen-hypervisor-4.6-amd64

root@ubuntu:/#apt install xen-hypervisor-4.6-amd64

Lettura elenco dei pacchetti… Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato… Fatto
The following additional packages will be installed:
bridge-utils cpu-checker grub-xen-bin grub-xen-host ipxe-qemu libaio1
libasound2 libasound2-data libasyncns0 libbluetooth3
libboost-iostreams1.58.0 libboost-random1.58.0 libboost-system1.58.0
libboost-thread1.58.0 libbrlapi0.6 libcaca0 libcacard0 libfdt1 libflac8
libiscsi2 libjpeg-turbo8 libjpeg8 libnspr4 libnss3 libnss3-nssdb libogg0
libopus0 libpixman-1-0 libpulse0 libpython-stdlib libpython2.7-minimal
libpython2.7-stdlib librados2 librbd1 libsdl1.2debian libsndfile1
libspice-server1 libusbredirparser1 libvorbis0a libvorbisenc2 libxen-4.6
libxenstore3.0 libyajl2 msr-tools python python-minimal python2.7
python2.7-minimal qemu-block-extra qemu-system-common qemu-system-x86
qemu-utils seabios sharutils xen-utils-4.6 xen-utils-common xenstore-utils
Pacchetti suggeriti:
libasound2-plugins alsa-utils opus-tools pulseaudio python-doc python-tk
python2.7-doc binutils binfmt-support samba vde2 sgabios ovmf debootstrap
bsd-mailx | mailx
I seguenti pacchetti NUOVI saranno installati:
bridge-utils cpu-checker grub-xen-bin grub-xen-host ipxe-qemu libaio1
libasound2 libasound2-data libasyncns0 libbluetooth3
libboost-iostreams1.58.0 libboost-random1.58.0 libboost-system1.58.0
libboost-thread1.58.0 libbrlapi0.6 libcaca0 libcacard0 libfdt1 libflac8
libiscsi2 libjpeg-turbo8 libjpeg8 libnspr4 libnss3 libnss3-nssdb libogg0
libopus0 libpixman-1-0 libpulse0 libpython-stdlib libpython2.7-minimal
libpython2.7-stdlib librados2 librbd1 libsdl1.2debian libsndfile1
libspice-server1 libusbredirparser1 libvorbis0a libvorbisenc2 libxen-4.6
libxenstore3.0 libyajl2 msr-tools python python-minimal python2.7
python2.7-minimal qemu-block-extra qemu-system-common qemu-system-x86
qemu-utils seabios sharutils xen-hypervisor-4.6-amd64 xen-utils-4.6
xen-utils-common xenstore-utils
0 aggiornati, 58 installati, 0 da rimuovere e 0 non aggiornati.
È necessario scaricare 22,0 MB di archivi.
Dopo quest’operazione, verranno occupati 83,5 MB di spazio su disco.
Continuare? [S/n] < S >

Digitare S per avviare l’installazione.

Gli altri pacchetti elencati sono le dipendenze che apt va a risolvere automaticamente.

Aggiorniamo la sequenza del bootloader GRUB:

update-grub
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
update-grub

Conclusa l’installazione se non sono stati segnialati errori riavviate il sistema per attivare le modifiche.

reboot

Se tutto è andato a buon fine troverete una schermata di questo tipo all’avvio del bootloader:

Bootloader Grub

Finito il caricamento del sistema operativo, sempre dopo aver ottenuto i diritti di root tramite sudo eseguire il comando:

xl list

Otterrete una schermata del genere:

root@ubuntu:/# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 3499 8 r—– 11.3

Che ci indica che tutto è andato a buon fine.

5. Configurazione del Bridge di Rete

Ora non ci rimane che configurare il bridge di rete per poter condividere la rete con le macchine Guest che andremo a configurare:

Tramite il comando nano andiamo a modificare la configurazione di rete del nostro sistema:

nano /etc/network/interfaces

E andremo ad inserire le seguenti righe:

auto lo eth0 xenbr0
iface lo inet loopback
iface xenbr0 inet dhcp
bridge_ports eth0

iface eth0 inet manual

Nota: sostituire ad “eth0” l’interfaccia di rete relativa al vostro sistema!

Attiviamo le modifiche alla rete

Nota: Attenzione se effetuate questa operazione da terminale remoto potreste perderete la connessione! Verificate di aver inserito tutti i parametri correttamente specialmente la scheda di rete (eth0 in questo caso). In particolare se effettuate l’operazione tramite copia e incolla!

ifdown eth0 && ifup xenbr0 && ifup eth0

Se tutto è andato a buon fine vedrete il seguente risultato:

Killed old client process
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/xx:xx:xx:xx:xx:xx
Sending on LPF/eth0/xx:xx:xx:xx:xx:xx
Sending on Socket/fallback
DHCPRELEASE on eth0 to 192.168.0.xxx port 67 (xid=0x3c77a607)

Waiting for xenbr0 to get ready (MAXWAIT is 32 seconds).
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/xx:xx:xx:xx:xx:xx
Sending on LPF/eth0/xx:xx:xx:xx:xx:xx

Sending on Socket/fallback
DHCPDISCOVER on xenbr0 to 255.255.255.255 port 67 interval 3 (xid=0x7c93a818)
DHCPREQUEST of 192.168.0.xxx on xenbr0 to 255.255.255.255 port 67 (xid=0x18a8937c)
DHCPOFFER of 192.168.0.xxx from 192.168.0.xxx
DHCPACK of 192.168.0.xxx from 192.168.0.xxx
bound to 192.168.0.xxx — renewal in 651 seconds.
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/xx:xx:xx:xx:xx:xx
Sending on LPF/eth0/xx:xx:xx:xx:xx:xx

Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x89911d26)
DHCPREQUEST of 192.168.0.xxx on enp0s3 to 255.255.255.255 port 67 (xid=0x261d9189)
DHCPOFFER of 192.168.0.xxx from 192.168.0.xxx
DHCPACK of 192.168.0.xxx from 192.168.0.xxx
bound to 192.168.0.xxx — renewal in 626 seconds.

Avete così installato il server XEN sul vostro PC!