Resumen del problema: Después de realizar una actualización automática de la versión 3.1 de Sun Cluster en Solaris 9 a la versión 3.2 en Solaris 10, no se pueden correctamente las zonas con el software del clúster. El problema es que no se han creado los datos de pspool para los paquetes de Sun Cluster. Por lo tanto, no se han propagado correctamente los paquetes que deben propagarse a las zonas no globales como, por ejemplo SUNWsczu.
Solución: Una vez actualizados los paquetes de Sun Cluster mediante el comando scinstall -R y antes de que se haya reiniciado el clúster en el modo de clúster, ejecute dos veces la siguiente secuencia de comandos:
Una vez para los paquetes de la estructura de Sun Cluster
Otra vez para los paquetes de servicios de datos de Sun Cluster
Prepare y ejecute esta secuencia de una de las siguientes formas:
Configure las variables de los paquetes de la estructura de Sun Cluster y ejecute la secuencia de comandos. A continuación, modifique la variable PATHNAME para los paquetes de servicios de datos y vuelva a ejecutar la secuencia de comandos.
Cree dos secuencias de comandos, una con variables definidas en la secuencia de comandos de los paquetes de la estructura y otra con las variables definidas para los paquetes de servicios de datos. A continuación, ejecute las dos secuencias de comandos.
Conviértase en superusuario.
Cree una secuencia de comandos con el siguiente contenido.
#!/bin/ksh typeset PLATFORM=${PLATFORM:-`uname -p`} typeset PATHNAME=${PATHNAME:-/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages} typeset BASEDIR=${BASEDIR:-/} cd $PATHNAME for i in * do if pkginfo -R ${BASEDIR} $i >/dev/null 2>&1 then mkdir -p ${BASEDIR}/var/sadm/pkg/$i/save/pspool pkgadd -d . -R ${BASEDIR} -s ${BASEDIR}/var/sadm/pkg/$i/save/pspool $i fi done
Defina las variables PLATFORM, PATHNAME y BASEDIR.
Defina estas variables como variables de entorno o modifique directamente los valores en la secuencia de comandos.
El nombre de la plataforma. Por ejemplo, puede ser sparc o x86. La variable PLATFORM se define de forma predeterminada en la salida del comando uname -p.
Una ruta al dispositivo desde el que se pueden instalar los paquetes de la estructura o los servicios de datos de Sun Cluster. Este valor se corresponde con la opción -d del comando pkgadd.
Por ejemplo, para los paquetes de la estructura de Sun Cluster, este valor presentaría el siguiente formato:
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages |
Para los paquetes de servicios de datos, este valor presentaría el siguiente formato:
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages |
El nombre de ruta completo del directorio que se utilizará como ruta raíz y que se corresponde con la opción -R del comando pkgadd. Para la actualización automática, defina este valor en la ruta raíz que se utiliza con la opción -R del comando scinstall. La variable BASEDIR se define de forma predeterminada en el sistema de archivos raíz (/).
Ejecute la secuencia de comandos, una vez para los paquetes de la estructura de Sun Cluster y otra para los paquetes de servicios de datos.
Una vez ejecutada la secuencia de comandos, debería aparecer el siguiente mensaje en el indicador de comando para cada paquete:
Transferring pkgname package instance |
Si ya existe el directorio pspool para un paquete o si la secuencia de comandos se ejecuta dos veces para el mismo conjunto de paquetes, se mostrará el siguiente error en el indicador de comandos:
Transferring pkgname package instance pkgadd: ERROR: unable to complete package transfer - identical version of pkgname already exists on destination device |
Se trata de un mensaje inofensivo que puede omitirse con seguridad.
Una vez ejecutada la secuencia de comandos para los paquetes de la estructura y los servicios de datos, arranque los nodos en el modo de clúster.