Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Контейнеры Solaris (включая зоны Solaris ) - это реализация технологии виртуализации на уровне операционной системы для систем x86 и SPARC, впервые выпущенная публично в феврале 2004 г. в бета-версии сборки 51 Solaris 10 , а затем в первом полном выпуске Solaris 10, 2005 г. Он присутствует в дистрибутивах illumos (ранее OpenSolaris ), таких как OpenIndiana , SmartOS и OmniOS, а также в официальном выпуске Oracle Solaris 11.

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

Терминология [ править ]

Название этой технологии менялось во время разработки и перед запуском публичных мероприятий. До запуска зон Solaris в 2005 году контейнер Solaris представлял собой любую рабочую нагрузку, ограниченную функциями управления ресурсами Solaris. Последний в более ранней истории был отдельным программным пакетом. К 2007 году термин «контейнеры Solaris» стал обозначать зону Solaris в сочетании с элементами управления ресурсами.

Позже произошел постепенный переход, в результате которого контейнеры Solaris конкретно относились к неглобальным зонам с дополнительным управлением ресурсами или без него. Зоны, размещенные в глобальной зоне, известны как «неглобальные зоны», но иногда их просто называют «зонами». Термин «локальная зона» особо не приветствуется, поскольку в этом использовании «локальный» не является антонимом «глобальный». В глобальной зоне видны все ресурсы в системе, независимо от того, связаны ли они с глобальной зоной или неглобальной зоной. Если не указано иное, в этой статье «зона» будет относиться к неглобальным зонам.

Чтобы упростить терминологию, Oracle отказалась от термина «контейнер» в Solaris 11 и вернулась к использованию термина «зона Solaris» независимо от использования средств управления ресурсами.

Описание [ править ]

Каждая зона имеет собственное имя узла, доступ к виртуальным или физическим сетевым интерфейсам [2] и назначенное ей хранилище; Для зоны не требуется наличие какого-либо минимального количества выделенного оборудования, кроме дискового хранилища, необходимого для ее уникальной конфигурации. В частности, он не требует выделенного ЦП, памяти, физического сетевого интерфейса или HBA , хотя любой из них может быть выделен специально для одной зоны. [3]

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

Зона может находиться в одном из следующих состояний:

  • Настроено: настройка завершена и подтверждена.
  • Неполный: переходное состояние во время установки или удаления.
  • Установлено: пакеты были успешно установлены.
  • Готово: виртуальная платформа создана.
  • Выполняется: зона успешно загрузилась и теперь работает.
  • Выключение: зона находится в процессе выключения - это временное состояние, приводящее к «Неактивному».
  • Не работает: зона завершила процесс выключения и отключена - это временное состояние, ведущее к «Установлено».

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

Необходимые ресурсы [ править ]

Зоны вызывают очень низкие накладные расходы на ЦП и память. Большинство типов зон совместно используют виртуальное адресное пространство глобальной зоны. Зона может быть назначена пулу ресурсов (набор процессоров плюс класс планирования), чтобы гарантировать определенное использование, или может быть ограничена фиксированной вычислительной мощностью («ограниченный ЦП»), или ей могут быть предоставлены доли посредством планирования справедливого распределения . [5]

В настоящее время в одном экземпляре операционной системы можно создать максимум 8191 неглобальную зону. «Разреженные зоны», в которых большая часть содержимого файловой системы используется совместно с глобальной зоной, могут занимать всего 50 МБ дискового пространства. «Целые корневые зоны», в которых каждая зона имеет свою собственную копию файлов операционной системы, могут занимать от нескольких сотен мегабайт до нескольких гигабайт, в зависимости от установленного программного обеспечения. Ограничение 8191 возникает из 8192 петлевых соединений на экземпляр Solaris. Каждая зона нуждается в кольцевом соединении. Глобальная зона получает одну, оставляя 8 191 для неглобальных зон.

Даже при использовании всей корневой зоны требования к дисковому пространству могут быть незначительными, если файловая система ОС зоны является клоном ZFS образа глобальной зоны, поскольку на диске должны храниться только блоки, отличные от образа моментального снимка; этот метод также позволяет создавать новые зоны за несколько секунд.

Фирменные зоны [ править ]

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

  • Бренды, которые не выполняют перевод системных вызовов:
    • 'native' - значение по умолчанию для Solaris 10
    • ipkg - это значение по умолчанию для OpenSolaris , OpenIndiana и OmniOS.
    • "joyent" - это значение по умолчанию для SmartOS.
    • 'cluster' используется для зон кластера Solaris
    • «помеченный» используется для зон в Solaris Trusted Extensions среды
  • Бренды, выполняющие перевод системных вызовов:
    • '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 Zones было написано в феврале 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» . Oracle . 1 сентября 2008 . Проверено 1 сентября 2008 года .

Внешние ссылки [ править ]

  • Документация для зон Solaris (контейнеров)
  • Документ Как приступить к созданию зон Oracle Solaris в Oracle Solaris 11
  • Блоги, посвященные Oracle Solaris Zones
    • Блог Джеффа Виктора
    • Блог Майка Гердса
  • Перемещение зон Solaris 10
  • Ключевой патент: US 7437556 , «Глобальные средства контроля видимости для разделов операционной системы», опубликованный 27 января 2005 г.  , а также EP 1475703.