Linux Day 2010: Virtualizzare con OpenVZ

42
1 Daniele Martini [email protected] Sabato 23 Ottobre 2010 Università di Verona Linux Day 2010 OpenVZ Server Virtualization Itis G. Marconi Con il patrocinio di:

Transcript of Linux Day 2010: Virtualizzare con OpenVZ

Page 1: 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:

Page 2: Linux Day 2010: Virtualizzare con OpenVZ

2Daniele Martini [email protected]

whois cyrax

Linux, VoIP, Networking, Security

@

Page 3: Linux Day 2010: Virtualizzare con OpenVZ

3Daniele Martini [email protected]

Chi puo' usare OpenVZ?

Page 4: Linux Day 2010: Virtualizzare con OpenVZ

4Daniele Martini [email protected]

Per chi e' OpenVZ?

Ambienti Linux Only

Servizi di hosting

Cluster per High Availability (anche in piccola scala)

Page 5: Linux Day 2010: Virtualizzare con OpenVZ

5Daniele Martini [email protected]

Per chi e' OpenVZ

Page 6: Linux Day 2010: Virtualizzare con OpenVZ

6Daniele Martini [email protected]

Virtualizzazione

Risparmio Spazio

Indipendenza dall'hardware

Macchine migrabili

Page 7: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 8: Linux Day 2010: Virtualizzare con OpenVZ

8Daniele Martini [email protected]

Diversi Approcci

WARNING. THIS PART IS OVER-SIMPLIFIED

Page 9: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 10: Linux Day 2010: Virtualizzare con OpenVZ

10Daniele Martini [email protected]

Approccio: ParaVirtualizzazione

Il S.O. ospite viene modificato

Il suo kernel parla direttamente con il VMM.

Page 11: Linux Day 2010: Virtualizzare con OpenVZ

11Daniele Martini [email protected]

Approccio OS Level

Un solo kernel un solo sistema operativo

Le applicazioni sono “ingabbiate in un ambiente virtuale”

Page 12: Linux Day 2010: Virtualizzare con OpenVZ

12Daniele Martini [email protected]

OpenVZ

Page 13: Linux Day 2010: Virtualizzare con 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.

Page 14: Linux Day 2010: Virtualizzare con OpenVZ

14Daniele Martini [email protected]

Cioe'!?!?!?!?!?!?!?!?!?!?

Page 15: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 16: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 17: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 18: Linux Day 2010: Virtualizzare con OpenVZ

18Daniele Martini [email protected]

E il filesystem?!

/|../root|../home|../vz |....../vm1 | |../home | |../usr |....../vm2 |../home |../usr

Page 19: Linux Day 2010: Virtualizzare con OpenVZ

19Daniele Martini [email protected]

E il filesystem?!

/|../root|../home|../vz |....../vm1 | |../home | |../usr |....../vm2 |../home |../usr

Host Node

Guest 1

Guest 2

Page 20: Linux Day 2010: Virtualizzare con OpenVZ

20Daniele Martini [email protected]

Vantaggi FileSystem Condiviso

File System Condiviso

Scripting Avanzato(es. Svuota tutte le tmp di tutti i guest)

Page 21: Linux Day 2010: Virtualizzare con OpenVZ

21Daniele Martini [email protected]

Componenti Openvz

Kernel linux modificato

Comandi user-level per gestire i guest

Page 22: Linux Day 2010: Virtualizzare con OpenVZ

22Daniele Martini [email protected]

Installazione Kernel: the hard way

Scaricare i sorgenti

Compilare!!

Page 23: Linux Day 2010: Virtualizzare con OpenVZ

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, ...)

Page 24: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 25: Linux Day 2010: Virtualizzare con OpenVZ

25Daniele Martini [email protected]

Creazione Guest: deploy

# vzctl create 101 --ostemplate ubuntu-10.04-x86

Page 26: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 27: Linux Day 2010: Virtualizzare con OpenVZ

27Daniele Martini [email protected]

Configurazione VM

I principali parametri di una macchina sono configurati tramite vzctl, e non dall'interno della macchina virtuale.

Page 28: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 29: Linux Day 2010: Virtualizzare con OpenVZ

29Daniele Martini [email protected]

Interfacce di rete

La rete e' l'unica parte “Virtualizzata”

Ad ogni macchina vengono assegnati indirizzi ip

Page 30: Linux Day 2010: Virtualizzare con OpenVZ

30Daniele Martini [email protected]

Suddivisione delle risorse: RAM

Assegnazione Dinamica.

Possibilita' di barriere per ogni macchina virtuale.

Page 31: Linux Day 2010: Virtualizzare con OpenVZ

31Daniele Martini [email protected]

Suddivisione delle risorse: Altro

Spazio su disco

Numero di socket

Numero di processi

[...]

Page 32: Linux Day 2010: Virtualizzare con OpenVZ

32Daniele Martini [email protected]

Assegnazione hardware

Tutto cio' che e' accessibile tramite un file in /dev può

essere assegnato a un Guest

Page 33: Linux Day 2010: Virtualizzare con OpenVZ

33Daniele Martini [email protected]

Assegnazione Hardware

SI

Webcam (/dev/video/..)

TapeDrive (/dev/st)

...

NO

Bluetooth

Page 34: Linux Day 2010: Virtualizzare con OpenVZ

34Daniele Martini [email protected]

Parliamo di Cluster?

Page 35: Linux Day 2010: Virtualizzare con OpenVZ

35Daniele Martini [email protected]

Cluster Senza Disco Condiviso

Page 36: Linux Day 2010: Virtualizzare con OpenVZ

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

Page 37: Linux Day 2010: Virtualizzare con OpenVZ

37Daniele Martini [email protected]

High Avaialability: Requisiti

Condivisione File tra i Nodi

Monitoring dei server

Page 38: Linux Day 2010: Virtualizzare con OpenVZ

38Daniele Martini [email protected]

High Avaialability: Requisiti

Condivisione File tra i Nodi

Monitoring dei server

Page 39: Linux Day 2010: Virtualizzare con OpenVZ

39Daniele Martini [email protected]

DRBD

Page 40: Linux Day 2010: Virtualizzare con OpenVZ

40Daniele Martini [email protected]

Heartbeat + DRBD + OpenVZ!!!!!!!

Page 41: Linux Day 2010: Virtualizzare con OpenVZ

41Daniele Martini [email protected]

Security?

Possiamo essere sicuri che un Guest non possa accedere alle risorse degli altri Guest ?

Page 42: Linux Day 2010: Virtualizzare con OpenVZ

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 :)