A VM host is simply a machine running virtual machines (VMs) by allocating resources across the VMs you want to create. If needed, you over-commit resources, allocating more resources than actually available, as long as you don’t try to use more than the VM host has available at any given time. Once MAAS has enlisted, commissioned, and allocated a newly-added machine, you deploy it as a VM host. Alternatively, create a VM host from a machine that’s already running.
VM hosts are particularly useful for Juju integration, allowing for dynamic allocation of VMs with custom interface constraints. MAAS an manage a collection of VMs, via the robust web UI. Six conspicuous features include:
- Juju integration
- At-a-glance visual tools for resource management
- Set overcommit ratios for physical resources such as CPU and RAM
- Assign VMs to resource pools to segregate your VMs into logical groupings
- Track VM host storage pool usage and assign default storage pools
- Create VMs on multiple networks, specified by space, subnet, VLAN, or IP address
"Storage pools” are storage resources managed by a VM host. A storage pool is a given amount of storage set aside for use by VMs. A pool can be organised into storage volumes, assigned to VMs as individual block devices.
For LXD VM hosts, each VM can be assigned a single block device from the storage pool.
Retrieve VM host storage pool information with the following command:
maas $PROFILE vm-host read $VM_HOST_ID
or, to get tabular output, try:
maas admin vm-host read 5 \ | jq -r '(["NAME","TYPE","PATH","TOTAL","USED","AVAIL"]) | (,. map(length*"-"))), (.storage_pools | [.name, .type, .path, .total, used, .available]) | @tsv' \ | column -t