Vai al contenuto

Configurazione di libvirt su Rocky Linux

Introduction

libvirt è un'incredibile API di virtualizzazione che consente la virtualizzazione di quasi tutti i sistemi operativi di vostra scelta con la potenza di KVM come hypervisor e QEMU come emulatore.

Questo documento fornisce le istruzioni per l'impostazione di libvirt su Rocky Linux 9.

Prerequisites

  • Una macchina a 64 bit con Rocky Linux 9.
  • Assicuratevi di aver abilitato la virtualizzazione nelle impostazioni del BIOS. Se il comando seguente restituisce un risultato, significa che l'abilitazione della virtualizzazione è stata completata:
sudo grep -e 'vmx' /proc/cpuinfo

Repository setup and package installation

  • Enable the EPEL (Extra Packages for Enterprise Linux) repository:
sudo dnf install -y epel-release
  • Install the required packages for libvirt (optionally for virt-manager if you want to use a GUI to manage your VMs):
sudo dnf install -y bridge-utils virt-top libguestfs-tools bridge-utils virt-viewer qemu-kvm libvirt virt-manager virt-install

libvirt user setup

  • Add your user to the libvirt group. Ciò consente di gestire le macchine virtuali e di utilizzare comandi come virt-install come utente non root:
sudo usermod -aG libvirt $USER
  • Activate the libvirt group by using the newgrp command:
sudo newgrp libvirt
  • Enable and start the libvirtd service:
sudo systemctl enable --now libvirtd

Bridge interface setup for direct access to virtual machines

  • Check the current interfaces in use and note down the main interface with an Internet connection:
sudo nmcli connection show
  • Delete the interface connected to the Internet and any virtual bridge connections currently present:
sudo nmcli connection delete <CONNECTION_NAME>

Warning

Assicurarsi di avere accesso diretto alla macchina. Se si configura la macchina tramite SSH, la connessione verrà interrotta dopo aver eliminato la connessione all'interfaccia principale.

  • Create the new bridge connection:
sudo nmcli connection add type bridge autoconnect yes con-name <VIRTUAL_BRIDGE_CON-NAME> ifname <VIRTUAL_BRIDGE_IFNAME>
  • Assign a static IP address:
sudo nmcli connection modify <VIRTUAL_BRIDGE_CON-NAME> ipv4.addresses <STATIC_IP/SUBNET_MASK> ipv4.method manual
  • Assign a gateway address:
sudo nmcli connection modify <VIRTUAL_BRIDGE_CON-NAME> ipv4.gateway <GATEWAY_IP>
  • Assign a DNS address:
sudo nmcli connection modify <VIRTUAL_BRIDGE_CON-NAME> ipv4.dns <DNS_IP>
  • Add the bridge slave connection:
sudo nmcli connection add type bridge-slave autoconnect yes con-name <MAIN_INTERFACE_WITH_INTERNET_ACCESS_CON-NAME> ifname <MAIN_INTERFACE_WITH_INTERNET_ACCESS_IFNAME> master <VIRTUAL_BRIDGE_CON-NAME>
  • Start the bridge connection:
sudo nmcli connection up <VIRTUAL_BRIDGE_CON-NAME>
  • Add the allow all line to bridge.conf:
sudo tee -a /etc/qemu-kvm/bridge.conf <<EOF
allow all
EOF
  • Riavviare il servizio libvirtd:
sudo systemctl restart libvirtd

Virtual machine installation

  • Set the ownership of the /var/lib/libvirt directory and its nested directories to your user:
sudo chown -R $USER:libvirt /var/lib/libvirt/
  • You can create a virtual machine on the command line by using the virt-install command. Ad esempio, per creare una macchina virtuale Rocky Linux 9.5 Minimal, si deve eseguire il seguente comando:
virt-install --name Rocky-Linux-9 --ram 4096 --vcpus 4 --disk path=/var/lib/libvirt/images/rocky-linux-9.img,size=20 --os-variant rocky9 --network bridge=virbr0,model=virtio --graphics none --console pty,target_type=serial --extra-args 'console=ttyS0,115200n8' --location ~/isos/Rocky-9.5-x86_64-minimal.iso
  • Per chi vuole gestire le proprie macchine virtuali tramite una GUI, virt-manager è lo strumento perfetto.

How to shutdown a virtual machine

  • The shutdown command accomplishes this:
virsh shutdown --domain <YOUR_VM_NAME>
  • To force shutdown an unresponsive VM, use the destroy command:
virsh destroy --domain <YOUR_VM_NAME>

How to delete a virtual machine

  • Use the undefine command:
virsh undefine --domain <YOUR_VM_NAME> --nvram
  • For further virsh commands, check the virsh man pages.

Conclusion

  • libvirt offre molte possibilità e permette di installare e gestire le macchine virtuali con facilità. Se si hanno ulteriori integrazioni o modifiche a questo documento che si desidera condividere, l'autore vi invita a farlo.

Author: Howard Van Der Wal

Contributors: Steven Spencer