GNU/Linux >> Linux Esercitazione >  >> Linux

Come abilitare la virtualizzazione annidata in KVM in Linux

In questa guida vedremo come abilitare la virtualizzazione nidificata in KVM in Linux. Virtualizzazione nidificata è una funzionalità che consente di eseguire una macchina virtuale all'interno di un'altra macchina virtuale mentre si utilizza ancora l'accelerazione hardware dal sistema host. In altre parole, la virtualizzazione nidificata è un meccanismo per eseguire un hypervisor all'interno di una macchina virtuale (VM), che a sua volta gira su un hypervisor.

Abilita la virtualizzazione nidificata in KVM in Linux

Prima di abilitare la funzionalità VT nidificata, spegnere tutte le macchine virtuali in esecuzione.

Quindi, scarica i moduli KVM.

Per scaricare il modulo KVM su INTEL sistemi, eseguire:

$ sudo modprobe -r kvm_intel

Su AMD sistemi:

$ sudo modprobe -r kvm_amd

Ricaricare il modulo KVM con la funzionalità annidata abilitata sulle CPU INTEL con il comando:

$ sudo modprobe kvm_intel nested=1

Ricarica il modulo KVM con la funzione nidificata abilitata sulle CPU AMD usando il comando:

$ sudo modprobe kvm_amd nested=1

Abilita la virtualizzazione nidificata in modo permanente

Si noti che la funzione VT nidificata è abilitata solo fino al riavvio del sistema host KVM. Per abilitare in modo permanente la funzione nidificata, modifica /etc/modprobe.d/kvm.conf file:

$ sudo vi /etc/modprobe.d/kvm.conf

Se il file non esiste, crealo.

Aggiungi la seguente riga su INTEL host:

options kvm_intel nested=1

Aggiungi la seguente riga su AMD host:

options kvm_amd nested=1

Salva e chiudi il file.

Fatto! Abbiamo abilitato VT nidificato sul sistema host KVM.

Verifica se la virtualizzazione nidificata è abilitata nell'host KVM

Se il tuo processore è INTEL, controlla "/sys/module/kvm_intel/parameters/nested" file usando il comando "cat":

$ cat /sys/module/kvm_intel/parameters/nested

Verifica se la virtualizzazione nidificata è supportata in Linux

Se restituisce "Y" o "1" , significa che il tuo sistema supporta la virtualizzazione nidificata. Se l'output è "N" o "0" , il tuo sistema non supporterà la virtualizzazione nidificata.

Se il tuo processore è AMD, controlla il contenuto di "/sys/module/kvm_amd/parameters/nested" file.

In alternativa, puoi usare il comando seguente per assicurarti che il modulo del kernel "kvm_intel" abbia la nidificazione abilitata:

$ modinfo kvm_intel | grep -i nested

Risultato di esempio:

parm:           nested_early_check:bool
parm:           nested:bool

Su CPU AMD:

$ modinfo kvm_amd | grep -i nested

Bene, il mio host KVM supporta la virtualizzazione nidificata ed è già abilitato.

Abilita la virtualizzazione nidificata su macchine guest KVM

Possiamo abilitare la funzionalità nidificata su una VM KVM dalla riga di comando o utilizzando un'applicazione di gestione KVM grafica come Virt-manager .

Abilita la funzionalità nidificata nei guest KVM dalla riga di comando

Accedi alla console virsh:

$ virsh

Modifica la macchina virtuale in cui desideri abilitare la funzionalità nidificata:

virsh # edit centos

Per trovare tutte le macchine virtuali disponibili, esegui questo comando all'interno della console virsh:

virsh # list --all

Trova il parametro "cpu mode" e imposta il suo valore come "host-model".

<cpu mode='host-model' check='partial'/>

Abilita la funzionalità nidificata nei guest KVM utilizzando il comando virsh

Salva e chiudi il file.

Avvia la VM:

virsh # start centos8

Verifica se la funzionalità nidificata è abilitata per la macchina virtuale:

virsh # dumpxml centos8

Dovresti vedere che tutte le politiche delle funzionalità necessarie nella direttiva "modalità CPU" sono aggiornate ora:

<cpu mode='custom' match='exact' check='full'>
    <model fallback='forbid'>SandyBridge-IBRS</model>
    <vendor>Intel</vendor>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='pcid'/>
    <feature policy='require' name='hypervisor'/>
    <feature policy='require' name='arat'/>
    <feature policy='require' name='tsc_adjust'/>
    <feature policy='require' name='umip'/>
    <feature policy='require' name='md-clear'/>
    <feature policy='require' name='stibp'/>
    <feature policy='require' name='arch-capabilities'/>
    <feature policy='require' name='ssbd'/>
    <feature policy='require' name='xsaveopt'/>
    <feature policy='require' name='ibpb'/>
    <feature policy='require' name='amd-ssbd'/>
    <feature policy='require' name='skip-l1dfl-vmentry'/>
    <feature policy='disable' name='aes'/>
  </cpu>

La funzionalità di virtualizzazione nidificata è stata abilitata per CentOS 8 VM.

Abilita la funzionalità nidificata nei guest KVM utilizzando Virt-manager

Aprire l'applicazione GUI Virt-manager e fare doppio clic sul guest KVM in cui si desidera abilitare la funzione VT nidificata. Fai clic sul pulsante "Mostra dettagli hardware virtuali" e vai alla sezione "CPU" nel menu a sinistra.

Seleziona "Copia configurazione CPU host" casella di controllo nella finestra di configurazione della CPU e fare clic su Applica.

Configura la virtualizzazione nidificata in VIrt-manager

Ora il modello e la configurazione della CPU dell'host fisico verranno applicati alla VM.

Verifica se i guest KVM supportano la virtualizzazione

Accendi e accedi alla macchina guest KVM in cui hai abilitato la funzione nidificata.

Eseguire il comando seguente nel terminale del guest KVM per verificare se la virtualizzazione è abilitata o meno:

# egrep --color -i "svm|vmx" /proc/cpuinfo

Risultato di esempio:

Verifica se i guest KVM supportano la tecnologia di virtualizzazione in Linux

Se vedi “vmx” (tecnologia Intel-VT) o “svm” (supporto AMD-V) nell'output, la macchina guest KVM può funzionare come hypervisor e host VM. Come puoi vedere nell'output sopra, la mia macchina virtuale KVM CentOS 8 supporta la virtualizzazione.

Consulta la seguente guida per scoprire altri modi per verificare se un sistema Linux supporta o meno VT.

  • Come scoprire se una CPU supporta la tecnologia di virtualizzazione (VT)

Lettura correlata:

  • Come abilitare la virtualizzazione annidata in VirtualBox

Linux
  1. Come configurare la virtualizzazione su Redhat Linux

  2. Che cos'è l'inoltro IP in Linux? Come abilitare l'inoltro IP?

  3. Come installare il server Linux di virtualizzazione

  4. Come abilitare la partizione di swap Linux?

  5. Come posso abilitare il ping su una macchina virtuale Linux di Azure

Abilita il supporto UEFI nella virtualizzazione KVM

Come abilitare l'opzione "Modifica" nell'applicazione Shutter in Linux

Come abilitare la virtualizzazione annidata in VirtualBox

Come abilitare il timestamp nella cronologia di Bash in Linux

Come abilitare il sudo senza password per l'utente in Linux

Come abilitare sFTP in un VPS Linux?