Эта глава впервые включена в версию Solaris 10 6/06.
Полный список новых функций Solaris 10 и описание версий Solaris приведены в документе Solaris 10 What’s New.
Для этой версии параметр zonepath неглобальной зоны не должен относиться к ZFS. Это может привести к проблемам, связанным с применением исправления, и, возможно, препятствовать обновлению системы до более поздней версии Solaris 10.
Обратите внимание, что начиная с версии Solaris 10 10/08 корневая файловая система неглобальной зоны может находиться на ZFS. Для модернизации системы может использоваться Solaris Live Upgrade.
При появлении следующего сообщения об ошибке:
dladm: warning: cannot reset link property 'zone' on 'bge0': operation failed |
Согласно Использование команды dladm reset-linkprop , выполнение команды dladm reset-linkprop невозможно. Устройство используется работающей зоной excl и было назначено посредством выполнения команды ifconfig bge0 plumb внутри зоны.
Для сброса значения в зоне используется процедура ifconfig bge0 unplumb, после чего команда dladm выполняется повторно.
Наличие файлов в иерархии файловой системы при первой загрузке неглобальной зоны указывает на то, что управление данными файловой системы осуществляется глобальной зоной. После установки неглобальной зоны в ней дублируется ряд файлов пакетов из глобальной зоны. Эти файлы должны располагаться непосредственно в zonepath. Если файлы расположены в файловой системе, созданной администратором зоны, в дисковых устройствах или наборах данных ZFS, добавленных в зону, могут возникать проблемы при установке пакетов и применении исправлений.
Проблема хранения данных файловой системы, управляемых глобальной зоной в системе с неглобальными зонами, может быть описана на примере ZFS. Если набор данных ZFS был ограничен рамками неглобальной зоны, то администратор зоны не должен использовать этот набор данных для хранения каких-либо данных файловой системы под управлением глобальной зоны. В этом случае корректное применение исправлений или обновление версии невозможно.
Например, делегированный набор данных ZFS не должен использоваться в качестве файловой системы /var. В операционной системе Solaris предусмотрены базовые пакеты для установки компонентов в каталоге /var. Эти пакеты обращаются к /var при обновлении или применении исправлений, что невозможно в случае монтирования /var в делегированном набор данных ZFS.
Таким образом, поддерживается монтирование файловой системы в частях иерархии, управляемых глобальной зоной. Так, при наличии в глобальной зоне пустого каталога /usr/local администратор зоны может смонтировать в этом каталоге другие системы.
Для файловых систем, не требующих доступа в процессе применения исправлений или обновления (например, /export в неглобальной зоне), может использоваться делегированный набор данных ZFS.
Операция остановки прерывается в процессе выполнения в случае невозможности переустановки состояния системы, связанного с зоной. Таким образом, зона находится в промежуточном состоянии между состоянием выполнения и установленным состоянием. В этом состоянии какие-либо активные пользовательские процессы или потоки ядра отсутствуют и не могут быть созданы. При прерывании операции остановки необходимо завершить процесс вручную.
Наиболее распространенной причиной ошибки является невозможность размонтирования всех файловых систем. В отличие от обычного завершения работы системы Solaris, при котором состояние системы сбрасывается, необходимо убедиться в том, что операции монтирования, выполняемые в процессе загрузки или функционирования зоны, после остановки зоны прерываются. Даже если командаzoneadm обеспечивает отсутствие выполняемых процессов в зоне, выполнение операции размонтирования может оказаться невозможным, если в рамках процессов в глобальной зоне существуют открытые файлы. Для обнаружения этих процессов и выполнения соответствующих действий используются средства, описанные на справочных страницах proc(1) (см. pfiles) и fuser(1M). После завершения этих процессов для полной остановки зоны следует снова выполнить команду zoneadm halt.
Если в набор полномочий зоны входят запрещенные полномочия, отсутствуют необходимые требуемые полномочия, либо входят неизвестные полномочия, то попытка проверки, подготовки или загрузки зоны повлечет за собой вывод сообщения об ошибке, подобного следующему:
zonecfg:zone5> set limitpriv="basic" . . . global# zoneadm -z zone5 boot required privilege "sys_mount" is missing from the zone's privilege set zoneadm: zone zone5 failed to verify |
При появлении следующего сообщения в процессе загрузки зоны в соответствии с процедурой Начальная загрузка зоны:
# zoneadm -z my-zone boot zoneadm: zone 'my-zone': WARNING: hme0:1: no matching subnet found in netmasks(4) for 192.168.0.1; using default of 255.255.255.0. |
Это сообщение является всего лишь предупреждением, и команда была выполнена успешно. Это сообщение указывает на то, что системе не удалось найти значение netmask для использования с IP-адресом, указанным в конфигурации зоны.
Чтобы предупреждение не отображалось при последующих перезагрузках, убедитесь, что в файле /etc/nsswitch.conf в глобальной зоне задан список правильных баз данных netmasks и по крайней мере одна из этих баз содержит подсеть и маски (netmasks) для использования в зоне my-zone.
Например, если файл /etc/inet/netmasks и локальная база данных NIS используются для разрешения netmasks в глобальной зоне, соответствующая запись в /etc/nsswitch.conf выглядит следующим образом:
netmasks: files nis
После этого информацию подсети и соответствующей маски сети для зоны my-zone можно добавить в /etc/inet/netmasks для последующего использования.
Для получения дополнительной информации о команде netmasks см. справочную страницу netmasks(4).
В целевой системе должны использоваться те же версии следующих требуемых пакетов операционной системы и исправлений, что были установлены на исходном узле.
Пакеты, которые доставляют файлы в ресурс inherit-pkg-dir
Пакеты, устанавливаемые для всех зон: SUNW_PKG_ALLZONES=true
Если пакеты и исправления в исходном и новом узлах отличаются друг от друга, появится экран, подобный следующему:
host2# zoneadm -z my-zone attach These packages installed on the source system are inconsistent with this system: SUNWgnome-libs (2.6.0,REV=101.0.3.2005.12.06.20.27) version mismatch (2.6.0,REV=101.0.3.2005.12.19.21.22) SUNWudaplr (11.11,REV=2005.12.13.01.06) version mismatch (11.11,REV=2006.01.03.00.45) SUNWradpu320 (11.10.0,REV=2005.01.21.16.34) is not installed SUNWaudf (11.11,REV=2005.12.13.01.06) version mismatch (11.11,REV=2006.01.03.00.45) NCRos86r (11.10.0,REV=2005.01.17.23.31) is not installed These packages installed on this system were not installed on the source system: SUNWukspfw (11.11,REV=2006.01.03.00.45) was not installed SUNWsmcmd (1.0,REV=2005.12.14.01.53) was not installed These patches installed on the source system are inconsistent with this system: 120081 is not installed 118844 is not installed 118344 is not installed These patches installed on this system were not installed on the source system: 118669 was not installed 118668 was not installed 116299 was not installed |
Чтобы выполнить перенос зоны, используйте один из следующих методов.
Добавьте в новый узел правильные пакеты и исправления, чтобы содержимое обеих систем было идентичным. Для получения дополнительной информации см. Глава 24Пакеты и исправления в системе Solaris с установленными зонами (обзор) и Глава 25Добавление и удаление пакетов и исправлений в системе Solaris с установленными зонами (задачи).
Если новый узел имеет более поздние версии зависящих от зоны пакетов или соответствующих исправлений, используйте команду zoneadm attach с параметром -u, чтобы обновить эти пакеты в зоне и обеспечить соответствие новому узлу. См. Перенос зоны
Для успешного переноса зоны установите версию Solaris, используемую на исходном узле, в системе с идентичной архитектурой.
Определите, какая версия Solaris работает на исходной системе.
host1# uname -a |
Установите эту же версию на новом узле.
См. документацию по установке Solaris на сайте docs.sun.com.
Для успешного переноса зоны следует использовать параметр -u команды zoneadmattach.
Определите архитектуру обоих компьютеров.
host1# uname -a |
Если архитектуры различаются, используйте для присоединения команду zoneadm attach с параметром -u.
host2# zoneadm -z my-zone attach -u |
Для получения дополнительной информации см. Перенос неглобальной зоны.
В версии Solaris 10 8/07 эта проблема была устранена.
Если все неглобальные зоны, настроенные с использованием ресурсов lofs fs, содержат каталоги, существующие в "miniroot", то версию Solaris 10 можно обновить до версии Solaris 10 11/06 путем стандартного обновления. Например, при обновлении каталога /opt с системой lofs проблем не возникает.
Однако если для какой-либо неглобальной зоны выполняется нестандартное монтирование "lofs", например монтирование lofs в каталоге /usr/local, выводится следующее сообщение об ошибке:
The zones upgrade failed and the system needs to be restored from backup. More details can be found in the file /var/sadm/install_data/upgrade_log on the upgrade root file system. |
Несмотря на то, что это сообщение об ошибке указывает на необходимость восстановления системы из резервной копии, фактически система является исправной и может быть успешно обновлена с использованием следующей альтернативы:
Перезагрузите систему с установленной ОС.
Повторно сконфигурируйте зоны с удалением ресурсов fs типа lofs.
После удаления этих ресурсов обновите систему до версии Solaris 10 11/06.
После обновления можно повторно настроить зоны для восстановления удаленных дополнительных ресурсов fs.