Virtual Server 2005
« | 30 Jul 2022 | »Mit Server 2008 stieg Microsoft “richtig” ins Virtualisierung-Geschäft ein und schuf das erste Windows mit eingebautem Hyper-Visor Kern.
Doch tatsächlich gab es Virtualisierung schon vorher aus dem Hause Microsoft. Und obwohl diese Produkte gegenüber VM-Ware und andere Lösungen “abstanken”, erinnere ich mich noch gerne an Zeiten von Virtual PC und “Virtual Server 2005” zurück.
Microsoft übernahm Anfang der 2000er eine Firma namens Connectix und formte deren Virtualisierungsprodukt in “Microsoft Virtual PC” um. Damit wurde es möglich unter Windows (2000 und XP) ein anderes Gastbetriebssystem in einer virtuellen Umgebung laufen zu lassen.
Gedacht war das ganze für Entwickler und Software-Tests mit älteren Betriebssystemen und nachdem Intel’s VT-x Befehlssatzerweiterung für Virtualisierung gerade im Entstehen war, und kein damalig Consumer-Prozessor ihn anbot, wurde Virtualisierung auf Softwareebene durchgeführt.
Das war zwar langsam, aber da die alten Windows XP und älteren MS Betriebssysteme auch verhältnismäßig klein waren und auch mit 256 MB RAM auskamen, konnte ich auf meinen damaligen Systemen mit 2 GB RAM auch noch eine oder zwei VMs ausführen lassen um zu sehen, ob Programme auch noch unter NT-4 oder Windows 98 lauffähig waren.
Großer Nachteil von “Virtual PC” war, dass es ein UI Programm war, das man manuell starten musste um danach die VMs ebenso manuell starten zu können.
Doch für den professionellen Einsatz gab es dann die Server Variante, namens “Virtual Server 2005”.
Virtual Server 2005 und sein “Web”
Dieses Produkt war eine Erweiterung von “Virtual PC” und lief als Dienst auf
einem Windows Server 2003
(32 und 64 bit).
Die Administration der Software erfolgte in erster Linie über eine
HTTP
Webseite im Browser … schlimmer noch … exklusiv nur im
Internet-Explorer.
Jedenfalls brauchte man einen damaligen
IIS (Internet Information Server)
vorinstalliert und das Setup legte eine Konfiguration für den Standard-Port
1024
an, wo die Admin-Seiten laufen sollten.
Und die Fehlentscheidung “Internet-Explorer” ist vermutlich der Grund dafür,
dass ich damit einige schlechte Erfahrungen machte.
Denn vermutlich um Konkurrenz-Browser zu behindern setzte die Admin-Seite
intensiv auf Javascript und
dynamischen Content (eigentlich progressiv für damals), nutzte jedoch viele
Internet-Explorer Erweiterungen, die keinem Standard entsprachen.
Und so kam es, dass bereits wenige Jahre später mit dem IE-7
und IE-8
Teile der Admin-Seiten nicht mehr richtig funktionierten, wenn man nicht
einzelne Features im Kompatibilitätsmodus ein/ausschaltete.
Und mit dem IE9 strich Microsoft dann auch noch viele Erweiterungen
vollständig, womit die Serversoftware unbenutzbar wurde.
Andere Browser versagten von Anfang an den Javascript-Content anzuzeigen
und deshalb nenne ich den “Virtual Server 2005” immer als Beispiel für
die schlechtest mögliche Representation eines Dienstes im Web.
However … wenn man brav beim IE-6
bleibt, sieht das Web-Interface recht
“OK” aus. Man kann neue Maschinen anlegen und Einstellungen per Webformular
anpassen. Alles unter der Einstiegsseite:
http://HOSTNAME_OR_IP:1024/VirtualServer/VSWebApp.exe
Läuft eine Maschine, kann man sich über ein Active-X
Plugin im Browser “hineinverbinden”.
Tastaturanschläge werden korrekt übermittelt, wenn das Remote-Frame im
Browser den Fokus hat.
Allerdings sollte man während der Installation nie in das Fenster klicken
und die Maus bewegen. Denn diese Übersetzung ist (im
DOS-Modus) gebrochen und kann eine
Installation verhindern, wenn intern ein Fokus wegen der Maus verloren geht
und dieser dann nicht wiedergewonnen werden kann.
(Es kann natürlich auch sein, dass das nur die Steuerung über
RDP betrifft,
denn ich bin stets über RDP zur Maschine verbunden, in der Virtual Server
und der IE6 läuft.)
Am Ende aktiviert man dann das CD-Image der Virtual-Server Plugins und installiert Treiber für die “virtuelle Umgebung”. Ab da kann man dann auch die Maus gefahrlos über das Active-X-Webfenster nutzen. Oder man installiert gleich ein OS, das man per Netzwerk erreichen und fernwarten kann, denn die virtuelle Netzwerkkarte macht es möglich.
COM Interface
Die vermeintliche Rettung aus dem Web Chaos war tatsächlich eine meist recht unbekannte alternative COM Schnittstelle. Als Vorbereitung initialisiert man COM mit
und dann erzeugt man eine Instanz der COM Klasse VMVirtualServer
über die
Class-ID CLSID_VMVirtualServer
(DA3111BC-1BD7-4884-A535-8470D36028F7
)
und landet beim Interface IVMVirtualServer
(D1E64C50-A25D-450f-BE0B-9CA5A354CFF4
).
Die anderen Schnittstellen sind im Header
C:\Program Files\Microsoft Virtual Server\Documentation\VSComInterfaces.h
enthalten.
Viele Methoden sind recht selbsterklärend (wie z.B. CreateVirtualMachine
),
jedoch stellt die große Anzahl von Schnittstellen zu Unterobjekten eine
Herausforderung dar.
Vielleicht finde ich ja mal irgendwann Zeit alle Details ins GATE Framework aufzunehmen, denn diese Schnittstelle ist (analog zu ADSI) sicher ein schönes Beispiel, wie man einen Dienst über eine Service-API zugänglich machen kann.
Fazit
Der Nachfolger Hyper-V machte grundsätzlich vieles richtig. Er integrierte seine Verwaltung in WMI, womit sie automatisch in WinRM und Powershell verfügbar war. Außerdem war der Hyper-Visor im Kern des Betriebssystems und damit gut integriert, während der Vorgänger nur einen Netzwerktreiber im System einspeiste und der Rest im Dienstprozess errechnet wurde.
Dennoch verdanke ich “Virtual PC” und “Virtual Server” so einiges.
Ich erarbeitete damit Softwarekompatibilität für ältere Windows NT, 2000 und
sogar Windows 98 Systeme, die bis 2010 eine “Kundenanforderung” waren.
Und auch privat erfreute ich mich daran, Windows 3.11 und DOS darauf halbwegs
vernünftig laufen lassen zu können.
Hyper-V 2008 begann seinen Support erst mit Windows 2000 und war anfangs für meine Zwecke einfach “zu neu” und auch generell muss ich sagen, dass auf älteren Systemen diese Form die Virtualisierung einfach funktioniert, während andere Dienste wie VirtualBox wesentlich mehr Ressourcen fressen und damit auf meinen älteren Systemen unbenutzbar werden.
Und so läuft seit langem auf einem meiner älteren Intel Atom Rechner immer noch ein Server 2003 mit “Virtual Server” bei mir zu Hause …
… und wenn der nicht gestorben ist, dann läuft er noch heute.