Comprendere le differenze tra KVM e Hyper-V è essenziale quando si costruisce un ambiente virtualizzato per ottimizzare l’utilizzo delle risorse hardware per un’organizzazione. In questo articolo del blog, spieghiamo brevemente cos’è KVM e Hyper-V, per poi confrontare i due hypervisor.
I punti chiave di questa valutazione comparativa sono i seguenti:
- Scalabilità e prestazioni
- Strumenti di gestione
- Opzioni di provisioning della memoria
- Funzionalità di sicurezza
- Capacità di migrazione live
Cos’è l’ipervisore KVM?
L’acronimo KVM sta per Kernel-based Virtual Machine. Si tratta di una soluzione di virtualizzazione completa open-source nel kernel Linux. KVM funziona su processori x86, fornendo agli utenti capacità di hypervisor per creare ambienti virtualizzati.
L’ipervisore Kernel-based Virtual Machine è stato rilasciato per la prima volta nel 2007 come parte delle versioni Linux 2.6.20 e successive. KVM supporta vari sistemi operativi come Linux, Windows, macOS e Haiku, offrendo capacità di virtualizzazione assistita dall’hardware. La stessa soluzione fornisce anche la paravirtualizzazione per Windows, OpenBSD, FreeBSD, tra gli altri sistemi.
KVM può essere utilizzato sulla maggior parte delle macchine Linux dotate di CPU che supportano la virtualizzazione assistita dall’hardware. Per installare KVM, è necessario scaricare i pacchetti richiesti dai repository software di Linux, oltre a kvm-qemu e uno strumento di gestione (opzionale).
Gli strumenti di gestione della virtualizzazione basati su KVM più comuni sono Oracle Linux Virtualization Manager, Proxmox VE e Red Hat Virtualization Manager.
Cos’è Hyper-V?
Hyper-V è un hypervisor nativo di Microsoft che consente la creazione e l’uso di macchine virtuali e ambienti virtuali. Hyper-V può essere eseguito su un sistema x86-64 sotto il sistema operativo Windows.
Microsoft Hyper-V è stato rilasciato per la prima volta come parte di Windows Server 2008. L’hypervisor è un componente opzionale scaricabile dei sistemi Windows Server. Inoltre, Hyper-V ha un’edizione autonoma gratuita con funzioni limitate che supporta solo la CLI (interfaccia a riga di comando).
Con Hyper-V, puoi ottenere un insieme di macchine virtuali isolate l’una dall’altra. Questo è possibile grazie alla specifica partizione parent (radice) e child. Una partizione parent, che può accedere direttamente all’hardware, esegue lo stack di gestione della virtualizzazione. Poi, questa partizione crea partizioni child che ospitano sistemi operativi guest.
KVM vs Hyper-V: Un Confronto Dettagliato
Ora che abbiamo evidenziato le differenze generali nel nostro confronto tra Hyper-V e KVM, possiamo procedere con più dettagli. Controlla le informazioni di seguito in modo da poter scegliere la soluzione che meglio si adatta alle tue esigenze.
Scalabilità e prestazioni
Scalabilità e prestazioni sono probabilmente i due punti più importanti in qualsiasi confronto tra KVM e Hyper-V. La buona notizia è che la competizione qui risulta in un pareggio: sia Hyper-V che KVM hanno alte prestazioni e offrono grande scalabilità.
Il software di virtualizzazione KVM si basa sul kernel Linux, che è una soluzione open-source. Questo significa che KVM può funzionare correttamente su una vasta gamma di hardware. Lo stesso kernel Linux consente alta efficienza e velocità operativa.
Sul lato negativo, la natura open-source di KVM può portare a problemi situazionali che possono richiedere tempo ed impegno per risolverli. Tuttavia, la base di conoscenza online di KVM è sostanziale, il che significa che probabilmente puoi trovare rapidamente la tua soluzione.
D’altra parte, Hyper-V è l’hypervisor proprietario di Microsoft confezionato insieme al sistema operativo Windows Server, ottimizzato per fornire prestazioni massime sulla maggior parte dell’hardware disponibile. La scalabilità di Hyper-V ti consente anche di utilizzare la tua infrastruttura IT con massima efficienza eseguendo più VM sull’host e scalando i tuoi carichi di lavoro virtuali su richiesta.
Il principale svantaggio di Hyper-V è il suo limitato supporto per sistemi operativi diversi da Windows. Combinato con determinate complessità di gestione e potenziali problemi di compatibilità, Hyper-V può essere sfidante se non si dispone dell’esperienza tecnica richiesta.
Strumenti di gestione
Poiché Hyper-V e KVM sono progettati per piattaforme sottostanti diverse, anche i loro strumenti di gestione differiscono.
Per la gestione di Hyper-V, è possibile utilizzare l’interfaccia della riga di comando Windows PowerShell. Nel caso in cui si desideri una soluzione con un’interfaccia grafica, potresti voler utilizzare Windows Admin Center o Hyper-V Manager.
Inoltre, le organizzazioni possono beneficiare di molteplici vantaggi dallo strumento di gestione di grado enterprise fornito nativamente da Microsoft: System Center Virtual Machine Manager (VMM) per Hyper-V. Gli amministratori solitamente preferiscono VMM per gestire gli ambienti Hyper-V grazie alla vista dell’infrastruttura conveniente e informativa e alle capacità di scalabilità. Sul lato negativo, è necessario acquistare una licenza dedicata per utilizzare Virtual Machine Manager.
Puoi eseguire tutte le attività di gestione KVM usando solo la CLI, come con Hyper-V tramite PowerShell. Tuttavia, coloro che preferiscono le interfacce grafiche per gestire le loro infrastrutture KVM potrebbero voler provare soluzioni come Morpheus, virt-manager o Cloonix, tra gli altri.
Hyper-V e KVM condividono una caratteristica significativa: un’ampia lista di compatibilità hardware, che offre grande flessibilità.
Per KVM, puoi efficacemente utilizzare qualsiasi tipo di storage (incluso storage direttamente collegato e storage collegato in rete). Hyper-V, invece, funziona con qualsiasi storage supportato da Windows. Tieni presente che se pianifichi di memorizzare i file VM su un NAS o condivisione di file di rete, dovrai configurare il protocollo Server Message Block 3.0.
Opzioni di provisioning della memoria
La flessibilità nell’uso della memoria è un’altra vantaggio condiviso da KVM e Hyper-V. Entrambi gli hypervisori possono utilizzare ugualmente bene la memoria normale o la NUMA (accesso non uniforme alla memoria).
Tuttavia, vale la pena notare la differenza tra KVM e Hyper-V nella allocazione dinamica della memoria. In Hyper-V, la funzione di memoria dinamica consente alle macchine virtuali di regolare l’uso della memoria a seconda delle esigenze correnti della VM. La domanda non supera i limiti di volume di memoria impostati. Con l’allocazione dinamica della memoria, gli amministratori possono eseguire più VM su un singolo host sovraprovisionando la memoria.
Il hypervisor KVM consente anche l’over-provisioning della memoria. Tuttavia, l’implementazione di questa caratteristica è leggermente diversa da quella in Hyper-V. Le macchine virtuali KVM sono processi separati che girano sulla macchina host sotto un sistema operativo Linux. Perciò, le VM non hanno volumi di memoria pre-allocati. Il sistema operativo distribuisce la memoria tra le macchine virtuali in base alle richieste. In parole povere, il software di virtualizzazione KVM allocazione blocchi di memoria ad ogni macchina virtuale su richiesta.
In caso di mancanza fisica di memoria su un host KVM, il sistema invia alcune pagine di memoria al swap. L’amount di RAM libero aumenta a domanda, consentendo così l’overcommitment della memoria per il sistema host.
Caratteristiche di sicurezza
Quando si parla delle capacità di sicurezza nell’confronto KVM vs Hyper-V, entrambe le soluzioni hanno efficienti caratteristiche di sicurezza che puoi utilizzare per assicurare la protezione dei dati e dell’ambiente dell’organizzazione.
Per KVM, l’isolamento delle VM e la sicurezza provengono dalle capacità di due soluzioni. La prima, SELinux (security-enhanced Linux) imposta un perimetro di sicurezza intorno alle macchine virtuali. sVirt (secure virtualization) consente la sicurezza MAC (Mandatory Access Control) per le macchine virtuali ospiti, aggiungendo più capacità a SELinux e riducendo l’impatto degli errori umani sulla sicurezza virtuale.
Hyper-V può anche isolare le macchine virtuali per proteggere l’ambiente prima di un singolo nodo compromesso. Inoltre, la funzione Secure Boot disponibile con le macchine virtuali gen 2 di Hyper-V aiuta a prevenire l’esecuzione di sistemi operativi, driver e firmware non autorizzati all’avvio. Capacità di sicurezza aggiuntive di Hyper-V includono l’encriptazione del traffico su tutta una sottorete, Guarded Fabric (un modello di sicurezza anti-malware) e le macchine virtuali protette.
Le capacità di migrazione in tempo reale delle macchine virtuali
La migrazione in tempo reale delle macchine virtuali è una funzione disponibile sia in KVM che in Hyper-V. Con questa funzione, gli amministratori possono spostare le macchine virtuali su un server diverso senza interrompere le operazioni della macchina virtuale.
La migrazione in tempo reale può aiutare le organizzazioni a supportare la continuità di produzione e la disponibilità del servizio. Ad esempio, quando hai un’intervento di manutenzione hardware pianificato sulla tua macchina virtuale principale, puoi spostare le tue macchine virtuali cruciali su un server secondario. La manutenzione viene quindi eseguita come previsto senza disturbare i flussi di lavoro e le operazioni dell’organizzazione.
Inoltre, a volte il tuo host ha risorse insufficienti per eseguire le macchine virtuali create inizialmente su di esso. Per esempio, una macchina virtuale può diventare troppo “grande” in uso e causare problemi di performance all’intero host. Il modo più efficiente per ottimizzare le prestazioni dell’host è usare le capacità di migrazione in tempo reale del tuo hypervisor per spostare quella macchina virtuale su un host diverso senza spegnere la macchina virtuale.
Conversione tra KVM e Hyper-V
Quando necessario, puoi convertire le macchine virtuali KVM in ambienti Hyper-V e viceversa. controllare le guide sulla conversione tra KVM e Hyper-V qui sotto.
Conversione da KVM a Hyper-V
Convertire le macchine virtuali KVM per l’uso in ambienti Hyper-V si effettua in tre passaggi:
- Installa qemu-ing.
- Per convertire un’immagine del disco di una macchina virtuale KVM nel formato Hyper-V, usa il seguente comando:
qemu-img.exe convert sourcefile.qcow2 -O vhdx -o subformat=dynamic destinationfile.vhdx
In questo comando, sourcefile è il nome del file del disco VM sorgente e destinationfile è il nuovo nome del file del disco che vuoi ottenere dopo la conversione.
- Crea una nuova macchina virtuale in Hyper-V, quindi collega l’immagine del disco convertita ad essa.
Conversione da Hyper-V a KVM
Per convertire le VMs Hyper-V in ambienti KVM, fai quanto segue:
- Spegni la VM Hyper-V che devi convertire. Poi scegli la VM, e, in Hyper-V Manager, premi Esporta.
- Fornisci il repository di destinazione per i file della VM.
- Nota i core del processore, la memoria e il MAC della VM esportata.
- Copia il file VHDX della macchina virtuale di destinazione nell’ambiente KVM.
- Sul host KVM, installa virt-v2v.
- Utilizza virt-v2v per convertire VHDX in QCOW2 con il seguente comando:
sudo virt-v2v -i disk sourcefile.vhdx -o local -of qcow2 -os targetfile
- Una volta completata la conversione, notare la guest OS.
- Usare VMM per creare una nuova macchina virtuale nell’ambiente KVM.
- Scegliere Import existing disk image, quindi fare clic su Forward.
- Trovare il file vhdx-sda, quindi specificare l’OS da installare. Dopo di che, premere Forward.
- Completare la configurazione iniziale della nuova VM: impostare la memoria, il CPU, il nome della VM e specificare le impostazioni di rete KVM. Poi, fare clic su Apply.
- Configurare opzioni specifiche come la MAC qui. Poi, in alto nella finestra, selezionare Begin Installation.
Considerazioni economiche
Il budget dell’organizzazione rimane la base di qualsiasi scelta riguardante gli ambienti IT, e la decisione su KVM contro Hyper-V non è eccezione. Quando si tratta di prezzo, KVM ha un vantaggio chiaro: essendo una soluzione open-source, è gratuita per l’uso. Inoltre, è possibile scaricare e installare anche le tool di gestione e i moduli di funzione senza costi aggiuntivi. Il modulo Microsoft Hyper-V è anche disponibile gratuitamente. Tuttavia, il dettaglio è che Microsoft raccomanda di aggiornare a Windows Server per eseguire gli ambienti virtualizzati Hyper-V.
Conclusione
Il confronto finale tra KVM e Hyper-V dipende dalle specifiche esigenze e dal budget della tua organizzazione. Nel caso in cui tu abbia necessità di eseguire VM Windows in un ecosistema familiare e sia disposto a destinare fondi per ottenere una soluzione proprietaria supportata, Hyper-V è l’opzione giusta. D’altra parte, se sei disposto a dedicare ulteriore impegno alla configurazione e all’adattamento della soluzione open source, KVM può fornire capacità e esperienza pressoché equivalenti in termini di gestione, sicurezza, scalabilità e funzionalità, tutto gratuitamente.