zonecfg

Использование команды zonecfg

Команда zonecfg, используется для настройки не глобальной зоны. В версии Solaris 10 8/07 эта команда также позволяет устойчивым образом определить настройки управления ресурсами для глобальной зоны.

Команда zonecfg может использоваться в интерактивном режиме, в режиме командной строки или в

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

    • создание или удаление (уничтожение) конфигурации зоны;

    • добавление ресурсов к определенной конфигурации;

    • настройка свойств ресурсов, добавляемых в конфигурацию;

    • удаление ресурсов из определенной конфигурации;

    • запрос или проверка конфигурации;

    • фиксация конфигурации;

    • возврат к предыдущей конфигурации;

    • переименование зоны;

    • выход из сеанса zonecfg.

Приглашение команды zonecfg имеет следующую форму: zonecfg:имя_зоны>

При настройке определенного типа ресурса, например файловой системы, в приглашение также

включается этот тип ресурса:zonecfg: имя_зоны :fs>

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

Режимы zonecfg

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

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

Для под команды add используются под команды end или cancel, позволяющие завершить определение ресурса.

Для под команды select так же используются под команды end или cancel, позволяющие завершить изменение ресурса.

При этом снова возвращается глобальный контекст.

Некоторые под команды, например add, remove и set, в разных контекстах обладают разной семантикой.

Интерактивный режим zonecfg

В интерактивном режиме поддерживаются следующие подкоманды. Для получения дополнительной

информации о семантике и опциях, используемых с подкомандами, см. справочную страницу zonecfg(1M).

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

help

Вывод справки

create zonecfg:my-zone:inherit-pkg-dir> help

create

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

    • Применение настроек Sun по умолчанию к новой конфигурации. Этот метод используется по умолчанию.

    • Опция -t шаблон позволяет создать конфигурацию, идентичную указанному шаблону. Имя зоны изменяется с имени шаблона на новое.

    • Опция -F используется для перезаписи существующей конфигурации.

export

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

add

Добавление к конфигурации указанного типа ресурса в глобальном контексте.

Добавление свойства с данным именем и данным значением в контексте ресурса.

Для получения дополнительной информации см. «Процедура настройки зоны» на стр. 274 и справочную страницу zonecfg(1M)

set

Установка значения для данного свойства. Следует отметить, что некоторые свойства, например zonepath, являются глобальными, в то время как другие - специфичными для ресурса. Таким образом, эта команда применима как в глобальном контексте, так и в контексте ресурса.

select

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

clear

Solaris 10 8/07: Очистка значений необязательных свойств. Значения обязательных свойств удалить

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

значения

remove

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

В контексте ресурса из текущего ресурса удаляется указанная пара "имя свойства-значение свойства".

end

Имеет смысл только в контексте ресурса и указывает на завершение процедуры определения

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

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

    • Если определение является неполным, отображается сообщение об ошибке с описанием необходимых действий.

cancel

Имеет смысл только в контексте ресурса и указывает на завершение определения ресурса и

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

delete

Уничтожение указанной конфигурации. Конфигурация удаляется из памяти и из постоянного хранилища. Для команды delete следует использовать опцию -F (принудительно).

info

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

verify

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

commit

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

revert

Возврат конфигурации к последнему зафиксированному состоянию.

exit

Выход из сеанса zonecfg. С командой exit можно использовать опцию -F (принудительно).

В случае необходимости автоматически предпринимается попытка выполнения commit. Следует отметить, что для выхода из сеанса также может использоваться символ EOF.

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

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

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

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

Имя зоны

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

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

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

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

    • Имя не должно быть длиннее 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 Устройства, создаваемые для зоны

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

Примечание - Ограничения ZFS в этой версии cм. в «Solaris 10 6/06, Solaris 10 11/06 и Solaris 10 8/07: Корневая файловая система неглобальной зоны не должна размещаться в ZFS.» на стр. 435

autoboot

Если задано это свойство со значением =true, зона автоматически загружается при загрузке глобальной зоны, если =false соответственно нет. Следует отметить, что если служба зон 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: Загрузочные аргументы зоны» на стр. 296.

pool

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

limitpriv

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

Полномочия добавляются путем указания имени полномочий с префиксом 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: Это свойство устанавливает для зоны класс планирования. См. дополнительную информацию и рекомендации в «Класс планирования» на стр. 242.

ip-type

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

dedicated-cpu

Solaris 10 8/07: Этот ресурс позволяет выделить для работающей зоны подмножество

процессоров компьютера. В ресурсе dedicated-cpu предусмотрены пределы для ncpus

и, опционально, importance. Для получения дополнительной информации см. «Solaris

10 8/07: Ресурс dedicated-cpu » на стр. 242.

capped-memory resource

Solaris 10 8/07: В этом ресурсе группируются свойства, используемые при

ограничении потребления памяти для зоны. Ресурс capped-memory предусматривает

пределы для физической памяти, свопинга и блокированной памяти (physical, swap и

locked). Необходимо указать по крайней мере одно из этих свойств.

capped-cpu resource

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

dataset

Solaris 10 6/06: Добавление ресурса набора данных файловой системы ZFS позволяет

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

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

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

См. Глава 8, «Продвинутый уровень работы с системой ZFS,» в Файловая система ZFS ОС Solaris. Руководство администратора и «Файловые системы и не глобальные зоны» на стр. 374.

Информацию о наборах данных также см. в Глава 29.

fs

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

inherit-pkg-dir

Этот ресурс не должен задаваться в целостной корневой зоне.

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

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

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

зоны обновляется для отображения пакетов. Эти ресурсы не могут быть изменены или удалены после того, как зона была установлена с помощью команды zoneadm.

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

    • /lib

    • /platform

    • /sbin

    • /usr

net

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

device

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

rctl

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

attr

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

начинающиеся с zone., зарезервированы для системного использования.

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

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

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-memory

physical, swap, locked

Задайте пределы использования памяти для зоны my-zone. Все ограничения являются

необязательными, однако должно быть задано по крайней мере одно из них

zonecfg:my-zone> add capped-memory

zonecfg:my-zone:capped-memory> set physica!=50m

zonecfg:my-zone:capped-memory> set swap=100m

zonecfg:my-zone:capped-memory> set locked=30m

zonecfg:my-zone:capped-memory> 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

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 » на стр. 374, «Ограничения по безопасности и поведение файловой системы» на стр. 377 и справочные страницы 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

Примечание - Для зоны с общим IP задаются и IP-адрес, и устройство.

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

Для зоны с эксклюзивным IP задается только физический интерфейс.

В следующем примере для зоны с общим IP добавляется IP-адрес 192.168.0.1. В

качестве физического интерфейса используется плата bge0. Для определения

используемого физического интерфейса служит команда 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, в то

время прочие каналы указываются как legacy в выходных данных команды dladm

show-link. Следует отметить, что необходимо задать 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:myzone:device> end

rctl

name, value

Solaris 10 8/07: Новые элементы управления ресурсами в этой версии:zone.max-lockedmemory, 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

Наиболее простой и удобный способ настройки элемента управления ресурсами для всей зоны заключается в использовании свойства name вместо ресурса rctl, как описано в«Процедура настройки зоны» на стр. 274. Если элемент управления ресурсами всей зоны задается посредством 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 и «Элементы управления ресурсами, используемые в не глобальных зонах» на стр. 389.

attr

name, type, value

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

zonecfg:my-zone> add attr

zonecfg:my-zone:attr> set name=comment

zonecfg:myzone:attr> set type=string

zonecfg:my-zone:attr> set value="Production zone"

zonecfg:my-zone:attr> end

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