Виртуализация
Что такое LXC?
LXC is Linux-native containerisation that isolates processes with namespaces and cgroups while sharing the host kernel. LXC is excellent inside a trust boundary you already own and weak as a multi-tenant boundary, because a kernel escape affects every container on the host.
Почему LXC важен
LXC отлично работает внутри доверительной границы, которой вы уже владеете, и слаб как мультитенантная граница, потому что побег из ядра затрагивает все контейнеры на хосте.
LXC на практике
С LXC вы получаете лёгкий контейнер, разделяющий ядро хоста. Вы управляете им через набор команд lxc или API, следя за статистикой cgroup для оценки нагрузки на CPU и память. Настройка в основном сводится к лимитам namespace и cgroup: закрепление процессов, установка потолков памяти. Цена ошибки — экспозиция: побег из ядра скомпрометирует все контейнеры на хосте, поэтому вы рассматриваете хост как единый домен доверия и планируете отказоустойчивость на уровне хоста, а не каждого контейнера.
Что люди часто понимают неправильно в отношении LXC
Люди относятся к LXC как к границе безопасности, эквивалентной KVM. Это не так: контейнеры разделяют ядро, поэтому уязвимость в этом ядре может выйти за пределы любого контейнера. Исправление состоит в том, что LXC предназначен для изоляции внутри доверенной границы, которой вы владеете, а не для мультитенантного хостинга, где арендаторы могут быть враждебными.
LXC — частые вопросы
LXC — это то же самое, что Docker?
Нет. Docker строится на примитивах контейнеров, таких как LXC, но добавляет управление образами, слои и оркестрацию. LXC больше похож на лёгкую виртуальную машину: вы запускаете в нём полноценный дистрибутив и управляете им напрямую через systemd или init. Docker — это упаковка приложений; LXC — это виртуализация систем.
Могу ли я запускать LXC с собственным ядром?
Это зависит от хоста. Некоторые провайдеры, например OnionVPS, дают полный root и позволяют использовать собственные ядра, но с LXC вы разделяете ядро хоста, поэтому собственное ядро не подходит для самого контейнера. Для этого используется KVM. LXC привязан к версии ядра и конфигурации, которые предоставляет хост.
Где встречается LXC
- Что такое KVM-виртуализация? KVM (Kernel-based Virtual Machine) — это полная аппаратная виртуализация, встроенная в ядро Linux, использующая расширения процессора для запуска каждой го…
- Можно ли запускать Docker на VPS? На KVM VPS — да, без ограничений: устанавливайте Docker Engine из официального репозитория, и всё работает, включая buildx, Compose и Docker-in-Docker. На …
- KVM vs OpenVZ: why the virtualisation type matters KVM — это полная аппаратная виртуализация: ваш экземпляр работает на собственном ядре и не видит хост. OpenVZ и LXC — это контейнерные технологии, использу…
- KVM vs LXC: изоляция против плотности LXC-контейнеры используют общее ядро хоста и запускаются за миллисекунды с почти нулевыми накладными расходами; виртуальные машины KVM загружают собственно…
- Какой самый дешёвый VPS, который действительно пригоден для работы? Примерно за $4 в месяц вы получаете 1 vCPU, 1 ГБ ОЗУ и 20 ГБ NVMe на настоящей KVM-виртуализации. Этого действительно достаточно для WireGuard VPN, DNS-рез…
- Что отличает OnionVPS от других VPS-провайдеров? Четыре вещи: отсутствие какой-либо верификации личности, оплата только криптовалютой без участия карт или банков, 138 локаций в 116 странах, включая настоя…
Больше из раздела «виртуализация»
- KVM
- KVM — это полная аппаратная виртуализация, встроенная в ядро Linux, предоставляющая каждому гостю собственное ядро и аппаратно-обеспеченную изоляцию от других арендаторов.
- OpenVZ
- OpenVZ — это контейнерная виртуализация, в которой каждый экземпляр разделяет ядро хоста, поэтому гости не могут загружать модули ядра или запускать другую операционную систему.
- Гипервизор
- Гипервизор — это программный слой, который создаёт и запускает виртуальные машины, распределяя между ними физические CPU, память и ввод-вывод.
- Nested virtualisation
- Вложенная виртуализация позволяет виртуальной машине самой запускать виртуальные машины, предоставляя гостю расширения виртуализации процессора.
- vCPU
- vCPU — это виртуальный процессор, предоставляемый гостевой системе, поддерживаемый временем планирования на физическом ядре или потоке.
- cloud-init
- cloud-init — стандартный механизм настройки виртуальной машины при первой загрузке, использующий метаданные, предоставляемые платформой.