Guía de administración de sistemas: administración de recursos y contenedores de Oracle Solaris y zonas de Oracle Solaris

Capítulo 30 Resolución de problemas relativos a las zonas de Solaris

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.

Solaris 10 6/06, Solaris 10 11/06, Solaris 10 8/07 y Solaris 10 5/08: no coloque el sistema de archivos raíz en una zona no global en ZFS

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.

La zona de IP exclusiva está utilizando el dispositivo, de modo que falla dladm reset-linkprop

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.

Montaje del administrador de zona en el sistema de archivos completado por la zona global

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.

La zona no se detiene

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.

Conjunto de privilegios incorrecto especificado en la configuración de 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

Advertencia de netmasks al iniciar la zona

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).

Resolución de problemas con una operación zoneadm attach

ProcedureParches y paquetes que no están sincronizados

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.

  1. 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
  2. Para migrar la zona correctamente, utilice uno de los métodos siguientes:

ProcedureVersiones de sistemas operativos que no coinciden

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.

  1. Verifique qué versión del sistema operativo Solaris ejecuta el sistema original.


    host1# uname -a
    
  2. Instale la misma versión en el nuevo host.

    Consulte la documentación de instalación de Solaris en docs.sun.com.

ProcedureLas arquitecturas de los equipos no coinciden

Para migrar la zona correctamente, utilice la opción -u para zoneadm attach.

  1. Verifique la arquitectura del sistema en ambos sistemas.


    host1# uname -a
    
  2. 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.

Las zonas con un recurso fs definidas con un tipo de lofs no se pueden actualizar a Solaris 10 11/06


Nota –

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:

  1. Reinicie el sistema con el sistema operativo instalado.

  2. Vuelva a configurar las zonas; para ello, elimine los recursos de fs definidos con un tipo de lofs.

  3. Una vez eliminados dichos recursos, actualice el sistema a Solaris 10 11/06.

  4. Tras la actualización, configure de nuevo las zonas para restaurar los recursos de fs adicionales que se habían eliminado.