stringtranslate.com

Контейнеры Солярис

Контейнеры 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 г.) можно разделить на две категории:

Бренд зоны задается во время создания зоны. Вторая категория реализуется с помощью точек взаимодействия внутри ядра ОС, которые можно использовать для изменения поведения системных вызовов , загрузки процессов , создания потоков и других элементов.

Для бренда 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]

Смотрите также

Рекомендации

  1. ^ «Введение в зоны Oracle Solaris».
  2. ^ «Зональные сетевые интерфейсы» .
  3. ^ «Возможности, предоставляемые неглобальными зонами».
  4. ^ «Возможности, предоставляемые неглобальными зонами».
  5. ^ «Контроль ресурсов».
  6. ^ «О зонах ядра Oracle Solaris» .
  7. ^ «Загрузки бета-версии Oracle Solaris 11.2» .
  8. ^ «Зоны». Вики-сайт Solaris Internals . 6 ноября 2007 года . Проверено 21 апреля 2008 г.
  9. ^ «Информационная библиотека Oracle Solaris 11.1» .
  10. ^ «Что нового в пакетах Solaris 10 от 10/08» . Оракул . 1 сентября 2008 года . Проверено 1 сентября 2008 г.

Внешние ссылки