Linux Day 2010: Virtualizzare con OpenVZ
-
Upload
alessio-pennasilico -
Category
Technology
-
view
1.200 -
download
1
Transcript of Linux Day 2010: Virtualizzare con OpenVZ
1Daniele Martini [email protected]
Sabato 23 Ottobre 2010
Universitàdi Verona
Linux Day 2010
OpenVZServer Virtualization
Itis G. MarconiCon il patrocinio di:
3Daniele Martini [email protected]
Chi puo' usare OpenVZ?
4Daniele Martini [email protected]
Per chi e' OpenVZ?
Ambienti Linux Only
Servizi di hosting
Cluster per High Availability (anche in piccola scala)
5Daniele Martini [email protected]
Per chi e' OpenVZ
6Daniele Martini [email protected]
Virtualizzazione
Risparmio Spazio
Indipendenza dall'hardware
Macchine migrabili
7Daniele Martini [email protected]
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
9Daniele Martini [email protected]
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 [email protected]
Approccio: ParaVirtualizzazione
Il S.O. ospite viene modificato
Il suo kernel parla direttamente con il VMM.
11Daniele Martini [email protected]
Approccio OS Level
Un solo kernel un solo sistema operativo
Le applicazioni sono “ingabbiate in un ambiente virtuale”
12Daniele Martini [email protected]
OpenVZ
13Daniele Martini [email protected]
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 [email protected]
Cioe'!?!?!?!?!?!?!?!?!?!?
15Daniele Martini [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
E il filesystem?!
/|../root|../home|../vz |....../vm1 | |../home | |../usr |....../vm2 |../home |../usr
19Daniele Martini [email protected]
E il filesystem?!
/|../root|../home|../vz |....../vm1 | |../home | |../usr |....../vm2 |../home |../usr
Host Node
Guest 1
Guest 2
20Daniele Martini [email protected]
Vantaggi FileSystem Condiviso
File System Condiviso
Scripting Avanzato(es. Svuota tutte le tmp di tutti i guest)
21Daniele Martini [email protected]
Componenti Openvz
Kernel linux modificato
Comandi user-level per gestire i guest
22Daniele Martini [email protected]
Installazione Kernel: the hard way
Scaricare i sorgenti
Compilare!!
23Daniele Martini [email protected]
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 [email protected]
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 [email protected]
Creazione Guest: deploy
# vzctl create 101 --ostemplate ubuntu-10.04-x86
26Daniele Martini [email protected]
Accesso alla macchina virtuale
Nessuna interfaccia grafica “alla vmware”
Dall'hostnode usanto Vzctl:
root@HostNode:~# vzctl enter 101
root@guest1:/#
Oppure ssh
27Daniele Martini [email protected]
Configurazione VM
I principali parametri di una macchina sono configurati tramite vzctl, e non dall'interno della macchina virtuale.
28Daniele Martini [email protected]
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 [email protected]
Interfacce di rete
La rete e' l'unica parte “Virtualizzata”
Ad ogni macchina vengono assegnati indirizzi ip
30Daniele Martini [email protected]
Suddivisione delle risorse: RAM
Assegnazione Dinamica.
Possibilita' di barriere per ogni macchina virtuale.
31Daniele Martini [email protected]
Suddivisione delle risorse: Altro
Spazio su disco
Numero di socket
Numero di processi
[...]
32Daniele Martini [email protected]
Assegnazione hardware
Tutto cio' che e' accessibile tramite un file in /dev può
essere assegnato a un Guest
33Daniele Martini [email protected]
Assegnazione Hardware
SI
Webcam (/dev/video/..)
TapeDrive (/dev/st)
...
NO
Bluetooth
34Daniele Martini [email protected]
Parliamo di Cluster?
35Daniele Martini [email protected]
Cluster Senza Disco Condiviso
36Daniele Martini [email protected]
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 [email protected]
High Avaialability: Requisiti
Condivisione File tra i Nodi
Monitoring dei server
38Daniele Martini [email protected]
High Avaialability: Requisiti
Condivisione File tra i Nodi
Monitoring dei server
39Daniele Martini [email protected]
DRBD
40Daniele Martini [email protected]
Heartbeat + DRBD + OpenVZ!!!!!!!
41Daniele Martini [email protected]
Security?
Possiamo essere sicuri che un Guest non possa accedere alle risorse degli altri Guest ?
42Daniele Martini [email protected]
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 :)