Virtualizzazione — Cheat Sheet

Tag: virtualization, hypervisor, vm, containers, docker, vmware, kvm

Livello: intermedio

TL;DR: Riassunto sui concetti fondamentali della virtualizzazione, differenze tra macchine virtuali e container, e tipologie di hypervisor per i colloqui tecnici.

Concetti chiave

-

L'hypervisor (Virtual Machine Monitor) astrae l'hardware fisico permettendo l'esecuzione di più macchine virtuali isolate.

-

Type 1 Hypervisor (Bare-metal): gira direttamente sull'hardware host (es. VMware ESXi, Proxmox, Xen, Hyper-V).

-

Type 2 Hypervisor (Hosted): gira sopra un sistema operativo convenzionale (es. VirtualBox, VMware Workstation).

-

Full Virtualization: la VM non sa di essere virtualizzata, l'hypervisor simula interamente l'hardware sottostante.

-

Paravirtualizzazione: l'OS guest è consapevole della virtualizzazione e comunica direttamente con l'hypervisor per maggiore efficienza.

-

Containerizzazione: virtualizzazione a livello di OS. Condivide il kernel host, risultando più leggera delle VM.

-

Snapshot: salvataggio dello stato e dei dati di una VM, utile per rollback immediati pre-aggiornamento.

-

Live Migration: spostamento di una VM in esecuzione da un host all'altro senza causare interruzioni.

Domande tipiche e risposte pronte

-

Q: Qual è la differenza principale tra una Macchina Virtuale e un Container?R: Le VM virtualizzano l'hardware e includono un intero OS guest. I container virtualizzano solo l'OS condividendo il kernel dell'host, risultando molto più leggeri e veloci.

-

Q: Perché preferiresti un hypervisor Type 1 rispetto a un Type 2 in produzione?R: Il Type 1 gira direttamente sul ferro, eliminando l'overhead del sistema operativo sottostante. Questo mi garantisce prestazioni, sicurezza e stabilità di gran lunga superiori.

-

Q: Cos'è un hypervisor KVM?R: È un modulo integrato nel kernel Linux che trasforma l'host in un hypervisor Type 1, sfruttando le estensioni hardware dei processori per la virtualizzazione.

Insidie e errori comuni

-

Overprovisioning eccessivo di CPU o RAM che causa resource contention e degrado delle prestazioni (effetto noisy neighbor).

-

Dimenticare di consolidare o eliminare vecchi snapshot, consumando spazio disco e rallentando drasticamente le performance di I/O.

-

Configurare i container come se fossero VM (es. usando SSH o systemd all'interno) invece di mantenere un singolo processo per container.

Snippet e comandi

# Lista di tutte le macchine virtuali gestite da libvirt (KVM)
virsh list --all

# Avvio di una macchina virtuale
virsh start nome_vm

# Arresto forzato immediato di una macchina virtuale
virsh destroy nome_vm

# Configurazione autostart per una VM all'avvio dell'host
virsh autostart nome_vm

Da ripassare

-

[ ] Gestione avanzata del networking virtuale (differenze tra bridge, NAT e host-only)

-

[x] Distinzione netta tra hypervisor Type 1 e Type 2

-

[ ] Architettura e layer dei filesystem nei container (OverlayFS)

Jarvis Interviews
Jarvis