Virtualizzazione
Cos'è Hypervisor?
A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.
Perché Hypervisor è importante
Un hypervisor di tipo 1 gira direttamente sull'hardware; KVM è insolito nell'essere un hypervisor di tipo 1 implementato come modulo del kernel Linux, il che gli consente di utilizzare l'intero ecosistema dei driver Linux.
Hypervisor in pratica
Quando esegui un server su un hypervisor KVM, guardi l'allocazione hardware effettiva: vCPU, RAM, I/O del disco. Li regoli dal pannello, spesso aggiungendo memoria a caldo senza riavviare. Se sbagli sovraccaricando l'host, i carichi di lavoro rumorosi dei tuoi vicini impoveriscono la tua CPU o I/O, trasformando un guest perfettamente configurato in uno lento. La virtualizzazione annidata significa che puoi eseguire un hypervisor dentro il tuo hypervisor, utile per test, ma costa prestazioni e può confondere il tuo stesso conteggio delle risorse.
Errori comuni su Hypervisor
L'errore comune è trattare l'hypervisor come un confine di container. Non lo è. Un hypervisor ti dà una macchina virtuale completa, il tuo kernel, il tuo /proc, nessun namespace condiviso. La gente presume che i processi del vicino siano invisibili o che il proprio kernel personalizzato sia impossibile, poi si scontra con i limiti. La correzione: con KVM ottieni isolamento e controllo genuini, quindi puoi avviare un'immagine fatta a mano o eseguire virtualizzazione nidificata, cose che un container non può fare.
Hypervisor — domande frequenti
Cosa significa hypervisor di tipo 1?
Un hypervisor di tipo 1 gira direttamente sull'hardware host, non sopra un sistema operativo. KVM è speciale perché è un hypervisor di tipo 1 implementato come modulo del kernel Linux, quindi può usare l'intero ecosistema di driver Linux per gestire l'hardware. Questo ti dà le prestazioni della virtualizzazione bare-metal con la flessibilità di Linux.
In cosa KVM è diverso dai container come OpenVZ?
KVM fornisce virtualizzazione vera: ogni guest ha il proprio kernel, il proprio /proc e nessun namespace condiviso, quindi hai accesso root completo e puoi eseguire kernel personalizzati. I container condividono il kernel host e i namespace, il che limita ciò che puoi fare. Con KVM ottieni isolamento e controllo, inclusa la possibilità di eseguire virtualizzazione nidificata o avviare un ISO personalizzato.
Dove si incontra Hypervisor
- La crittografia dell'intero disco è utile su un VPS? Contro il sequestro fisico di un disco spento, decisamente sì: il volume è testo cifrato senza la tua passphrase. Contro un attaccante con accesso all'hype…
- Qual è il vostro SLA di uptime? 99,99% per istanza, misurato mensilmente su disponibilità di rete e hypervisor. Le violazioni generano automaticamente crediti di servizio su una scala pub…
- Il mio provider di hosting può vedere i file sul mio VPS? Tecnicamente sì: qualsiasi provider con accesso all'hypervisor può leggere un disco guest non crittografato e la sua memoria. Questo è vero per ogni piatta…
- Cos'è il CPU steal time e perché è importante? Il steal time è la percentuale di tempo in cui la tua CPU virtuale era pronta a eseguire ma l'hypervisor ha dato il core fisico a qualcun altro. Appare com…
- Un VPS è sicuro? L'isolamento è forte: KVM impone la separazione a livello hardware, e sfuggirvi è un exploit di livello di ricerca serio. Il rischio realistico non è l'ipe…
- VPS gestito vs non gestito: chi applica le patch al server? Su un VPS non gestito il provider garantisce l'hardware, la rete e l'hypervisor; tutto ciò che sta sopra il kernel è tuo, inclusi aggiornamenti, firewall e…
Altro da virtualizzazione
- KVM
- KVM è una virtualizzazione completa dell'hardware integrata nel kernel Linux, che dà a ogni guest il proprio kernel e un isolamento dal hardware di altri tenant.
- OpenVZ
- OpenVZ è una virtualizzazione basata su container in cui ogni istanza condivide il kernel dell'host, quindi i guest non possono caricare moduli del kernel o eseguire un sistema operativo diverso.
- LXC
- LXC è una containerizzazione nativa di Linux che isola i processi con namespace e cgroups condividendo il kernel dell'host.
- Virtualizzazione annidata
- La virtualizzazione annidata consente a una macchina virtuale di eseguire a sua volta macchine virtuali, esponendo le estensioni di virtualizzazione del processore al guest.
- vCPU
- Una vCPU è un processore virtuale presentato a un guest, supportato da tempo di pianificazione su un core o thread fisico.
- cloud-init
- cloud-init è il meccanismo standard per configurare una macchina virtuale al primo avvio, usando metadati forniti dalla piattaforma.