Virtual Systems

Anno accademico 2026/2027 - Docente: FABRIZIO MESSINA

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione (knowledge and understanding): 

L'obiettivo primario del corso è l’acquisizione di una preparazione teorica e pratica inerente alla virtualizzazione dei sistemi di calcolo. Il corso rivolge particolare attenzione ai concetti fondamentali della virtualizzazione, le sue applicazioni nell’informatica moderna nonché il ruolo strategico che essa riveste nell’ottimizzazione delle moderne infrastrutture di calcolo. Inoltre, una buona parte del corso sarà dedicata all’utilizzo di alcune delle tecnologie di virtualizzazione più diffuse al fine di comprendere i principali aspetti operativi dei sistemi di calcolo virtuali.  

 

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): 

Il corso verte sulla trattazione degli strumenti utili a comprendere i principali aspetti della virtualizzazione nonché le principali differenze tra gli hypervisor. Il corso permetterà di comprendere i principali aspetti relativi all’automazione dei sistemi virtuali. Un ultimo importante aspetto è relativo alla comprensione dei principi della virtualizzazione al fine di implementare sistemi ad alta disponibilità. 

Il discente dovrà essere in grado di applicare la conoscenza di appositi strumenti per configurare lo storage virtuale e le connessioni di rete tra le macchine virtuali, ed infine di applicare la conoscenza di appositi strumenti per la gestione del ciclo di vita delle macchine virtuali.  

 

Autonomia di giudizio (making judgements): attraverso l’esame di numerosi esempi di carattere pratico, lo studente sarà in grado di analizzare problemi e progettare e implementare soluzioni che prevedano l’uso della virtualizzazione.  

 

Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative nell'impiego del linguaggio verbale/tecnico nell'ambito della virtualizzazione.  

 

Capacità di apprendimento (learning skills): il corso intende fornire allo studente le necessarie metodologie teoriche e pratiche da introdurre in contesti professionali, come la capacità di progettare soluzioni che prevedano l’uso della virtualizzazione nonché la possibilità di acquisire facilmente ulteriori conoscenze relative a differenti tecnologie di virtualizzazione o tecnologie similari.  

Modalità di svolgimento dell'insegnamento

Le lezioni si svolgeranno in presenza, con modalità frontale. È prevista l’esposizione dei contenuti di natura teorica e pratica da parte del docente, con il supporto di slide e lavagna. La partecipazione attiva degli studenti sarà incoraggiata attraverso domande e momenti di discussione in aula. 

 

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus. 

Prerequisiti richiesti

Conoscenze di base di reti di calcolatori, sistemi operativi linux/unix, unix shell scripting.  

Frequenza lezioni

Per una comprensione approfondita degli argomenti trattati e delle metodologie presentate, si raccomanda vivamente la regolare partecipazione alle lezioni. 

Contenuti del corso

  • Introduzione alla virtualizzazione ([1] capitolo 1, [2] capitolo 1) 

  • Cosa è la virtualizzazione ([1] capitolo 1) 

  • Importanza della virtualizzazione ([2] capitolo 1) 

  • Principali applicazioni della virtualizzazione ([2] capitolo 1) 

  • Hypervisor ([1] capitolo 1, [2] capitolo2) 

  • Definizione di hypervisor ([2] capitolo 2) 

  • Tipi di hypervisor ([2] capitolo 2) 

  • Full virtualization, Para virtualization, hardware assisted virtualization ([1] capitolo 1) 

  • Ecosistema QEMU/ KVM, libvirt e oVirt ([2] capitoli 1,2,3) 

  • Emulazione con Qemu ([2] capitolo 2) 

  • Virtualizzazione con KVM ([2] capitolo 1 e capitolo 3) 

  • Introduzione a libvirt e oVirt ([2] capitolo 3) 

  • Installazione di KVM e libvirt ([2] capitolo 3) 

  • Creazione e avvio di una macchina virtuale ([2] capitolo 3) 

  • Networking virtuale ([1] capitolo 10, [2] capitolo 4) 

  • Dispositivi TAP e TUN ([1] capitolo 10, [2] capitolo 4) 

  • Bridging  ([1] capitolo 10, [2] capitolo 4) 

  • Networking con libvirt  ([1] capitolo 10, [2] capitolo 4) 

  • Open vSwitch ([1] capitolo 10, [2] capitolo 4) 

  • Storage virtuale ([1] capitolo 9, [2] capitolo 5) 

  • Storage pool ([1] capitolo 9, [2] capitolo 5) 

  • Nfs ([2] capitolo 5)  

  • Iscsi, Storage Area Network (SAN) ([1] capitolo 9, [2] capitolo 5) 

  • Ridondanza, multipathing  ([2] capitolo 5) 

  • Gestione di immagini virtuali ([2] capitolo 5) 

  • Macchine virtuali e il loro ciclo di vita ([2] capitolo 10) 

  • Installazione e configurazione di macchine virtuali ([2] capitolo 10) 

  • Migrazione di macchine virtuali ([2] capitolo 10) 

  • Gestione di dischi virtuali, template, snapshot ([1] capitolo 11, [2] capitolo 8) 

  • Uso di libguestfs ([2] capitolo 8) 

  • Template ([2] capitolo 8, [1] capitolo 11) 

  • Uso di virt-builder ([2] capitolo 8) 

  • Snapshots ([2] capitolo 8, [1] capitolo 11) 

  • Automazione di ecosistemi virtuali ([2] capitolo 9, [2] capitolo 11) 

  • Introduzione a Cloud-init ([2] capitolo 9) 

  • Introduzione ad ansible ([2] capitolo 11) 


[1] Dakic, V., Chirammal, H.D., Mukhedkar, P. and Vettathu, A. "Mastering KVM Virtualization: Design expert data center virtualization solutions with the power of Linux KVM, Second Edition". 2020 ISBN: 978-1838828714  

 

[2] Matthew Portnoy. "Virtualization Essentials. Third edition". 2023.   ISBN: 978-1394181568.  

[3] Materiale di supporto fornito dal docente, che sara’ pubblicato al seguente link: www.dmi.unict.it/messina

Testi di riferimento

[1] Dakic, V., Chirammal, H.D., Mukhedkar, P. and Vettathu, A. "Mastering KVM Virtualization: Design expert data center virtualization solutions with the power of Linux KVM, Second Edition". 2020 ISBN: 978-1838828714  

 

[2] Matthew Portnoy. "Virtualization Essentials. Third edition". 2023.   ISBN: 978-1394181568.  

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione alla virtualizzazioneLibri di testo, dispense del docente
2Hypervisor Libri di testo, dispense del docente
3Ecosistema QEMU/ KVM, libvirt e oVirt Libri di testo, dispense del docente
4Networking virtuale Libri di testo, dispense del docente
5Storage virtualeLibri di testo, dispense del docente
6Macchine virtuali e il loro ciclo di vita Macchine virtuali e il loro ciclo di vita 
7Gestione di dischi virtuali, template, snapshotMacchine virtuali e il loro ciclo di vita 
8Automazione di ecosistemi virtualiMacchine virtuali e il loro ciclo di vita 

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L’esame consiste in una prova scritta ed una successiva prova orale.  

 

Tali prove potranno avere luogo per via telematica, qualora le condizioni lo dovessero richiedere. La prova orale potrà svolgersi il giorno stesso in cui è stata svolta la prova scritta o a distanza di pochi giorni da esso.  

 

La prova d’esame è finalizzata a valutare in modo approfondito la preparazione dello studente, la capacità di analisi e di ragionamento sugli argomenti trattati durante il corso, nonché l’adeguatezza del linguaggio tecnico utilizzato. 

 

La prova orale ha valore integrativo rispetto alla prova scritta e concorre alla determinazione del voto finale in modo inscindibile. Essa non rappresenta un’opportunità di incremento del punteggio, ma un completamento necessario per la valutazione complessiva della preparazione dello studente. 

 

Per l'attribuzione del voto finale si seguiranno di norma i seguenti criteri: 
- non approvato: lo studente non ha acquisito i concetti di base e non è in grado di svolgere gli esercizi. 
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di esposizione e di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi. 
- 24-27:  lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di esposizione e di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori. 
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di esporli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori. 

 

Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative. 

 

Esempi di domande e/o esercizi frequenti

Esporre le principali caratteristiche dell'ecosistema Qemu/KVM. 


Cosa e' la libreria libvirt. 

Esporre i principi della virtualizzazione. 

Networking con libvirt Gestione di immagini virtuali.