Zum Einsatz kostenloser VMware
Transcrição
Zum Einsatz kostenloser VMware
Zum Einsatz kostenloser VMware-Produkte an Volkshochschulen c 2008: Norbert Rogler <[email protected]> Copyright Dieses Dokument wurde mit LATEX erstellt und darf entsprechend der GNU Free Documentation License (GFDL) weiterverwendet werden. Ich gebe keinerlei GARANTIE für das FUNKTIONIEREN der hier vorgestellten Methoden. Ich schließe hiermit jede HAFTUNG aus für Schäden, die aus der Nutzung dieser Methoden entstehen oder daraus, dass sich diese Methoden nicht in der gewünschten Weise nützen lassen. Es wurde mit VMware Server 1.0.3, 1.0.4 und 1.0.5 und VMware Player 2.0.2, 2.0.3 und 2.0.4 unter Windows XP und Vista gearbeitet und getestet. Als Literatur empfehle ich das ausgezeichnete Virtuelle Maschinen mit VMware und Microsoft Sven Ahnert Addison-Wesley 2008 auf das ich im Folgenden mit [Ahnert] verweise. Mein Text und mein Vorgehen sind oft an diesem Buch orientiert. 1 Inhaltsverzeichnis 1 Problem-Beschreibung 3 2 Ein Ansatz zu Lösung dieser Probleme 5 2.1 Sicht der Kurs-TeilnehmerInnen . . . . . . . . . . . . . . . . . . . 5 2.2 Sicht der AdministratorInnen . . . . . . . . . . . . . . . . . . . . 5 2.3 Sicht der Verwaltung (insbesondere die Kosten) . . . . . . . . . . 6 3 Theorie und Technik 8 3.1 Was ist Emulation? . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Was ist Virtualisierung? . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 Virtuelle Maschinen . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 Hardware auf den Hosts und in den VMs . . . . . . . . . . . . . . 10 3.5 Hardware, die in den Gästen nicht unterstützt wird . . . . . . . . 13 4 Einsatz im Schulungsbetrieb 14 4.1 Master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Arbeitsstationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 VMware Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.4 RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.5 Plattenplatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5 Klonen virtueller Maschinen 16 5.1 Basis-Maschine erzeugen . . . . . . . . . . . . . . . . . . . . . . . 16 5.2 Basis-Maschine bearbeiten . . . . . . . . . . . . . . . . . . . . . . 17 5.3 Klon-Vorlage erstellen . . . . . . . . . . . . . . . . . . . . . . . . 17 5.4 Klon-Vorlage auf Arbeitsstationen kopieren . . . . . . . . . . . . 20 6 Virtuelle Maschinen in virtuellen Maschinen erstellen 22 6.1 Einrichten des VMware Servers . . . . . . . . . . . . . . . . . . . 22 6.2 Erzeugen einer virtuellen Maschine . . . . . . . . . . . . . . . . . 23 6.3 Betriebssystem installieren . . . . . . . . . . . . . . . . . . . . . . 6.4 Klonen dieser virtuellen Maschinen . . . . . . . . . . . . . . . . . 25 24 7 Unsere Logon-Konfiguration 26 8 Konfiguration des VMware Players 32 8.1 Zur Tastenkombination <Strg> + <Alt> . . . . . . . . . . . . . . 32 8.2 Task-Leiste und Suspend-Modus . . . . . . . . . . . . . . . . . . 33 2 1 Problem-Beschreibung Bei kommerziellen Schulungsunternehmen belegt ein EDV-Kurs meist mehrere Tage einen speziell für ihn installierten Schulungsraum. Diese Situation lässt sich an Volkshochschulen nur ganz selten realisieren. Durch intelligente Nutzung kostenloser VMware-Produkte können wir das Ideal »Jedem Kurs seine eigenen Rechner« nicht nur erreichen, sondern wir können sogar allen KursteilnehmerInnen mehrere virtuelle Rechner zur Verfügung stellen; das ist ideal für Netzwerkkurse. Und das Beste dabei: Administrations-Aufwand und Kosten können wesentlich verringert werden. Präzisierung der Probleme: Volkshochschulen müssen auf den gleichen Rechnern oft gleichzeitig unterschiedliche Betriebssysteme zur Verfügung stellen. Kandidaten derzeit: • Windows 2000 (durchaus noch nachgefragt) • Windows XP • Windows Server 2003 • Windows Server 2008 • Vista • Linux(e) Diese Betriebssysteme lassen sich im Prinzip recht leicht mit Image-Programmen verteilen. Probleme können dabei aber bei unterschiedlicher Hardware der Zielrechner auftreten. Bei der Nutzung verschiedener Betriebssysteme wird meist mit Boot-Managern oder Wechsel-Platten gearbeitet. Beide Lösungen sind nicht unproblematisch: • Die Einrichtung von Boot-Managern erfordert etwas Know-how, und es tauchen bei Windows-Systemen kleine, für das Unterrichten aber ärgerliche Schwierigkeiten auf. Wie erreicht man z.B. gleiche Laufwerksbuchstaben in allen Instanzen? • Die Verwendung von Wechsel-Platten ist nicht nur teuer, sondern schafft eigene Probleme: Wer wechselt? Oft ist die Platte dann nicht richtig oder die falsche Platte eingelegt. Und wenn nicht sorgfältig vorgegangen wird, werden die Platten und die Rahmen leicht beschädigt. Dann sind da die verschiedenen Programme für die verschiedenen Kurse. Es ist häufig nicht möglich, diese gleich in das Betriebssystem-Image aufzunehmen. 3 Sie können erst später auf den Rechnern installiert oder aktualisiert werden. Und hier wird in der Volkshochschul-Praxis oft noch von Rechner zu Rechner gelaufen und individuell installiert. Und Installations-Systeme wie z. B. OMA kosten ziemlich viel, sind nicht ganz leicht zu handhaben, und sind eigentlich nicht an den Bedürfnissen von Volkshochschulen orientiert. Oft soll innerhalb eines Betriebssystems auch noch mit verschiedenen ProgrammVersionen gearbeitet werden, die nicht kompatibel sind (dies gilt insbesondere für die Windows-Office-Programme und Outlook) – und da wird es richtig schwierig. Und schließlich sollen die verschiedenen Kurse, die auf dem gleichen Rechner arbeiten, sich und das System möglichst nicht stören. Microsoft bietet zur Lösung solcher Probleme zwar immer ausgefeilterte Mechanismen an. Deren Nutzung erfordert aber einige Kenntnisse in der Windows-Administration. Deshalb werden stattdessen gerne PC-Sheriffs verwendet, die i. allg. nicht ganz billig, aber einfach zu handhaben sind. (Neuerdings bietet Microsoft für XP eine kostenlose Lösung an.) Diese PC-Sheriffs schränken allerdings die Arbeitsmöglichkeiten im Unterricht stark ein: Viele Konfigurations-Änderungen und viele Programm-Installationen sind unter Windows nicht einmal temporär möglich, weil sie anschließend einen Neustart des Rechners verlangen – und dann ist halt alles wieder weg. Deshalb muss oft eine zusätzliche offene Version installiert werden (für die zusätzliche Lizenzen erforderlich werden!). 4 2 Ein Ansatz zu Lösung dieser Probleme Durch intelligente Nutzung virtueller Maschinen lassen sich nicht nur viele der genannten Probleme lösen, sondern es lässt sich der gesamte AdministrationsAufwand wesentlich verringern. Diese Lösung soll zunächst aus verschiedenen Sichten dargestellt werden. 2.1 Sicht der Kurs-TeilnehmerInnen • Jeder Kurs, der eine virtuelle Maschine verwenden soll, hat eine eigene Benutzerkennung und nutzt eine eigene Instanz dieser virtuellen Maschine. • Wenn man sich mit der jeweiligen Benutzerkennung einloggt, wird die zugehörige virtuelle Maschine automatisch im Vollbildmodus gestartet. Es kann damit wie mit einem eigenständigen Rechner gearbeitet werden, der nur diesem Kurs zur Verfügung steht. • Nach dem Beenden der virtuellen Maschine wird das Hostsystem automatisch heruntergefahren. (Die AdministratorInnen können auch einstellen, dass nur ein automatisches Logout oder eine Rückkehr zum Hostsystem erfolgt.) Die BenutzerInnen merken somit kaum, dass sie in einer virtuellen Maschine arbeiten. 2.2 Sicht der AdministratorInnen • Die Erzeugung der virtuellen Maschinen erfolgt zentral und ist unproblematisch. Diese müssen dann im Wesentlichen nur noch auf die Arbeitsstationen kopiert werden (siehe Basis-Installation weiter unten). • Der Platzbedarf ist geringer als bei allen Alternativen. • Wenn die Basis-Installationen erledigt sind, erfordert eine neue Kurs-Installation keinerlei Zugriff mehr auf die Arbeitsstationen. Es muss nur noch auf dem Domänen-Controller (den es hoffentlich gibt) der Benutzerzugang angelegt und diesem als Logon-Skript eine passende Variante unseres Beispiel-Skripts vmware-logon.cmd zugeordnet werden. Beim ersten Einloggen wird dann im Heimatverzeichnis der BenutzerInnen automatisch ein Verzeichnis MyVirtualMachine angelegt und darin eine Instanz (ein Linked Clone) der jeweiligen virtuellen Maschine installiert. Das dauert i. allg. nur Bruchteile von Sekunden. (Sollte es keine zentrale Benutzerverwaltung geben, können auch lokale Benutzer-Zugänge verwendet werden. Es sollte dann im Autostart- 5 Verzeichnis der BenutzerInnen eine Verknüpfung zum passenden LogonSkript angelegt werden.) • Wenn BenutzerInnen wieder mit dem Grundzustand ihres Systems starten sollen, genügt es, ihr (automatisch angelegtes) Verzeichnis MyVirtualMachine zu löschen. Beim nächsten Einloggen wird ihre virtuelle Maschine neu eingerichtet. • Wenn das System für bestimmte BenutzerInnen immer im Grundzustand starten soll (»PC-Sheriff-Situation«), muss nur das im vorigen Punkt geschilderte Löschen automatisiert werden. In unserem Beispiel-Skript kann dies durch Setzen der Variablen NEW=yes eingestellt werden. 2.3 Sicht der Verwaltung (insbesondere die Kosten) Zur Realisierung der hier vorgestellten Konzepte sind nur die kostenlosen und frei nutzbaren Produkte VMware Server und VMware Player notwendig. (Ein Einsatz von Linux könnte in diesem Zusammenhang sicher den AdministrationsAufwand und damit die Kosten weiter senken, aber ich habe inzwischen eingesehen, dass es dafür an Volkshochschulen keine Basis gibt.) Die eingesetzten Microsoft-Betriebssysteme müssen natürlich lizenziert werden. Dazu möchte ich einige Informationen geben. !!! Achtung: !!! Im Rest dieses Abschnitts geht es um Lizenzierungs-Probleme, von denen ich wenig verstehe. Deshalb ist dieser Teil keinesfalls als verbindliche Darstellung der rechtlichen Situation zu sehen, sondern als eine Meinungsäußerung, die der rechtlichen Prüfung bedarf. Microsoft berücksichtigt heute in seiner Lizenzierungs-Politik die Verwendung virtueller Maschinen recht gut. In diesem Zusammenhang bieten sich SA-Lizenzen für Vista Enterprise an (wobei SA für Software Assurance steht). Ich beschreibe hier nur die Regelungen, die beim Einsatz virtueller Maschinen von Interesse sind. • Jede solche Lizenz muss zunächst genau einem Rechner zugeordnet werden, der dann als lizenziertes Gerät bezeichnet wird. • Auf einem lizenzierten Gerät darf Vista Enterprise einmal in üblicher Weise installiert werden. 6 • Mit einer einzigen SA-Lizenz dürfen beliebig viele virtuelle Maschinen mit Vista Enterprise oder einem Vorgänger-Betriebssystem (»downgrade«) erstellt und auf beliebigen Geräten oder Speichermedien (etwa DVDs) gespeichert werden, die im Besitz des Lizenznehmers sind. Es dürfen dazu beliebige Virtualisierungs-Systeme verwendet werden. • Diese virtuellen Maschinen dürfen nur auf lizenzierten Geräten des LizenzNehmers eingesetzt werden. Als Hostsystem muss dabei Vista Enterprise oder ein Nicht-Microsoft-System (etwa Linux ) verwendet werden. • Auf einem lizenzierten Gerät dürfen maximal vier der genannten Microsoft-Betriebssysteme gleichzeitig in virtuellen Maschinen ausgeführt werden. Wenn dieses Maximum ausgeschöpft wird und als Hostsystem Vista Enterprise verwendet wird, darf im Hostsystem nur Software ausgeführt werden, die zur Steuerung der virtuellen Maschinen dient. 7 3 Theorie und Technik Bevor wir zur Praxis kommen, sollen erst einige Begriffe geklärt und technische Grundlagen dargestellt werden. Ich habe mich hier teilweise eng an [Ahnert] angelehnt. 3.1 Was ist Emulation? Von Emulation spricht man, wenn etwas nicht Vorhandenes mittels Software nachgebildet wird. Beispiele: • Die Windows-Emulation Wine für Linux. • Amiga-Emulatoren für PCs. • Die PC-Emulatoren Bochs und Qemu. 3.2 Was ist Virtualisierung? Von Virtualisierung spricht man, wenn etwas einmal Vorhandenes so dargeboten wird, als ob es mehrmals vorhanden wäre. Beispiele: • Partitionierung von Festplatten. • Virtuelle Speicherverwaltung. • Virtuelle Web- und Mailserver. Diese sind die Grundlage der preisgünstigen individuellen Domänen, die heute von vielen Providern angeboten werden. 3.3 Virtuelle Maschinen Virtuelle Maschinen gestatten es, einen Rechner so zu nutzen, als ob er mehrmals vorhanden wäre. Er kann mehrere Betriebssysteme, die für seine Architektur konzipiert sind, gleichzeitig ausführen und damit sogar kleine Netzwerke nachbilden. 8 Im PC-Bereich werden derzeit verschiedene Konzepte realisiert, deren Bezeichnung nicht ganz einheitlich gehandhabt wird. Betriebssystem-Virtualisierung: Ein einziger Betriebssystem-Kern wird von mehreren Betriebssytem-Instanzen genutzt. Man spricht hier auch von »Single Kernel Image« oder »SKI«. Bei Linux-Systemen können dabei verschiedene Distributionen eingesetzt werden, wenn sie den gleichen Kernel verwenden. Virtuelle Server dieser Art werden heute von verschiedenen Providern preisgünstig angeboten. Beispiele: • Virtuozzo, • OpenVZ, • SUN Solaris Containers. Hosted Virtualisierung (»Vollständige Virtualisierung«): Basis ist ein Betriebssystem, das als Hostsystem bezeichnet wird. In diesem System wird ein Virtualisierungs-Programm ausgeführt, das es gestattet, andere Betriebssysteme als Gastsysteme auszuführen. Dazu stellt das VirtualisierungsProgramm einen Virtualisierungs-Layer zur Verfügung, der den Gastsystemen eine Schnittstelle zur konkret vorhandenen Hardware zur Verfügung stellt. Dieser Virtualisierungs-Layer übersetzt alle Anforderungen der Gastsysteme in Anweisungen, die vom Hostsystem ausgeführt werden, und er gibt die Antworten übersetzt an die Gastsysteme zurück. Ein Gastsystem merkt von dieser Virtualisierung nichts. Im Gegensatz zur Rechner-Emulation ist aus Performance-Gründen der Virtualisierungs-Layer möglichst eng an der tatsächlich vorhandenen Hardware orientiert, und es werden nur ausgewählte Gastsysteme unterstützt. Beispiele: • VMware: Player, Server, Workstation, • Microsoft: Virtual PC, Virtual Server, • Virtual Box. 9 Non-hosted Virtualisierung: Je mehr übersetzt werden muss, desto größer ist der Performance-Verlust. Deshalb spricht bei diesen Systemen der Virtualisierungs-Layer die Hardware, insbesondere die CPU, möglichst direkt an. Dabei gibt es kein Hostsystem im vorhergehenden Sinne, sondern ein Basis-System, das im Wesentlichen nur noch Steuer-Funktionen erfüllt. Damit solche Systeme funktionieren, müssen entweder die Gastsysteme modifiziert werden (»Para-Virtualisierung«), oder die Virtualisierung muss von der Hardware, insbesondere der CPU, unterstützt werden. Die neuen Prozessoren von Intel und AMD unterstützen diese Virtualisierung auf Hardware-Ebene. Beispiele: • VMware: ESX-Server und VMware Workstation 6, • das Open Source Projekt XEN. Wir werden uns im folgenden auf die »Vollständige Virtualisierung« mit den kostenlosen VMware-Produkten Server und Player beschränken, die zusammen bei intelligentem Einsatz die recht teure VMware Workstation weitgehend ersetzen können. Dabei kürzen wir »Virtuelle Maschine« meist mit VM ab. 3.4 Hardware auf den Hosts und in den VMs CPUs Der VMware Server und der VMware Player (seit Version 2) können zwei (vorhandene) CPUs virtualisieren. Sie können den VMs auch dann zwei virtuelle CPUs zur Verfügung stellen, wenn der Rechner tatsächlich nur eine CPU hat. Letzteres ist aber nur zu Testzwecken sinnvoll, denn es verringert die Performance. 10 RAM Der Bedarf an RAM von Host und allen gleichzeitig eingesetzten VMs sollte grundsätzlich die Größe des physisch vorhandenen RAMs nicht überschreiten. Da VMware eine sehr intelligente Speicherverwaltung hat, kann dieser Grundsatz gebrochen werden: VMware kann RAM, das einer VM zusteht, aber von dieser nicht genutzt wird, einer anderen VM zur Verfügung stellen. Und wenn es knapp wird, kann auch physisches RAM ausgelagert werden; dann leidet aber die Performance ganz erheblich. Die hier betrachteten Produkte können jedem Gast maximal 3,6 GB RAM zur Verfügung stellen, ganz gleich wieviel der Host tatsächlich an RAM hat. (Der ESX-Server 3 kann dagegen jedem Gast bis zu 16 GB RAM zur Verfügung stellen.) Festplatten Virtuelle Festplatten werden normalerweise als Dateien realisiert, die wie physische Festplatten genutzt werden können. Diese Dateien haben die Endung .vmdk, können einfach kopiert und in andere VMs eingebunden werden. (Dies entspricht dem Spiegeln einer Festplatte, die anschließend in einen anderen Rechner eingebaut wird.) Bei der Installation einer VM kann gewählt werden, ob die virtuelle Festplatte als IDE- oder SCSI-Gerät angesprochen werden soll; dabei sollte man möglichst dem Vorschlag des Installationsprogramms folgen. CD/DVD- und Disketten-Laufwerke Datenträger, die in diesen Laufwerken liegen, können wechselweise von allen VMs genutzt werden. Zusätzlich lassen sich ISO-Images direkt als virtuelle CD/DVD in eine VM einbinden, so dass Software direkt von einem ISO-Image installiert werden kann, ohne das Image erst auf eine CD/DVD zu brennen. Virtuelle Netzwerkadapter In jeder VM können maximal vier Netzwerkadapter eingerichtet werden. Diese werden üblicherweise als »virtuelle Netzwerkadapter« bezeichnet, obwohl es sich eigentlich um Emulationen handelt. Auch am Host können solche virtuellen Netzwerkadapter eingerichtet werden, und die VMs können untereinander und mit dem Host über diese virtuellen Netzwerkadapter kommunizieren. Echte Netzwerkadapter des Hosts können von den VMs mitbenutzt werden, so dass über diese die VMs auch mit der »Außenwelt« kommunizieren können. 11 Sound und USB Wenn das Hostsystem derartiges zur Verfügung stellt, können Gäste dies prinzipiell nutzen. Allerdings wird der Sound derzeit meist nicht sonderlich gut sein. VMware Server bietet eine USB-1.1-Schnittstelle an, der VMware Player 2 unterstützt USB 2.0. In der Praxis kann es hier noch Probleme geben. Parallele und serielle Schnittstelle Parallele und serielle Schnittstellen, die im Host physisch vorhanden sind, werden an die Gäste durchgereicht. Ausgaben der seriellen Schnittstelle können im Gast sogar automatisch in eine Datei umgeleitet werden. Konkurrierende Zugriffe etwa auf Drucker können aber zu Problemen führen. Deshalb ist es meist empfehlenswert, hier mit Freigaben zu arbeiten. SCSI-Geräte SCSI-Geräte wie Streamer, Scanner, MO-Laufwerke usw. können von Gästen direkt angesprochen werden. Tastatur und Maus Damit eine VM Tastatur- und Mauseingaben entgegennimmt, muss sie den Fokus haben. Diesen bekommt sie ähnlich wie ein in einem Fenster laufendes Programm durch Klicken in das Fenster der VM. Dann kann der Mauszeiger dieses Fenster aber nicht mehr verlassen. Damit man die VM wieder verlassen kann, muss eine bestimmte Tastenkombination gedrückt werden. Unter VMware ist dies standardmäßig die Kombination <Strg>+<Alt>. Grafikadapter VMware unterstützt unmittelbar nach der Installation in einer VM nur einen Standard-VGA-Adapter. Erst nach installation der VMware Tools steht ein optimierter Treiber zur Verfügung. Grafikbeschleunigung steht aber auch dann nur sehr eingeschränkt zur Verfügung. Deshalb sind VMs zum Spielen oder Abspielen von Videos weniger geeignet. Auch die Aero-Oberfläche von Vista wird nur sehr eingeschränkt unterstützt. 12 3.5 Hardware, die in den Gästen nicht unterstützt wird • PCI-Steckkarten (z.B. Fernsehkarten) • ISDN-Karten • Firewire Auch Dongles machen oft Schwierigkeiten: Im PCI-Slot können sie nicht angesprochen werden, und auch manche USB-Dongles funktionieren nicht in einer VM. 13 4 Einsatz im Schulungsbetrieb Ich möchte nun darstellen, wie ich mir einen rationellen Einsatz dieser kostenlosen VMware-Produkte an Volkshochschulen vorstelle. An der VHS Landkreis Hof haben wir dies schon versuchsweise realisiert. Als Windows-Dateisystem wird generell NTFS verwendet. 4.1 Master Alle Rechner haben Netzwerkverbindung zu einem Windows-Rechner, auf dem der VMware Server installiert ist. Diesen Rechner nennen wir im folgenden Master. Für jedes Betriebssystem, das in der hier geschilderten Weise genutzt werden soll, wird auf dem Master eine Basis-Maschine erzeugt und auf die jeweiligen Arbeitsstationen kopiert. Die einzelnen Kurse arbeiten nicht direkt mit dieser Basis-Maschine, sondern mit individuellen Instanzen. 4.2 Arbeitsstationen Als Hostsystem auf den Arbeitsstationen wird derzeit Windows XP verwendet, das mit einem Image verteilt wird. Dann muss allerdings jede Instanz unserer virtuellen Windows-Maschinen lizenziert sein. Mit der eingangs angesprochenen »SA-Lizenz für Vista Enterprise« stellt sich dieses Problem nicht mehr. Es muss aber dann als Hostsystem Vista Enterprise verwendet werden, da diese Lizenz Windows XP zwar in VMs zulässt, aber nicht als Hostsystem. Die Arbeitsstationen sollten in eine Windows-Domäne integriert sein. Das muss nicht unbedingt sein, aber eine zentrale Verwaltung macht (nicht nur in diesem Zusammenhang) vieles einfacher, und wenn wir hier Samba einsetzen, fallen auch keine Lizenz-Kosten an. 4.3 VMware Player In das Hostsystem wird der VMware Player installiert. Die vier Dienste, die dieser mitbringt, werden auf Manuell gesetzt. (Sonst braucht das Hostsystem, das auch eigenständig genutzt wird, deutlich länger zum Starten.) 14 Das Verzeichnis Virtual Machines Das Verzeichnis Virtual Machines sollte auf dem Master und den Arbeitsstationen möglichst den gleichen Pfad haben, und die Zugriffsrechte auf den Arbeitsstationen sollten folgendermaßen gesetzt werden: Administratoren: Vollzugriff Jeder: Lesen, Ausführen System: Vollzugriff In dieses Verzeichnis werden die später behandelten vmp_services.exe und win_end.exe kopiert. Dies alles sollte möglichst gleich im Image erledigt werden. 4.4 RAM Die verwendeten Rechner sollten wenigstens 1 GB RAM haben (wenn nicht Vista eingesetzt werden soll, reichen notfalls auch 512 MB ). 4.5 Plattenplatz Die Basis-Maschine belegt im Wesentlichen nur den Platz, den das Betriebssystem und die installierten Programme benötigen, und und daran ändert sich im Betrieb nichts. Für jede Kurs-Instanz sollte man zunächst mit Virtuelles RAM + 200 MB rechnen. Wenn in die Instanz neue Programme installiert werden oder in ihr größere Datenmengen gespeichert werden, vergrößert sich natürlich der Platzbedarf entsprechend. Benutzerdaten sollten allerdings immer (wenn möglich) zentral auf einem Server gespeichert werden, so dass sie das lokale System nicht belasten und leicht zu sichern sind. 15 5 Klonen virtueller Maschinen Benutzt werden dabei VMware-Snapshots. Diese Techniken können die Administration von Computer-Systemen wesentlich vereinfachen, nicht zuletzt im Schulungsbetrieb. Es kann so jedem Kurs seine eigene Betriebssystem-Instanz zur Verfügung gestellt werden, ohne das ganze Betriebssystem neu zu installieren oder zu kopieren. Die Grundlagen der Snapshot-Technik unter VMware werden sehr gut beschrieben in Sven Ahnert: snapshots_redologs.pdf die von http://www.vmaschinen.de heruntergeladen werden kann. Im Wesentlichen sieht das folgendermaßen aus: Nach dem Erstellen eines Snapshots werden alle Änderungen nicht mehr in die virtuelle Festplatte geschrieben, sondern in Redo-Dateien. Dies geschieht auf Sektor-Ebene, die maximale Kapazität der Redo-Dateien ist damit gleich der maximalen Kapazität der virtuellen Festplatte. 5.1 Basis-Maschine erzeugen Die hier dargestellten Methoden wurden mit den Gastsystemen • Windows: – – – – 2000 Professional XP Professional Sever 2003 Vista Ultimate • Linux: – Debian 4.0 – openSUSE 10.3 und 11.1 – Ubuntu 7.10 und 8.10 getestet. Basis ist eine virtuelle Maschine, die mit dem VMware Server auf unserem Master erzeugt wird. Verwenden Sie dabei nicht die (oft sehr langen) Namen, die 16 VMware vorschlägt, sondern eigene, kurze und prägnante Namen, also etwa Win2000 oder Vista. Wir gehen hier von einer virtuellen Maschine in E:\Virtual Machines\WinXP aus. Beim Erstellen dieser VM sollte im Dialogfenster Specify Disk Capacity die Option Allocate all disk space now unbedingt deaktiviert werden. (Siehe Abbildung 1.) 5.2 Basis-Maschine bearbeiten Wir arbeiten weiter auf unserem Master. 1. Die VMware Tools installieren. 2. Alles Überflüssige löschen. 3. Alle Programme einspielen, die generell genutzt werden. 4. Alle aktuellen Updates einspielen, und danach die automatischen UpdateDienste deaktivieren (diese können im Schulungsbetrieb sehr stören). 5. Alle Dateien der Basis-Maschine (vorsichtshalber) mit Schreibschutz versehen. Diese lässt sich dann nicht mehr starten, und das ist beabsichtigt. 5.3 Klon-Vorlage erstellen Wir arbeiten weiter auf unserem Master und beginnen damit, eine neue virtuelle Maschine anzulegen. Wir gehen dabei folgendermaßen vor: 1. Bei Virtual Machine Configuration unbedingt »Custom« wählen. (Siehe Abbildung 2.) 2. Im nächsten Fenster wählen wir als Name WinXP-lc (wobei lc als Abkürzung für Linked Clone gedacht ist). 17 Abbildung 1: »Allocate all disk space now« deaktivieren Abbildung 2: Custom wählen 18 Abbildung 3: Plattentyp wählen Und wir wählen als Location das Unterverzeichnis WinXP-lc unserer Basis-Maschine. (Das macht die Sache einfach übersichtlich). 3. Bei Select a Disk wählen wir Use an existing virtual disk (Siehe Abbildung 3.) 4. Unter Existing Disk File mittels Browse die vmdk-Datei der Basis Maschine wählen. 5. Anlegen der virtuellen Maschine abschließen. (Auch diese VM lässt sich nicht starten.) 6. Unter dem Menüpunkt VM → Settings die virtuelle Maschine individuell konfigurieren. Als Network Connection scheint mir in der betrachteten Situation NAT am geeignetstens zu sein. Vor allem haben wir dann keine Schwierigkeiten mit gleichen Namen von Windows-Rechnern. Für Netzwerk-Kurse kann das natürlich geändert werden. 7. Mittels VM → Snapshots → Take Snapshot einen Snapshot erzeugen. 8. Der Pfad zur virtuellen Festplatte der Basismaschine steht nun im Unterverzeichnis WinXP-lc in den beiden Dateien 19 WinXP-lc.vmsn und WinXP-lc.vmsd Wenn die virtuelle Festplatte der Basismaschine auf den Arbeitsstationen an anderer Stelle steht, müssen diese beiden Dateien bearbeitet werden. Einfacher und übersichtlicher erscheint mir das folgende Vorgehen: Bearbeiten Sie im Verzeichnis WinXP-lc die drei Dateien mit den Endungen .vmsn .vmsd .vmx folgendermaßen: • In der vmsn-Datei und der vmsd-Datei steht der vollständige Pfad zur vmdk-Datei der Basis-Maschine. Entfernen Sie dort die Pfadangaben, so dass dort nur noch der Name der vmdk-Datei steht. In unserem Beispiel also WinXP.vmdk. • In der vmx-Datei fügen Sie einen fileSearchPath-Eintrag ein, der den Pfad zum Verzeichnis der Basis-Maschine und mittels ».« den Pfad zum momentanen Verzeichnis enthalten sollte. In unserem Beispiel also fileSearchPath ” E:\Virtual Machines\WinXP;. ” Jetzt muss nur noch der fileSearchPath in der .vmx-Datei bearbeitet werden, wenn sich der Pfad zur virtuellen Festplatte der Basismaschine ändert. In jedem Fall versehen wir nun alle Dateien im Verzeichnis WinXP-lc mit Schreibschutz. Dann lässt sich auch dieser Snapshot nicht starten, und auch das ist beabsichtigt: Schon ein einziger Start vergrößert den Platz, den er belegt, erheblich. Wenn Sie Ihre Installation testen wollen, kopieren Sie das Verzeichnis WinXP-lc auf dem Master irgendwohin und entfernen Sie dort den evtl. noch vorhandenen Schreibschutz. Diese Kopie sollte sich problemlos starten lassen. 5.4 Klon-Vorlage auf Arbeitsstationen kopieren Ich gehe davon aus, dass Sie auf allen Arbeitsstationen im Schulungsraum Administrator-Rechte haben. Beim Kopieren der Klon-Vorlagen sollten Sie folgendermaßen vorgehen: 1. Wenn das Hostsystem schon länger eingesetzt wurde, sollten Sie die Partition mit dem Verzeichnis Virtual Machines auf allen Arbeitsstationen 20 zunächst de-fragmentieren. (Unsere virtuelle Festplatte sollte möglichst wenig »zerstückelt« werden.) 2. Kopieren Sie unsere Basis-Maschine samt Unterverzeichnis WinXP-lc vom Master zunächst in das Verzeichnis Virtual Machines einer Arbeitsstation im Schulungsraum. Löschen Sie dort im Verzeichnis der Basis Maschine (nicht im Unterverzeichnis WinXP-lc) alle Dateien mit Ausnahme der vmdk-Datei(en). 3. Wenn der Pfad zum Verzeichnis Virtual Machines auf den Arbeitsstationen im Schulungsraum nicht der gleiche ist wie auf dem Master, müssen Sie im Unterverzeichnis WinXP-lc in der vmx-Datei den fileSearchPath anpassen. 4. Kopieren Sie nun unsere Basis-Maschine samt Unterverzeichnis WinXP-lc in das Verzeichnis Virtual Machines der anderen Arbeitsstationen im Unterrichtsraum. 21 6 Virtuelle Maschinen in virtuellen Maschinen erstellen Der VMware Server und der VMware Player lassen sich nicht gemeinsam in einem Betriebssystem installieren. Deshalb gingen wir bis jetzt davon aus, dass zu Erstellung unserer virtuellen Maschinen ein eigenes Betriebssystem zur Verfügung steht, in dem der VMware Server installiert ist. Dies dürfte in der Praxis auch keine Schwierigkeiten machen – nicht zuletzt deshalb, weil hier immer Linux genutzt werden kann. Trotzdem habe ich überlegt, ob man nicht ohne Wechsel des Betriebssystems auskommt – nicht zuletzt deswegen, um diese VMware-Produkte unproblematisch nebeneinander schulen zu können. Dabei stellte ich folgendes fest: 1. Der VMware Server lässt sich ohne weiteres in virtuellen Linux-Maschinen installieren. (Mit Windows habe ich das nicht probiert, nehme aber an, dass es genauso geht; nur kostet das halt immer Lizenzen.) 2. Ein so installierter VMware Server kann virtuelle Maschinen erzeugen und konfigurieren. Und er kann Snapshots erzeugen. Er kann virtuelle Maschinen nur nicht ausführen. Am elegantesten kann dabei mit Linux als Hostsystem gearbeitet werden. Ich werde hier aber bei Windows als Hostsystem bleiben, wobei ich dieses Vorgehen mit Windows Vista getestet habe. Die virtuellen Maschinen sollen wieder im Verzeichnis E:\Virtual Machines abgelegt werden. 6.1 Einrichten des VMware Servers Als virtuelle Maschine für den VMware Server habe ich Ubuntu710 in der Form benutzt, wie es [ahnert] beiliegt. In der vmx-Datei habe ich einen Shared Folder mit dem Abschnitt workingDir = "" sharedFolder0.present = "TRUE" sharedFolder0.enabled = "TRUE" sharedFolder0.readAccess = "TRUE" sharedFolder0.writeAccess = "TRUE" sharedFolder0.hostPath = "E:\" 22 sharedFolder0.guestName = "host_E" sharedFolder0.expiration = "never" sharedFolder.maxNum = "1" eingerichtet. Diese virtuelle Maschine habe ich mit dem VMware Player unter Windows Vista gestartet und dann in diesem Ubuntu710 den VMware Server 1.0.7 ganz normal installiert. Außerdem habe ich im VMware-Player-Menü unter VMware Player → Shared Folders J Always enabled gewählt. Danach habe ich mit den Befehlen # cd /var/lib # rm -R vmware # ln -s /mnt/hgfs/host_E vmware dafür gesorgt, dass virtuelle Maschinen, die in /var/lb/vmware/Virtual Machines abgelegt werden (so wie es der VMware Server nach einer Standardinstallation vorschlägt), tatsächlich unter Windows unter E:\Virtual Machines gespeichert werden. 6.2 Erzeugen einer virtuellen Maschine Eine virtuelle Maschine kann nun mit dem VMware Server ganz normal erzeugt und konfiguriert werden, wobei der Vorschlag angenommen werden sollte, als Location ein Verzeichnis unterhalb von /var/lib/vmware/Virtual Machines zu benutzen. 23 Damit eine unter Linux erzeugte virtuelle Maschine unproblematisch unter Windows genutzt werden kann, müssen in ihrer vmx-Datei wenige Änderungen vorgenommen werden. • Diskettenlaufwerk: Ändern Sie den Eintrag floppy0.fileName = ” /dev/fd0 ” ab in floppy0.fileName = ” A: ” • CD/DVD-Laufwerk: Suchen Sie den Eintrag der Form XXX.deviceType = ” cdrom-raw ” Auf meinem Rechner lautet dieser Eintrag ide1:0.deviceType = ” cdrom-raw ” und diese Form benutze ich auch im Folgenden. Hier müssen Sie evtl. an Ihre Situation anpassen, wenn Sie die folgenden Änderungen vornehmen. – Setzen Sie ide1:0.fileName = ” auto detect ” – Fügen Sie die Zeile ide1:0.autodetect = “ TRUE ” ein. Wenn Sie weitere Laufwerke dieser Typen haben, sollten Sie in analoger Weise anpassen. 6.3 Betriebssystem installieren Um in dieser virtuellen Maschine ein Betriebssystem zu installieren, wechseln Sie zum Hostsystem, legen die Installations-CD/DVD ein und starten unsere neue, noch leere virtuelle Maschine mit dem VMware Player. Wenn Sie zum Installieren eine iso-Datei benutzen wollen, sollten Sie dies mit dem VMware Server konfigurieren. Sie können aber auch die vmx-Datei folgendermaßen bearbeiten (dabei gehen wir wieder von der oben betrachteten Situation aus – das ide1:0 muss evtl. Ihrer Situation aangepasst werden): • Ersetzen Sie in ide1:0.fileName = ” auto detect ” das ” auto detect ” durch den Pfad zur iso-Datei. 24 • Ersetzen Sie in ide1:0.deviceType = ” cdrom-raw ” ” cdrom-raw ” durch ” cdrom-image ”. 6.4 Klonen dieser virtuellen Maschinen Dies kann mit dem VMware Server in der virtuellen Maschine genauso erfolgen, wie dies vorher für das Arbeiten mit einer “normalen” VMware Server Installation beschrieben wurde, Nachdem hier immer die Pfade angepasst werden müssen, sollte hier mit dem filesSearchPath gearbeitet werden. 25 7 Unsere Logon-Konfiguration Wenn im Schulungsbetrieb mit einer virtuellen Maschinen gearbeitet wird, sollten die BenutzerInnen davon möglichst nichts merken. Deshalb ist es wünschenswert, dass diese nach dem Start des Hostsystems automatisch startet, und dies sollte in Abhängigkeit vom Benutzernamen geschehen. Außerdem sollten die VMware-Dienste nur dann gestartet werden, wenn sie tatsächlich benötigt werden. Und nach dem Beenden der virtuellen Maschine sollte auch gleich das Hostsystem heruntergefahren werden. Dies lässt sich alles mit einem logon-Skript erreichen. Ein Problem dabei: Zum Starten der Dienste und zum Herunterfahren mittels shutdown werden Rechte benötigt, die wir normalen Benutzern nicht geben möchten. Der Befehl runas nutzt hier nichts, weil er die Eingabe eine Administrator-Passworts verlangt. In diesem Zusammenhang habe ich die Skript-Sprache AutoIt kennengelernt, die hier sehr hilfreich ist und die von http://www.autoitscript.com heruntergeladen werden kann. Diese gestattet nicht nur, Skript-Dateien zur Steuerung von Windows und Windows-Programmen zu schreiben, sondern aus diesen Skript-Dateien lassen sich ganz einfach verschlüsselte EXE-Dateien erstellen. Starten und Stoppen der VMware-Dienste Zum Starten und Stoppen der VMware Dienste benutzen wir eine verschlüsselte EXE-Datei, die aus dem folgenden AutoIt-Skript erzeugt wird. Der Name und das Passwort des lokalen Administrators (Variablen $admin und $password) müssen natürlich angepasst werden. 26 #cs -------------------------------------------------------------AutoIt Version: 3.2.12.0 File: vmp_services.au3 Author: Norbert Rogler <[email protected]> Script Function: Start and Stop of VMware Player Services Arguments; {start | stop} Date: 2008-05-21 #ce -------------------------------------------------------------Const $admin = "Administrator" Const $password = "Geheim" ; Lokaler Administrator ; $admin-Passwort If $CmdLine[0] = 0 Then MsgBox (16, "Fehler", "Kein Argument") Exit (1) EndIf Switch $CmdLine[1] Case "start" RunAs ($admin, @ComputerName, $password, 0, _ ’net start "VMware Authorization Service"’) RunAs ($admin, @ComputerName, $password, 0, _ ’net start "VMware DHCP Service"’) RunAs ($admin, @ComputerName, $password, 0, _ ’net start "VMware NAT Service"’) RunAs ($admin, @ComputerName, $password, 0, _ ’net start "VMware Virtual Mount Manager Extended"’) Case "stop" RunAs ($admin, @ComputerName, $password, 0, _ ’net stop "VMware Authorization Service"’) RunAs ($admin, @ComputerName, $password, 0, _ ’net stop "VMware DHCP Service"’) RunAs ($admin, @ComputerName, $password, 0, _ ’net stop "VMware NAT Service"’) RunAs ($admin, @ComputerName, $password, 0, _ 27 ’net stop "VMware Virtual Mount Manager Extended"’) Case Else MsgBox (16, "Fehler", _ "Falsches Argument! Erwartet: { start | stop }") Exit (1) EndSwitch Anmerkung: Das (lokale) Administrator-Passwort ist so zwar nicht direkt lesbar (auch nicht mit HEX-Editoren), aber die EXE-Datei kann natürlich mit hinreichendem Know-how entschlüsselt werden. Das sollte auf Schüler-Rechnern kein so großes Problem sein. Falls doch, kann man die VMware-Dienste halt immer starten lassen, auch wenn sie nicht benötigt werden. (Mit guten Kenntnissen in der Administration moderner Windows-Systeme lassen sich wahrscheinlich bessere Lösungen finden; für Mitteilungen dazu wäre ich dankbar.) Beenden des Systems Zum Beenden des Systems benutzen wir eine EXE-Datei, die aus dem folgenden AutoIt-Skript erzeugt wird (und das kein Administrator-Passwort enthält): #cs -------------------------------------------------------------AutoIt Version: 3.2.12.0 File: win_end.au3 Author: Norbert Rogler <[email protected]> Script Function: Closes a Windows Session Arguments; {halt | logout | reboot} Date: 2008-05-21 #ce -------------------------------------------------------------If $CmdLine[0] = 0 Then MsgBox(16, "Fehler", "Kein Argument") 28 Exit(1) EndIf Switch $CmdLine[1] Case "halt" Shutdown(9) Case "logout" Shutdown(0) Case "reboot" Shutdown(6) Case Else MsgBox(16, "Fehler", "Falsches Argument! _ Erwartet: { halt | logout | reboot }") Exit(1) EndSwitch Logon-Skript Unser Logon-Skript, das als Vorlage gedacht ist, leistet folgendes: • Wenn die individuelle virtuelle Maschine des Benutzers nicht existiert, wird sie als MyVirtualMachine in sein HOME - Verzeichnis kopiert. Nachdem dazu selbst im Fall von Vista nur ca. 2 MB (lokal) kopiert werden müssen, geht dies fast unmerklich schnell. • Wenn wir die »PC-Sheriff-Situation« haben wollen, muss die Variable NEW=yes gesetzt werden: Das System wird dann immer im gleichen Grundzustand gestartet. • Es werden die VMware-Dienste gestartet. • Es wird der VMware Player im Vollbild-Modus mit der virtuellen Maschine des Benutzers gestartet. • Nachdem der VMware Player beendet wurde, werden auch die VMwareDienste beendet, und die Variable END legt fest, ob anschließend – – – – einfach zum Hostsystem zurückgekehrt wird, der Benutzer aus dem Hostsystem ausgeloggt wird, das Hostsystem neu gestartet wird, das Hostsystem herunter gefahren wird. 29 Unser logon-Skript: @echo off REM Datei: REM vmware-logon.cmd REM Autor und Copyright (c) 2008 REM Norbert Rogler <[email protected]> REM REM Logon-Skript fuer Benutzer einer "Virtuellen Maschine" REM REM Erstellt: REM 23.05.2008 REM Nur bei NEW=yes wird Virtuelle Machine neu installiert. SET NEW=no REM REM REM SET Was soll nach dem Beenden des "VMware Players" passieren? Wenn END nicht-leer ist, muss es einen der folgenden Werte haben: logout reboot halt END=halt SET VMDIR=C:\Virtual Machines SET VMM=%VMDIR%\Win2000\lc-0 SET VMX=lc-0.vmx SET VMPLAYER=%ProgramFiles%\VMware\VMware Player\vmplayer.exe %HOMEDRIVE% cd %HOMEPATH% IF "%NEW%"=="yes" ( rmdir /S /Q MyVirtualMachine 2> NUL ) IF NOT EXIST MyVirtualMachine ( XCOPY /E /I /Q "%VMM%" MyVirtualMachine IF ERRORLEVEL 1 ( ECHO Fehler bei der Installation. PAUSE EXIT %ERRORLEVEL% ) ) "%VMDIR%\vmp_services.exe" start ECHO Bitte warten und Fenster nicht schließen ... 30 "%VMPLAYER%" -X "MyVirtualMachine\%VMX%" "%VMDIR%\vmp_services.exe" stop IF NOT "%END%"=="" ( "%WINEND%" %END% ) 31 8 Konfiguration des VMware Players 8.1 Zur Tastenkombination <Strg> + <Alt> Um von einer virtuellen Maschine zum Hostsystem zu wechseln, benutzen die betrachteten VMware-Produkte standardmäßig die Tastenkombination <Strg> + <Alt>. Weil diese Tastenkombination leicht aus Versehen gedrückt wird, kann dies im Unterricht zu Irritationen führen. Bei VMware Workstation und VMware Server können über den Menüpunkt Edit → Preferences → Hot Keys Änderungen vorgenommen werden. Es kann dort anstelle von <Strg> + <Alt> die <Esc> - Taste oder eine beliebige Kombination der Tasten <Strg>, <Shift> und <Alt> gewählt werden. Wenn ein versehentliches Verlassen möglichst verhindert werden soll, ist sicher <Strg> + <Shift> + <Alt> die beste Wahl. Beim VMware Player lässt sich das nicht über das Menü konfigurieren. Wenn man dessen Konfigurations-Dateien aber manuell bearbeitet, kann man diese Tastenkombination auch beim VMware Player einstellen. • Wechseln Sie unter Windows XP in das Verzeichnis \Dokumente und Einstellungen\All Users 32 oder unter Vista in das Verzeichnis \Users\Default • Suchen Sie dort ein Unterverzeichnis mit dem Namen vmware und wechseln Sie in dieses Unterverzeichnis. • Wenn in diesem Verzeichnis keine Datei config.ini existiert, legen sie eine solche an. Fügen Sie in diese config.ini die folgende Zeile ein: pref.hotkey.shift = true Beim nächsten Start des VMware Players sollte statt <Strg> + <Alt> die Kombination <Strg> + <Shift> + <Alt> verwendet werden. Der Player meldet allerdings (meist) noch immer »To return to your computer, press Ctrl+Alt« aber er reagiert nicht mehr darauf. <Strg> + <Alt> + <Return> schaltet nach wie vor zwischen dem Vollbildmodus und dem Fenstermodus um (dabei geht es nur um ein Verändern der Fenstergröße, nicht um einen Wechsel des Betriebssystems). Falls für einzelne BenutzerInnen dies wieder ausgeschaltet werden soll (was in Netzwerk-Kursen sinnvoll sein kann), bearbeiten Sie deren preferences.ini und setzen Sie dort pref.hotkey.shift = false 8.2 Task-Leiste und Suspend-Modus Der VMware Player stellt immer am oberen Bildschirmrand eine Task Leiste zur Verfügung. Diese lässt sich ausblenden und erscheint dann nur, wenn man mit der Maus ganz zum oberen Bildschirmrand fährt. Damit diese Task-Leiste schon beim Start automatisch ausgeblendet wird, fügen wir in die oben betrachtete config.ini die Zeile ein pref.vmplayer.fullscreen.autohide = true 33 Wir brauchen diese Task-Leiste, denn wir sollten unsere virtuelle Maschine normalerweise über die Exit-Option des VMware-Players verlassen. Denn wenn wir an seiner Standard-Konfiguration nichts verändern, wird er im Suspend-Modus beendet (das RAM wird gespeichert), und der nächste Start geht nicht nur sehr schnell, sondern es wird auch der vorhergehende Zustand wieder hergestellt. Und wenn – wie hier vorgeschlagen – mit individuellen Instanzen gearbeitet wird, hat dies nur Vorteile. Dies ist für unsere Schüler der einzige Punkt, an dem sie nicht wie »zu Hause« arbeiten sollten. Es schadet aber auch nicht, wenn das System normal heruntergefahren wird. Es dauert dann nur der nächste Start länger. 34