Virtualizzazione nidificata significa configurare l'ambiente di virtualizzazione all'interno di una macchina virtuale. In altre parole, possiamo dire che la virtualizzazione nidificata è una funzionalità dell'hypervisor che ci consente di installare ed eseguire una macchina virtuale all'interno di un server virtuale tramite l'accelerazione hardware dall'hypervisor (ospite).
In questo articolo, discuteremo come abilitare la virtualizzazione nidificata in KVM su CentOS 7 / RHEL 7. Presumo che tu abbia già configurato l'hypervisor KVM. Nel caso in cui non hai familiarità su come installare e configurare hypervisor KVM , quindi fai riferimento al seguente articolo
Leggi anche : Installa Hypervisor KVM su CentOS 7.x e RHEL 7.x
Passiamo all'hypervisor e verifichiamo se la virtualizzazione nidificata è abilitata o meno sul tuo host KVM
Per i processori basati su Intel, esegui il comando,
[[email protetta] ~]# cat /sys/module/kvm_intel/parameters/nestedN[[email protetta] ~]#
Per i processori basati su AMD, esegui il comando,
[[email protetta] ~]# cat /sys/module/kvm_amd/parameters/nestedN[[email protetta] ~]#
Nel comando precedente, l'output "N" indica che la virtualizzazione nidificata è disabilitata. Se otteniamo l'output come "Y", significa che la virtualizzazione nidificata è abilitata sul tuo host.
Ora per abilitare la virtualizzazione nidificata, crea un file con il nome "/etc/modprobe.d/kvm-nested.conf ” con il seguente contenuto.
[[email protected] ~]# vi /etc/modprobe.d/kvm-nested.confoptions kvm-intel nested=1options kvm-intel enable_shadow_vmcs=1options kvm-intel enable_apicv=1options kvm-intel ept=1
Salva ed esci dal file
Ora rimuovi "kvm_intel ' e poi aggiungi lo stesso modulo con il comando modprobe. Prima di rimuovere il modulo, assicurati che le VM siano spente, altrimenti verrà visualizzato un messaggio di errore come "modprobe:FATAL:Module kvm_intel is in use ”
[[email protected] ~]# modprobe -r kvm_intel[[email protected] ~]# modprobe -a kvm_intel[[email protected] ~]#
Ora verifica se la funzionalità di virtualizzazione nidificata è abilitata o meno.
[[email protetta] ~]# cat /sys/module/kvm_intel/parameters/nestedY[[email protetta] ~]#
Per i sistemi basati su AMD, esegui i comandi seguenti
[[email protected] ~]# rmmod kvm-amd[[email protected] ~]# echo 'options kvm-amd nested=1'>>/etc/modprobe.d/dist.conf[[email protected] ~]# modprobe kvm-amd
Verifica la virtualizzazione nidificata
Supponiamo di avere una VM con nome "director" sull'hypervisor KVM su cui ho abilitato la virtualizzazione nidificata. Prima del test, assicurati che la modalità CPU per la VM sia "modello host " o "passthrough host ”, per controllare la modalità cpu di una macchina virtuale usa la GUI di Virt-Manager o il comando virsh edit
Ora accedi al director VM ed esegui il comando lscpu e lsmod
[[email protected] ~]# ssh 192.168.126.1 -l password di root[email protected]:Ultimo accesso:Sun Dec 10 07:05:59 2017 from 192.168.126.254[[email protected] ~]# lsmod | grep kvmkvm_intel 170200 0kvm 566604 1 kvm_intelirqbypass 13503 1 kvm[[email protected] ~]#[[email protected] ~]# lscpu
Proviamo a creare una macchina virtuale dalla GUI del gestore virtuale o da virt-install all'interno del director vm, nel mio caso sto usando il comando virt-install
[[email protected] ~]# virt-install -n Nested-VM --description "Test Nested VM" \ --os-type=Linux --os-variant=rhel7 --ram=2048 --vcpus =2 --disk \ percorso=/var/lib/libvirt/images/nestedvm.img,bus=virtio, size=10 --graphics \ none --location /var/lib/libvirt/images/CentOS-7-x86_64 -DVD-1511.iso\ --extra-args console=ttyS0Installazione in corso...Recupero del file .treeinfo... | 1.1 kB 00:00:00Recupero del file vmlinuz... | 4,9 MB 00:00:00Recupero del file initrd.img... | 37 MB 00:00:00Assegnazione di 'nestedvm.img' | 10 GB 00:00:00Connesso al dominio Nested-VMEscape il carattere è ^][ 0.000000] Inizializzazione cgroup subsys cpuset[ 0.000000] Inizializzazione cgroup subsys cpu[ 0.000000] Inizializzazione cgroup subsys cpuacct[ 0.000000] Versione Linux 3.10.0-327.el. x86_64 …………………………………………………
Ciò conferma che la virtualizzazione nidificata è stata abilitata correttamente poiché siamo in grado di creare una macchina virtuale all'interno di una macchina virtuale.
Questo conclude l'articolo, per favore condividi il tuo feedback e commenti.