Interested Article - Solaris Containers

Схема контейнеров Solaris

Solaris Containers (включая Solaris Zones ) — реализация технологии виртуализации на уровне операционной системы , представленная корпорацией Sun Microsystems в 2005 для Solaris 10 .

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

Терминология

В системе всегда существует одна зона, называемая глобальной ( «global zone» ). Глобальная зона — это тот экземпляр операционной системы, который загружается при включении компьютера. Другие зоны известны как неглобальные ( «non-global zones» ), или просто зоны . Термин «локальная зона» не рекомендуется употреблять, так как в этом контексте слово «локальная» не является антонимом слову «глобальная». Глобальная зона имеет возможность контролировать все процессы вне зависимости от того, в какой зоне они исполняются. Таким образом, в системе всегда есть глобальная зона и, возможно, неглобальные зоны. Если не оговорено особо, термин «зона» в этой статье будет относиться к неглобальным зонам.

Описание

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

Каждая зона имеет систему защиты, которая не позволяет процессам взаимодействовать с процессами других зон или следить за ними. Для каждой зоны может быть создан собственный список пользователей. Система автоматически разрешает конфликты при использовании одинаковых идентификаторов пользователей в разных зонах; например, две зоны в системе могут иметь пользователя с ID 10000.

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

  • Configured : конфигурирование закончено и подтверждено
  • Incomplete : переходное состояние между операциями install и uninstall
  • Installed : пакеты были успешно установлены
  • Ready : платформа готова к использованию
  • Running : зона успешно загрузилась и работает
  • Shutting down : зона в процессе выключения — это промежуточное состояние перед полной остановкой
  • Down : зона остановлена

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

Ресурсы

Зоны оказывают очень малое влияние на использование CPU и памяти. В настоящее время максимум 8191 неглобальная зона может работать внутри одного экземпляра операционной системы. Зоны могут занимать около 50 МБ объёма диска.

Branded zones

Хотя все зоны в системе разделяют одно общее ядро, существует возможность исполнять экземпляры операционных систем, отличных от системы в глобальной зоне. Для этого настраивают типизированные зоны ( branded zones или BrandZ ). Механизм BrandZ позволяет запускать в Solaris без перекомпиляции те приложения, которые были изначально скомпилированы для исполнения в других операционных системах.

Во время исполнения программы в типизированной зоне ядро Solaris обрабатывает полученные из этой зоны вызовы так, как их бы обработало ядро системы, «родной» для приложений из этой зоны.

Реализованы контейнеры для операционных систем Linux , Solaris 8 , Solaris 9 и Solaris 10 . Эмуляция Red Hat Enterprise Linux 3 доступна в Solaris на платформе x86 . Для эмуляции необходимы библиотеки Red Hat 3 или эквивалентные библиотеки CentOS . Используя некоторые приёмы, можно эмулировать Debian .

Проект OpenSolaris s10brand использует механизм BrandZ для создания контейнеров для приложений под Solaris 10 в OpenSolaris . Результаты проекта интегрированы в OpenSolaris build 127.

Технически возможно реализовать поддержку зон для SuSE Linux , FreeBSD и Darwin на x86 . Однако вплоть до августа 2010 года сведений о случаях запуска этих систем в типизированных зонах не публиковалось.

Особенности реализации

Branded zones не поддерживаются на архитектуре sun4us . Пакеты могут быть установлены на серверы Fujitsu PRIMEPOWER с Solaris 10, но попытка использования зон приведёт к ошибке.

Похожие технологии

Другие реализации технологии виртуализации на уровне операционной системы включают OpenVZ / Virtuozzo , , FreeBSD Jail , , Icore virtual accounts и .

Примечания

  1. 2 мая 2008 года.
  2. (неопр.) . Дата обращения: 19 сентября 2009. Архивировано из 6 сентября 2009 года.

См. также

Ссылки

На английском

На русском

Same as Solaris Containers