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.
-
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.
-
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.
-
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.
# 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
-
[ ] 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)