Технология OpenVZ


OpenVZ — реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых «виртуальные частные серверы» (Virtual Private Servers, VPS) или «виртуальные среды» (Virtual Environments, VE).

Поскольку OpenVZ базируется на ядре Linux, в отличие от виртуальных машин (напр. VMware, Parallels Desktop) или паравиртуализационных технологий (напр. Xen), в роли «гостевых» систем могут выступать только дистрибутивы Linux. Однако, виртуализация на уровне операционной системы в OpenVZ даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании, чем у альтернативных решений. Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1-3 %, по сравнению с обычными Linux-системами.


Ядро

Ядро OpenVZ — это модифицированное ядро Linux, добавляющее концепцию виртуальной среды (VE). Ядро обеспечивает виртуализацию, изоляцию, управление ресурсами и чекпоинтинг (сохранение текущего состояния VE).


Виртуализация и изоляция

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


Каждая VE имеет свои собственные:


Файлы

Системные библиотеки, приложения, виртуализованные ФС /proc и /sys, виртуализованные блокировки и т. п.


Пользователи и группы

Свои собственные пользователи и группы, включая root.


Дерево процессов

VE видит только свои собственные процессы (начиная с init). Идентификаторы процессов (PID) также виртуализованы, поэтому PID программы init — 1.


Сеть

Виртуальное сетевое устройство (venet), позволяющая VE иметь свои собственные адреса IP, а также наборы правил маршрутизации и файрволла (netfilter/iptables).


Устройства

При необходимости администратор OpenVZ сервера может дать VE доступ к реальным устройствам, напр. сетевым адаптерам, портам, разделам диска и т. д.


Объекты IPC

Разделяемая память, семафоры, сообщения.


Примеры использования

Эти примеры использования подходят ко всем виртуализационным технологиям. Однако, уникальность технологии виртуализации на уровне ОС заключается в том, что пользователю не нужно много «платить» за виртуализацию (напр. потерей производительности и т. п.), что делает низлежащие сценарии ещё более привлекательными.


Безопасность

Можно использовать отдельные VE для каждого сетевого сервиса (напр. таких, как веб-сервер, почтовый сервер, DNS сервер и т.д). В случае, если хакер находит и использует уязвимость в одном из приложений, чтобы попасть в систему, всё, что он сможет поломать, это тот самый сервис с уязвимостью — все остальные сервисы находятся в отдельных изолированных VE, к которым он не имеет доступа.


Консолидация серверов

Используя OpenVZ, простаивающие сервера могут быть консолидированы (объединены) путём их переноса внутрь виртуальных сред. Таким образом, можно увеличить загрузку серверов и уменьшить занимаемое ими место, за счёт сокращения количества машин.


Разработка и тестирование ПО

Обычно разработчикам и тестировщикам программного обеспечения под Linux требуется доступ ко множеству различных дистрибутивов, и у них часто возникает необходимость переинсталляции дистрибутивов с нуля. Используя OpenVZ, они могут получить всё это на одном сервере, без необходимости перезагрузок и с «родной» производительностью.


Использованы материалы
WikiPedia - свободная энциклопедия