KVM/QEMU self hosted hypervisor

Requirements:

  • Ubuntu Linux server
  • CPU with virtualisation support

Configuring

Install vt staff

$ sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils

Bridging

In order for your virtual machines to access your network interface and be assigned their own IP addresses, we need to configure bridged networking on our system. Let’s utilise netplan utility. /etc/netplan/00-installer-config.yaml

network:
  ethernets:
    enp2s0f0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [enp2s0f0]
      dhcp4: true
      dhcp6: true
  version: 2

Generate and apply network config:

$ sudo netplan generate
$ sudo netplan --debug apply

# Check configuration
$ sudo networkctl
IDX LINK       TYPE     OPERATIONAL SETUP
  1 lo         loopback carrier     unmanaged
  2 enp2s0f0   ether    enslaved    configured
  3 br0        bridge   routable    configured
  4 virbr0     bridge   no-carrier  unmanaged
  5 virbr0-nic ether    off         unmanaged

$ sudo ip a 
2: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether xxx brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xxx brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.28/24 brd 192.168.88.255 scope global dynamic br0
       valid_lft 535sec preferred_lft 535sec

It works from now, let’s grant permissions to manage virtmanager to user:

$ sudo adduser $USER libvirt-qemu
$ sudo adduser $USER libvirt

Managing VMs

Use virt-manager GUI utility on client or virsh CLI tool for managing VMs and data pools.

#linux #virtualisation #kvm #qemu #selfhosted

Leave a Reply

Your email address will not be published.