LXC, LXD и LXCFS – в чем разница?

Сложная терминология в некоторых темах, касающихся IT, иногда заводит в тупик. Простой и понятный процесс может быть описан очень комплексным языком, из-за чего, даже после изучения темы, могут остаться вопросы. Это касается и контейнеризации. В рамках этой темы ответим на вопрос - в чем разница между LXC, LXD и LXCFS.

Начни обучение в IT бесплатно

Вводная часть любого курса — без оплаты и привязки карты. DevOps, сети, программирование, QA и ещё 50+ курсов

  • Практика с первого урока
  • Эксперты-практики
  • Сертификат
Начать бесплатно
LXC, LXD и LXCFS – в чем разница?

О LXC

LXC (Linux Containers) представляет собой интерфейс в пользовательской среде, функция которого - сдерживать ядро Linux. Имея в активе эффективный API и набор простых инструментов, LXC дает пользователю возможность администрировать любые использующиеся контейнеры.


Важные характеристики

Текущая версия LXC задействует ряд функций ядра, чтобы обеспечить контейнеризацию следующих процессов:

  • namespaces (ipc, uts, mount, pid);
  • профиль AppArmor (та же SELinux);
  • правила Seccomp;
  • Chroots (задействуя pivot _root);
  • потенциал ядра;
  • группы контроля (CGroups).

Как правило, контейнеры LXC обычно воспринимаются пользователями как нечто усредненное между Chroot и VM. Эта технология нацелена на то, чтобы создать среду, аналогичную стандартно установленной Linux, но сделать это без необходимости в дополнительном ядре.


Компоненты

Ниже в списке, несколько актуальных компонентов LXC:

  • liblxc;
  • языковые привязки для AP (Python (2 и 3 ), Lua, Go, Ruby, Haskell);
  • стандартные инструменты администрирования контейнеров;
  • готовые варианты контейнеров;

LXD - решение для LXC

LXD (Linux Container Daemon) является базирующимся на LXC гипервизором контейнеров.

Основные части LXD:

  • системный daemon (lxd);
  • клиент LXC;
  • плагин (nova-compute-lxd);

REST API предоставляется демоном в локальном или сетевом режиме. Эффективная утилита управления, клиент командной строки, отличается своей интуитивностью и простотой. Именно с помощью него реализовано управление каждым контейнером. Клиент обрабатывает подключение одновременно к разному количеству контейнеров, отображает уже созданные и создает новые. Есть возможность их перемещения в процессе функционирования.

Упомянутый плагин “превращает” все LXD-host в вычислительные узлы, которые работают для поддержки контейнеров, а не VM.


Преимущества

Основные преимущества LXD:

  • обеспечение безопасности (контейнеры не обладают привилегированностью, ресурсы ограничиваются и так далее.)
  • любой масштаб использования;
  • интуитивность (простое управление через ввод в командной строке);
  • образ-ориентированность (использование надежных образов, вместо шаблонов);
  • возможность активной миграции;

Связь с LXC

LXD не является новой версией LXC, скорее, он использует ее как базу. Чтобы администрирование контейнеров стало еще проще, LXD задействует LXC, влияя на библиотеку последней. Также во взаимодействии участвует прослойка, написанная на Go. Таким образом, LXD является, по сути, альтернативой LXC с расширенными возможностями (отличный пример - управление через сеть).


LXCFS: настройка контейнеризации

LXCFS - это небольшая архитектура файлов в среде пользователя, которая способна оптимизировать работу ядра Linux.

LXCFS включает в себя:

  • файлы, которые монтируются над оригинальными аналогами и предоставляют CGroup-совместимые значения;
  • дерево cgroupfs, функционирующее в независимости от контейнеров.

Архитектура представляет из себя простой код, созданный в C. Задача, которую необходимо было решить - запуск контейнера systemdпод базовым пользователем с параллельным запуском systemd внутри контейнера, с целью взаимодействовать с cgroups.

Если говорить простым языком, цель создания этой архитектуры - ощущение активного контейнера, как независимой системы.


Так в чем же разница?

Сравнивать LXC, LXD, LXCFS не имеет смысла, так как они не представляют из себя 3 разных продукта с одинаковым функционалом. Грубо можно описать их как программу, дополнение к ней и патч, который позволяет среде пользователя адаптироваться под ее нужды.

Ссылка
скопирована
Для читателей Базы
Мы приготовили тебе подарок

Бесплатный урок и промокод на курс

Эта скидка − тебе!

Промокод на скидку −15% на любой курс и бесплатная часть

Эта скидка − тебе!

Промокод на скидку −15% на любой курс и бесплатная часть

−15%
Твой подарок ещё ждёт

Промокод на скидку
−15% на любой курс и бесплатная часть

Выбрать курс
Еще по теме:
10 крутых AI промптов для быстрого решения проблем Kubernetes, CI/CD, Terraform и мониторинга
Наверняка ты постоянно слышишь про микросервисы. Микросервисы то, микросервисы сё, переписали все на микросервисы, развернули микросервисы в контейнерах. А че это вообще такое? Ща все объясним.
О том, как создать локальную DevOps-лабораторию с Docker, Kubernetes, Vagrant, Ansible и Terraform на обычном ноутбуке без затрат, смс, и прочего.
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии проекта. В статье рассказываем, как ее использовать.
Мы рассмотрим несколько простых способов, с помощью которых вы можете управлять и отслеживать логи для своих контейнеров.
ОСЕННИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59