KVM sta per Macchina virtuale basata su kernel , KVM è un hypervisor di tipo 2 gratuito e open source che è installato su distribuzioni simili a Linux. Una volta che il KVM è installato sul tuo sistema, diventa il server di virtualizzazione che ci consente di eseguire più macchine virtuali contemporaneamente. KVM richiede un processore Intel con VT-x (estensione della tecnologia di virtualizzazione) o processore AMD con AMD-V (AMD64 Virtualization Extension) .
In questo articolo impareremo come installare e configurare KVM sul sistema Debian 10, presumo che Debian 10 sia già installato sul sistema/server. Passiamo ai passaggi di installazione.
Passaggio:1) Verifica se l'estensione di virtualizzazione è abilitata o meno
Accedi al tuo sistema Debian 10, apri il terminale ed esegui il comando seguente,
[email protected]:~$ egrep -c '(vmx|svm)' /proc/cpuinfo 2 [email protected]:~$
Se l'output del comando precedente è maggiore di zero, possiamo dire che la tecnologia di virtualizzazione è abilitata sul tuo sistema. Se l'output è zero, dobbiamo riavviare il sistema, andare alle impostazioni del BIOS e quindi abilitare VT-x (Virtualization Technology Extension) per il processore Intel e AMD-V per il processore AMD.
Esegui il comando seguente per verificare se il tuo processore è Intel/AMD e supporta la virtualizzazione hardware,
[email protected]:~$ grep -E --color '(vmx|svm)' /proc/cpuinfo
se l'output contiene vmx, allora hai un processore basato su Intel e svm conferma che si tratta di un processore AMD.
Fase:2) Installa i pacchetti QEMU-KVM e Libvirt insieme a virt-manager
I pacchetti kvm, qemu, libvirt e virt-manager sono disponibili nei repository predefiniti di Debian 10, eseguire il comando apt sottostante per installare questi pacchetti,
[email protected]:~$ sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager -y
Una volta che i pacchetti sopra sono stati installati correttamente, il servizio libvirtd verrà avviato automaticamente, esegui il comando systemctl sottostante per verificarne lo stato
[email protected]:~$ sudo systemctl status libvirtd.service
Passaggio:3) Avvia la rete predefinita e aggiungi il modulo vhost_net
Esegui il comando virsh seguente per elencare le reti disponibili per le macchine virtuali kvm
[email protected]:~$ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------- default inactive no yes [email protected]:~$
Come possiamo vedere nell'output sopra, la rete predefinita è inattiva, quindi per renderla attiva e riavviarsi automaticamente durante il riavvio eseguendo i seguenti comandi,
[email protected]:~$ sudo virsh net-start default Network default started [email protected]:~$ sudo virsh net-autostart default Network default marked as autostarted [email protected]:~$
Se vuoi scaricare il meccanismo di "virtio-net ” e desideri migliorare le prestazioni delle VM KVM, quindi aggiungi “vhost_net ” modulo del kernel sul tuo sistema usando il comando sottostante,
[email protected]:~$ sudo modprobe vhost_net [email protected]:~$ echo "vhost_net" | sudo tee -a /etc/modules vhost_net [email protected]:~$ [email protected]:~$ lsmod | grep vhost vhost_net 24576 0 vhost 49152 1 vhost_net tap 28672 1 vhost_net tun 49152 2 vhost_net [email protected]:~$
Nota: Se vuoi che un utente normale utilizzi i comandi virsh, aggiungi quell'utente a libvirt e libvirt-qemu gruppo utilizzando i seguenti comandi
[email protected]:~$ sudo adduser pkumar libvirt [email protected]:~$ sudo adduser pkumar libvirt-qemu
Per aggiornare o ricaricare l'appartenenza al gruppo, esegui quanto segue,
[email protected]:~$ newgrp libvirt [email protected]:~$ newgrp libvirt-qemu
Passaggio:4) Crea Linux Bridge(br0) per VM KVM
Quando installiamo KVM, crea automaticamente un bridge con il nome "virbr0 ", viene generalmente utilizzato per tutti gli ambienti di test, ma se desideri accedere alle tue VM KVM sulla rete, crea un bridge Linux che sarà collegato alla scheda di rete fisica (o lan) del tuo sistema.
Per creare un bridge in Debian 10 , modifica il file di configurazione di rete "/etc/network/interfaces" e aggiungi i seguenti contenuti,
Nel mio caso ens33 è il nic fisico e br0 è il bridge Linux e hanno assegnato lo stesso indirizzo IP di ens33 al bridge br0. (Assicurati anche di rimuovere l'indirizzo IP da ens33). Sostituisci il nome dell'interfaccia, il nome del bridge e i dettagli IP secondo la tua configurazione.
[email protected]:~$ sudo vi /etc/network/interfaces .............. #Primary network interface(ens33) auto ens33 iface ens33 inet manual #Configure bridge and give it a static ip auto br0 iface br0 inet static address 192.168.29.150 netmask 255.255.255.0 network 192.168.29.1 broadcast 192.168.29.255 gateway 192.168.29.1 bridge_ports ens33 bridge_stp off bridge_fd 0 bridge_maxwait 0 dns-nameservers 8.8.8.8 ...............
salva ed esci dal file
Per rendere effettive le modifiche alla rete di cui sopra, dobbiamo riavviare il sistema, quindi esegui il comando di riavvio di seguito,
[email protected]:~$ sudo reboot
Una volta che il sistema sarà di nuovo online dopo il riavvio, vedremo che bridge br0 si avvierà, esegui il seguente comando per confermare,
[email protected]:~$ ip a s br0
Passaggio:5) Crea macchine virtuali tramite Virt-Manager (GUI) o virt-install (riga di comando)
Esistono due modi per creare macchine virtuali in KVM , il primo è tramite lo strumento GUI virt-manager e il secondo modo è tramite riga di comando utilizzando l'utilità virt-install.
Creazione di macchine virtuali utilizzando Virt-Manager (GUI)
Accedi allo strumento GUI virt-manager dall'ambiente desktop
Fare clic sull'icona Virtual Machine Manager
Fare clic sull'icona del monitor per creare una nuova VM
Sfoglia e scegli il file ISO e quindi fai clic su Avanti, nel mio caso ho già caricato RHEL 8 iso sul sistema Debian 10, quindi userò lo stesso iso per l'installazione del sistema operativo,
Nella finestra successiva, specifica la RAM e la CPU per la VM
fare clic su Avanti per procedere ulteriormente,
Fare clic su Avanti e nella schermata successiva specificare il nome della VM e la sua rete
Fare clic su Fine per procedere con l'installazione del sistema operativo,
Segui le istruzioni sullo schermo e completa l'installazione.
Creazione di VM tramite riga di comando utilizzando virt-install
Possiamo anche creare vms dalla riga di comando usando l'utilità virt-install. L'esempio è mostrato di seguito,
[email protected]:~$ sudo virt-install --name ubuntu-vm --os-type linux --os-variant ubuntu18.04 --ram 1024 --vcpu 1 --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=10 --graphics vnc,listen=0.0.0.0 --noautoconsole --hvm --cdrom /home/pkumar/ubuntu-18.04-live-server-amd64.iso --boot cdrom,hd Starting install... Domain installation still in progress. You can reconnect to the console to complete the installation process. [email protected]:~$
Come possiamo vedere nell'output sopra, possiamo connetterci alla console di Ubuntu vm tramite la console VNC o virt-manager per completare l'installazione del sistema operativo.
Esegui i seguenti comandi per trovare la porta di visualizzazione VNC per ubuntu-vm,
[email protected]:~$ sudo virsh list --all Id Name State --------------------------- 3 ubuntu-vm running 4 rhel8-vm running [email protected]:~$ [email protected]:~$ sudo virsh vncdisplay ubuntu-vm :0 [email protected]:~$
Ora accedi al visualizzatore desktop remoto sul tuo sistema Debian 10 e connettiti alla console VM usando l'indirizzo IP del tuo sistema e la porta vnc come "0", l'esempio è mostrato di seguito,
Fare clic su Connetti,
Segui le istruzioni sullo schermo e completa le installazioni del server Ubuntu 18.04. Questo è tutto da questo articolo, per favore condividi il tuo feedback e commenti nel caso in cui questi passaggi ti aiutino a configurare KVM sul tuo sistema Debian 10.