Контейнеры Солярис
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2010 г. ) |
Оригинальный автор(ы) | Сан Микросистемс |
---|---|
Разработчик(и) | Иллюмос и Оракул |
Первоначальный выпуск | Январь 2005 г. |
Написано в | С |
Операционная система | Оракул Солярис |
Платформа | СПАРК , x86 |
Доступно в | Английский |
Тип | Виртуализация на уровне ОС |
Лицензия | CDDL , собственность |
Веб-сайт | оракул |
Контейнеры Solaris (включая зоны Solaris ) — это реализация технологии виртуализации на уровне операционной системы для систем x86 и SPARC, впервые выпущенная публично в феврале 2004 года в бета-версии сборки 51 Solaris 10 , а затем в первой полной версии Solaris 10, 2005 год. Он присутствует в дистрибутивах illumos (ранее OpenSolaris ), таких как OpenIndiana , SmartOS , Tribblix и OmniOS, а также в официальном выпуске Oracle Solaris 11.
Контейнер Solaris представляет собой комбинацию средств управления системными ресурсами и разделения границ, обеспечиваемого зонами . Зоны действуют как полностью изолированные виртуальные серверы внутри одного экземпляра операционной системы. Консолидировав несколько наборов служб приложений в одной системе и поместив каждый из них в изолированные контейнеры виртуальных серверов, системные администраторы могут снизить затраты и обеспечить практически одинаковую защиту отдельных машин на одной машине. [1]
Терминология
[ редактировать ]Название этой технологии менялось во время разработки и публичных мероприятий перед запуском. До запуска зон Solaris в 2005 году контейнер Solaris представлял собой любой тип рабочей нагрузки, ограниченный функциями управления ресурсами Solaris. Последний в более ранней истории представлял собой отдельный пакет программного обеспечения. К 2007 году термин «Контейнеры Solaris» стал обозначать зону Solaris в сочетании с элементами управления ресурсами.
Позже произошел постепенный шаг, в результате которого в Solaris Containers стали упоминаться неглобальные зоны, с дополнительным управлением ресурсами или без него. Зоны, размещенные в глобальной зоне, известны как «неглобальные зоны», но иногда их называют просто «зонами». Термин «локальная зона» особенно не рекомендуется, поскольку в этом случае «локальный» не является антонимом «глобальной». В глобальной зоне видны все ресурсы системы, независимо от того, связаны ли они с глобальной зоной или с неглобальной зоной. Если не указано иное, в этой статье термин «зона» будет относиться к неглобальным зонам.
Чтобы упростить терминологию, Oracle отказалась от использования термина «Контейнер» в Solaris 11 и вернулась к использованию термина «Зона Solaris» независимо от использования средств управления ресурсами.
Описание
[ редактировать ]Каждая зона имеет свое имя узла, доступ к виртуальным или физическим сетевым интерфейсам, [2] и назначенное ему хранилище; Зона не требует наличия какого-либо минимального количества выделенного оборудования, кроме дискового хранилища, необходимого для ее уникальной конфигурации. В частности, для него не требуется выделенный ЦП, память, физический сетевой интерфейс или HBA , хотя любой из них может быть выделен конкретно для одной зоны. [3]
Каждая зона имеет окружающую ее границу безопасности, не позволяющую процессу, связанному с одной зоной, взаимодействовать или наблюдать за процессами в других зонах. Для каждой зоны можно настроить отдельный список пользователей. Система автоматически управляет конфликтами идентификаторов пользователей; то есть для двух зон в системе может быть определен идентификатор пользователя 10000, и каждая будет сопоставлена со своим собственным уникальным глобальным идентификатором. [4]
Зона может находиться в одном из следующих состояний:
- Настроено: конфигурация завершена и зафиксирована.
- Незавершенное: переходное состояние во время операции установки или удаления.
- Установлено: пакеты успешно установлены.
- Готово: виртуальная платформа создана.
- Выполняется: зона успешно загрузилась и теперь работает.
- Выключение: зона находится в процессе выключения – это временное состояние, приводящее к состоянию «Выключение».
- Не работает: зона завершила процесс выключения и отключена – это временное состояние, приводящее к состоянию «Установлена».
Некоторые программы невозможно выполнить из неглобальной зоны; обычно это происходит потому, что приложению требуются привилегии , которые невозможно предоставить внутри контейнера. Поскольку зона не имеет собственного отдельного ядра (в отличие от аппаратной виртуальной машины ), приложения, требующие прямого манипулирования функциями ядра, например, возможности прямого чтения или изменения пространства памяти ядра, могут не работать внутри контейнера.
Необходимые ресурсы
[ редактировать ]Зоны вызывают очень низкую нагрузку на процессор и память. Большинство типов зон совместно используют виртуальное адресное пространство глобальной зоны. Зона может быть назначена пулу ресурсов (набор процессоров плюс класс планирования), чтобы гарантировать определенное использование, может быть ограничена фиксированной вычислительной мощностью («ограниченный ЦП») или ей могут быть предоставлены общие ресурсы посредством планирования справедливого распределения . [5]
В настоящее время в одном экземпляре операционной системы можно создать максимум 8191 неглобальную зону. «Разреженные зоны», в которых большая часть содержимого файловой системы используется совместно с глобальной зоной, могут занимать всего 50 МБ дискового пространства. «Целые корневые зоны», в которых каждая зона имеет собственную копию файлов операционной системы, могут занимать от нескольких сотен мегабайт до нескольких гигабайт, в зависимости от установленного программного обеспечения. Ограничения в 8191 возникают из-за ограничения в 8192 кольцевых соединений на экземпляр Solaris. Каждая зона нуждается в шлейфовом соединении. Глобальная зона получает одну, а для неглобальных зон остается 8191.
Даже при использовании целых корневых зон требования к дисковому пространству могут быть незначительными, если файловая система ОС зоны представляет собой клон ZFS образа глобальной зоны, поскольку на диске необходимо хранить только блоки, отличные от образа моментального снимка; этот метод также позволяет создавать новые зоны за несколько секунд.
Брендированные зоны
[ редактировать ]Хотя все зоны в системе имеют общее ядро, был добавлен дополнительный набор функций, называемый фирменными зонами ( BrandZ сокращенно ). Это позволяет отдельным зонам вести себя иначе, чем бренд глобальной зоны по умолчанию. Существующие бренды (октябрь 2009 г.) можно разделить на две категории:
- Бренды, которые не выполняют трансляцию системных вызовов:
- «родной» — значение по умолчанию для Solaris 10.
- «ipkg» — значение по умолчанию для OpenSolaris , OpenIndiana и OmniOS.
- «joyent» — значение по умолчанию для SmartOS.
- «кластер» используется для зон кластера Solaris.
- «labeled» используется для зон в доверенных расширений Solaris. среде
- Бренды, выполняющие перевод системных вызовов:
- «solaris8» обеспечивает среду Solaris 8 в системе Solaris 10, включая преобразование системных вызовов Solaris 8 в системные вызовы Solaris 10 (доступно только в SPARC ). системах
- «solaris9» обеспечивает среду Solaris 9 в системе Solaris 10, включая преобразование системных вызовов Solaris 9 в системные вызовы Solaris 10 (доступно только в системах SPARC).
- «lx» предоставляет среду Red Hat Enterprise Linux 3 в системе Solaris 10, включая преобразование системных вызовов RHEL 3 в системные вызовы Solaris 10 (доступно только в системах x86). В SmartOS зоны бренда lx могут обеспечить среду выполнения для большинства современных дистрибутивов Linux, включая Ubuntu, Debian, CentOS, Alpine и другие. Поддержка LX не была реализована в Illumos.
- «s10brand» предоставляет среду Solaris 10 в системе OpenSolaris или Oracle Solaris 11, включая перевод системных вызовов Solaris 10 в системные вызовы OpenSolaris/Oracle Solaris 11.
- «solaris-kz» предоставляет отдельный экземпляр Solaris 11.2 или новее с собственным ядром и независимыми пакетами в системе Oracle Solaris 11.2 или новее. [6] Эта функция впервые была доступна публично в бета-версии Solaris 11.2 (публичная загрузка). [7]
Бренд зоны задается во время создания зоны. Вторая категория реализуется с помощью точек взаимодействия внутри ядра ОС, которые можно использовать для изменения поведения системных вызовов , процессов загрузки , создания потоков и других элементов.
Для бренда lx библиотеки из Red Hat 3 или эквивалентного дистрибутива, такого как CentOS для создания эмулируемой среды требуются .
Документация
[ редактировать ]Операционная система Solaris по умолчанию предоставляет справочные страницы для контейнеров Solaris; более подробную документацию можно найти на различных технических ресурсах в Интернете.
Первый опубликованный документ и практический справочник по зонам Solaris был написан в феврале 2004 года Деннисом Кларком из Blastwave и содержит все необходимое для начала работы. Этот документ был значительно расширен Бренданом Греггом в июле 2005 года. [8] Контейнеры Solaris 8 и Solaris 9 были подробно задокументированы Деннисом Кларком на Blastwave еще раз в апреле 2008 года. Документ Blastwave Solaris 8 и Solaris 9 Containers находился на самом раннем этапе цикла выпуска технологии Solaris Containers, и действия и реализация в Blastwave привели к в продолжении маркетингового исследования Sun Microsystems. Книга Oracle Solaris 10 System Virtualization Essentials, написанная Джеффом Виктором и др., предлагает подробные сведения о функциях и лучшие практики. Более подробную документацию можно найти на сайте документации Oracle. [9]
Проблемы реализации
[ редактировать ]Начиная с версии Solaris 10 от 10/08, фирменные зоны поддерживаются в архитектуре sun4us (серверы Fujitsu PRIMEPOWER) посредством пакетов FJSVs8brandr и FJSVs9brandr. [10]
См. также
[ редактировать ]- Виртуализация на уровне операционной системы
- Сравнение программного обеспечения для виртуализации платформ
- Виртуальные машины
Ссылки
[ редактировать ]- ^ «Введение в зоны Oracle Solaris» .
- ^ «Зоновые сетевые интерфейсы» .
- ^ «Возможности, предоставляемые неглобальными зонами» .
- ^ «Возможности, предоставляемые неглобальными зонами» .
- ^ «Контроль ресурсов» .
- ^ «О зонах ядра Oracle Solaris» .
- ^ «Загрузки бета-версии Oracle Solaris 11.2» .
- ^ «Зоны» . Вики-сайт Solaris Internals . 6 ноября 2007 года . Проверено 21 апреля 2008 г.
- ^ «Информационная библиотека Oracle Solaris 11.1» .
- ^ «Что нового в пакетах Solaris 10 от 10/08» . Оракул . 1 сентября 2008 года . Проверено 1 сентября 2008 г.
Внешние ссылки
[ редактировать ]- Документация для зон Solaris (контейнеров)
- Документ «Как приступить к созданию зон Oracle Solaris в Oracle Solaris 11»
- Блоги, посвященные зонам Oracle Solaris
- Перемещение зон Solaris 10
- Ключевой патент: US 7437556 , Такер, Эндрю Г.; Бек, Джон Т. и Комэй, Дэвид С. и др., «Глобальные средства управления видимостью для разделов операционной системы», опубликовано 10 ноября 2004 г., передано Sun Microsystems Inc. , а также как ЕР 1475703