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

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

icon strelka icons icons

узнай больше на курсе

DevOps-инженер с нуля
Освой Linux, Docker, Kubernetes и CI/CD и собери свой пайплайн: 4 месяца онлайн, практика и сертификат. Смотри программу и тарифы.
Подробнее о курсе
Полный курс по сетевым технологиям
Разберись в TCP/IP, коммутации и маршрутизации с нуля: 2 месяца онлайн, лабы и сертификат. Открой программу и выбери свой тариф.
Подробнее о курсе
Python программист с нуля
Напиши первый код и собери проекты на Python: 4 месяца онлайн в своём темпе, практика и сертификат. Смотри программу и тарифы.
Подробнее о курсе
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 разных продукта с одинаковым функционалом. Грубо можно описать их как программу, дополнение к ней и патч, который позволяет среде пользователя адаптироваться под ее нужды.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

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