Контейнерная виртуализация в Linux — OpenVZ и LXC

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

Контейнерная виртуализация не использует виртуальные машины, а создает виртуальное окружение с собственным пространством процессов и сетевым стеком. Экземпляры пространств пользователя (часто называемые контейнерами или зонами) с точки зрения пользователя полностью идентичны реальному серверу, но они в своей работе используют один экземпляр ядра операционной системы. Для linux‑систем, эта технология может рассматриваться как улучшенная реализация механизма chroot. Ядро обеспечивает полную изолированность контейнеров, поэтому программы из разных контейнеров не могут воздействовать друг на друга.

Виртуализация на уровне операционной системы даёт значительно лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании, чем у альтернативных решений.

Наиболее распространены сейчас OpenVZ, LXC, FreeBSD jail и Solaris Containers.

OpenVZ

OpenVZ — реализация технологии виртуализации на уровне ОС на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых «виртуальные частные серверы» (Virtual Private Servers, VPS) или «виртуальные среды» (Virtual Environments, VE). Поскольку OpenVZ базируется на ядре Linux, в отличие от виртуальных машин (напр. VMware, Parallels Desktop) или паравиртуализационных технологий (напр. Xen), в роли «гостевых» систем могут выступать только дистрибутивы Linux. Накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1-3 %, по сравнению с обычными Linux‑системами. OpenVZ распространяется на условиях лицензии GNU GPL и состоит из модифицированного ядра Linux и пользовательских утилит. OpenVZ является базовой платформой для Virtuozzo — проприетарного продукта Parallels.

LXC

LXC (Linux Containers) — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров операционной системы Linux на одном узле. LXC основана на технологии cgroups, входящей в ядро Linux, начиная с версии 2.6.29. Среди примеров использования — применение в PaaS‑хостинге Heroku для изоляции динамических контейнеров (dynos).

Docker — это программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации LXC. Docker позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любой Linux‑системе с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами. Docker, например, используется в облачной платформе Cocaine, разработанной компанией Яндекс.

системное администрирование
Статья опубликована в 2014 году

Тематические статьи

Виртуальный хостинг — экономное решение, но практически без гарантий

Виртуальный хостинг — самый экономичный, но при этом и наименее надёжный вариант размещения сайта.

Его достаточно только для размещения простых ненагруженных веб‑сайтов, для которых не особо важны производительность и надёжность.

системное администрирование
хостинг
Статья опубликована в 2014 году

Виртуальный выделенный сервер (VPS или VDS)

Для небольших проектов это оптимальный вариант по соотношению «цена / качество». Клиенту предоставляется виртуальная машина с гарантией выделения места на диске, оперативной памяти и процессорного времени сервера.

серверы
виртуализация
системное администрирование
хостинг
Статья опубликована в 2014 году

Выделенные сервера, кластеры и облачные решения

Серьёзные проекты требуют серьёзных хостинговых решений. Для средних проектов может хватить одного выделенного сервера, а для больших нагруженных сайтов нужны кластерные или облачные решения.

серверы
системное администрирование
облачные технологии
виртуализация
хостинг
Статья опубликована в 2014 году

Рекомендации по выбору хостинга

От правильности выбора хостинга зависит дальнейшая работоспособность сайта и его доступность, поэтому к этому вопросу надо отнестись достаточно серьёзно.

серверы
системное администрирование
хостинг
Статья опубликована в 2014 году

Серверное программное обеспечение

На серверах устанавливается программное обеспечение, которое требуется для работы сайта и других служб домена, для обслуживания и мониторинга, а также для защиты от взлома и устойчивости к нагрузкам.

системное администрирование
веб-серверы
СУБД
серверное ПО
хранение данных
Статья опубликована в 2014 году

Безопасность сайтов и веб‑приложений

Под безопасностью веб‑приложений понимается обеспечение сохранности данных, их недоступность для посторонних лиц, а также способность сервиса сохранять работоспособность при кибератаках.

Безопасность веб‑приложений зависит от качества программного кода (это ответственность веб‑разработчиков), от квалификации системного администратора и регулярности обсуживания серверов, а также от компетенций всех пользователей, имеющих доступ к чувствительной информации.

информационная безопасность
веб-разработка
системное администрирование
Статья опубликована в 2019 году

Отказоустойчивость сайтов и веб‑приложений

Причин для сбоев в работе веб‑приложений немало — это и выход из строя серверного оборудования, и сбои программного обеспечения, и аварии на уровне дата‑центров.

При этом, действительно серьёзные проекты должны работать без перебоев даже в случае отказа отдельных подсистем. Практически всех рисков можно избежать или минимизировать их последствия при помощи грамотного проектирования как серверной инфраструктуры, так и архитектуры приложения.

отказоустойчивость
бэкенд
веб-разработка
серверы
системное администрирование
Статья опубликована в 2019 году

Сколько стоит поддержка сайта?

Стоимость поддержки сайта зависит от объёма необходимых работ, их вида и сложности.

системное администрирование
экономика
Статья опубликована в 2014 году

Ускоряем работу сайта, используя быстрый и надёжный веб‑сервер nginx

nginx — это простой, быстрый и надёжный сервер. Применение nginx очень эффективно для отдачи статического контента и в качестве прокси‑сервера перед динамическими сайтами.

быстродействие
системное администрирование
веб-серверы
серверное ПО
Статья опубликована в 2014 году

Используемые технологии

Наши услуги