LXD (Linux Container Daemon) — это система контейнерной виртуализации и управления виртуальными машинами на основе ОС Linux. LXD используется для запуска нескольких изолированных экземпляров ОС Linux на одном узле. LXD можно использовать в качестве альтернативы технологии OpenVZ.

Преимущества использования LXD:

  • возможность изменения ресурсов контейнера без его остановки;
  • высокий уровень безопасности узлов кластера;
  • гибкая настройка узлов кластера;
  • высокая скорость создания и работы контейнеров;
  • высокая плотность виртуализации.

Особенности LXD-кластеров в VMmanager


В текущей версии VMmanager кластер LXD можно создать только с типом настройки сети "Коммутация" или IP-fabric и использованием ZFS-хранилища. Контейнеры и образы ВМ хранятся в пуле ZFS, резервные копии ВМ — на узле кластера. На узлах кластера должна быть установлена ОС Ubuntu 20.04.

В кластерах LXD недоступно:

  • подключение ISO-образов пользователей к виртуальным машинам (ВМ);
  • добавление узлов с двумя сетевыми интерфейсами;
  • создание сетевых мостов;
  • живая миграция ВМ;
  • установка ОС Windows;
  • подключение к ВМ через VNC и SPICE.

Для установки операционных систем в LXD-кластере VMmanager использует отдельные образы ОС. В текущей версии доступны образы ОС:

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

Для удалённого администрирования ВМ вы можете зайти в консоль LXD-контейнера. Окно с консолью откроется в отдельной вкладке браузера.

Обратите внимание!

Вы можете перенести в LXD-кластер виртуальные машины, созданные с помощью виртуализации OVZ. Подробнее см. в статье Перенос OVZ-контейнера в LXD-кластер

Тонкие настройки ВМ


ВМ в кластере LXD имеют особенности в части тонких настроек:

  • вес CPU и вес использования I/O изменяются в диапазоне от 0 до 10;
  • скорость чтения и записи можно установить либо в IOPS, либо в Мбит/с;
  • настройка режима эмуляции CPU недоступна;
  • есть возможность настроить:
    • вес сети — чем больше вес, тем больше времени выделяется на обработку запросов;
    • максимальное количество активных процессов в контейнере;
    • лимит использования CPU в процентах;
    • создание контейнеров внутри контейнера с использованием Docker, Podman, LXC и т.д.

Подготовка узла кластера


Перед подключением сервера к кластеру:

  1. Настройте на сервере ZFS-пул:
    1. Перед установкой ОС оставьте на диске сервера неразмеченное пространство.
    2. Установите утилиту zfsutils-linux:

      sudo apt install zfsutils-linux
      BASH
    3. Создайте ZFS-пул: 

      zpool create <zpool_name> <device>
      BASH

      <zpool_name> — имя пула

      <device> — имя раздела

  2. В конфигурационном файле  /etc/ssh/sshd_config укажите параметр:
    UsePAM yes
    CODE

Может быть полезно

Связанные статьи: