Solaris Containers

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[1].
ПроектOpenSolaris s10brand использует механизм BrandZ для создания контейнеров для приложений под Solaris 10 вOpenSolaris. Результаты проекта интегрированы в OpenSolaris build 127.
Технически возможно реализовать поддержку зон дляSuSE Linux,FreeBSD иDarwin на x86[2]. Однако вплоть до августа 2010 года сведений о случаях запуска этих систем в типизированных зонах не публиковалось.
Особенности реализации
[править |править код]Branded zones не поддерживаются на архитектуреsun4us. Пакеты могут быть установлены на серверыFujitsu PRIMEPOWER с Solaris 10, но попытка использования зон приведёт к ошибке.
Похожие технологии
[править |править код]Другие реализации технологии виртуализации на уровне операционной системы включаютOpenVZ/Virtuozzo,Linux-VServer,FreeBSD Jail,FreeVPS,Icore virtual accounts иAIX Workload Partitions.
Примечания
[править |править код]- ↑SunHelp.Ru : Поднимаем Debian Etch в BrandZАрхивировано 2 мая 2008 года.
- ↑BrandZ/SCLA FAQ (Community Group brandz.brandz_lae_faq) — XWiki . Дата обращения: 19 сентября 2009. Архивировано изоригинала 6 сентября 2009 года.
См. также
[править |править код]Ссылки
[править |править код]На английском
[править |править код]- Сообщество OpenSolaris Zones
- Solaris Containers FAQ
- Solaris Containers Learning Center
- Solaris Containers data sheet
- Moving Solaris 10 Zones