Linux Day 2010: Virtualizzare con OpenVZ

Post on 04-Jun-2015

1.204 views 1 download

Tags:

Transcript of Linux Day 2010: Virtualizzare con OpenVZ

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