Post on 04-Jun-2015
1Daniele Martini d.martini@alba.st
Sabato 23 Ottobre 2010
Universitàdi Verona
Linux Day 2010
OpenVZServer Virtualization
Itis G. MarconiCon il patrocinio di:
2Daniele Martini d.martini@alba.st
whois cyrax
Linux, VoIP, Networking, Security
@
3Daniele Martini d.martini@alba.st
Chi puo' usare OpenVZ?
4Daniele Martini d.martini@alba.st
Per chi e' OpenVZ?
Ambienti Linux Only
Servizi di hosting
Cluster per High Availability (anche in piccola scala)
5Daniele Martini d.martini@alba.st
Per chi e' OpenVZ
6Daniele Martini d.martini@alba.st
Virtualizzazione
Risparmio Spazio
Indipendenza dall'hardware
Macchine migrabili
7Daniele Martini d.martini@alba.st
Terminologia
Host Node: Nodo principale, ovvero il server su cui gira il sistema di virtualizzazione
Guest: Ambiente Virtualizzato che si trova ospitato da un Host Node
8Daniele Martini d.martini@alba.st
Diversi Approcci
WARNING. THIS PART IS OVER-SIMPLIFIED
9Daniele Martini d.martini@alba.st
Approccio: Virtualizzazione FULL
Hardware Virtualizzato
Richiede hardware piu' che decente e RAM
Overhead Pesante
Posso far girare qualsiasi S.O.
Virtual Machine Monitor
10Daniele Martini d.martini@alba.st
Approccio: ParaVirtualizzazione
Il S.O. ospite viene modificato
Il suo kernel parla direttamente con il VMM.
11Daniele Martini d.martini@alba.st
Approccio OS Level
Un solo kernel un solo sistema operativo
Le applicazioni sono “ingabbiate in un ambiente virtuale”
12Daniele Martini d.martini@alba.st
OpenVZ
13Daniele Martini d.martini@alba.st
Cioe' ?!?!?!
Il sistema operativo ingabbia i processi, limitando la loro visione delle risorse, dando cosi l'illusione di trovarsi su una macchina isolata.
14Daniele Martini d.martini@alba.st
Cioe'!?!?!?!?!?!?!?!?!?!?
15Daniele Martini d.martini@alba.st
OK OK. Esempio!
root@guest1:~# ps ax
PID [.....] COMMAND
1 /sbin/init
101 /usr/sbin/apache2
root@guest2:~# ps ax
PID [....] COMMAND
1 /sbin/init
101 /usr/sbin/postfix
16Daniele Martini d.martini@alba.st
Meanwhile... on the host node...
root@HostNode:~# ps ax
PID VM VPID PROCESS
1 0 1 /sbin/init
200 1 1 /sbin/init
207 1 101 /usr/sbin/apache2
209 2 1 /sbin/init
213 2 101 /usr/sbin/postfix
17Daniele Martini d.martini@alba.st
Meanwhile... on the host node...
root@HostNode:~# ps ax
PID VM VPID PROCESS
1 0 1 /sbin/init
200 1 1 /sbin/init
207 1 101 /usr/sbin/apache2
209 2 1 /sbin/init
213 2 101 /usr/sbin/postfix
18Daniele Martini d.martini@alba.st
E il filesystem?!
/|../root|../home|../vz |....../vm1 | |../home | |../usr |....../vm2 |../home |../usr
19Daniele Martini d.martini@alba.st
E il filesystem?!
/|../root|../home|../vz |....../vm1 | |../home | |../usr |....../vm2 |../home |../usr
Host Node
Guest 1
Guest 2
20Daniele Martini d.martini@alba.st
Vantaggi FileSystem Condiviso
File System Condiviso
Scripting Avanzato(es. Svuota tutte le tmp di tutti i guest)
21Daniele Martini d.martini@alba.st
Componenti Openvz
Kernel linux modificato
Comandi user-level per gestire i guest
22Daniele Martini d.martini@alba.st
Installazione Kernel: the hard way
Scaricare i sorgenti
Compilare!!
23Daniele Martini d.martini@alba.st
Installazione Kernel: the easy way
Ubuntu 8.04:
apt-get instal linux-openvz
Esistono Kernel precompilati per le principali distribuzioni
(redhat, fedora, debian, ...)
24Daniele Martini d.martini@alba.st
Creazione Guest: Scelta Template
Sul sito di openvz ci sono template scaricabili di tutte le principali distribuzioni.
Per es: ubuntu-10.04-x86.tar.gz
25Daniele Martini d.martini@alba.st
Creazione Guest: deploy
# vzctl create 101 --ostemplate ubuntu-10.04-x86
26Daniele Martini d.martini@alba.st
Accesso alla macchina virtuale
Nessuna interfaccia grafica “alla vmware”
Dall'hostnode usanto Vzctl:
root@HostNode:~# vzctl enter 101
root@guest1:/#
Oppure ssh
27Daniele Martini d.martini@alba.st
Configurazione VM
I principali parametri di una macchina sono configurati tramite vzctl, e non dall'interno della macchina virtuale.
28Daniele Martini d.martini@alba.st
Esempi:
Rete
# vzctl set 101 –ipadd 192.168.1.123 –save
Nameserver
# vzctl set 101 –nameserver 4.2.2.2 –save
Hostname:
# vzctl set 101 –host Guest 1 –save
29Daniele Martini d.martini@alba.st
Interfacce di rete
La rete e' l'unica parte “Virtualizzata”
Ad ogni macchina vengono assegnati indirizzi ip
30Daniele Martini d.martini@alba.st
Suddivisione delle risorse: RAM
Assegnazione Dinamica.
Possibilita' di barriere per ogni macchina virtuale.
31Daniele Martini d.martini@alba.st
Suddivisione delle risorse: Altro
Spazio su disco
Numero di socket
Numero di processi
[...]
32Daniele Martini d.martini@alba.st
Assegnazione hardware
Tutto cio' che e' accessibile tramite un file in /dev può
essere assegnato a un Guest
33Daniele Martini d.martini@alba.st
Assegnazione Hardware
SI
Webcam (/dev/video/..)
TapeDrive (/dev/st)
...
NO
Bluetooth
34Daniele Martini d.martini@alba.st
Parliamo di Cluster?
35Daniele Martini d.martini@alba.st
Cluster Senza Disco Condiviso
36Daniele Martini d.martini@alba.st
Migrazione a caldo di una VM!!
RSYNC a macchina accesa
Suspend e Dump della memoria dei processi
RSYNC a macchina sospesa
Riattivazione sul nodo 2
37Daniele Martini d.martini@alba.st
High Avaialability: Requisiti
Condivisione File tra i Nodi
Monitoring dei server
38Daniele Martini d.martini@alba.st
High Avaialability: Requisiti
Condivisione File tra i Nodi
Monitoring dei server
39Daniele Martini d.martini@alba.st
DRBD
40Daniele Martini d.martini@alba.st
Heartbeat + DRBD + OpenVZ!!!!!!!
41Daniele Martini d.martini@alba.st
Security?
Possiamo essere sicuri che un Guest non possa accedere alle risorse degli altri Guest ?
42Daniele Martini d.martini@alba.st
Venerd' 13 Luglio 7890
Universitàdi Verona
Linux Day 2010
Domande?
Grazie per l'attenzione!
Con il patrocinio di:
These slides are written by Daniele Martini. They are subjected to Creative Commons Attribution-ShareAlike 2.5 version; you can copy, modify or sell them. “Please” cite your source and use the same licence :)