В этой главе описывается настройка типизированной зоны lx в системе с архитектурой x64 или x86. Процесс в основном совпадает с процедурой настройки зоны Solaris. Для настройки типизированной зоны не требуется ряд свойств.
Перед настройкой зон в системе необходимо собрать информацию и принять решения относительно конфигурации зон. На следующей карте задач обобщен процесс планирования и настройки зоны lx.
Задача |
Описание |
Инструкции |
---|---|---|
Планирование стратегии зоны |
|
См. Требования к системе и необходимое дисковое пространство и Использование пулов ресурсов в зонах. |
Определение имени и пути для зоны. |
Определение наименования зоны исходя из соглашений по присвоению имен. Рекомендуется использовать путь в файловой системе ZFS. Если и исходный путь zonepath , и целевой путь zonepath располагаются в ZFS и находятся в одном пуле, команда zoneadm clone позволяет автоматически клонировать зону с помощью ZFS. |
См. Типы ресурсов и свойств и Руководство по администрированию файловых систем ZFS Solaris . |
Получение и настройка IP-адресов для зоны. |
В зависимости от конфигурации для каждой неглобальной зоны, в которой требуется сетевой доступ, необходимо получить как минимум один IP-адрес. |
См. Определение имени узла зоны и получение сетевого адреса и System Administration Guide: IP Services. |
Определение необходимости монтирования файловых систем в зоне. |
Рассмотрение требований приложений. |
Для получения дополнительной информации см. Файловые системы, монтируемые в зонах. |
Определение сетевых интерфейсов, которые должны быть доступны в зоне |
Рассмотрение требований приложений. |
Для получения дополнительной информации см. раздел Сетевые интерфейсы с общим IP. |
Определение необходимости изменения набора полномочий глобальной зоны по умолчанию |
Проверка набора полномочий: полномочия по умолчанию, которые можно добавлять и удалять, а также полномочия, использовать которые в данный момент невозможно. |
См. Типы ресурсов и свойств и Полномочия в неглобальных зонах. |
Настройка зоны |
Создание конфигурации для зоны с помощью команды zonecfg. |
См. Настройка, проверка и сохранение параметров типизированной зоны lx. |
Проверка и сохранение параметров сконфигурированной зоны |
Определение корректности указанных ресурсов и параметров в гипотетической системе. |
См. Настройка, проверка и сохранение параметров типизированной зоны lx. |
Команда zonecfg, описанная на справочной странице zonecfg(1M), позволяет выполнять следующие действия:
создание конфигурации зоны;
проверка наличия всей требуемой информации;
сохранение параметров конфигурации неглобальной зоны.
Если заранее известно, что для установки приложений в типизированной зоне lx будут использоваться компакт-диски или диски DVD, при начальной настройке типизированной зоны в глобальной зоне необходимо установить для компакт-дисков или дисков DVD доступ только для чтения при помощи команды add fs. После этого в типизированной зоне можно будет установить продукт с компакт-диска или диска DVD.
При настройке зоны с помощью служебной программы zonecfg можно воспользоваться подкомандой revert, позволяющей отменить настройку ресурса. См. Откат конфигурации зоны.
Сценарий, позволяющий настраивать множественные зоны в системе, представлен в разделе Сценарий для настройки нескольких типизированных зон lx.
Процедуру просмотра конфигурации неглобальной зоны приведены в разделе Просмотр конфигурации типизированной зоны.
После успешной настройки типизированной зоны рекомендуется создать копию конфигурации зоны. В будущем зону можно будет восстановить с этой резервной копии. Ниже показан вывод конфигурации зоны lx-zone в файл от имени суперпользователя или главного администратора. В этом примере используется файл с названием lx-zone.config.
global# zonecfg -z lx-zone export > lx-zone.config |
Для получения дополнительной информации см. Восстановление отдельной неглобальной зоны.
Следует отметить, что использование типизированных зон lx в системе Trusted Solaris с включенными метками невозможно. Конфигурация не будет принята командой zoneadm.
Для выполнения этой процедуры необходимо иметь роль глобального администратора в глобальной зоне.
Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).
Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.
Создайте конфигурацию зоны с использованием выбранного имени зоны.
В этом примере используется имя lx-zone.
global# zonecfg -z lx-zone |
Если эта зона настраивается впервые, выводится следующее системное сообщение:
lx-zone: No such zone configured Use 'create' to begin configuring a new zone. |
Создайте новую конфигурацию зоны lx с использованием шаблона SUNWlx.
zonecfg:lx-zone> create -t SUNWlx |
В качестве альтернативы можно создать пустую зону и явно указать ее тип:
zonecfg:lx-zone> create -b zonecfg:lx-zone> set brand=lx |
Задайте путь зоны (в данной процедуре — /export/home/lx-zone).
zonecfg:lx-zone> set zonepath=/export/home/lx-zone |
Установите значение автоматической загрузки.
Если установлено значение true , зона автоматически загружается при загрузке глобальной зоны. Следует отметить, что для автоматической загрузки зон также необходимо включить службу зон svc:/system/zones:default . Значение по умолчанию – false.
zonecfg:lx-zone> set autoboot=true |
Установите сохраняемые загрузочные аргументы для зоны.
zonecfg:lx-zone> set bootargs="-i=altinit" |
Если в системе включены пулы ресурсов, с зоной необходимо связать пул.
В этом примере используется пул по умолчанию с названием pool_default.
zonecfg:lx-zone> set pool=pool_default |
Поскольку пул ресурсов может обладать дополнительным назначенным классом планирования, для неглобальной зоны можно задать планировщика по умолчанию, отличного от системного, при помощи средств управления пулами. Инструкции приведены в Связывание пула с классом планирования и Создание конфигурации.
Проверьте стандартный набор полномочий.
zonecfg:lx-zone> set limitpriv="default,proc_priocntl" |
Для запуска процессов в классе реального времени используются полномочия proc_priocntl.
Укажите пять долей ЦП.
zonecfg:lx-zone> set cpu-shares=5 |
Добавьте ограничение памяти.
zonecfg:lx-zone> add capped-memory |
Установите значение для ограничения памяти.
zonecfg:lx-zone:capped-memory> set physical=50m |
Установите ограничение подкачки.
zonecfg:lx-zone:capped-memory> set swap=100m |
Установите ограничение по блокированной памяти.
zonecfg:lx-zone:capped-memory> set locked=30m |
Завершите определение.
zonecfg:lx-zone:capped-memory> end |
Добавьте файловую систему.
zonecfg:lx-zone> add fs |
Задайте точку монтирования для файловой системы (в этой процедуре используется /export/linux/local ).
zonecfg:lx-zone:fs> set dir=/export/linux/local |
Эта команда определяет, что /opt/local из глобальной зоны монтируется в настраиваемой зоне как /export/linux/local.
zonecfg:lx-zone:fs> set special=/opt/local |
Файловая система/export/linux/local будет доступна для чтения и записи в неглобальной зоне.
Укажите тип файловой системы (в этой процедуре используется lofs).
zonecfg:lx-zone:fs> set type=lofs |
Типом определяется способ взаимодействия ядра с файловой системой.
Завершите определение файловой системы.
zonecfg:lx-zone:fs> end |
При добавлении нескольких файловых систем повторите этот этап.
Добавьте виртуальный сетевой интерфейс.
zonecfg:lx-zone> add net |
Задайте IP-адрес в форме IP-адрес_зоны/маска. В этой процедуре используется адрес 10.6.10.233/24.
zonecfg:lx-zone:net> set address=10.6.10.233/24 |
Укажите тип физического устройства для сетевого интерфейса. В этой процедуре используется устройство bge.
zonecfg:lx-zone:net> set physical=bge0 |
Завершите определение.
zonecfg:lx-zone:net> end |
При добавлении нескольких сетевых интерфейсов повторите этот этап.
Включите в этой зоне звуковое устройство из глобальной зоны с помощью типа ресурса attr.
zonecfg:lx-zone> add attr |
Проверьте конфигурацию зоны "zone".
zonecfg:lx-zone> verify |
Зафиксируйте конфигурацию зоны.
zonecfg:lx-zone> commit |
Выйдите из команды zonecfg.
zonecfg:lx-zone> exit |
Следует отметить, что даже в том случае, если в запросе явно не вводится commit, операция commit автоматически выполняется при вводе exit или при обнаружении EOF.
Команда zonecfg также позволяет использовать несколько подкоманд, заключенных в кавычки и разделенных символом точки с запятой, в одной команде интерпретатора команд.
global# zonecfg -z lx-zone "create -t SUNWlx; set zonepath=/export/home/lx-zone" |
Для получения информации об установке фиксированной конфигурации зоны см. Установка и загрузка типизированных зон lx.
Этот сценарий можно использовать для настройки и загрузки нескольких зон в имеющейся системе. Сценарий принимает следующие параметры:
количество создаваемых зон;
префикс zonename;
каталог, используемый в качестве базового каталога.
Для выполнения сценария необходимо обладать полномочиями глобального администратора в глобальной зоне. Глобальный администратор в глобальной зоне имеет полномочия суперпользователя или роль главного администратора (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" || -z "$4" ]]; then echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir> <template zone>" exit 2 fi if [[ ! -d $3 ]]; then echo "$3 is not a directory" exit 1 fi state=`zoneadm -z $4 list -p 2>/dev/null | cut -f 3 -d ":"` if [[ -z "$state" || $state != "installed" ]]; then echo "$4 must be an installed, halted zone" exit 1 fi template_zone=$4 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 clone $template_zone > /dev/null 2>&1 if [ $? != 0 ]; then echo configuring $prefix$i F=$dir/$prefix$i.config rm -f $F echo "create -t SUNWlx" > $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 -s -d /path/to/ISOs > /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 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 |
Для выполнения этой процедуры необходимо иметь роль глобального администратора в глобальной зоне.
Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).
Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.
Проверьте конфигурацию зоны.
global# zonecfg -z zonename info |
В следующих разделах содержатся процедуры по изменению, откату или удалению конфигураций зон.