28 aprile 2008 – Linux by Night
Ubuntu 8.04 server e Xen 3.2
Con il Comune di Università
patrocinio di: S. Pietro in Cariano di Verona
Romano Fontana romano@fontana.vr.it 1
whois $relatore
Partecipa alle attivita' del LugVR dal 1998
Certificato Linux Professional Institute I nel 2003
Dal 2005 come microazienda informatica integra progetti e soluzioni
basate su Linux in centri dati in aziende di qualsiasi dimensione
Dal 2008 e' uno dei 9 partner italiani di Citrix per la fornitura di
soluzioni di virtualizzazione basate su Xen
Cura la didattica Linux presso due importanti istituti veronesi
Organizza corsi e worklab Linux livello base e intermedio
Romano Fontana romano@fontana.vr.it 2
Obiettivi
Ubuntu 8.04 server e Xen, prova su strada:
Proviamo una infrastruttura virtuale utilizzando i repository
ufficiali
Valutiamo la distribuzione, tramite questo scopo specifico
Utilizziamo alcuni programmi “scelti” e “ufficializzati”
Misuriamo le prestazioni delle macchine virtuali con un
benchmark su httpd
Romano Fontana romano@fontana.vr.it 3
Solo una considerazione....
Le distro piu' diffuse
hanno sponsor
commerciali
Ubuntu
Canonical Ltd
openSUSE
Novell Inc
Fedora
RedHat Inc
Fonte: www.distrowatch.com
Romano Fontana romano@fontana.vr.it 4
Il “target” di Ubuntu 8.04 server “Hardy Heron”
A rock solid opportunity for your business
Packed with features
easily integrates into your existing networks
provides a low total cost of ownership
Services are simple to deploy
Easy to manage
World
class support from Canonical (nota: $$)
Frasi estratte dalla brochure illustrativa della Canonical LTD
Romano Fontana romano@fontana.vr.it 5
Life cycle
Autore: Canonical LTD
Romano Fontana romano@fontana.vr.it 6
Ubuntu 8.04 – Le scelte
Autore: Canonical LTD
Romano Fontana romano@fontana.vr.it 7
Ubuntu server – La visione
Autore: Canonical LTD
Romano Fontana romano@fontana.vr.it 8
Diagramma “demo lab” di stasera
Romano Fontana romano@fontana.vr.it 9
Schema di partizionamento
SCSI1 (sda) 160 GB SATA
#1 primary 10 GB /boot ext2
#2 primary 10 GB / ext3
#3 primary 1 GB swap
#5 logical 139 GB lvm
Hardware : Dual Opteron 1800Ghz – 2GB RAM – sk eth 1 GB
Software: Ubuntu 8.04 server AMD64
Hypervisor: Xen 3.2 (da repository main)
Romano Fontana romano@fontana.vr.it 10
Kernel differente dalla versione desktop
Deadline I/O scheduler (CFQ scheduler in Desktop Edition).
Pre-emption off.
Timer interrupt is 100 Hz (250 Hz Desktop Edition).
Ottimizzato i686 (i586 and i686 Desktop Edition)
Su sistemi 32-bit indirizza 64GB RAM (4GB Desktop Edition)
Versione a 64-bit su CPU 64-bit indirizzamento non limitato
Romano Fontana romano@fontana.vr.it 11
JeOS
Versione del sistema ottimizzata per girare sotto VMware
Server, VMware ESX, KVM
Romano Fontana romano@fontana.vr.it 12
Ubuntu – Upstart
Upstart sostituisce il tradizionale init daemon (sysvinit)
Basato su eventi rilevati dal kernel (udev, hal, dbus
Migliore gestione dispositivi hotplug
/etc/event.d
http://upstart.ubuntu.com/
Romano Fontana romano@fontana.vr.it 13
Ubuntu – Upstart (esempi)
# control-alt-delete - emergency keypress handling
start on control-alt-delete
exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
Romano Fontana romano@fontana.vr.it 14
Ubuntu – Upstart (esempi)
# tty1 - getty
start on runlevel 2
...
stop on runlevel 0
....
respawn
exec /sbin/getty 38400 tty1
Nota: l' installazione delle macchine virtuali hardy con xen-shell ha
comportato la modifica manuale di questo file, per ottenere il
login
tty1 --> xvc0 (terminale virtuale di xen)
Romano Fontana romano@fontana.vr.it 15
Alcune proposte scelte dal Sig. Ubuntu
AppArmor (Kernel security patch)
Uncomplicated Firewall (CLI frontend per iptables)
sudo ufw enable; sudo ufw allow smtp; sudo ufw allow http etc.
Ebox (Network monitoring)
sudo apt-get install ebox
Likewise Open (Autenticazione su Active Directory)
sudo apt-get install likewise-open; sudo domainjoin-cli join example.local Administrator
ssh NET\u1@hardy
MoinMoin (Wiki software)
Romano Fontana romano@fontana.vr.it 16
eBox
E' un framework web
Gestisce le configurazioni di un application server
Modulare
Sul sito un po' di screenshot
http://ebox-platform.com/
Romano Fontana romano@fontana.vr.it 17
Likewise Open
Autenticazione Linux su un dominio Active Directory
Si basa su winbind
Semplifica la configurazione necessaria
Utilizzo via CLI o GUI
Sofware Open Source commerciale
http://www.likewisesoftware.com/
Romano Fontana romano@fontana.vr.it 18
Likewise Open Demo
# domainjoin-cli join NET.LOCAL Administrator
Attenzione: il dominio SEMPRE in maiuscolo
Ora ci si autentica sulla macchina Linux con l' utente NET/user e
password
Al primo login viene creata la dir /home/NET/utente
Posso comunque autenticarmi in locale (/etc/passwd)
domainjoin-cli leave NET.LOCAL Administrator
tutto torna come prima
Dimostrazione dal vivo sul dominio NET.LOCAL (w2003 virtualizzato)
Romano Fontana romano@fontana.vr.it 19
Virtualizzazione
KVM (Kernel Virtual Machine)
Scelta “ufficiale” supportata da Ubuntu
Altre possibilita' offerte dai repository:
OpenVZ
Qemu
VirtualBox
Xen
Romano Fontana romano@fontana.vr.it 20
Note su XEN
Xen NON ha nulla a che fare con Linux
Deriva da un progetto microkernel chiamato Nemesis
Entrambi i progetti sono nati all' University of Cambridge
Linux (patchato) “gira sopra” Xen virtualizzato
Xen ha bisogno di almeno una macchina virtualizzata Linux
privilegiata (accesso diretto HW) per la gestione degli altri
sistemi virtualizzati (accesso indiretto HW)
Xen e' OpenSource e fornisce il motore a progetti
commerciali
Romano Fontana romano@fontana.vr.it 21
Xen (e non solo) - Gui
• LibVirt; e' una libreria, ha dei programmi utilizzabili (virsh)
• Virtual Workspace Service (?)
• Convirt (ex XenMan), utilizza LibVirt, abbastanza completo
• DTC-Xen, pannello orientato ai service provider, repository Debian
• Enomalism, framework orientato al “grid computing”
• openQRM, altro framework ben mantenuto
• Argo, dagli sviluppatori di xen-shell(essenziale), sviluppo fermo
• PHPmyXen, ancora non documentato
• MLN, perl scripts orientati al progetto di network complessi
• Virt-manager, mantenuto da RedHat, utilizza LibVirt, il piu' utilizzato
Romano Fontana romano@fontana.vr.it 22
Xen – Architettura
dom0 deve esistere
E' una macchina virtuale
Accesso diretto HW
Gestione domini non privilegiati
Il S.O. deve avere un kernel
patchabile:
Linux, *Bsd, OpenSolaris
dom0 non dovrebbe avere altri
scopi, servizi (Xorg,web, ftp, etc..)
Romano Fontana romano@fontana.vr.it 23
Xen – Architettura
Autore: Ian Pratt – Citrix System
Romano Fontana romano@fontana.vr.it 24
Opzioni kernel “patchato” (2.6.18 – xen 3.2.)
Romano Fontana romano@fontana.vr.it 25
grub.conf – Xen e Linux
# Il bootloader “carica” Xen e il dom0 Linux come modulo
title Xen 3.2 / Ubuntu 8.04, kernel 2.6.24-18-xen
root (hd0,0)
kernel /xen-3.2.gz
module /vmlinuz-2.6.24-18-xen root=xxx ro console=tty0
module /initrd.img-2.6.24-18-xen
# Differenza di configurazione con il boot di Linux
title Ubuntu 8.04, kernel 2.6.24-18-server
..
kernel /vmlinuz-2.6.24-18-server
..
Romano Fontana romano@fontana.vr.it 26
Xen – Paravirtualization / Full virtualizaton
VM paravirtualizzate (domU) : il kernel contiene i “frontend
driver” e fisicamente iin dom0
VM “completamente virtualizzate”, Xen fornisce un kernel
generico con emulazione HW
La “Full Virtualization” funziona solo su processori con
istruzioni specifiche (Intel-VT; Amd Pacifica)
Tipicamente i nuovi processori 64 bit
egrep 'vmx|svm' /proc/cpuinfo
Romano Fontana romano@fontana.vr.it 27
/etc/xen/node00002.net.local.cfg (PV)
# Kernel + memory size
kernel = '/boot/vmlinuz-2.6.24-18-xen'
ramdisk = '/boot/initrd.img-2.6.24-18-xen'
memory = '128'
# Disk device(s).
root = '/dev/hda2 ro'
disk =[
'phy:/dev/vg-xen/node00002.net.local-swap,hda1,w',
'phy:/dev/vg-xen/node00002.net.local-disk,hda2,w',
]
# Hostname
name = 'node00002.net.local'
# Networking
vif = [ 'ip=192.168.100.102,mac=00:16:3E:11:B2:BC' ]
Romano Fontana romano@fontana.vr.it 28
/etc/xen/ltsp.cfg (FV)
kernel="/usr/lib64/xen/boot/hvmloader"
builder="hvm"
device_model = "/usr/lib64/xen/bin/qemu-dm"
disk = ['phy:/dev/vg-xen/ltsp,hda,w','phy:/dev/hda,hdc:cdrom,r']
sdl=0
vnc = 0
vncviewer = 0
vnclisten = "0.0.0.0"
boot="dc"
memory=256
name = "ltsp"
vif=['type=ioemu,bridge=eth0,mac=00:16:3e:3d:26:0f']
acpi=1
Nota: lib64 dipende da ARCH Nota: meglio specificare il mac (se no
udev si inquieta)
Romano Fontana romano@fontana.vr.it 29
comandi xm essenziali
Start VM
# xm create /etc/xen/ltsp.cfg [-c]
Shutdown VM
# xm shutdown
Lista VM
# xm list
Help
$ xm help
$ man xm
Romano Fontana romano@fontana.vr.it 30
debootstrap - chroot
permette di installare Debian (o Ubuntu) in un sistema
minimale senza un disco di installazione
# apt-get install debootstrap chroot
# debootstrap etch /mychroot
# chroot /mychroot
... e apportiamo le modifiche necessarie ai file di sistema
xen-tools usa questo sistema per installare una macchina
virtuale
Romano Fontana romano@fontana.vr.it 31
xen-tools
Collezione di script in Perl
Automatizzano il processo di creazione delle macchine
virtuali
Supporta le principali distribuzioni linux
http://www.xen-tools.org/software/xen-tools/
Romano Fontana romano@fontana.vr.it 32
xen-tools.conf
Esempio modifiche necessarie configurazione:
kernel = /boot/vmlinuz-2.24.16-18-xen
lvm = vg-xen
oppure se utilizzo un file (dir=/home/xen) (/dev/loop0)
e modifico nel file di conf.ne xen disk = ['tap:aio:/home/xen/node00002.img,hda1,w',]
gateway = 192.168.100.1
netmask = 255.255.255.0
passwd = 1
Romano Fontana romano@fontana.vr.it 33
xen-tools – utilizzo (esempio)
# xen-create-image --hostname=node00002.net.local /
--size=2Gb --swap=256Mb --ide --ip=192.168.100.102 --install-
method=debootstrap --dist=hardy --
mirror=http://it.archive.ubuntu.com/ubuntu/
Romano Fontana romano@fontana.vr.it 34
Storage - acronimi
DAS – Directly attached storage
NAS – Network attached storage
SAN – Storage area network
Romano Fontana romano@fontana.vr.it 35
Differenza DAS - NAS - SAN
Romano Fontana romano@fontana.vr.it 36
SAN - iSCSI
Protocollo per inviare comandi SCSI tramite TCPIP
Client (initiator) --> Server remoto (target)
Il SO “vede” lo storage remoto come locale
Permette di utilizzare il network esistente
Penalizzato dal calcolo del checksum TCP
Esistono schede specializzate per evitare il workload sulla
CPU (TOE – Tcp Offload Engine)
Valida e popolare alternativa al Fiber Channel
Romano Fontana romano@fontana.vr.it 37
iSCSI e' definito da:
Hostname (o indirizzo IP)
Numero di porta
iSCSI name (IQN)
CHAP secret (opzionale)
Formato iSCSI Qualified Name (IQN):
iqn.yyyy-mm.{reversed domain name}
Es.: iqn.2008-05.it.vr.fontana:storage.abc.xyz
Romano Fontana romano@fontana.vr.it 38
Ubuntu – iSCSI initiator
apt-get install open-iscsi
Eventuali modifiche opzionali in /etc/iscsi/iscsid.conf
# iscsiadm -m discovery -t sendtargets -p TARGET-IP-ADDRESS
con dmesg vedremo il nuovo disco /dev/sdb (a|c|d|...)
fdisk e mkfs completano l' opera
Romano Fontana romano@fontana.vr.it 39
OpenFiler
Distribuzione specializzata gestione network storage
Derivata da Centos (compatibile RedHat Enterprise)
Gestione via browser Internet
Supporto NFS,SMB/CIFS, HTTP/WebDAV, FTP,NIS,LDAP, Active
Directory, Hesiod, Kerberos 5
Supporto partizioni volume-based, iSCSI, snapshot schedulati, quote
disco, etc. etc.
www.openfiler.com
Romano Fontana romano@fontana.vr.it 40
Openfiler
Il PC “demo” e' configurato per esportare un block device
iSCSI
La VN “ltsp” utilizza lo storage esterno
Diamo un veloce sguardo all' interfaccia grafica di gestione
Come alternativa vedi il progetto FreeNAS (FreeBSD)
Romano Fontana romano@fontana.vr.it 41
benchmarking - HTTP
Siege – multi-threaded http load testing, benckmark utility
Settings:
concurrent users = 300
time to run = 60 sec
delay = 0
protocol = HTTP/1.1
Romano Fontana romano@fontana.vr.it 42
benchmarking - HTTP
kernel “2.6.24-18-server” (no xen, Ubuntu “out of the box”)
Risultati:
Transactions 33398
Elapsed time 61,79 sec
Response time 0.48 sec
Transaction rate 540.51 /trans/sec
Throughput 0.02 MB/sec
Romano Fontana romano@fontana.vr.it 43
benchmarking – HTTP (no altre VM)
kernel “2.6.24-18-server-xen” (hardy-xen) (dom0)
Risultati:
Transactions 32631
Elapsed time 60,94 sec
Response time 0.48 sec
Transaction rate 535.46 /trans/sec
Throughput 0.02 MB/sec
Romano Fontana romano@fontana.vr.it 44
benchmarking – HTTP (no altre VM)
kernel “2.6.24-18-server-xen” (hardy) (domU PV)
Risultati:
Transactions 32420
Elapsed time 60.91 sec
Response time 0.49 sec
Transaction rate 532.26 /trans/sec
Throughput 0.02 MB/sec
Romano Fontana romano@fontana.vr.it 45
benchmarking – HTTP (no altre VM)
kernel “2.6.24-18-server-xen” (hardy-iscsi) (domU PV)
Risultati: Transaction rate 531.83 t/s
kernel “2.6.24-18-server” (ltsp) (domU FV)
Risultati: Transaction rate 598.22 t/s – 4 transaction failed
Windows 2003 SBS IIS 6 (sbs) (domU FV)
Risultati: Transaction rate 339.56 t/s
Romano Fontana romano@fontana.vr.it 46
benchmarking – HTTP (all VM running)
2 windows 2003, 3 Ubuntu Linux (5 VM running)
hardy (PV – local storage SATA - 128 MB RAM)
Risultati: Transaction rate 533.96 t/s
hardy-iscsi (PV – remote storage iSCSI - 128 MB RAM)
Risultati: Transaction rate 537.55 t/s
ltsp (FV - 256MB RAM)
Risultati: Transaction rate 405.71 t/s – 16 transaction failed
sbs (FV – 512MB RAM)
Risultati: Transaction rate 240.89 t/s
Romano Fontana romano@fontana.vr.it 47
benchmarking - nota
Ovviamente e' un metodo empirico
Comunque ci da' spunto di valutazione
Soprattuto per quanto riguarda iSCSI:
Trasferiamo un file da 10 M su hardy (locale) e hardy-iscsi
scp .... 10.0MB/s (entrambi) (network 10/100)
.. e un file da 300 M ?
10.0MB/s su hardy e 7.0MB/s su hardy-iscsi
Magari con una sk da 1GB dedicata a iSCSI ... ;-)
Romano Fontana romano@fontana.vr.it 48
Thin client
I “thin client” caricano il kernel e
i programmi da un server
centrale
Requisito e' una scheda di rete
con supporto PXE
Il root file system e' in /opt/ltsp
Romano Fontana romano@fontana.vr.it 49
LTSP
apt-get install ltsp-server-standalone openssh-server (installa
dhcpd3)
Eventuale modifica /etc/ltsp/dhcpd.conf (default 192.168.0.1)
# ltsp-build-client
Eventuale ltsp-update-sshkeys (se modifico IP)
http://wiki.debian.org/LTSP/Howto
Se ho gia' un dhcpd: apt-get install ltsp-server
devo ovviamento modificare la configurazione del dhcp
in /usr/share/doc/ltsp... numerosi esempi di configurazione
Romano Fontana romano@fontana.vr.it 50
LTSP – Demo
La presentazione/demo live e' finita
Riavvio il portatile in modalita PXE boot
Verifichiamo il funzionamento e la responsivita' del “thin
client” su una installazione LTSP in una macchina FV
Controlliamo con top su dom0 il sistema con tutte le VM in
funzione
Controlliamo sul thin client la fluidita' di un film
Romano Fontana romano@fontana.vr.it 51
Altri link di approfondimento:..
http://www.howtoforge.com/ubuntu-8.04-server-install-xen-from-ubuntu-repositories
oltre a numerosi howto collegati
https://help.ubuntu.com/community/
http://wiki.xensource.com/xenwiki/
http://www.xen.org
Romano Fontana romano@fontana.vr.it 52