Set up KVM on RHEL 10 with the new socket-activated libvirt architecture.
RHEL 10 replaces the single libvirtd daemon with a set of socket-activated services. Each driver (qemu, network, nodedev, nwfilter, secret, storage, interface) now has its own socket with three variants: standard, -ro (read-only), and -admin.
sudo dnf install qemu-kvm libvirt virt-install virt-viewer
sudo dnf install qemu-kvm libvirt virt-install
# Web console VM management
sudo dnf install cockpit-machines
# Windows VM virtio drivers
sudo dnf install virtio-win
This is the main change from RHEL 9. The libvirtd service no longer exists.
# Start all socket-activated libvirt services
for drv in qemu network nodedev nwfilter secret storage interface; do
systemctl start virt${drv}d{,-ro,-admin}.socket
done
# Enable on boot
for drv in qemu network nodedev nwfilter secret storage interface; do
systemctl enable virt${drv}d{,-ro,-admin}.socket
done
sudo virt-host-validate
All checks should return PASS. If you see a WARN about hardware virtualization, verify your BIOS settings.
sudo usermod -aG libvirt $USER
Log out and back in for group changes to take effect.
sudo virt-install \
--name my-vm \
--memory 4096 \
--vcpus 2 \
--disk size=20 \
--cdrom /path/to/install.iso \
--os-variant rhel10.0 \
--graphics none \
--console pty,target_type=serial
# List available OS variants
virt-install --osinfo list
# List all VMs
sudo virsh list --all
# Start / shutdown a VM
sudo virsh start my-vm
sudo virsh shutdown my-vm
# Check a specific service
systemctl status virtqemud.socket
# Console into a running VM
sudo virsh console my-vm
| Change | Detail |
|---|---|
libvirtd daemon | Replaced by socket-activated per-driver services |
i440fx machine type | Deprecated; use q35 instead |
i440fx-rhel7.6 | Removed entirely |
| Legacy CPU models | Intel pre-Nehalem, AMD pre-Opteron G4 removed |
| RDMA migration | Unsupported |
virt-p2v | Not available for RHEL 10 hosts |
/boot partition | No longer separate in RHEL 10 disk images |