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

Компоненты зоны

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

Имя зоны и ее путь

Для зоны необходимо выбрать имя и путь.

Свойство Autoboot зоны

Свойство autoboot определяет, загружается ли данная зона автоматически при загрузке глобальной зоны. Необходимо также включить службу зон svc:/system/zones:default.

Привязка к пулу ресурсов

Если в системе настроены пулы ресурсов в соответствии с Глава 13Создание и администрирование пулов ресурсов (задачи), для зоны можно настроить привязку к одному из пулов ресурсов с помощью свойства pool.

Начиная с версии Solaris 10 8/07, в случае если пулы ресурсов не заданы, можно указать подмножество процессоров системы, которые должны выделяться для неглобальной зоны во время ее работы, с помощью ресурса dedicated-cpu . При этом в системе автоматически создается временный пул, используемый во время работы зоны. Параметры пулов, заданные посредством команды zonecfg, не утрачиваются в ходе переноса.


Примечание –

Конфигурация зоны, созданная с использованием сохраняемого набора пулов при помощи свойства pool, не совместима с временным пулом, настроенным через ресурс dedicated-cpu. Допускается установка только одного из этих двух свойств.


Solaris 10 8/07: Ресурс dedicated-cpu

Ресурс dedicated-cpu указывает, что для работающей неглобальной зоны необходимо выделить подмножество процессоров компьютера. При загрузке зоны динамически создается временный пул, используемый при работе зоны.

Параметры пулов, заданные посредством команды zonecfg, не утрачиваются в ходе переноса.

Ресурс dedicated-cpu позволяет задать ограничения для ncpus и, дополнительно, importance.

ncpus

Здесь указывается количество процессоров или диапазон, например 2-4 процессора. Если диапазон указывается вследствие необходимости реализации динамического поведения пула ресурсов, также необходимо выполнить следующее:

importance

Если для реализации динамического поведения используется диапазон процессоров, также следует настроить свойство importance. Свойство importance является необязательным и определяет относительную важность пула. Это свойство требуется только в случае указания диапазона для ncpus и при использовании динамических пулов ресурсов, управляемых демоном poold. Если демон poold не запущен, свойство importance игнорируется. Если демон poold не запущен, а свойство importance не задано, значение importance по умолчанию принимается равным 1. Для получения дополнительной информации см. Ограничения посредством свойства pool.importance.


Примечание –

Ресурсы capped-cpu и dedicated-cpu являются несовместимыми. Элемент управления ресурсами cpu-shares и ресурс dedicated-cpu являются несовместимыми.


Solaris 10 5/08: Ресурс capped-cpu

Ресурс capped-cpu обеспечивает абсолютное ограничение по количеству процессорных ресурсов, потребляемых проектом или зоной. При использовании совместно с наборами процессоров ограничения ресурсов для ЦП позволяют ограничить использование ЦП в пределах набора. Ресурс capped-cpu имеет единственное свойство ncpus, представляющее собой положительное десятичное число с двумя дробными разрядами. Это свойство соответствует количеству ЦП. Ввести диапазон для этого ресурса невозможно. Также нельзя задать число в десятичном представлении. При настройке свойства ncpus значение 1 означает 100% одного ЦП. Значение 1,25 соответствует 125%, поскольку 100% – это один полностью загруженный ЦП в системе.


Примечание –

Ресурсы capped-cpu и dedicated-cpu являются несовместимыми.


Класс планирования в зоне

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

При явном указании свойства cpu-shares в качестве класса планирования для такой зоны используется планировщик долевого распределения (FSS). Однако в этом случае рекомендуется задать FSS как общесистемный класс планирования по умолчанию с помощью команды dispadmin. При этом процессорные ресурсы системы справедливо распределяются по всем зонам. Если свойство cpu-shares для зоны не задано, то в зоне используется класс планирования, заданный в системе по умолчанию. Следующие действия позволяют настроить для зоны класс планирования:

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

Solaris 10 8/07: Управление физической памятью и ресурс capped-memory

Ресурс capped-memory устанавливает ограничения для следующих видов памяти: physical (физическая), swap (подкачка) и locked (блокированная). Все ограничения являются необязательными, однако должно быть задано по крайней мере одно из них.


Примечание –

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


Для получения дополнительной информации см. Глава 10Управление физической памятью с помощью демона ограниченного выделения ресурсов (обзор), Глава 11Администрирование демона ограниченного выделения ресурсов (задачи) и Настройка зоны. Для получения дополнительной информации о временной настройке ограничения потребления ресурсов для зоны см. раздел Настройка временного ограничения ресурсов для зоны.

Сетевые интерфейсы зоны

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

За получение и доставку пакетов в сети отвечает слой протокола IP. Этот уровень включает маршрутизацию IP, протокол ARP (Address Resolution Protocol), архитектуру IPsec (IP Security Architecture) и фильтр IP.

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

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

Неглобальные зоны с общим IP

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

IP-адреса для зон с общим IP назначаются командой zonecfg . Имена каналов передачи данных должны также быть заданы в глобальной зоне.

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

Solaris 10 8/07: Неглобальные зоны с эксклюзивным IP

Полные функциональные возможности уровня IP доступны в зоне с эксклюзивным IP.

Зона с эксклюзивным IP обладает собственным состоянием IP.

А именно, в зоне с эксклюзивным IP могут использоваться следующие функции:

Зоне с эксклюзивным IP присваивается собственный набор каналов передачи данных командой zonecfg. Зоне выделяется имя канала передачи данных, например xge0 , e1000g1 или bge32001, при помощи свойства physical ресурса net. Свойство address ресурса net не устанавливается.

Следует отметить, что назначенный канал передачи данных позволяет использовать команду snoop.

Для вывода назначения каналов работающим зонам с эксклюзивным IP можно использовать команду dladm с подкомандой show-linkprop . Команда dladm с подкомандой set-linkprop может использоваться для назначения дополнительных каналов передачи данных работающим зонам. См. примеры использования в Solaris 10 8/07: Администрирование каналов передачи данных в неглобальных зонах с эксклюзивным IP.

В работающей зоне с эксклюзивным IP для настройки IP может использоваться команда ifconfig, которая включает возможность добавления или удаления логических интерфейсов. Настройка IP в зоне может осуществляться так же, как и в глобальной зоне, посредством sysidtools, как описано в sysidcfg(4).


Примечание –

Настройки IP для зоны с эксклюзивным IP можно просмотреть из глобальной зоны только при помощи команды zlogin. Например:


global# zlogin zone1 ifconfig -a

Различия в безопасности между зонами с общим и эксклюзивным IP

В зоне с общим IP приложения, в том числе запущенные суперпользователем, не могут передавать пакеты с исходными IP-адресами, отличными от назначенных зоне утилитой zonecfg. Этот тип зоны не имеет доступа для передачи и получения произвольных пакетов канала передачи данных (второго уровня).

Однако зоне с эксклюзивным IP команда zonecfg полностью предоставляет специфицированный канал передачи данных. Это означает, что суперпользователь в зоне с эксклюзивным IP может передавать "обманные" (spoofed) пакеты по каналам передачи данных, также как и в глобальной зоне.

Одновременное использование неглобальных зон с общим и эксклюзивным IP

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

Файловые системы, монтируемые в зонах

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

Сюда могут входить, например, следующие файловые системы:

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

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

Сконфигурированные устройства в зонах

В команде zonecfg для определения устройств, которые должны появиться в определенной зоне, используется принцип сопоставления правилам. Устройства, удовлетворяющие одному из правил, включаются в файловую систему /dev зоны. Для получения дополнительной информации см. Настройка зоны.

Установка элементов управления ресурсами всей зоны

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

Эти ограничения задаются как для глобальных, так и для неглобальных зон командой zonecfg. См. Настройка зоны.

Начиная с версии Solaris 10 8/07 наиболее простой и удобный способ настройки элемента управления ресурсами для всей зоны заключается в использовании имени свойства вместо ресурса rctl.

Solaris 10 5/08: Элемент управления ресурсамиzone.cpu-cap задает абсолютное ограничение объема ресурсов ЦП, которые могут потребляться зоной. Значение 100 означает, что в качестве project.cpu-cap задано 100% одного ЦП. Значение 125 соответствует 125%, т. к. 100% – это один полностью загруженный ЦП в системе при использовании ограничений по ЦП.


Примечание –

При настройке в ресурсе capped-cpu можно использовать десятичное представление. Значение соотносится с элементом управления ресурсами zone.capped-cpu , но с делением на 100. Значение 1 соответствует значению 100 для элемента управления ресурсами.


Элемент управления ресурсами zone.cpu-shares устанавливает предел на количество долей ЦП планировщика долевого распределения (FSS) для зоны. Доли ЦП сначала выделяются зоне, а затем разделяются среди проектов внутри зоны в соответствии с project.cpu-shares. Для получения дополнительной информации см. Использование планировщика долевого распределения в системе Solaris с установленными зонами. Глобальное имя свойства для этого элемента управления – cpu-shares.

Элемент управления ресурсами zone.max-locked-memory ограничивает количество блокированной физической памяти, доступной зоне. Управление распределением ресурсов блокированной физической памяти среди проектов внутри зоны контролируется элементом управления ресурсами project.max-locked-memory. Для получения дополнительной информации см. Таблица 6–1.

Элемент управления ресурсами zone.max-lwps совершенствует изоляцию ресурса, предотвращая воздействие LWP в одной зоне на другие зоны. Управление распределением ресурсов LWP по проектам внутри зоны можно осуществлять посредством элемента управления ресурсами project.max-lwps. Для получения дополнительной информации см. Таблица 6–1. Глобальное имя свойства для этого элемента управления – max-lwps.

Элементы управления ресурсами zone.max-msg-ids, zone.max-sem-ids , zone.max-shm-ids и zone.max-shm-memory используются для ограничения ресурсов System V, используемых всеми процессами внутри зоны. Распределение ресурсов System V среди проектов внутри зоны зависит от версии проекта элементов управления этими ресурсами. Глобальные имена свойств для этого элемента управления – max-msg-ids, max-sem-ids, max-shm-ids и max-shm-memory.

Элемент управления ресурсами zone.max-swap ограничивает объем подкачки, потребляемый при отображениях адресного пространства пользовательских процессов и файловых систем tmpfs внутри зоны. Команда prstat -Z выводит на экран столбец SWAP. Выводимый размер подкачки – полный размер пространства подкачки, потребляемого процессами зоны и файловыми системами tmpfs. Это значение позволяет следить за подкачкой, зарезервированным каждой зоной, для правильного выбора величины zone.max-swap.

Таблица 17–1 Элементы управления ресурсами всей зоны

Имя элемента управления 

Глобальное имя свойства 

Описание 

Единица по умолчанию 

Использование значения 

zone.cpu-cap

 

Solaris 10 5/08:. Абсолютное ограничение по количеству ресурсов ЦП для зоны

Количество (число ЦП), выраженное в процентах 


Примечание –

При настройке в ресурсе capped-cpu можно использовать десятичное представление.


 

zone.cpu-shares

cpu-shares

Количество процессорных долей в соответствии с планировщиком долевого распределения (FSS) для этой зоны. 

Количество (доли) 

 

zone.max-locked-memory

 

Общее количество доступной зоне физической блокированной памяти. 

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

Размер (байты) 

Свойство locked ресурса capped-memory

zone.max-lwps

max-lwps

Максимальное количество LWP, одновременно доступных этой зоне. 

Количество (LWP) 

 

zone.max-msg-ids

max-msg-ids

Максимальное количество идентификаторов очередей сообщений, разрешенное для этой зоны. 

Количество (идентифика- торы очередей сообщений) 

 

zone.max-sem-ids

max-sem-ids

Максимальное количество идентификаторов семафоров, разрешенных для этой зоны. 

Количество (идентифика- торы семафоров) 

 

zone.max-shm-ids

max-shm-ids

Максимальное количество идентификаторов совместно используемой памяти, разрешенных для этой зоны. 

Количество (идентифика- торы совместно используемой памяти) 

 

zone.max-shm-memory

max-shm-memory

Общий объем совместно используемой памяти System V, разрешенный для этой зоны. 

Размер (байты) 

 

zone.max-swap

 

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

Размер (байты) 

Свойство swap ресурса capped-memory

Эти ограничения могут быть заданы для работающих процессов посредством команды prctl . См. пример в Настройка долей FSS в глобальной зоне при помощи команды prctl. Ограничения, заданные с помощью команды prctl, не постоянны. Эти ограничения действуют только до перезагрузки системы.

Solaris 10 11/06 и выше: Настраиваемые полномочия

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


Примечание –

Некоторые полномочия невозможно удалить из набора полномочий зоны; кроме того, некоторые полномочия невозможно добавить к этому набору.


Для получения дополнительной информации см. Полномочия в неглобальных зонах, Настройка зоны и privileges(5).

Добавление комментария для зоны

С помощью типа ресурса attr зону можно снабдить комментарием. Для получения дополнительной информации см. Настройка зоны.