• Non ci sono risultati.

Introduzione alla virtualizzazione

N/A
N/A
Protected

Academic year: 2022

Condividi "Introduzione alla virtualizzazione"

Copied!
27
0
0

Testo completo

(1)

Introduzione alla virtualizzazione

Marco Caberletti

Formazione MCloud WP1 – Ancona 18-19 Marzo 2013

(2)

Indice

• Concetti Generali

• Definizioni

• Tipologie di virtualizzazione

• Vantaggi e svantaggi

• Linux KVM e Libvirt

(3)

Concetti Generali (1)

• Informalmente, con virtualizzazione si intende la creazione di una versione virtuale di qualcosa

Piattaforma hardware, sistema operativo, dispositivo di storage o risorsa di rete.

• Alla base di tutte le tecnologie di virtualizzazione c'è l'astrazione:

Creare un livello di intermedio tra l'hardware/sistema operativo e le applicazioni che semplifica e nasconde i dettagli sottostanti

(4)

Concetti Generali (2)

• Consente di eseguire un programma in un ambiente sempre identico, detto macchina virtuale, senza

sapere su che hardware/sistema operativo sia effettivamente in esecuzione.

Es. Java JVM

• Per le applicazioni,

l'ambiente virtuale è del tutto identico ad un

ambiente fisico.

(5)

Tipi di virtualizzazione

• Quando i sistemi virtuali usano un instruction set differente da quello del sistema fisico, si parla di emulazione.

Esempio: emulare ARM o PowerPC su piattaforma Intel

• Quando invece i sistemi virtuali usano lo stesso set di istruzioni dell'host, si parla propriamente di

virtualizzazione.

Si differenzia fra virtualizzazione completa e para- virtualizzazione.

(6)

Virtualizzazione completa

• I sistemi operativi delle macchine virtuali (VM), non hanno alcuna consapevolezza di essere eseguite

“sopra” ad un hypervisor.

• I sistemi ospite quindi girano senza alcuna modifica.

• Il virtualizzatore

(hypervisor) è incaricato di un grosso lavoro di

traduzione delle chiamate privilegiate (system call) delle VM per renderle eseguibili.

(7)

Para-virtualizzazione

• L'hypervisor presenta alle VM un'interfaccia diversa da quella dell'hardware sottostante, detta hypervisor call o hypercall.

• Sono necessarie modifiche ai sistemi operativi ospiti.

• La maggior parte delle

richieste arriva in maniera diretta all'hardware

(8)

Hypervisor

• Lo strato software che fornisce l'astrazione viene chiamato Virtual Machine Monitor (VMM) o

hypervisor.

• Il suo compito principale è quello di gestire le istruzioni protette delle macchine virtuali.

• Gli hypervisor sono classificati in due modi:

Tipo 1 o bare metal

Tipo 2 o hosted

(9)

Hypervisor bare metal

• Sono hypervisor che vengono direttamente eseguiti sull'hardware

• Le funzionalità di virtualizzazione si fondono in un SO

“leggero” che include anche tutti i driver per le

periferiche ed il sistema di gestione/realizzazione delle macchine virtuali.

• Esempi: XEN, VMware vSphere, Parallels Server 4 Bare Metal e Hyper-V.

(10)

Hypervisor hosted

• Sono hypervisor che vengono eseguiti all'interno di un sistema operativo

• Vengono installati come applicazioni in user-space ed utilizzano le system call per eseguire le istruzioni

privilegiate.

• Esempio: Oracle VirtualBox.

(11)

Linux KVM (1)

KVM (Kernel-based Virtual Machine) non appartiene a nessuna delle precedenti classificazioni.

• Il sistema di virtualizzazione è realizzato come un modulo del kernel Linux.

• Permette di eseguire processi, oltre che nelle modalità kernel e user, in una modalità chiamata guest mode.

• Quest'ultima trasforma il kernel in un vero e proprio hypervisor, dove le macchine virtuali girano come semplici processi.

(12)

Linux KVM (2)

Un processo in modalità guest, ha la possibilità di

eseguire codice sia in user che in kernel mode, come permesso dalle estensioni Intel VT e AMD-V dei nuovi processori.

--> Serve supporto hardware per usare KVM

--> Tutti i processori degli ultimi anni lo supportano

• La gestione della memoria è affidata alle tecnologie

EPT e NPT di Intel e AMD, che permettono la gestione diretta delle page table e dei fault da parte delle

macchine virtuali.

(13)

Linux KVM (3)

• Componenti principali di KVM:

Modulo KVM e il device /dev/kvm

QEMU

I processi che rappresentano le VM

/dev/kvm è un dispositivo a caratteri che fa da interfaccia con il sistema di virtualizzazione.

QEMU realizza le interfacce di I/O quali dischi, schede di rete e CD-ROM. E' in grado di realizzare via

software tutte le componenti di un PC.

(14)

Linux KVM (4)

• Schema della virtualizzazione con KVM:

(15)

Vantaggi (1)

• Server consolidation

Molte VM su una sola macchina fisica

Riduce i costi di acquisizione dell'hardware e semplifica operazioni come monitoring e amministrazione

• Sandboxing

Isolare applicazioni

Sviluppo, test e debug di codice

Creazione ambiente per applicazioni legacy

• Creazione delle VM on demand

(16)

Vantaggi (2)

• Disaccoppia hardware dal software

Suspend/Resume delle VM

Migrazione di VM fra server fisici

• Test di nuove versioni di SO e applicazioni

• Emulazione di hardware non presente sulla macchina fisica

• Esecuzione di applicazioni non compatibili col sistema operativo della macchina fisica

(17)

Svantaggi

• Sicurezza

Si mettono sullo stesso hardware diversi SO, gestiti da un software: è noto che non esiste software privo di bug

• Performance

Overhead per la macchina fisica

Minori prestazioni per la VM, soprattutto nell'I/O

(18)

Performance (1)

Performance CPU:

(19)

Performance (2)

Performance della banda di rete:

(20)

Performance (3)

Performance dell'I/O su disco:

(21)

Libvirt (1)

• Hypervisor diversi adottano strumenti di gestione diversi.

Libvirt è un set di librerie sviluppato con lo scopo di creare una soluzione unica e trasparente per gestire sistemi di virtualizzazione ad alto livello.

• Sono compatibili con i principali sistemi di virtualizzazione:

Oltre a XEN, KVM, e VirtualBox, supporta anche VMware, LXC, OpenVZ e UML

(22)

Libvirt (2)

• Offrono binding per numerosi linguaggi di

programmazione: questo consente di scrivere script o applicazioni in maniera del tutto indipendente

dall'hypervisor utilizzato.

• Esempi:

Virsh: una shell che fa uso di file XML per descrivere dominii, reti e storage pool

Virt-manager: un'interfaccia grafica che si appoggia su libvirt, usa sempre file XML

(23)

Libvirt (3)

• Esempio XML

• Descrive la VM e tutte le sue periferiche Core

Hard Disk

(24)

Libvirt (4)

• Alcune operazioni:

# virsh define centos.xml Definisce una VM (senza avviarla)

# virsh start centos Avvia la VM

# virsh list Elenca le VM attive

# virsh reboot centos Riavvia la VM

# virsh shutdown centos Spegne la VM

# virsh destroy centos Elimina la VM

• Si noti che tutti i comandi sono di alto livello, indipendenti dall'hypervisor

(25)

Libvirt (5)

• Libvirt utilizza una terminologia differente per identificare hypervisor e VM:

hypervisor --> node

VM --> domain

• Libvirt consente il controllo sia di VM locali, sia di VM remote

Usa uno speciale tipo di demone, chiamato libvirtd, in esecuzione sui nodi remoti

(26)

Libvirt (6)

• Schema funzionamento libvirt:

(27)

Grazie per l'attenzione Domande?

Riferimenti

Documenti correlati

Ibidem, pag.. 37 essa, non averla adottata o addirittura rigettata. Perciò l'aspetto di novità dell'innovazione può essere espresso in termini di conoscenza,

Nel corso degli anni Settanta è in atto una rinascita del mercato dell’arte, il quale soffre a causa della forte recessione che ha colpito gran parte dei paesi negli anni

In this paper, we provide a preliminary account of the distribution of brittle strain associated with the early part of the 2005 Afar rifting cycle to: (1) verify the pattern

Inoltre sottolinea una serie di strumenti e tecnologie che sono comunemente usate per la collaborazione nei team virtuali e presenta delle linee guida per conoscere come scegliere

Operation Loads on the operand stack a reference from the variable table associated to the code frame being executed by the thread Format ASP VT LOAD table id index byte1 index

Configurare Desktop LUbuntu 20.04.03 -Eliminare Barra superiore che occupa spazio inutilmente (2). • La barra è un pannello, lo si seleziona col mouse cliccando col tasto destro

La fiducia in se stessi è la sola strada per la vera libertà, ed essere se stessi è la ricompensa definitiva.