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 и т.д.
Подготовка узла кластера
Перед подключением сервера к кластеру:
Настройте на сервере ZFS-пул:
Перед установкой ОС оставьте на диске сервера неразмеченное пространство.
Установите утилиту zfsutils-linux:
sudo apt install zfsutils-linux
BASH
Создайте ZFS-пул:
zpool create <zpool_name> <device>
BASH
<zpool_name> — имя пула
<device> — имя раздела
В конфигурационном файле /etc/ssh/sshd_config укажите параметр: