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

Глава 18 Планирование и настройка неглобальных зон (задачи)

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

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

Планирование и настройка неглобальной зоны (карта задач)

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

Задача 

Описание 

Инструкции 

Планирование стратегии зоны 

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

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

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

См. данные по предыдущему использованию файлов. См. также Требования к дисковому пространству и Использование пулов ресурсов в зонах.

Определение имени зоны 

Определение наименования зоны исходя из соглашений по назначению имен. 

См. Конфигурационные данные зоны и Имя узла зоны.

Определение пути зоны 

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

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

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

Рассмотрение требований приложений. 

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

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

Рассмотрение требований приложений. 

См. Глава 10Управление физической памятью с помощью демона ограниченного выделения ресурсов (обзор), Глава 11Администрирование демона ограниченного выделения ресурсов (задачи) и Solaris 10 8/07: Управление физической памятью и ресурс capped-memory.

Назначение FSS планировщиком по умолчанию в системе 

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

Глава 8Планировщик долевого распределения (обзор), Класс планирования в зоне.

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

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

Для настройки зоны с эксклюзивным IP определите канал передачи данных, который будет ей назначен. Эта зона требует монопольного доступа к одному или более сетевым интерфейсам. Интерфейс может быть отдельной LAN, такой как bge1, или отдельной VLAN, как, например, bge2000. В качестве канала передачи должен использоваться GLDv3. Канал передачи данных, который не является каналом GLDv3, отображается в выходных данных команды dladm show-link как type: legacy.

См. Определение имени узла зоны и получение сетевого адреса, Настройка зоны и System Administration Guide: IP Services.

Для получения дополнительной информации об интерфейсах GLDv3 см. раздел Solaris OS Interface Types в System Administration Guide: IP Services.

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

Рассмотрение требований приложений. 

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

Определение сетевых интерфейсов, которые должны быть доступны в зоне 

Рассмотрение требований приложений. 

Для получения дополнительной информации см. раздел Сетевые интерфейсы с общим IP.

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

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

См. Полномочия в неглобальных зонах.

Определение устройств, которые должны быть настроены в каждой зоне 

Рассмотрение требований приложений. 

Обратитесь к документации приложения. 

Настройка зоны 

Создание конфигурации для зоны с помощью команды zonecfg.

См. Настройка, проверка и сохранение параметров зоны.

Проверка и сохранение параметров сконфигурированной зоны. 

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

См. Настройка, проверка и сохранение параметров зоны.

Анализ текущей настройки системы

Зоны могут использоваться на любом компьютере, на котором работает версия Solaris 10. С использованием зон связаны следующие основные требования к компьютеру:

Требования к дисковому пространству

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

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

Зоны с унаследованными каталогами

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

Модель зоны с унаследованными каталогами позволяет оптимизировать совместное использование объектов за счет следующего:

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

На компьютере с недостаточной областью подкачки рекомендуется выделить дополнительные 40 Мб оперативной памяти на каждую зону.

Зоны без унаследованных каталогов

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

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


Примечание –

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

См. Настройка зоны.


Ограничение размера зоны

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

Определение имени узла зоны и получение сетевого адреса

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

Имя узла зоны

Выбранное имя узла зоны должно быть определено либо в базе данных hosts, либо в базе данных /etc/inet/hosts, в соответствии с файлом /etc/nsswitch.conf в глобальной зоне. Сетевые базы данных – это файлы, которые предоставляют информацию о конфигурации сети. Файл nsswitch.conf указывает, какая служба имен должна использоваться.

При использовании локальных файлов для службы имен база данных hosts ведется в файле /etc/inet/hosts. Имена узлов сетевых интерфейсов зоны из локальной базы данных hosts сопоставляются с записями в /etc/inet/hosts. В качестве альтернативы можно задать IP-адрес непосредственно при настройке зоны, что устраняет необходимость в процедуре сопоставления имени узла.

Для получения дополнительной информации см. раздел TCP/IP Configuration Files в System Administration Guide: IP Services и раздел Network Databases and the nsswitch.conf File в System Administration Guide: IP Services.

Сетевой адрес зоны с общим IP

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

Сетевой адрес IPv4 зоны

При использовании IPv4 необходимо получить адрес и присвоить его зоне.

Вместе с IP-адресом также можно указать длину префикса. Формат этого префикса – адрес/длина_префикса, например, 192.168.1.1/24. Таким образом, используемый адрес – 192.168.1.1, а маска – 255.255.255.0, т. е. первые 24 бита в маске установлены в единицы.

Сетевой адрес IPv6 зоны

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

Адрес, который является локальным для канала

Такой адрес имеет вид fe80:: 64-битный_идентификатор_интерфейсаID/10. Запись /10 указывает, что маска имеет длину 10 бит.

Адрес, сформированный на основе глобальной маски в подсети

Глобальный адрес при одноадресной передаче состоит из 64-битового префикса, который задается администратором для каждой подсети, и 64-битового идентификатора интерфейса. В любой системе в подсети, настроенной для использования IPv6, префикс может также быть получен при помощи команды ifconfig с параметром -a6.

64-битовый идентификатор интерфейса обычно получают из MAC-адреса системы. Альтернативный уникальный адрес для использования в зонах может быть получен из адреса IPv4 глобальной зоны следующим образом:

16 битов в "0":старшие 16 битов адреса IPv4:младшие 16 битов адреса IPv4:уникальный номер зоны

Например, если IPv4-адрес глобальной зоны – 192.168.200.10, то подходящим локальным адресом для неглобальной зоны с уникальным номером 1 является fe80::c0a8:c80a:1/10. Если в этой подсети используется глобальная маска 2001:0db8:aabb:ccdd/64, то уникальный глобальный адрес при одноадресной передаче для той же самой неглобальной зоны – 2001:0db8:aabb:ccdd::c0a8:c80a:1/64 . При настройке IPv6-адреса необходимо указать длину префикса.

Для получения дополнительной информации о локальных и глобальных адресах при одноадресной передаче см. справочную страницу inet6(7P).

Сетевой адрес зоны с эксклюзивным IP

В зоне с эксклюзивным IP адреса настраиваются аналогично адресам в глобальной зоне. Следует отметить, что настройка DHCP и неизменяемого адреса IPv6 может быть произведена автоматически.

Для получения дополнительной информации см. sysidcfg(4).

Настройка файловой системы

При настройке виртуальной платформы можно определить количество точек монтирования. Если файловые системы смонтированы в зоне в петлевом режиме методом LOFS (Loopback Virtual File System), то необходимо смонтировать виртуальную файловую систему с параметром nodevices. Для получения информации о параметре nodevices см. Файловые системы и неглобальные зоны.

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

Рисунок 18–1 Файловые системы, смонтированные в петлевом режиме

На иллюстрации показаны файловые системы, смонтированные в петлевом режиме.

Для получения дополнительной информации см. справочную страницу lofs(7S).

Создание, изменение и удаление конфигураций неглобальной зоны (карта задач)

Задача 

Описание 

Инструкции 

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

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

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

Настройка, проверка и сохранение параметров зоны, Сценарий для настройки множественных зон

Изменение настроек зоны 

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

Изменение конфигурации зоны при помощи команды zonecfg

Откат или удаление конфигурации зоны 

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

Откат или удаление конфигурации зоны при помощи команды zonecfg

Удаление конфигурации зоны 

Для удаления конфигурации зоны из системы используется команда zonecfg с подкомандой delete.

Удаление конфигурации зоны

Настройка, проверка и сохранение параметров зоны

Команда zonecfg, описанная на справочной странице zonecfg(1M), позволяет выполнять следующие действия:

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

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

Сценарий для создания в системе нескольких зон представлен в Сценарий для настройки множественных зон.

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

ProcedureНастройка зоны

Следует отметить, что для создания собственной неглобальной зоны требуются только свойства zonename и zonepath. Прочие ресурсы и свойства являются необязательными. Некоторые дополнительные ресурсы также требуют выбора одного из возможных вариантов, таких как использование ресурса dedicated-cpu или capped-cpu. Для получения информации о доступных свойствах и ресурсах команды zonecfg см. Конфигурационные данные зоны.

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

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

    В этом примере используется имя my-zone.


    global# zonecfg -z my-zone
    

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


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. Создайте новую конфигурацию зоны.

    В этой процедуре используются настройки по умолчанию от Sun.


    zonecfg:my-zone> create
    
  4. Задайте путь зоны (в данной процедуре /export/home/my-zone ).


    zonecfg:my-zone> set zonepath=/export/home/my-zone
    

    Не помещайте zonepath на ZFS для более ранних версий, чем Solaris 10 10/08.

  5. Задайте значение автоматической загрузки.

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


    zonecfg:my-zone> set autoboot=true
    
  6. Установите сохраняемые загрузочные аргументы для зоны.


    zonecfg:my-zone> set bootargs="-m verbose"
    
  7. Выделите один ЦП этой зоне.


    zonecfg:my-zone> add dedicated-cpu
    
    1. Задайте количество ЦП.


      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
      
    2. (Дополнительно) Задайте важность.


      zonecfg:my-zone:dedicated-cpu> set importance=10
      

      Значение по умолчанию – 1.

    3. Завершите определение.


      zonecfg:my-zone:dedicated-cpu> end
      
  8. Проверьте стандартный набор полномочий.


    zonecfg:my-zone> set limitpriv="default,sys_time"
    

    Эта команда дает возможность установить системные часы в значение по умолчанию.

  9. Задайте класс планирования FSS.


    zonecfg:my-zone> set scheduling-class=FSS
    
  10. Добавьте ограничение памяти.


    zonecfg:my-zone> add capped-memory
    
    1. Установите значение для ограничения памяти.


      zonecfg:my-zone:capped-memory> set physical=50m
      
    2. Установите ограничение подкачки.


      zonecfg:my-zone:capped-memory> set swap=100m
      
    3. Установите ограничение по блокированной памяти.


      zonecfg:my-zone:capped-memory> set locked=30m
      
    4. Завершите определение ограничений памяти.


      zonecfg:my-zone:capped-memory> end
      
  11. Добавьте файловую систему.


    zonecfg:my-zone> add fs
    
    1. Задайте точку монтирования для файловой системы (в этой процедуре используется /usr/local).


      zonecfg:my-zone:fs> set dir=/usr/local
      
    2. Эта команда определяет, что /opt/zones/my-zone/local из глобальной зоны монтируется в настраиваемой зоне как /usr/local.


      zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local
      

      Файловая система/usr/local будет доступна для чтения и записи в неглобальной зоне.

    3. Укажите тип файловой системы (в этой процедуре используется lofs).


      zonecfg:my-zone:fs> set type=lofs
      

      Типом определяется способ взаимодействия ядра с файловой системой.

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


      zonecfg:my-zone:fs> end
      

    При добавлении нескольких файловых систем повторите этот этап.

  12. Добавьте именованный набор данных ZFS sales в пул устройств хранения данных tank.


    zonecfg:my-zone> add dataset
    
    1. Укажите путь к набору данных ZFS sales.


      zonecfg:my-zone> set name=tank/sales
      
    2. Завершите определение dataset.


      zonecfg:my-zone> end
      
  13. (Только для зоны с унаследованными каталогами) Добавьте совместно используемую файловую систему, т.е. систему, смонтированную в петлевом режиме из глобальной зоны.

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


    zonecfg:my-zone> add inherit-pkg-dir
    
    1. Эта команда определяет, что /opt/sfw из глобальной зоны монтируется в настраиваемой зоне в режиме только для чтения.


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

      Примечание –

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


    2. Завершите определение inherit-pkg-dir.


      zonecfg:my-zone:inherit-pkg-dir> end
      

    При добавлении нескольких совместно используемых файловых систем повторите этот этап.


    Примечание –

    Если требуется создать зону без унаследованных каталогов, но ресурсы совместно используемых файловых систем по умолчанию добавлялись при помощи inherit-pkg-dir, следует удалить их значение по умолчанию inherit-pkg-dir с помощью команды zonecfg до установки зоны:

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/lib

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/platform

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/sbin

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/usr


  14. (Дополнительно) При создании зоны с эксклюзивным IP задайте ip-type.


    zonecfg:my-zone> set ip-type=exclusive
    

    Примечание –

    На этапе add net будет определен только тип физического устройства.


  15. Добавьте сетевой интерфейс.


    zonecfg:my-zone> add net
    
    1. (Только в случае общего IP) Задайте IP-адрес для сетевого интерфейса (в данной процедуре 192.168.0.1).


      zonecfg:my-zone:net> set address=192.168.0.1
      
    2. Укажите тип физического устройства для сетевого интерфейса. В этой процедуре используется устройство hme.


      zonecfg:my-zone:net> set physical=hme0
      
    3. Solaris 10 10/08: (дополнительно, только общий IP) Установите для сетевого интерфейса маршрутизатор по умолчанию. В данной процедуре используется значение .


      zonecfg:my-zone:net> set defrouter=10.0.0.1
      
    4. Завершите определение.


      zonecfg:my-zone:net> end
      

    При добавлении нескольких сетевых интерфейсов повторите этот этап.

  16. Добавьте устройство.


    zonecfg:my-zone> add device
    
    1. Установите подходящее устройство (в данной процедуре /dev/sound/* ).


      zonecfg:my-zone:device> set match=/dev/sound/*
      
    2. Завершите определение устройства.


      zonecfg:my-zone:device> end
      

    При добавлении нескольких устройств повторите этот этап.

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


    zonecfg:my-zone> set max-sem-ids=10485200
    

    При добавлении нескольких элементов управления ресурсами повторите этот этап.

  18. Добавьте комментарий с использованием типа ресурса attr.


    zonecfg:my-zone> add attr
    
    1. Задайте имя comment.


      zonecfg:my-zone:attr> set name=comment
      
    2. Задайте тип string.


      zonecfg:my-zone:attr> set type=string
      
    3. Задайте значение комментария, который описывает зону.


      zonecfg:my-zone:attr> set value="This is my work zone."
      
    4. Завершите определение типа ресурса attr.


      zonecfg:my-zone:attr> end
      
  19. Проверьте конфигурацию зоны "zone".


    zonecfg:my-zone> verify
    
  20. Зафиксируйте конфигурацию зоны.


    zonecfg:my-zone> commit
    
  21. Выйдите из команды zonecfg.


    zonecfg:my-zone> exit
    

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

Выполнение ряда подкоманд из командной строки

Совет –

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


global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone"

Дальнейшие действия

Для установки зафиксированной конфигурации зоны см. Установка и начальная загрузка зон.

Сценарий для настройки множественных зон

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

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


#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"%Z%%M%	%I%	%E% SMI"

if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
		echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"
		exit 2
fi

if [[ ! -d $3 ]]; then
		echo "$3 is not a directory"
		exit 1
fi

nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3

ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
		echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
		echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>"
		exit 1
fi

i=1
while [ $i -le $nzones ]; do
	zoneadm -z $prefix$i list > /dev/null 2>&1
	if [ $? != 0 ]; then
		echo configuring $prefix$i
		F=$dir/$prefix$i.config
		rm -f $F
		echo "create" > $F
		echo "set zonepath=$dir/$prefix$i" >> $F
		zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
		    sed 's/^/    /g' 
	else
		echo "skipping $prefix$i, already configured"
	fi
	i=`expr $i + 1`
done

i=1
while [ $i -le $nzones ]; do
	j=1
	while [ $j -le $nprocs ]; do
		if [ $i -le $nzones ]; then
			if [ `zoneadm -z $prefix$i list -p | \
			    cut -d':' -f 3` != "configured" ]; then
				echo "skipping $prefix$i, already installed"
			else
				echo installing $prefix$i
				mkdir -pm 0700 $dir/$prefix$i
				chmod 700 $dir/$prefix$i
				zoneadm -z $prefix$i install > /dev/null 2>&1 &
				sleep 1	# spread things out just a tad
			fi
		fi
		i=`expr $i + 1`
		j=`expr $j + 1`
	done
	wait
done

i=1
while [ $i -le $nzones ]; do
	echo setting up sysid for $prefix$i
	cfg=$dir/$prefix$i/root/etc/sysidcfg
	rm -f $cfg
	echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
	echo "system_locale=C" >> $cfg
	echo "terminal=xterms" >> $cfg
	echo "security_policy=NONE" >> $cfg
	echo "name_service=NONE" >> $cfg
	echo "timezone=US/Pacific" >> $cfg
	echo "root_password=Qexr7Y/wzkSbc" >> $cfg  # 'l1a'
	i=`expr $i + 1`
done

i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
	date
	j=1
	while [ $j -le $para ]; do
		if [ $i -le $nzones ]; then
			echo booting $prefix$i
			zoneadm -z $prefix$i boot &
		fi
		j=`expr $j + 1`
		i=`expr $i + 1`
	done
	wait
done

ProcedureПросмотр конфигурации неглобальной зоны

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Проверьте конфигурацию зоны.


    global# zonecfg -z zonename info
    

Изменение конфигурации зоны при помощи команды zonecfg

Команда zonecfg также позволяет выполнить следующие действия:

ProcedureИзменение типа ресурса в конфигурации зоны

Можно выбрать тип ресурса и изменить его спецификацию.

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

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Выберите изменяемую зону (в этой процедуре – my-zone ).


    global# zonecfg -z my-zone
    
  3. Выберите тип ресурса, который будет изменен, например, элемент управления ресурсами.


    zonecfg:my-zone> select rctl name=zone.cpu-shares
    
  4. Удалите текущее значение.


    zonecfg:my-zone:rctl> remove value (priv=privileged,limit=20,action=none)
    
  5. Добавьте новое значение.


    zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)
    
  6. Завершите пересмотренное определение rctl.


    zonecfg:my-zone:rctl> end
    
  7. Зафиксируйте конфигурацию зоны.


    zonecfg:my-zone> commit
    
  8. Выйдите из команды zonecfg.


    zonecfg:my-zone> exit
    

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

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

ProcedureSolaris 10 8/07: Сброс типа свойства в конфигурации зоны

Эта процедура используется для сброса отдельного свойства.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Выберите изменяемую зону (в этой процедуре – my-zone ).


    global# zonecfg -z my-zone
    
  3. Сбросьте значение изменяемого свойства, например, существующую привязку пула (в этом примере).


    zonecfg:my-zone> clear pool
    
  4. Зафиксируйте конфигурацию зоны.


    zonecfg:my-zone> commit
    
  5. Выйдите из команды zonecfg.


    zonecfg:my-zone> exit
    

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

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

ProcedureС Solaris 10 3/05 по Solaris 10 11/06: Изменение типа свойства в конфигурации зоны

Эта процедура используется для сброса отдельного свойства, у которого отсутствуют какие-либо связанные свойства. Например, для удаления существующей привязки пула можно сбросить ресурс pool в null.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Выберите изменяемую зону (в этой процедуре – my-zone ).


    global# zonecfg -z my-zone
    
  3. Сбросьте значение изменяемого свойства, например, существующую привязку пула (в этом примере).


    zonecfg:my-zone> set pool=""
    
  4. Зафиксируйте конфигурацию зоны.


    zonecfg:my-zone> commit
    
  5. Выйдите из команды zonecfg.


    zonecfg:my-zone> exit
    

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

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

ProcedureSolaris 10 8/07: Переименование зоны

Эта процедура может использоваться для переименования зон, находящихся в настроенном или установленном состоянии.

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Выберите зону, которая будет переименована (в этой процедуре – my-zone).


    global# zonecfg -z my-zone
    
  3. Измените имя зоны, например на newzone.


    zonecfg:my-zone> set zonename=newzone
    
  4. Зафиксируйте изменение.


    zonecfg:newzone> commit
    
  5. Выйдите из команды zonecfg.


    zonecfg:newzone> exit
    

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

ProcedureДобавление устройства, выделенного для зоны

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

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Добавьте устройство.


    zonecfg:my-zone> add device
    
  3. Выберите подходящее устройство (в этой процедуре – /dev/scsi/scanner/c3t4* ).


    zonecfg:my-zone:device> set match=/dev/scsi/scanner/c3t4*
    
  4. Завершите определение устройства.


    zonecfg:my-zone:device> end
    
  5. Выйдите из команды zonecfg.


    zonecfg:my-zone> exit
    

ProcedureУстановка zone.cpu-shares в глобальной зоне

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

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Используйте команду zonecfg.


    # zonecfg -z global
    
  3. Задайте пять долей для глобальной зоны.


    zonecfg:global> set cpu-shares=5
    
  4. Выйдите из zonecfg.


    zonecfg:global> exit
    

Откат или удаление конфигурации зоны при помощи команды zonecfg

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

ProcedureОткат конфигурации зоны

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

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. При настройке зоны с именем tmp-zone введите команду info для просмотра текущей конфигурации:


    zonecfg:tmp-zone> info
    

    Сегмент ресурсов net конфигурации выглядит следующим образом:


    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .
  3. Удалите сетевой адрес:


    zonecfg:tmp-zone> remove net address=192.168.0.1
    
  4. Убедитесь, что элемент net удален.


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    device
            match: /dev/pts/*
    .
    .
    .
  5. Введите команду revert.


    zonecfg:tmp-zone> revert
    
  6. Ответьте "yes" на следующий вопрос:


    Are you sure you want to revert (y/[n])? y
    
  7. Проверьте, что сетевой адрес снова присвоен:


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .

ProcedureУдаление конфигурации зоны

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

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Удалите конфигурацию зоны a-zone одним из двух методов:

    • Используйте параметр -F для принудительного выполнения операции:


      global# zonecfg -z a-zone delete -F
      
    • Удалите зону в интерактивном режиме, ответив "yes" на системный запрос:


      global# zonecfg -z a-zone delete
      Are you sure you want to delete zone a-zone (y/[n])? y