Post on 16-Feb-2019
transcript
Virtualizzazione
Orazio Battaglia
Definizione di virtualizzazione
In informatica il termine virtualizzazione si riferisce alla
possibilità di astrarre le componenti hardware, cioè
fisiche, degli elaboratori al fine di renderle disponibili al
software in forma di risorsa virtuale. Tramite questo
processo è quindi possibile installare sistemi operativi
su hardware virtuale; l'insieme delle componenti
hardware virtuali (Hard Disk, RAM, CPU, NIC) prende
il nome di macchina virtuale e su di esse può essere
installato il software come, appunto, i sistemi operativi
e relative applicazioni.
Definizione da Wikipedia (http://it.wikipedia.org/wiki/Virtualizzazione)
2 Tecnico di Reti Informatiche, modulo 2
Concetti di virtualizzazione
La macchina fisica, che mette a disposizione l’hardware, viene chiamata Host
La macchina virtuale, che consuma le risorse di hardware virtuale, viene chiamata Guest
Il layer software che mette in atto la virtualizzazione delle risorse hardware può essere:
Un hypervisor nel caso della virtualizzazione Server
Un software applicativo nel caso della virtualizzazione Client
Tipi di virtualizzazione:
Client
Server
Desktop
Applicazioni
3 Tecnico di Reti Informatiche, modulo 2
Tipi di virtualizzazione: Client (1/2)
Nella virtualizzazione Client su un sistema operativo (Windows, Linux, ecc) già installato sulla macchina fisica viene installata una applicazione di virtualizzazione. L’applicazione permette la creazione e l’uso di macchine virtuali che consumano le risorse hardware della macchina fisica.
Es. di software di virtualizzazione Client: VMware Player, Oracle VM Virtual Box.
Es. di uso: workstation in cui è necessario usare software sviluppati per ambiente Windows e software sviluppati per ambiente Linux, esecuzione di macchine di test
4 Tecnico di Reti Informatiche, modulo 2
Tipi di virtualizzazione: Client (2/2)
Vantaggi
Possibilità di eseguire più sistemi operativi diversi
contemporaneamente
Semplicità dello spostamento di una macchina
virtuale, è sufficiente copiare o spostare i file che
costituiscono la macchina virtuale
Possibilità di creare degli ambienti di test ad hoc
Possibilità di eseguire software esistenti solo su
determinate piattaforme
Possibilità di spostare i dati dalla macchina fisica alla
macchina virtuale e viceversa
5 Tecnico di Reti Informatiche, modulo 2
Tipi di virtualizzazione: Server (1/2) La virtualizzazione inserisce un livello (layer) tra l’hardware della macchina fisica e il
sistema operativo che viene eseguito sulla macchina fisica
Il livello inserito (nell’immagine Xen) astrae le risorse hardware della macchina fisica (Host) e le mette a disposizione dei sistemi operativi Guest
Il livello inserito altro non è che un piccolo sistema operativo (hypervisor) il cui principale lavoro è la gestione dell’accesso alla risorse da parte dei sistemi operativi Guest
Es. di uso: virtualizzazione dei server del Data Center
Riferimento immagine http://www.xen.org/files/Marketing/WhatisXen.pdf
6 Tecnico di Reti Informatiche, modulo 2
Tipi di virtualizzazione: Server (2/2)
Vantaggi
Ottimizzazione dell’uso delle risorse hardware e minimizzazione gli sprechi
Risparmio energetico
Controllo centralizzato di tutta la sala server
Monitoraggio delle risorse in uso
Incremento della flessibilità: in un ambiente virtualizzato mettere a disposizione nuovi servizi è una operazione più rapida e più sicura in quanto non dipendente da un solo apparato hardware
Scalabilità della piattaforma: al crescere delle dimensioni è sufficiente aggiungere e non sostituire tutto
Ripristino dei servizi in caso di guasto più rapido: minimizzazione dei tempi di downtime in caso di malfunzionamenti hardware e/o software
7 Tecnico di Reti Informatiche, modulo 2
Tipi di virtualizzazione: Desktop (1/2)
La virtualizzazione Desktop consiste nella creazione
di desktop virtuali da usare al posto dei desktop fisici
tradizionali
I desktop virtuali vengono eseguiti all’interno del
Data Center e l’accesso da parte degli utenti avviene
tramite un protocollo di accesso remoto (RDP di
Microsoft, ICA di Citrix, PCoIP di VMware)
Vengono usate delle tecnologie per la
deduplicazione dei dischi dei desktop virtuali e delle
tecnologie per gestire l’accesso da parte degli utenti
(tipicamente utenti di Active Directory)
8 Tecnico di Reti Informatiche, modulo 2
Tipi di virtualizzazione: Desktop (2/2)
Vantaggi
Installazione di sistema operativo e software applicativo su una unica
immagine di disco, l’immagine viene «consegnata» ad un numero variabile
di utenti.
Aggiornare un software (sistema operativo, antivirus, software, windows
update, …) diventa una operazione che non richiede di andare su ogni
singola macchina: aggiorno l’immagine disco di base e la ridistribuisco.
I desktop virtuali sono eseguiti sui server del data center: i vecchi computer
possono essere riutilizzati come terminali e ai nuovi utenti possono essere
consegnati dei piccoli thin client per la connessione al desktop virtuale
remoto. Abbattimento sostanziale dei costi di gestione dell’hardware.
Flessibilità di accesso al proprio desktop: un utente con il proprio computer
(desktop tradizionale, portatile, thin client, dispositivo mobile) può collegarsi
al desktop virtuale remoto.
Centralizzazione del supporto all’utente finale. Una console permette di
vedere lo stato dei desktop in esecuzione e di intervenire remotamente.
9 Tecnico di Reti Informatiche, modulo 2
Architetture dei principali Hypervisor (1/4)
10
Xen (www.xen.org)
L’hypervisor Xen installa il dominio «dom0» che si occupa della gestione delle risorse hardware. I sistemi operativi Guest (dom1 … domN) chiedono risorse all’hypervisor che si rivolge al «dom0»
Il «dom0» include anche le API (Application Programming Interface) di management
Tecnico di Reti Informatiche, modulo 2
Architetture dei principali Hypervisor (1/4)
Tecnico di Reti Informatiche, modulo 2 11
L’hypervisor Xen supporta due tipi di Guest: PV (Paravirtualization) e HVM (Hardware Virtual Machine)
Xen Paravirtualization (PV): richiede un kernel che supporti la paravirtualizzazione di Xen. Il Guest non usa dell’hardware emulato ma direttamente quello fisico passando per il kernel abilitato al funzionamento su Xen. I kernel esistono per Linux, NetBSD, FreeBSD, OpenSolaris e Novell Netware.
Xen Full virtualization (HVM): richiede le estensioni per la virtualizzazione delle CPU (Intel VT, AMD-V). Xen usa QEMU per emulare tutto l’hardware del server. I Guest in questa modalità non necessitano di particolari kernel. Windows usa questa modalità.
La paravirtualizzazione, non richiedendo emulazione, è in generale più efficiente.
Architetture dei principali Hypervisor (2/4)
12
Hyper-V (http://www.microsoft.com/en-us/server-cloud/hyper-v-server/)
L’hypervisor Hyper-V di Microsoft ha una architettura del tutto simili a quella di Xen
Tecnico di Reti Informatiche, modulo 2
Architetture dei principali Hypervisor (3/4)
13
VMware ESXi (http://www.vmware.com/it/products/datacenter-virtualization/vsphere/)
L’hypervisor ESXi di Vmware si occupa direttamente della gestione dell’hardware e del suo accesso da parte dei sistemi operativi Guest
L’hypervisor ESXi espone direttamente le API di management
Tecnico di Reti Informatiche, modulo 2
Architetture dei principali Hypervisor (4/4)
14
KVM (http://www.linux-kvm.org/page/Main_Page)
La virtualizzazione viene attuata mediante moduli del kernel linux, kvm.ko e, in base alla architettura dei processori, i moduli kvm-intel.ko o kvm-amd.ko.
Usa inoltre QEMU (http://wiki.qemu.org/Main_Page) emulatore di macchina e virtualizzatore
La virtualizzazione assomigli a quella di tipo Client ma è più performante
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
15
In una architettura di virtualizzazione Server svolge
un ruolo primario lo storage che ospiterà i file che
costituiscono le macchine virtuali
Tipicamente una architettura Server prevede la
presenza di almeno 2 macchine fisiche server e di
almeno uno storage
La condivisione dello storage tra le macchine fisiche
permette lo spostamento a caldo (durante
l’esecuzione) delle macchine virtuali
La presenza di almeno 2 macchine fisiche
garantische la tolleranza al guasto di una macchina
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
16
I Server 1 e 2 condividono lo Storage che ospita i file che costituiscono le macchine virtuali.
Le linee rosse indicano la connessione allo storage senza specificarne il tipo.
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
17
Tipi di storage:
DAS: Direct Attached Storage, è il sistema di storage
direttamente collegato alla macchina fisica. Il controller
dello storage (IDE, SATA, RAID IDE o SATA) è installato
sulla macchina fisica. Storage tradizionale
NAS: Network Attached Storage, tipicamente una
appliance fisica con diversi dischi collegati in RAID che
espone protocolli di condisione NFS o CIFS/SMB.
SAN (iSCSI, Fiber Channel): Storage Area Network,
tipicamente una appliance fisica con diversi dischi
collegati in RAID che permette l’accesso RAW ai dati
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
18
NAS e SAN:
NAS e SAN sono storage condivisi via rete
I NAS permettono l’acceso ai dati a livello di file system: gestiscono l’accesso contemporaneo ai file ma le performance possono risentire della presenza del file system
Le SAN permettono l’accesso ai dati RAW cioè direttamente a blocchi fisici. Non è presente un file system che gestisca l’accesso contemporaneo ai dati che a questo punto è delegato al server che accede ai dati. Poiché l’accesso ai dati è a livello di blocchi le performance sono molto elevate
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
19
Tipi di NAS e tipi di SAN:
I NAS in genere espongono i protocolli NFS o CIFS/SMB. Le macchine fisiche chiedono file tramite questi protocolli.
Le SAN sono tipicamente:
Fibre Channel: i blocchi dei dati viaggiano sulla fibra ottica. Necessitano di hardware di rete specifico (basato su fibra) e in genere molto costoso.
iSCSI: i blocchi dei dati viaggiano sulla infrastruttura di rete TCP/IP tradizionale. In pratica i comandi SCSI vengono inseriti all’interno di segmenti TCP/IP e quindi possono viaggiare su switch e attraversare I router. Soluzione in genere più abbordabile rispetto a Fibre Channel. iSCSI usa le porte TCP/IP 860 e 3260.
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
20
Storage multipathing.
Con il termine multipath ci si riferisce alla possibilità di raggiungere una destinazione da diversi percorsi.
Lo storage multipathing prevede proprio la possibilità di definire percorsi alternativi verso lo storage.
Lo storage multipathing permette di ottenere:
Bilanciamento del carico di lavoro sui diversi path
Fault tolerance nel caso uno dei path diventi indisponibile
Lo storage multipathing è in genere una feature degli storage di livello enterprise che usano iSCSI o Fibre Channel e quindi si riferisce tipicamente a SAN.
Lo storage multipathing è in genere legato alla presenza di più controller di memorizzazione all’interno dello storage.
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
21
Se da un lato la virtualizzazione Server presenta tutti i vantaggi visti in precedenza dall’altro è necessario pensare a ridondare tutte le componenti in modo da evitare il fermo dei servizi in caso di rotture hardware.
E’ utile tenere in considerazione la ridondanza a diversi livelli: Livello Server:
Hypervisor installato su almeno una coppia di dischi in RAID 1
Alimentatore ridondato
Livello Rete: Almeno 2 switch di collegamento
Meglio se ogni switch con doppio alimentatore
Livello Storage: Almeno 2 controller per l’accesso ai dati
Alimentatore ridondato
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Server
22
Esempio di architettura di virtualizzazione Server con Storage iSCSI, 2 switch e 2 Server
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Desktop
23
La virtualizzazione Desktop non è la virtualizzazione Server
La virtualizzazione Desktop non è la semplice somma di tutte le macchine virtuali che girano nell’ambiente di virtualizzazione Desktop, non sarebbe efficiente
Servono delle tecnologie per la deduplicazione del disco dei desktop virtuali e per la deduplicazione della memoria
Sono necessari dei server per garantire l’autenticazione, l’autorizzazione e l’accesso sicuro degli utenti ai desktop virtuali
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Desktop
24
Un ambiente di virtualizzazione desktop tipicamente dispone di server ridondati per ogni servizio. Tutti i desktop virtuali vengono eseguiti nel Data Center ed è necessario che ogni componente sia Fault Tolerant per evitare l’arresto di tutti i servizi in caso di malfunzionamenti hardware e/o software
In un ambiente di virtualizzazione desktop tipicamente servono i seguenti server:
Server di accesso sicuro (VPN)
Server controller che servono per la creazione di gruppi di desktop, per l’assegnazione dei gruppi di desktop a gruppi di utenti, per la gestione del power management dei gruppi di desktop, per la gestione di policy applicate ai gruppi di desktop
Server di provisioning dei dischi
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Desktop
25
Esempio di architettura VMware VIEW 5
Tecnico di Reti Informatiche, modulo 2
Architetture di virtualizzazione Desktop
26
Esempio di architettura Citrix XenDesktop 5
Tecnico di Reti Informatiche, modulo 2
Virtualizzazione delle Applicazioni
Tecnico di Reti Informatiche, modulo 2 27
La virtualizzazione delle applicazioni permette di gestire in modo centralizzato il software applicativo di una organizzazione. L’aggiornamento di un software applicativo richiede l’aggiornamento sul server di virtualizzazione e la ridistribuzione agli utenti.
I modelli di virtualizzazione delle applicazioni tipicamente sono 2:
1. Streaming dell’applicazione (offline use): l’utente richiede una applicazione al server il quale la spedisce al client (streaming) che la esegue localmente. Crea del traffico di streaming sulla rete ma non richiede capacità elaborativa particolare sul server.
2. Accesso remoto all’applicazione (online use): l’utente per eseguire del software applicativo si collega ad un server. Non viene generato molto traffico di rete ma richiede capacità elaborativa sul server che esegue l’applicazione.