Archiv Server-Windows 15.877 Themen, 54.317 Beiträge

Wechsel von Single-CPU zu Dual-CPU-NT-Server4.0

KOV / 11 Antworten / Flachansicht Nickles

Hallo Leute,

zur Zeit läuft bei mir ein NT4.0 Server auf einem ASUS P2B-F mit einem PIII 800 MHz (Via MSI-Adapter). Da ich im Laufe der Woche ein P2B-DS und eine weitere CPU erhalten werde, stellt sich für mich die Frage, wie ich meinen Server dazu überreden kann, ohne eine Neuinstallation die zweite CPU mit einzubinden. Hat da irgendjemand eine Idee?

Danke im Vorraus :-)

KOV

(Anonym) KOV „Wechsel von Single-CPU zu Dual-CPU-NT-Server4.0“
Optionen

Damit nachgerüstete Multi-Prozessor-Boards unter Windows NT korrekt erkannt werden, ist eigentlich eine Neuinstallation nötig. Mit einem kleinen Utility kann man sich diese Arbeit aber sparen.

Windows NT-Anwender, die ihr Dual-Prozessorboard aus Kostengründen anfangs nur mit einer CPU bestückten, erleben beim späteren Upgrade eine herbe Enttäuschung: Der zusätzliche Chip wird zwar von Board und BIOS problemlos akzeptiert – nur das Betriebssystem merkt offenbar nichts davon: Schon beim Booten meldet der NT-Loader, daß angeblich nur ein Prozessor zu finden sei und lädt nach wie vor den Single-Prozessor-Kernel.

Falscher Alarm
Doch keine Bange – es handelt sich dabei weder um einen Hard- noch Software-Fehler. Der Grund für das anscheinende Fehlverhalten liegt darin, daß Windows NT je nach Anzahl der Prozessoren unterschiedliche Kerneldateien verwendet. Wird das Betriebssystem auf einem Multi-Prozessor-Board mit nur einer CPU installiert, so kommt auch nur ein Single-Prozessor-Kernel zum Einsatz. Sind dagegen mindestens zwei CPUs präsent, so wird auch ein entsprechender Mehr-Prozessor-Kernel eingerichtet. Diese Überprüfung findet allerdings nur ein einziges Mal während der Installation des Betriebssystems statt. Bekommt ein einzelner Prozessor erst danach Gesellschaft, so wird dies von Windows NT dann nicht mehr wahr genommen.

Also doch noch einmal das gesamte System, alle Anwendungen und Utilities neu installieren? Das muß zum Glück nicht sein, denn tatsächlich sind es nur eine Handvoll Dateien, die ein Single- von einem Multi-Prozessor-NT unterscheiden. Zudem bietet Microsoft ein Upgrade-Tool an, anhand dessen sich ein bereits eingerichtetes Windows NT im Handumdrehen Multi-Prozessor-fähig machen läßt.

Automatisches Upgrade
Alle diejenigen Anwender, die das Windows-NT-4.0-Ressource-Kit besitzen, können eigentlich sofort loslegen. Darin ist nämlich das oben genannte Utility Uptomp (UP TO MultiProcessor) enthalten. Wichtig ist, dass es sich tatsächlich zumindest um Version 4.0 handelt. Das Tool ist zwar auch in früheren Fassungen des Ressource-Kits enthalten. Doch bekanntlich gab es beim Wechsel von NT 3.x auf 4.0 handfeste Veränderungen, denen allein die neueste Version von Uptomp ausreichend Rechnung trägt.

Aber auch ohne das teure Ressource-Kit kann man sich von Uptomp helfen lassen. Microsoft hält im Internet unter der Adresse download.microsoft.com/msdownload/ntreskit/
support/en/sp4rk_i386.Exe (Beachten Sie bitte das große »E« in Exe) ein kostenloses Archiv mit einer Untermenge der Ressource-Kit-Utilitys bereit – jedoch nur in englischer Sprache. Darin ist unter anderem auch die momentan aktuellste Fassung von Uptomp enthalten. Dieses Archiv lässt sich allerdings nur dann installieren, wenn auch der Internet Explorer ab Version 4 auf dem betreffenden System eingerichtet wurde. Sollte dies jedoch nicht der Fall sein, kann man sich mit der Komprimierungs-Shareware Winzip behelfen:

Man öffnet zunächst die Archivdatei sp4rk_i386.exe damit.
Darin befindet sich ein Paket namens sp4rkx86.cab, das man ebenfalls mit Winzip öffnet.
Folgende vier Dateien sind daraus in ein temporäres Verzeichnis zu extrahieren:
COMPMGMT_COMPADMN_uptomp.exe,
COMPMGMT_COMPADMN_uptomp.inf,
COMPMGMT_COMPADMN_uptomp.sif sowie
COMPMGMT_COMPADMN_uptomp.txt.
Aus den Namen aller vier Dateien ist jetzt der Präfix COMPMGMT_COMPADMN_ zu entfernen, so daß alle mit uptomp beginnen.
Upgrade mit Uptomp
Mußte man den Weg über Winzip gehen, so startet man Uptomp einfach dadurch, indem man die betreffende exe-Datei aufruft – die anderen drei Dateien müssen sich dabei im gleichen Verzeichnis befinden. Wurde das Tool jedoch zusammen mit dem Ressource-Kit installiert, so ruft man es über dessen Shell auf (Startmenü / Programme / Resource Kit 4.0 Support Tools / Tools Management Console). Uptomp befindet sich in der Kategorie Computer Administartion Tools.

Wichtig: Bevor man das Upgrade-Utility nun einsetzt, sollte man unbedingt folgende Punkte beachten:

Uptomp darf man auf keinen Fall auf einer Maschine ausführen, die nur über einen einzigen Prozessor verfügt. Der Multiprozessor-Kernel benötigt zumindest zwei CPUs – andernfalls startet das System nicht mehr!
Ein Upgrade anhand von Uptomp ist zumindest auf Basis dieses Tools irreversibel. Wer nur testweise sein NT auf mehreren Prozessoren laufen lassen will, sollte den manuellen Weg einschlagen, der später noch erläutert wird.
Uptomp benötigt verschiedene Dateien aus dem Installationsverzeichnis \i386. Hierfür ist entweder die betreffende CD bereitzuhalten oder ein erreichbarer Ordner mit obigem Inhalt anzulegen.
Wie bereits gesagt, bietet Uptomp selbst keine Möglichkeit, um ein Upgrade gegebenenfalls wieder rückgängig zu machen. Sichert man zuvor aber die nachfolgenden sechs Dateien, so ist man auf alle Fälle auf der sicheren Seite – bei einem eventuellen Downgrade werden diese Files einfach wieder an ihre ursprüngliche Position zurückgeschrieben. Backup wie Restore dieser Dateien können problemlos während des laufenden Betriebs ausgeführt werden. Nach einer Rücksicherung ist jedoch ein Systemneustart fällig. Wichtig: Zwischen Up- und Downgrade dürfen keine weiteren Systemkomponenten nachinstalliert werden, da sonst das Setup-Log durcheinander kommt. Die Namensliste der zu sichernden Dateien:

\winnt\repair\setup.log
\winnt\system32\hal.dll
\winnt\system32\ntoskrnl.exe
\winnt\system32\ntdll.dll
\winnt\system32\kernel32.dll
\winnt\system32\winsrv.dll
\winnt\system32\win32k.sys


Uptomp sollte zumindest aus dem Ressource-Kit stammen,
das auf dem Service-Pack 4 basiert – frühere Versionen
garantieren kein korrektes Update

Nach dem Start von Uptomp ist unter New HAL file path der Pfad der Installationsdateien einzugeben (\i386 auf CD oder in einem sonstigem Ordner). Daraufhin wählt man aus der Liste HAL to install den betreffenden PC-Typ aus. Bei den meisten Standardmaschinen ist dies beispielsweise MPS-Multiprozessor-PC. Im nächsten Dialog hat man ein weiteres mal Gelegenheit, den Installationpfad anzugeben. Anschließend erhält man eine letzte Warnung, daß das Upgrade von Uptomp nicht wieder rückgängig gemacht werden kann. Danach ersetzt das Tool die betreffenden Dateien, woraufhin das System neu zu starten ist. Anschließend sollte sich Windows NT mit Multi-Prozessor-Kernel melden und die Registerkarte Systemleistung im Task Manager pro CPU ein Diagramm aufweisen.

Für den Fall, dass auf dem betreffenden PC eines der vielen NT-Service-Packs installiert wurde (und wer hat das nicht), muss jetzt sofort noch nachgebessert werden. Schließlich wurden die Multiprozessorversionen der augetauschten Systemdateien von der Installations-CD geladen und nicht aus dem Repertoire eines Service-Packs.

Manuelles Upgrade
Für den Fall, daß Uptomp für ein Upgrade nicht zur Verfügung steht bzw. es beim zuvor gezeigten Verfahren zu Problemen durch gegenseitige Referenzierungen kommt, bleibt noch die Möglichkeit eines manuellen Dateiaustauschs. Leider ist es aber nicht damit getan, einfach die betreffenden Dateien von der Installation-CD bzw. aus einem Service-Pack zu extrahieren und in das system32-Verzeichnis zu kopieren. Spätestens beim Einspielen des nächsten Service-Packs oder eines Reparaturlaufs würden diese Dateien durch Ihre Single-Prozessor-Pendants wieder ersetzt. Ab dem darauf folgenden Systemstart hätte man also wieder ein Einzel-CPU-System vorliegen.

Dieser Effekt begründet sich damit, dass NT über jede installierte Systemkomponente in der Datei \winnt\repair\system.log Buch führt. Jeder der darin enthaltenen Einträge verfügt neben dem Namen der Komponente auch über die Prüfsumme der jeweiligen Binärdatei. Stimmt diese nicht mit der der aktuellen Fileversion überein oder ist sie erst gar nicht angegeben, so wird bei einer Systemreparatur oder Installation eines Service-Pack die betreffende Datei schlichtweg ersetzt.

Leider gibt es kein Utility, mit dem man die Prüfsummen für einzelne Dateien separat ermitteln und somit manuell in system.log eintragen könnte. Nur durch deren Einrichtung mittels Setup, Reparatur oder Service-Pack erhält man die jeweiligen Checksummen.

Temporäres Ersatzteillager
Um dennoch ein dauerhaftes Upgrade zu erzielen, macht man einfach aus der Not eine Tugend: Man baut das Mainboard mit der gewünschten Anzahl Prozessoren aus und installiert eine weitere, temporäre Fassung von NT. Allerdings nicht über die bereits bestehende Version, sondern beispielsweise in ein noch freies logisches Laufwerk einer erweiterten Partition (Über den NT-Bootmanager kann man dann bequem aus beiden Betriebssystemversionen auswählen).

Diese zusätzliche NT-Fassung rüstet man dann auch gleich mit der selben Service-Pack-Stufe aus, wie die primäre. Dadurch erhält man alle multiprozessorrelevanten Dateien (ntoskrnl.exe, ntdll.dll, kernel32.dll, winsrv.dll und win32k.sys) in der neuesten Fassung inklusive passender Prüfsummen. Diese müssen nun nur noch aus dem system32-Verzeichnis des mehrprozessorfähigen Ersatz-NTs in den gleichnamigen Ordner des aufzurüstenden Betriebssystems kopiert werden.


Nach einem erfolgreichen Multiprozessor-Upgrade sollte man schleunigst das zuletzt installierte Service-Pack wiederholen.

Anschließend sind die betreffenden Checksummen von der neuen in die alte setup.log zu übertragen. Ist beispielsweise Service-Pack 5 installiert, so muss etwa der Eintrag

\WINNT\system32\hal.dll = "halapic.dll","1d7cc"

wie folgt abgeändert werden:

\WINNT\system32\hal.dll = "halmps.dll","67776"

Es folgt der obligatorische Neustart. Damit ist das manuelle Upgrade abgeschlossen und die zusätzliche NT-Installation, die sozusagen als „Organspender“ diente, kann gelöscht werden.