Problème : après une mise à niveau directe de Sun Cluster version 3.1 sur Solaris 9 à la version 3.2 sur Solaris 10, des zones ne peuvent pas être utilisées avec le logiciel du cluster. Le problème réside dans le fait que les données pspool ne sont pas créées pour les packages Sun Cluster. Les packages qui doivent être distribués aux zones non globales, comme SUNWsczu, ne sont pas distribués correctement.
Solution : après la mise à niveau des packages Sun Cluster à l'aide de la commande scinstall -R et avant l'initialisation du cluster en mode cluster, exécutez le script suivant deux fois :
une fois pour les packages de structure Sun Cluster ;
une fois pour les packages de service de données Sun Cluster.
Préparez et exécutez ce script de l'une des manières suivantes :
Définissez les variables des packages de structure Sun Cluster et exécutez le script. Modifiez ensuite la variable PATHNAME des packages de service de données et réexécutez le script.
Créez deux scripts, un contenant des variables définies dans le script des packages de structure et un contenant des variables définies pour les packages de service de données. Exécutez ensuite les deux scripts.
Prenez le rôle de superutilisateur.
Créez un script avec le contenu ci-dessous.
#!/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
Définissez les variables PLATFORM, PATHNAME et BASEDIR.
Définissez ces variables en tant que variables d'environnement ou modifiez les valeurs directement dans le script.
Nom de la plate-forme. Par exemple, sparc ou x86. Par défaut, la variable PLATFORM est définie sur le résultat de la commande uname -p.
Chemin d'accès au périphérique à partir duquel les packages de structure ou de service de données Sun Cluster peuvent être installés. Cette valeur correspond à l'option -d de la commande pkgadd.
Par exemple, pour des packages de structure Sun Cluster, cette valeur pourrait se présenter comme suit :
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages |
Pour les packages de service de données, cette valeur pourrait se présenter comme suit :
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages |
Chemin d'accès complet à un répertoire à utiliser en tant que chemin d'accès racine et qui correspond à l'option -R de la commande pkgadd. Pour une mise à niveau directe, définissez cette valeur sur le chemin d'accès racine utilisé avec l'option -R de la commande scinstall. Par défaut, la variable BASEDIR est définie sur le système de fichiers racine (/).
Exécutez le script, une fois pour les packages de structure Sun Cluster et une fois pour les packages de service de données.
Une fois le script exécuté, le message suivant doit s'afficher à l'invite de commande de chaque package :
Transferring pkgname package instance |
Si le répertoire pspool existe déjà pour un package ou si le script est exécuté deux fois pour le même ensemble de packages, l'erreur suivante s'affiche à l'invite de commande :
Transferring pkgname package instance pkgadd: ERROR: unable to complete package transfer - identical version of pkgname already exists on destination device |
Ce message est sans conséquence et peut être ignoré.
Une fois le script exécuté pour les packages de structure et de service de données, initialisez les nœuds en mode cluster.