Zusammenfassung der Probleme Nach einem Live Upgrade von Sun Cluster-Version 3.1 unter Solaris 9 auf Version 3.2 unter Solaris 10 können Zonen mit der Cluster-Software nicht ordnungsgemäß verwendet werden. Die Ursache des Problems liegt darin, dass die pspool-Daten für die Sun Cluster-Pakete nicht erstellt werden. Das heißt, diese Pakete, die an die nicht globalen Zonen weitergegeben werden müssen (z. B. SUNWsczu), werden nicht ordnungsgemäß weitergegeben.
Problemumgehung: Führen Sie nach der Aktualisierung der Sun Cluster-Pakete mit dem Befehl scinstall -R jedoch vor dem Starten des Knotens im Cluster-Modus folgendes Skript zweimal aus:
einmal für die Sun Cluster-Framework-Pakete,
einmal für die Sun Cluster-Datendienstpakete.
Bereiten Sie das Skript auf eine der folgenden Arten vor und führen Sie es aus:
Legen Sie die Variablen für die Sun Cluster-Framework-Pakete fest und führen Sie das Skript aus. Bearbeiten Sie anschließend die Variable PATHNAME für die Datendienstpakete und führen Sie das Skript erneut aus.
Erstellen Sie zwei Skripte, ein Skript mit den Variableneinstellungen für die Framework-Pakete und ein Skript mit den Variableneinstellungen für die Datendienstpakete. Führen Sie anschließend beide Skripte aus.
Melden Sie sich als Superuser an.
Erstellen Sie ein Skript mit folgendem Inhalt.
#!/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
Legen Sie die Variablen PLATFORM, PATHNAME und BASEDIR fest.
Legen Sie diese Variablen entweder als Umgebungsvariablen fest oder bearbeiten Sie die Werte direkt im Skript.
Der Name der Plattform Zum Beispiel sparc oder x86. Der Standardwert der Variable PLATFORM ist die Ausgabe des Befehls uname -p.
Ein Pfad zu dem Gerät, von dem die Sun Cluster-Framework-Pakete bzw. -Datendienstpakete installiert werden können. Dieser Wert entspricht der Option -d im Befehl pkgadd.
Für Sun Cluster-Framework-Pakete hat dieser Wert beispielsweise folgendes Format:
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages |
Für Datendienstpakete hat dieser Wert beispielsweise folgendes Format:
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages |
Der vollständige Pfadname des Verzeichnisses, das als Root-Pfad verwendet werden soll und mit der Option -R des Befehls pkgadd übereinstimmt. Legen Sie für ein Live Upgrade diesen Wert mit dem Root-Pfad fest, der mit der Option -R des Befehls scinstall verwendet wird. Der Standardwert der Variable BASEDIR ist das Root-(/-)Dateisystem.
Führen Sie das Skript einmal für die Sun Cluster-Framework-Pakete und einmal für die Datendienstpakte aus.
Nach Ausführung des Skripts wird für jedes Paket folgende Meldung in der Befehlseingabeaufforderung angezeigt:
Transferring pkgname package instance |
Wenn das Verzeichnis pspool bereits für ein Paket vorhanden ist oder das Skript zweimal für denselben Paketsatz ausgeführt wird, wird folgender Fehler in der Befehlseingabeaufforderung angezeigt:
Transferring pkgname package instance pkgadd: ERROR: unable to complete package transfer - identical version of pkgname already exists on destination device |
Diese Meldung ist harmlos und kann ignoriert werden.
Nachdem Sie das Skript sowohl für die Framework-Pakete als auch für die Datendienstpakete ausgeführt haben, starten Sie die Knoten im Cluster-Modus.