785 профессионалов IT в этом Telegram чате. “ы с нами?

ћерион Ќетворкс

3 минуты чтени€

—ложна€ терминологи€ в некоторых темах, касающихс€ IT, иногда заводит в тупик. ѕростой и пон€тный процесс может быть описан очень комплексным €зыком, из-за чего, даже после изучени€ темы, могут остатьс€ вопросы. Ёто касаетс€ и контейнеризации. ¬ рамках этой темы ответим на вопрос - в чем разница между LXC, LXD и LXCFS.

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 разных продукта с одинаковым функционалом. √рубо можно описать их как программу, дополнение к ней и патч, который позвол€ет среде пользовател€ адаптироватьс€ под ее нужды.


ѕолезна ли ¬ам эта стать€?