Контейнеры Solaris - Solaris Containers

Зоны Solaris
Оригинальный автор (ы)Sun Microsystems
Разработчики)иллюзия и Oracle
изначальный выпускЯнварь 2005 г. (Январь 2005 г.)
Написано вC
Операционная системаOracle Solaris
ПлатформаSPARC, x86
Доступно ванглийский
ТипВиртуализация на уровне ОС
Лицензия CDDL , Проприетарный
Интернет сайторакул.com/ solaris

Контейнеры Solaris (включая Зоны Solaris) является реализацией виртуализация на уровне операционной системы технология для систем x86 и SPARC, впервые публично выпущенная в феврале 2004 г. в бета-версии сборки 51 Solaris 10, а затем в первом полном выпуске Solaris 10, 2005. Он присутствует в иллюзия (ранее OpenSolaris ) дистрибутивов, таких как OpenIndiana, SmartOS и OmniOS, а также в официальном Oracle Солярис 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 г.) можно разделить на две категории:

  • Бренды, которые не выполняют перевод системных вызовов:
  • Бренды, выполняющие перевод системных вызовов:
    • '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 был очень ранним в цикле выпуска технологии контейнеров Solaris, и действия и реализация в Blastwave привели к в продолжение маркетинга Sun Microsystems. Книга Основы виртуализации системы Oracle Solaris 10 написанный Джеффом Виктором и др., предлагает подробные сведения о функциях и передовые методы. Более подробную документацию можно найти на сайте документации 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.

внешняя ссылка