Managing VM Pools

Technology preview. Available since: version 6.3

A VM Pool is a group of bare metal servers that provide resources to create VMs. These are abstract concepts and the underlying VMI technology can be anything although at moment the only supported driver is incus.

Performance The hypervisor used is linux-based. It can be any of the operating systems supported by Incus including RHEL and Ubuntu. Incus uses Qemu that in turn uses KVM (type 1 hypervisor) and provides performance similar to ESXI.

Enterprise features The solution supports Live Migration, Intelligent VM placement, pass-through GPUs and other devices, snapshots and more.

Networking

As opposed to VMWare and the standard Incus deployment, in MetalSoft there is no software defined overlay network (such as OVN). Instead the VMs are connected directly to the overlay network implemented in the switches (which is typically a highly scalable VXLAN-based EVPN network). This has the advantage of line rate performance, scalability and the fact that it works seamlessly with bare metal servers on the same networks without the need for any “gateway”.

On each hypervisor host, a bridge network is created for each VM’s connected overlay networks (VLANs in a network profile) that is in turn connected to the vlan interface for the respective VLAN.

This allows the VMs on the same host to talk to each other without moving the traffic out of the server and allows VMs to talk to servers and other VMs on the same L2 network, use the same IP space, use the same gateways etc.

This network configuration “moves” with the VM. So if a VM is instantiated or moved to another host, the network configuration is replicated on the new host.

Storage The system can operate with just local storage and will support live migration as well but of course it runs the risk of data loss if the node is not recuperable. To mitigate this any of the storage systems supported by MetalSoft or even external to MetalSoft such as Ceph can be used with Incus.

Registering a VM Pool

To create a MetalSoft VM Pool first deploy an Incus cluster on one or more servers.

Warning

Do not use 2 nodes to avoid a potential for split brain scenario.

Go to VM Pools section and click the Add VM Pool button. Fill in the form with the appropriate details.

VM Types

VM types act as server types and provide specific resource constraints such as number of cores and GB of RAM. The users aren’t allowed to create an arbitrary VM with arbitrary resources to avoid increasing fragmentation.

To create a Virtual Machine Type go to VM Pools > Virtual Machine Types tab and fill the form.

VM Images

Images are pulled by the VM pool cluster from a repository which is by default configured to be https://images.linuxcontainers.org via a source asset. The templates must exist in metalsoft prior to being usable in the system. The process of registering new templates is very similar to that of bare metal templates.

Creating a custom repository for images

To configure a different repository of images, in the squashfs or qcow2 image formats use a simplestreams repository. You can also mirror the official one into your repository to allow a periodic scan to run.

{
	"server": "https://images.linuxcontainers.org",
	"alias": "oracle/9/cloud",
	"protocol": "simplestreams",
	"mode": "pull"
}

Listing the hosts of a VM Pool

Navigate to VM Pools > vm pool > Hosts

Listing VMS

Navigate to VM Pools > vm pool > Virtual Machines

Rebooting a VM or accessing the console

Typically the VMs are managed via the infrastructure editor but they can also be managed via the admin by clicking on a VM.