Este capítulo es una novedad de la versión 10 6/06 de Solaris.
Para ver una lista completa de las nuevas funciones de Solaris 10 y una descripción de las versiones de Solaris, consulte Novedades de Oracle Solaris 10 9/10.
En estas versiones, zonepath de una zona no global no debe encontrarse en ZFS. Esta acción puede ocasionar problemas de parches y posiblemente impedir que el sistema se actualice a una versión posterior a Solaris 10.
Tenga en cuenta que, a partir de Solaris 10 10/08, el sistema de archivos raíz de una zona no global puede encontrarse en ZFS. De este modo, Actualización automática de Solaris se puede usar para actualizar el sistema.
Si aparece el mensaje de error siguiente:
dladm: warning: cannot reset link property 'zone' on 'bge0': operation failed |
Según se indica en Cómo utilizar dladm reset-linkprop , el intento de utilizar dladm reset-linkprop ha fallado. La zona en ejecución excl está utilizando el dispositivo, que se asignó ejecutando el comando ifconfig bge0 plumb dentro de la zona.
Para restablecer el valor, utilice el procedimiento ifconfig bge0 unplumb dentro de la zona y vuelva a ejecutar el comando dladm.
La presencia de archivos en una jerarquía de sistema de archivos cuando se inicia por primera vez una zona no global indica que la zona global administra los datos del sistema de archivos. Cuando se instala la zona no global, una serie de archivos de empaquetado de la zona global se duplican en la zona. Estos archivos deben residir directamente en zonepath. Si los archivos residen en un sistema de archivos creado por un administrador de zona en dispositivos de disco o conjuntos de datos ZFS añadidos a la zona, pueden producirse errores de empaquetado y parches.
El problema del almacenamiento de cualquier dato del sistema de archivos administrado por la zona global en un sistema de archivos local de la zona se puede describir utilizando ZFS como ejemplo. Si se ha delegado un conjunto de datos ZFS a una zona no global, el administrador de zona no debería utilizar dicho conjunto de datos para almacenar ningún dato del sistema de archivos que administre la zona global. En tal caso, es posible que la configuración no se actualice o no se le apliquen los parches correctamente.
Por ejemplo, no debería utilizarse un conjunto de datos delegados de ZFS como sistema de archivos /var. El sistema operativo Solaris ofrece los paquetes principales que instalan componentes en /var. Estos paquetes tienen que acceder a /var cuando se actualizan o se les aplican parches, lo cual no es posible si /var está montado en un conjunto de datos ZFS delegado.
Se admiten montajes de sistemas de archivos en partes de la jerarquía controladas por la zona global. Por ejemplo, si hay un directorio /usr/local vació en la zona global, el administrador de zona puede montar otro contenido en ese directorio.
Puede utilizar un conjunto de datos ZFS delegado para sistemas de archivos a los que no se tenga que acceder durante la aplicación de parches o la actualización, como /export en la zona no global.
En el caso de que el estado del sistema asociado con la zona no se pueda destruir, la operación de detener fallará. La zona se quedará en un estado intermedio, entre la ejecución y la instalación. En este estado, no hay procesos de usuario activos ni subprocesos de núcleo, y no se puede crear ninguno. Cuando la operación de detener falla, es necesario que el usuario complete el proceso manualmente.
La causa más común de error es la incapacidad del sistema de desmontar todos los sistemas de archivos. A diferencia del cierre del sistema Solaris tradicional, que destruye el estado del sistema, las zonas deben asegurarse de que, una vez se haya detenido la zona, no se realicen montajes mientras se inicia la zona o durante su funcionamiento. Aunque zoneadm se asegura de que no haya procesos ejecutándose en la zona, la operación de desmontar puede fallar si los procesos de la zona global tienen archivos abiertos en la zona. Utilice las herramientas que se describen en las páginas del comando man proc(1) (consulte pfiles) y fuser(1M) para encontrar estos procesos y emprender la acción oportuna. Una vez solucionada la cuestión de los procesos, la zona se detendrá por completo volviendo a invocar zoneadm halt.
Para una zona que no se pueda detener, a partir de la versión Solaris 10 10/09, puede migrar una zona que no se haya separado utilizando la opción zoneadm attach - F para forzar la conexión sin validación. El sistema de destino debe estar configurado correctamente para alojar la zona. Una configuración incorrecta podría conllevar un comportamiento inesperado. Además, no existe ninguna manera de conocer el estado de los archivos en la zona.
Si el conjunto de privilegios de la zona contiene un privilegio no permitido, no tiene un privilegio obligatorio o incluye un nombre de privilegio desconocido, cualquier intento de verificar, configurar como lista o iniciar la zona generará un mensaje de error como el siguiente:
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 |
Si aparece el siguiente mensaje al iniciar la zona de acuerdo con lo descrito en Cómo iniciar una zona:
# 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. |
Este mensaje sólo es una advertencia y el comando se lleva a cabo correctamente. El mensaje indica que el sistema no ha podido encontrar netmask para utilizar con la dirección IP especificada en la configuración de la zona.
Para que esta advertencia no se muestre en los próximos reinicios, asegúrese de que las bases de datos netmasks correctas se enumeren en el archivo /etc/nsswitch.conf de la zona global y que al menos una de las bases de datos contenga la subred y netmasks que se utilizarán para la zona my-zone.
Por ejemplo, si se utilizan el archivo /etc/inet/netmasks y la base de datos NIS local para resolver netmasks en la zona global, la entrada apropiada en /etc/nsswitch.conf será:
netmasks: files nis
Se pueden añadir la subred y la información de máscara de red correspondiente para my-zone a /etc/inet/netmasks para usos posteriores.
Si desea más información sobre el comando netmasks, consulte la página del comando man netmasks(4).
El sistema de destino debe ejecutar las mismas versiones de los siguientes parches y paquetes necesarios del sistema operativo que las instaladas en el host original.
Los paquetes que entregan los archivos a través de un recurso inherit-pkg-dir
Los paquetes en los que SUNW_PKG_ALLZONES=true
Si los parches y paquetes del host original y el nuevo son diferentes, puede que aparezca una pantalla similar a la siguiente:
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 |
Para migrar la zona correctamente, utilice uno de los métodos siguientes:
Actualice el nuevo host con los parches y paquetes correctos, para que este contenido sea el mismo en ambos sistemas. Para obtener más información, consulte el Capítulo 25Paquetes y parches en un sistema Solaris con zonas instaladas (descripción general) y el Capítulo 26Cómo añadir y eliminar paquetes y parches en un sistema Solaris con zonas instaladas (tareas).
Si el nuevo host tiene versiones posteriores de los paquetes que dependen de zonas o de sus parches asociados, utilice zoneadm attach con las opciones -u o - U para actualizar los paquetes que haya en la zona y hacer que coincidan con el nuevo host. Consulte Acerca de la migración de una zona.
Para migrar la zona correctamente, instale la misma versión de Solaris que la que se ejecuta en el host original en un sistema con la misma arquitectura.
Verifique qué versión del sistema operativo Solaris ejecuta el sistema original.
host1# uname -a |
Instale la misma versión en el nuevo host.
Consulte la documentación de instalación de Solaris en docs.sun.com.
Para migrar la zona correctamente, utilice la opción -u para zoneadm attach.
Verifique la arquitectura del sistema en ambos sistemas.
host1# uname -a |
Si las arquitecturas son distintas, utilice la opción -u con zoneadm attach para realizar la conexión.
host2# zoneadm -z my-zone attach -u |
Para obtener más información, consulte Cómo migrar una zona no global.
Este problema se ha solucionado en la versión 10 8/07 de Solaris.
Si todas las zonas no globales que se configuran con recursos lofs fs son directorios de montaje que existen en la minirraíz, el sistema se puede actualizar de una versión anterior a Solaris 10 a Solaris 10 11/06 mediante la actualización estándar. Por ejemplo, un directorio /opt montado en lofs no presenta problemas de actualización.
Sin embargo, si alguna de las zonas no globales se configura con un montaje en lofs no estándar, por ejemplo un directorio /usr/local, se muestra en pantalla el siguiente mensaje de error:
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. |
Si bien este mensaje de error indica que el sistema debe restaurarse a partir de la copia de seguridad, de hecho el sistema se encuentra bien y se puede actualizar perfectamente mediante esta solución:
Reinicie el sistema con el sistema operativo instalado.
Vuelva a configurar las zonas; para ello, elimine los recursos de fs definidos con un tipo de lofs.
Una vez eliminados dichos recursos, actualice el sistema a Solaris 10 11/06.
Tras la actualización, configure de nuevo las zonas para restaurar los recursos de fs adicionales que se habían eliminado.