LXC

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

LXC (Linux Containers)
Логотип программы LXC (Linux Containers)
Тип Виртуализация на уровне операционной системы
Разработчики Даниэль Лескано, Серж Айюн, Стефан Грабе
Написана на Python, Lua и Bourne shell
Операционная система Linux
Первый выпуск 6 августа 2008[1]
Аппаратные платформы x86, x86-64, IA-64, PowerPC, ARM и SPARC
Последняя версия
Репозиторий github.com/lxc
Лицензия GNU GPL 2
Сайт linuxcontainers.org (англ.)
linuxcontainers.org/…
Логотип Викисклада Медиафайлы на Викискладе
libvirt поддерживает несколько гипервизоров и поддерживается несколькими решениями по управлению ВМ, такими как virsh, virt-manager, OpenStack, oVirt
Подсистема контейнеризации LXC и libvirt

Сходна с OpenVZ и Linux-VServer[англ.] для Linux, а также FreeBSD jail и Solaris Containers. Использует технологии контрольных групп и пространств имён, входящие в ядро Linux начиная с версии 2.6.29.

Основные разработчики — Даниэль Лескано (Daniel Lezcano), Серж Айюн (Serge Hallyn) и Стефан Грабе (Stéphane Graber).

Среди примеров использования — применение в PaaS-хостинге Heroku для изоляции динамических контейнеров (dynos). В проекте Docker разработаны компоненты, обеспечивающие LXC высокоуровневыми сервисами управления и развёртывания.

Безопасность править

Изначально LXC-контейнеры не поддерживали достаточно высокий уровень изоляции в сравнении с контейнерами на базе более ранней технологии OpenVZ. В частности, в ядре Linux до версии 3.8 root-пользователь LXC-контейнера может выполнить произвольный код в родительской операционной системе: это возможно за счёт того, что uid 0 внутри контейнера совпадает с uid 0 базовой системы (внутри которой контейнер запущен). С выпуском LXC версии 1.0 данная проблема исправлена введением «непривилегированных контейнеров» — где uid 0 в контейнере соответствует непривилегированному пользователю снаружи и имеет расширенные права только на свои ресурсы. LXC до версии 1.0 можно обезопасить с помощью различных настроек управления доступом и фильтров, используя инструменты apparmor, selinux и тому подобные[3].

LXD править

LXD — высокоуровневый инструмент управления контейнерами[4], это менеджер контейнеров и виртуальных машин, созданный разработчиками The Linux Containers project на основе LXC. Разработка LXD начата в 2015 году и спонсируется компанией Canonical[5]. LXD создан для упрощения администрирования множества контейнеров и работа с ним похожа на работу с менеджерами виртуальных машин[6]. LXD написан на языке программирования Go и распространяется под лицензией Apache 2.0[4].

LXD использует контейнеризацию LXC, управление контрольными точками CRIU и виртуализацию QEMU[4].

В апреле 2022 года вышла версия LXD 5.0[4].

В июле 2023 года управление разработкой LXD было передано из The Linux Containers project в Canonical[5][7][8].

Примечания править

  1. https://linuxcontainers.org/lxc/downloads/
  2. Release v6.0.0 — 2024.
  3. Linux Containers - LXC - Безопасность. linuxcontainers.org. Дата обращения: 12 декабря 2016. Архивировано 20 декабря 2016 года.
  4. 1 2 3 4 Выпуск системы управления контейнерами LXD 5.0 : [арх. 11 апреля 2022] // Opennet. — 2022. — 11 апреля.
  5. 1 2 Rudra, S. The LXD Project Finds a New Home at Canonical : The LXD Project has moved to Canonical's website. Here's what you need to know about it : [англ.] : [арх. 5 июля 2023] // It's FOSS News. — 2023. — 5 July.
  6. Parrott, T. 1. Owerview : [арх. 22 сентября 2020] // Introduction to LXD projects : [англ.].
  7. Brauner, C. LXD is now under Canonical : [англ.] : [арх. 1 ноября 2023] / C. Brauner, S. Hallyn, S. Graber // LinuxContainers. — 2023. — 4 July.
  8. LXD будет развиваться компанией Canonical отдельно от проекта Linux Containers : [арх. 5 июля 2023] // Opennet. — 2023. — 5 июля.

Литература править

  • Senthil Kumaran S. Practical LXC and LXD: Linux Containers for Virtualization and Orchestration. — Apress, 2017. — 159 с. — ISBN 978-1-4842-3023-7.
  • Konstantin Ivanov. Containerization with LXC. — Packt Publishing, 2017. — 352 с. — ISBN 978-1-78588-894-6.
  • Джон Лэйн. LXC: малая виртуализация // Linux Format. — 2912. — Октябрь (62). — С. 88—91.
  • Мэт Хэлсли. LXC: Kонтейнерные утилиты Linux. developerWorks. IBM (14 июля 2009). Дата обращения: 25 января 2020.

Ссылки править