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

Конфигурационные данные зоны

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

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

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

Имя зоны

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

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

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

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

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

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

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

zonepath

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

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

Путь 

Описание 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

Корень зоны 

/home/export/my-zone/dev

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

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


Примечание –

Ограничения ZFS в этой версии приведены в разделе Solaris 10 6/06, Solaris 10 11/06, Solaris 10 8/07 и Solaris 10 5/08: корневая файловая система неглобальной зоны не должна размещаться в ZFS.


autoboot

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


global# svcadm enable zones
bootargs

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

pool

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

limitpriv

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

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

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

Следующая запись добавляет возможность использования программ DTrace, которые требуют только полномочий dtrace_proc и dtrace_user в зоне:


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

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

scheduling-class

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

ip-type

Solaris 10 8/07: Это свойство задается только в том случае, если зона является зоной с эксклюзивным IP. См. Solaris 10 8/07: Неглобальные зоны с эксклюзивным IP и Настройка зоны.

dedicated-cpu

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

Ресурс capped-cpu

Solaris 10 5/08: Этот ресурс устанавливает абсолютное ограничение по количеству ресурсов ЦП, потребляемых работающей неглобальной зоной. Этот ресурс задает ограничение для ncpus.

Ресурс capped-memory

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

dataset

Solaris 10 6/06: Добавление ресурса набора данных файловой системы ZFS позволяет делегировать возможности администрирования памяти неглобальной зоне. Администратор зоны может создавать и уничтожать файловые системы в рамках этого набора данных, а также изменять свойства набора данных. Администратор зоны не может влиять на наборы данных, не добавленные в зону, и выходить за пределы любых вышестоящих квот, заданных для назначенного зоне набора данных.

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

  • как lofs-смонтированная файловая система, если требуется обеспечить лишь совместное использование пространства с глобальной зоной;

  • как делегируемый набор данных.

См. раздел Глава 10, Расширенное администрирование ZFS, в Руководство по администрированию файловых систем ZFS Solaris и Файловые системы и неглобальные зоны.

Информацию о наборах данных также приведены в Глава 29Поиск и устранение проблем, связанных с зонами, в системе Solaris.

fs

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

inherit-pkg-dir

Этот ресурс не должен задаваться в зоне без унаследованных каталогов.

В зоне с унаследованными каталогами ресурс inherit-pkg-dir используется для представления каталогов, которые содержат программные пакеты, совместно используемые глобальной и неглобальной зонами.

Содержимое программных пакетов, передаваемых в каталог inherit-pkg-dir , наследуется неглобальной зоной в режиме только для чтения. База данных пакетов зоны обновляется для отображения пакетов. Эти ресурсы не могут быть изменены или удалены после того, как зона была установлена с помощью команды zoneadm.


Примечание –

В конфигурацию включены по умолчанию четыре значения ресурсов inherit-pkg-dir. Эти ресурсы указывают, какие каталоги должны содержать соответствующие пакеты, унаследованные из глобальной зоны. Ресурсы создаются при монтировании файловой системы в петлевом режиме только для чтения.

  • /lib

  • /platform

  • /sbin

  • /usr


net

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

device

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

rctl

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

attr

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

Свойства типов ресурса

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

dedicated-cpu

ncpus, importance

Solaris 10 8/07: Указывается количество процессоров и, дополнительно, относительная важность пула. В следующем примере задается диапазон процессоров для использования зоной 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 ЦП для зоны my-zone.


zonecfg:my-zone> add capped-cpu
zonecfg:my-zone:capped-cpu> set ncpus=3.5
zonecfg:my-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

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

dir

Задает точку монтирования для файловой системы.

special

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

raw

Задает устройство без файловой системы, на котором запускается fsck до монтирования файловой системы.

type

Задает тип файловой системы.

options

Задает параметры монтирования, аналогичные используемым в команде mount

В этом примере /dev/dsk/c0t0d0s2 в глобальной зоне монтируется как /mnt в настраиваемой зоне. Свойство raw задает дополнительное устройство, на котором до монтирования файловой системы должна быть запущена команда fsck. Задаваемый тип файловой системы – UFS. Добавлены параметры nodevices и logging.


zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/mnt
zonecfg:my-zone:fs> set special=/dev/dsk/c0t0d0s2
zonecfg:my-zone:fs> set raw=/dev/rdsk/c0t0d0s2
zonecfg:my-zone:fs> set type=ufs
zonecfg:my-zone:fs> add options [nodevices,logging]
zonecfg:my-zone:fs> end

Для получения дополнительной информации см. Параметр -o nosuid, Ограничения по безопасности и поведение файловой системы и справочные страницы fsck(1M) и mount(1M). Также следует отметить, что по особым параметрам монтирования для конкретной файловой системы имеются справочные страницы из раздела 1M. Имена этих справочных страниц имеют форму mount_файловая_система.


Примечание –

Инструкции по добавлению файловой системы ZFS посредством свойства ресурса fs приведены в разделе Добавление файловых систем ZFS в неглобальную зону в Руководство по администрированию файловых систем ZFS Solaris.


dataset

name

В нижеприведенном примере набор данных sales , установленный и видимый в неглобальной зоне, перестает быть видимым в глобальной зоне.


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

dir

В этом примере /opt/sfw монтируется в петлевом режиме из глобальной зоны.


zonecfg:my-zone> add inherit-pkg-dir
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:my-zone:inherit-pkg-dir> end
net

address, physical, defrouter


Примечание –

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


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


zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=hme0
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> end

В следующем примере для зоны с эксклюзивным IP в качестве физического интерфейса используется ссылка bge32001. Для определения доступных каналов передачи данных используйте команду dladm show-link. Для использования с зоной с эксклюзивным IP канал передачи данных должен быть каналом GLDv3, в то время как прочие каналы в выходных данных команды dladm show-link указываются как type: legacy. Следует отметить, что необходимо задать ip-type=exclusive.


zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=bge32001
zonecfg:my-zone:net> end
device

match

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


zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/pts*
zonecfg:my-zone:device> end
rctl

name, value

Solaris 10 8/07: Новые элементы управления ресурсами в этой версии: zone.max-locked-memory, zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids, zone.max-shm-memory и zone.max-swap.

Доступны следующие элементы управления ресурсами всей зоны:

  • zone.cpu-shares (предпочитаемое: cpu-shares )

  • zone.max-locked-memory

  • zone.max-lwps (предпочитаемое: max-lwps)

  • 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 )

  • zone.max-swap

Наиболее простой и удобный способ настройки элемента управления ресурсами для всей зоны заключается в использовании имени свойства вместо ресурса rctl, как описано в Настройка зоны. Если элемент управления ресурсами всей зоны задается посредством add rctl, его формат будет отличаться от записей элементов управления ресурсами в базе данных project. В конфигурации зоны тип ресурса rctl состоит из трех пар "имя-значение". Именами могут быть priv, limit и action . Каждое из имен принимает простое значение.


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

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

Для получения общей информации об элементах управления ресурсами и атрибутах см. Глава 6Элементы управления ресурсами (обзор) и Элементы управления ресурсами, используемые в неглобальных зонах.

attr

name, type, value

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


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

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