Solaris Containers | это... Что такое Solaris Containers? (original) (raw)

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

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

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

Содержание

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

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

Описание

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

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

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

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

Ресурсы

Зоны оказывают очень малое влияние на использование 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.

Примечания

  1. SunHelp.Ru : Поднимаем Debian Etch в BrandZ
  2. BrandZ/SCLA FAQ (Community Group brandz.brandz_lae_faq) — XWiki

См. также

Ссылки

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

На русском

Просмотр этого шаблона Программное обеспечение для эмуляции и виртуализации (сравнение)
Уровень ОС и гипервизоры ICore Virtual AccountsFreeBSD JailKernel-based Virtual Machine (KVM) • Linux-VServer • LXCHyper-VOpenVZParallels Virtuozzo ContainersSolaris ContainersUser-mode LinuxVirtual IronVM/CMSVMware ESXXen
Компьютеров bochsDOSBoxFAUmachineHerculesVirtual PCParallels WorkstationPearPCQEMUSIMHVirtualBox • VMware (FusionWorkstation)
ОС ColinuxDOSEMU • E/OS • WabiWine
Просмотр этого шаблона Технологии (Open)Solaris
DoorsDTrace • IPMP • MPxIO • SMFsnoopSolaris ContainersCrossbowSolaris ClusterTrusted SolarisZFS
Просмотр этого шаблона Sun Microsystems (поглощена Oracle)
Оборудование Sun-1Sun-2Sun-3Sun386iSun-4SPARCstationNetraUltraEnterpriseSun BladeSun FireSPARC Enterprise · SPARCJavaStationSun RaySun Modular Datacenter
Программное обеспечение GlassFishSunOSSolarisNISNFSZFSSunViewNeWSOpenWindowsJava Desktop SystemSun StudioJavaStarOfficeiPlanet/Sun ONE/Java Enterprise System • Sun Secure Global Desktop • MySQLVirtualBox
Хранение данных StorageTekSun Open StorageQFSZFS
High-Performance Computing Sun CloudSun Constellation System • Sun Visualization System • Sun Grid EngineLustre
Исследования Sun LabspicoJavaFortress • Project Looking Glass
Обучение SCPs • BlueJ
Сообщество CDDLJava Community ProcessOpenOffice.orgOpenSolarisOpenSPARCOpenJDK