Руководство по системному администрированию: контейнеры в Solaris - управление ресурсами и зонами

Принципы функционирования зон

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

Процесс, назначаемый зоне, обеспечивает управление, контроль и непосредственное взаимодействие с другими процессами, назначаемыми той же зоне. Выполнение этих функций с процессами, назначенными другим зонам в системе, или с процессами, не назначенными какой-либо зоне, невозможно. Процессы, назначенные различным зонам, могут взаимодействовать через сетевые интерфейсы API.

Начиная с версии Solaris 10 8/07 сетевые подключения по протоколу IP теперь можно настроить двумя различными способами в зависимости от того, назначен ли зоне эксклюзивный экземпляр IP, либо настройка и состояние уровня IP используются совместно с глобальной зоной. Для получения дополнительной информации о типах IP в зонах см. Сетевые интерфейсы зоны. Информацию по настройке приведены в Настройка зоны.

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

Глобальная зона – это единственная зона, в которой можно настроить, установить, контролировать или деинсталлировать неглобальные зоны. Только глобальная зона может загружаться с системного оборудования. Управление инфраструктурой системы, в частности физическими устройствами, маршрутизацией в зоне с общим IP или динамической перенастройкой (DR), возможно только в глобальной зоне. Соответственно, привилегированные процессы, выполняемые в глобальной зоне, могут обращаться к объектам, связанным с другими зонами.

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

Каждой зоне, включая глобальную зону, присваивается имя зоны. Глобальной зоне всегда присваивается имя global. Каждой зоне также присваивается уникальный числовой идентификатор, назначаемый системой при загрузке зоны. Глобальная зона всегда отображается с идентификатором 0. Имена зон и числовые идентификаторы описаны в Использование команды zonecfg.

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

Каждой зоне соответствует путь к ее корневому каталогу относительно корневого каталога глобальной зоны. Для получения дополнительной информации см. Использование команды zonecfg.

Для неглобальной зоны по умолчанию устанавливается класс планирования системы. Описание методов, используемых для выбора класса планирования в зоне, приведены в Класс планирования в зоне.

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

Обзор функций зоны

В следующей таблице приводится краткая характеристика глобальных и неглобальных зон.

Тип зоны 

Характеристика 

Глобальная 

 

  • Автоматически присваивается идентификатор 0

  • Обеспечивает один экземпляр загружаемого и используемого в системе ядра Solaris.

  • Содержит установленные в полном объеме пакеты системного программного обеспечения Solaris.

  • Может содержать дополнительные программные пакеты или дополнительное программное обеспечение, каталоги, файлы и другие данные, не устанавливаемые посредством пакетов.

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

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

  • Является единственной зоной, распознающей все устройства и файловые системы.

  • Является единственной зоной, распознающей существующие неглобальные зоны и их настройки.

  • Является единственной зоной, из которой может осуществляться настройка, установка, управление или удаление файлов неглобальных зон.

Неглобальная 

 

  • Идентификатор зоны назначается системой при загрузке зоны.

  • Функционирует на базе ядра Solaris, загруженного из глобальной зоны.

  • Содержит установленное подмножество полных программных пакетов операционной системы Solaris.

  • Содержит программные пакеты Solaris, используемые совместно с глобальной зоной.

  • Может содержать дополнительные установленные программные пакеты, не используемые совместно с глобальной зоной.

  • Может содержать дополнительное программное обеспечение, каталоги, файлы и другие данные, созданные в неглобальной зоне, не установленные посредством пакетов и не используемые совместно с глобальной зоной.

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

  • Не распознает другие существующие зоны.

  • Не обеспечивает установку, управление и удаление файлов других зон, включая текущую зону.

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

  • Может иметь собственные настройки часового пояса.

Администрирование неглобальных зон

Глобальный администратор имеет полномочия суперпользователя или роль главного администратора (Primary Administrator). После регистрации в глобальной зоне глобальный администратор может осуществлять контроль и управлять системой в целом.

Управление неглобальной зоной может производиться администратором зоны. Глобальный администратор назначает администратору зоны профиль управления зонами (Zone Management). Полномочия администратора зоны ограничены неглобальной зоной.

Создание неглобальных зон

Для конфигурирования зоны путем установки различных параметров виртуальной платформы зоны и ее прикладной среды глобальным администратором используется команда zonecfg. Затем глобальный администратор устанавливает зону при помощи команды администрирования зон zoneadm, которая служит для установки программного обеспечения на уровне пакетов в иерархии файловой системы зоны. Глобальный администратор может зарегистрироваться в установленной зоне с помощью команды zlogin. При первой регистрации выполняется внутренняя настройка зоны. После этого выполняется команда zoneadm для начальной загрузки зоны.

Для получения информации о конфигурации зоны см. Глава 17Настройка неглобальной зоны (обзор). Для получения информации об установке зоны см. Глава 19Установка, остановка, клонирование и деинсталляция неглобальных зон (обзор). Для получения информации о регистрации в зоне см. Глава 21Регистрация в неглобальной зоне (обзор).

Модель состояний неглобальной зоны

Неглобальная зона может находиться в одном из следующих шести состояний.

Настроена

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

Неполная

В ходе операции установки или удаления файлов команда zoneadm определяет состояние целевой зоны как неполное. После успешного завершения операции зона переводится в нормальное состояние.

Установлена

В системе создается экземпляр настройки зоны. Для проверки возможности успешного использования конфигурации в указанной системе Solaris используется команда zoneadm. Пакеты устанавливаются по корневому пути зоны. В этом состоянии зона не имеет какой-либо связанной виртуальной платформы.

Готова

Виртуальная платформа для зоны установлена. Ядром запускается процесс zsched, сетевые интерфейсы настроены и доступны для зоны, файловые системы смонтированы, устройства сконфигурированы. В системе назначается уникальный идентификатор зоны. На этом этапе процессы, связанные с зоной, не запускаются.

Выполняется

Выполняются пользовательские процессы, связанные с прикладной средой зоны. Зона переходит в состояние выполнения после создания первого пользовательского процесса, связанного с прикладной средой (init).

Завершение работы и отключение

Эти состояния являются переходными и видимы только при остановке зоны. Однако зона, остановка которой по какой-либо причине невозможна, прекращает работу в одном из этих состояний.

Использование команды zoneadm для инициирования перехода к одному из этих состояний описывается в Глава 20Установка, загрузка, остановка, деинсталляция и клонирование неглобальных зон (задачи) и на справочной странице zoneadm(1M).

Таблица 16–1 Команды, влияющие на состояние зоны

Текущее состояние зоны 

Применимые команды 

Настроена 

zonecfg -z имя_зоны verify

zonecfg -z имя_зоны commit

zonecfg -z имя_зоны delete

zoneadm -z имя_зоны attach

zoneadm -z имя_зоны verify

zoneadm -z имя_зоны install

zoneadm -z имя_зоны clone

Для переименования зоны в настроенном или установленном состоянии также можно использовать команду zonecfg.

Неполная 

zoneadm -z zonename uninstall

Установлена 

zoneadm -z имя_зоны ready (дополнительно)

zoneadm -z имя_зоны boot

zoneadm -z имя_зоны uninstall для удаления файлов конфигурации определенной зоны в системе.

zoneadm -z имя_зоны move путь

zoneadm -z имя_зоны detach

Команда zonecfg -z имя_зоны используется для добавления или удаления свойств attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl и scheduling-class. Зону также можно переименовать в установленном состоянии. Ресурсы inherit-pkg-dir не могут быть изменены.

Готова 

zoneadm -z имя_зоны boot

zoneadm halt с последующей перезагрузкой системы возвращает зону, находящуюся в состоянии готовности, в установленное состояние.

Команда zonecfg -z имя_зоны используется для добавления или удаления свойств attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl и scheduling-class. Ресурсы inherit-pkg-dir не могут быть изменены.

Выполняется 

zlogin параметры zonename

zoneadm -z имя_зоны reboot

zoneadm -z имя_зоны haltдля возврата зоны, находящейся в состоянии готовности, в установленное состояние.

zoneadm halt с последующей перезагрузкой системы для возврата зоны, находящейся в состоянии выполнения, в установленное состояние.

Команда zonecfg -z имя_зоны используется для добавления или удаления свойств attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl и scheduling-class. Ресурсы zonepath и inherit-pkg-dir не могут быть изменены.


Примечание –

Параметры, измененные с использованием команды zonecfg, не воздействуют на работающую зону. Для вступления изменений в силу зону необходимо перезагрузить.


Характеристики неглобальной зоны

Зона обеспечивает изоляцию практически на любом требуемом уровне гранулярности. Зона не требует выделенного ЦП, физического устройства или части физической памяти. Эти ресурсы могут быть мультиплексированы в ряде зон, работающих в одном домене или системе, или распределены по зонам с использованием функций управления ресурсами, доступных в операционной системе.

Каждая зона может обеспечивать настраиваемый набор служб. Для принудительной изоляции базовых процессов определенный процесс может распознавать или сообщать только о процессах, выполняемых в той же зоне. Базовое взаимодействие между зонами реализуется за счет сетевых подключений IP в каждой зоне. Приложение, выполняемое в одной зоне, не может видеть сетевой трафик другой зоны. Эта изоляция поддерживается даже в том случае, если соответствующие потоки пакетов передаются через один и тот же физический интерфейс.

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

Файлы, используемые службами имен, расположены в ракурсе собственной корневой файловой системы зоны. Таким образом, службы имен в различных зонах изолированы друг от друга и могут иметь разные настройки.

Использование функций управления ресурсами для неглобальных зон

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

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