LXD (Linux Container Daemon) is a Linux-based container virtualization and virtual machine management system. LXD is used to run several isolated Linux instances on a single node. LXD can be used as an alternative to OpenVZ technology.

Advantages of using LXD:

  • container resources can be edited without stopping the container;
  • high security for all cluster nodes;
  • flexible configuration of cluster nodes;
  • fast container creation and operation;
  • high virtualization density.

Features of LXD clusters in VMmanager


In the current version of VMmanager, an LXD cluster can be created only with "Switching" or IP fabric network configuration type and ZFS storage. Containers and VM images are stored in the ZFS pool, and VM backups are stored on the cluster node. Ubuntu 20.04 OS must be installed on the cluster nodes.

The following is not available in LXD clusters:

  • connecting user ISO images to virtual machines (VMs);
  • adding nodes with two network interfaces;
  • creating network bridges;
  • live VM migration;
  • installing Windows OS;
  • connecting to the VM via VNC or SPICE.

VMmanager uses separate OS images to install operating systems in an LXD cluster. The following OS images are available in the current version:

  • AlmaLinux 8;
  • СentOS 7, 8;
  • Debian 9, 10, 11;
  • Oracle Linux 8;
  • Rocky Linux 8;
  • Ubuntu 18.04, 20.04.

For remote VMs administration you can go to the LXD container console. The console window opens in a separate browser tab.

Note

You can move virtual machines created using OVZ virtualization to an LXD cluster. Read more in the article Moving an OVZ container to LXD cluster

Fine tuning of VMs


VMs in an LXD cluster have specific features in fine tuning:

  • CPU and I/O weights can be set within the range from 0 to 10;
  • Read and write speed can be set either in IOPS or Mbps;
  • CPU emulation mode is not available;
  • you can configure:
    • network weight — the bigger the weight, the more CPU time is allowed for request processing;
    • maximum number of active processes in the container;
    • CPU usage limit in percent;
    • creating containers inside a container using Docker, Podman, LXC, etc.

Preparing the cluster node


Before connecting the server to the cluster, configure the ZFS pool on the server:

  1. Before installing the OS, leave an unmarked area on the server disk.
  2. Install the zfsutils-linux utility:

    sudo apt install zfsutils-linux
    BASH

     

  3.   Create the ZFS pool:

    zpool create <zpool_name> <device>
    BASH

    <zpool_name> — pool name

    <device> — partition name