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

Конфигурационные данные типизированной зоны

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

Типы ресурсов и свойств

Выделяют следующие типы ресурсов и свойств:

Имя зоны

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

  • Каждая зона должна иметь уникальное имя.

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

  • Имя зоны должно начинаться с алфавитно-цифрового символа.

    В имя могут входить алфавитно-цифровые символы, знаки подчеркивания (_), дефисы (-) и точки (.).

  • Имя не должно быть длиннее 64 символов.

  • Имя global и все имена, начинающиеся с SUNW, зарезервированы, и их использовать невозможно.

zonepath

Свойство zonepath определяет путь к корню зоны. Каждой зоне соответствует путь к ее корневому каталогу относительно корневого каталога глобальной зоны. При установке для каталога глобальной зоны должна быть ограничена видимость. Владельцем этого каталога должен быть пользовательroot с режимом 700.

Путь к корню неглобальной зоны находится на один уровень ниже. Корневой каталог зоны имеет того же владельца и такие же полномочия, что и корневой каталог ( /) в глобальной зоне. Каталог зоны должен принадлежать пользователю root с режимом 755. Эти каталоги автоматически создаются с правильными полномочиями, и проверка администратором зоны не требуется. Подобная иерархия позволяет не допустить пользователей из глобальной зоны с недостаточными полномочиями в файловую систему неглобальной зоны.

Путь 

Описание 

/home/export/lx-zone

zonecfg zonepath

/home/export/lx-zone/root

Корень зоны 

/home/export/lx-zone/root/dev

Устройства, создаваемые для зоны 

См. дальнейшее рассмотрение этого вопроса в разделе Прохождение файловых систем.


Примечание –

Зону можно переместить в другое местоположение в той же системе путем указания нового полного пути zonepathв подкоманде move команды zoneadm. Инструкции приведены в Solaris 10 11/06: перемещение неглобальной зоны.


autoboot

Если для этого свойства установлено значение “истина”, зона автоматически загружается при загрузке глобальной зоны. Следует отметить, что если служба зон svc:/system/zones:default отключена, автоматической загрузки зоны не происходит, вне зависимости от значения этого свойства. Служба зон включается командой svcadm, описанной на справочной странице svcadm(1M):


global# svcadm enable zones
bootargs

Это свойство используется для указания загрузочного аргумента для зоны. Загрузочный аргумент применяется всегда, если иное не указано командой reboot, zoneadm boot или zoneadm reboot. См. Загрузочные аргументы типизированной зоны.

pool

Это свойство используется для связывания зоны с определенным пулом ресурсов в системе. Ресурсы одного пула могут использоваться несколькими зонами. См. также Настройка ресурса dedicated-cpu .

limitpriv

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

Полномочия добавляются путем указания имени полномочий с префиксом priv_ или без него. Для исключения полномочий перед именем указывается дефис (-) или восклицательный знак (!). Значения полномочий разделяются запятыми и заключаются в кавычки ().

Как описано в priv_str_to_set(3C), особые наборы полномочий none, all и basic разворачиваются в свои нормальные определения. Поскольку настройка зоны выполняется из глобальной зоны, особый набор полномочий zone использовать невозможно. Поскольку обычно изменение стандартного набора полномочий проводится путем добавления или удаления определенных полномочий, стандартному набору полномочий соответствует особый набор default. Набор default, указанный в начале свойства limitpriv, разворачивается в стандартный набор.

Следующая запись добавляет возможность настройки системных часов и запрещает передачу необработанных пакетов протокола ICMP (Internet Control Message Protocol):


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,sys_time,!net_icmpaccess"

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

scheduling-class

Это свойство устанавливает для зоны класса планирования. См. дополнительную информацию и рекомендации в разделе Класс планирования в зоне.

dedicated-cpu

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

capped-memory

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

fs

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

net

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

В типизированной зоне lx поддерживаются только конфигурации сети с совместным использованием IP

rctl

Ресурс rctl используется для элементов управления ресурсами всей зоны. Элементы управления включаются при переходе зоны из установленного состояния в состояние готовности.


Примечание –

Инструкции по настройке элементов управления всей зоны с помощью подкоманды set имя_глобального_свойства команды zonefig вместо ресурса rctl приведены в Настройка типизированной зоны lx.


attr

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

Свойства типов ресурсов в типизированных зонах lx

Ресурсы также обладают настраиваемыми свойствами. С перечисленными типами ресурсов связаны следующие свойства.

dedicated-cpu

ncpus, importance

Указывается количество процессоров и, дополнительно, относительная важность пула. В следующем примере задается диапазон процессоров для использования зоной my-zone. Также указывается значение importance.


zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-3
zonecfg:my-zone:dedicated-cpu> set importance=2
zonecfg:my-zone:dedicated-cpu> end
capped-cpu

ncpus

Определяет количество ЦП. В следующем примере задается ограничение в 3,5 ЦП для зоны lx-zone.


zonecfg:lx-zone> add capped-cpu
zonecfg:lx-zone:capped-cpu> set ncpus=3.5
zonecfg:lx-zone:capped-cpu> end
capped-memory

physical, swap, locked

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


zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end
fs

dir, special, raw, type, options

Строки в следующем примере служат для добавления доступа только для чтения к компакт-диску или диску DVD в неглобальной зоне. Файловая система монтируется в петлевом режиме с параметрами ro,nodevices (только для чтения и без устройств) в неглобальной зоне.


zonecfg:lx-zone> add fs
zonecfg:lx-zone:fs> set dir=/cdrom
zonecfg:lx-zone:fs> set special=/cdrom
zonecfg:lx-zone:fs> set type=lofs
zonecfg:lx-zone:fs> add options [ro,nodevices]
zonecfg:lx-zone:fs> end

Следует отметить, что по особым параметрам монтирования для конкретной файловой системы имеются справочные страницы из раздела 1M. Имена этих справочных страниц имеют форму mount_файловая_система.

net

address, physical, defrouter,

В следующем примере к зоне добавляется IP-адрес 192.168.0.1. В качестве физического интерфейса выбирается плата bge0, и указывается маршрутизатор по умолчанию.


zonecfg:lx-zone> add net
zonecfg:lx-zone:net> set address=192.168.0.1
zonecfg:lx-zone:net> set physical=bge0
zonecfg:lx-zone:net> set defrouter=10.0.0.1
zonecfg:lx-zone:net> end

Примечание –

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


rctl

name, value

Доступные элементы управления ресурсами всей зоны описаны в разделе Элементы управления ресурсами всей зоны в типизированной зоне lx.


zonecfg:lx-zone> add rctl
zonecfg:lx-zone:rctl> set name=zone.cpu-shares
zonecfg:lx-zone:rctl> add value (priv=privileged,limit=10,action=none)
zonecfg:lx-zone:rctl> end

zonecfg:lx-zone> add rctl
zonecfg:lx-zone:rctl> set name=zone.max-lwps
zonecfg:lx-zone:rctl> add value (priv=privileged,limit=100,action=deny)
zonecfg:lx-zone:rctl> end
attr

name, type, value

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


zonecfg:lx-zone> add attr
zonecfg:lx-zone:attr> set name=comment
zonecfg:lx-zone:attr> set type=string
zonecfg:lx-zone:attr> set value="Production zone"
zonecfg:lx-zone:attr> end

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