Workshop: VMWare ESX-Server

04.10.2005 von Jürgen Donauer
Eins der aktuellsten Themen ist die Virtualisierung in Serverumgebungen. Das bekannteste ist der VMWare ESX-Server. Grund genug, dieser Virtualisierungslösung einen Praxis-Workshop zu widmen.

Virtualisierung ist in aller Munde. Dabei ist es gleich, ob nun die Linux-Community durch das Open Source Projekt XEN oder Intel mit Vanderpool Schlagzeilen macht. Derzeit unangefochten dürfte jedoch das Flaggschiff von VMWare sein: Der ESX-Server basiert auf Linux und stellt eine virtuelle Plattform zu Verfügung, auf der Sie je nach Ausstattung der Hardware beliebig viele Betriebssysteme laufen lassen können. Der virtuelle Layer fängt im Prinzip direkt nach der Hardwareschicht an. Es befindet sich nicht wie bei anderen VMWare-Produkten oder Microsofts Virtual PC zusätzlich eine graphische Betriebssystem-Schicht dazwischen. Es gibt nur eine Servicekonsole, die einen Webserver für das Administrations-Frontend betreibt. Somit kann das System fast alle Resourcen den Virtual Machines zu Verfügung stellen.

Das interessanteste Feature dabei ist VMWare Virtual SMP. Mit dieser Extra-Option können Sie einer virutellen Umgebung mehrere physikalische Prozessoren zuweisen. Die Systemvoraussetzung für einen ESX-Server beschreibt der Hersteller so:

Wir empfehlen Ihnen aber dringend mindestens ein GByte Arbeitsspeicher. Prinzipiell würde es auch mit einer Netzwerkkarte funktionieren. Dies ist allerdings nicht empfehlenswert und nicht ganz trivial einzurichten. Im Abschnitt Tips, Tricks und Troubleshootung wird auf dieses Thema eingegangen.

Interessierte können nach Registrierung bei VMWare eine Trial-Version herunterladen unter http://www.vmware.com/download/esx_download.htmloder über einen Händler beziehen. Diese finden Sie unter http://www.vmware.com/partners/resellers/enterprise.html

Installation

Wenn Sie schon einmal ein Red-Hat-basiertes System installiert haben, dürfte Ihnen die Installationsroutine sehr vertraut vorkommen. Die hier im tecCHANNEL-Compact beschrieben Anleitung für CentOS hilft Ihnen auch weiter. Der einzige Unterschied ist die Zuweisung der Hardware-Komponenten und die Partitionierung der Festplatte(n). Wobei das auch kein Drama ist, da Sie die von der Software vorgeschlagene Default-Einstellung in der Regel direkt übernehmen können. Sie weisen der Service Console zum Beispiel 192 MByte zu. Diese Menge ist zur Verwaltung von bis zu acht virtuellen Maschinen ausreichend.

Den restlichen Arbeitsspeicher dürfen die virtuellen Maschinen in Beschlag nehmen. Haben Sie, wie in diesem Fallbeispiel, nur einen SCSI-Controller im System, so müssen sich Service Console und virtuelle Maschinen diesen teilen. Bei zwei Netzwerkkarten ist für beide Komponenten jeweils eine reserviert. Dabei hat ist die der Service Console zugewiesene Netzwerkkarte nur für administrative Dinge vorgesehen. Sollten Sie also das System per Browser oder ssh ansprechen, kommunizieren Sie mit dieser Karte. Die zweite Ethernet-Komponente ist für die Virtual Machines reserviert und stellt jeder von diesen wiederum eine virtuelle Netzwerkkarte bereit.

Bei der Partitionierung ist eine Sache interessant, die man nicht grossartig verstehen, sondern einfach nur wissen muss. Die Teilung zwischen Service Console und Virtual Machines zieht sich auch durch die Partitionierung der Festplatte(n). Der für die Virtual Machines vorgesehene Plattenplatz wird mit vmfs2 bezeichnet. Dieser Bereich ist danach nicht mehr von der Service Console nutzbar, sondern ausschliesslich den virtuellen Systemen zugeteilt.

vmkcore ist für den VMWare-Kernel vorgesehen. Das System macht Ihnen aber auch hierzu wieder einen Vorschlag. Normalerweise brauchen Sie an den Einstellungen nichts zu ändern. Wie Sie am Beispiel in Bild „Teil mich auf“ sehen, ist der zweiten Festplatte nur Platz für die Virtual Machines eingeräumt.

Der Netzwerkkarte für die Service Console sollten Sie eine fixe IP-Adresse geben. Eine dynamische ist nicht vorteilhaft, da Sie diese Adresse relativ häufig brauchen. Ausserdem müssten Sie zuerst mit dem Befehl ifconfig herausfinden, über welche IP-Adresse die Service Console überhaupt erreichbar ist. Nach einer erfolgreichen Installation sollten Sie bereits verschlüsselt über einen Browser auf das System zugreifen können: https://<IP-Adresse-des-Servers>

Status Monitor und Funktionen

Das administrative Frontend ist aufgeteilt in drei Bereiche. Status Monitor, Memory und Options.

Der Status Monitor

Der Status Monitor gibt Ihnen Aufschluss über den derzeitigen Zustand des Systems und der virtuellen Maschinen. Prozess-ID (PID), Prozessorauslastung, Speicherbenutzung und Online- beziehungsweise Offline-Zustände der installierten Systeme. Weiterhin sehen Sie die Up-Time, Anzahl der zugewiesenen Prozessoren und des reservierten Arbeitsspeichers. Hier haben Sie auch die Möglichkeit, installierte Systeme zu verwalten und neue anzulegen. Zusätzlich können Sie ein Remote-Frontend für Linux oder Windows herunterladen. Die Remote Console wird später in einem separaten Kapitel behandelt.

Der Bereich Memory

In diesem Bereich haben Sie einen genauen Einblick in den benutzten Speicher. Das Grundsystem und die einzelnen virtuellen Maschinen sehen Sie getrennt aufgeschlüsselt.

Das ist zum Beispiel wichtig bei der Fehlersuche auftretender Performance-Probleme. Systeme können um erheblich langsamer sein, wenn sie mit Speicher aus dem Swap-Bereich der Festplatte arbeiten. Hier sollten Sie als Administrator reagieren und gegebenenfalls dem System mehr Arbeitsspeicher zuweisen

Die Options-Schaltfläche

Dieser Bereich beschäftigt sich ausschließlich mit der Konfiguration des Grundsystems, Startup des ESX-Servers, Benutzer- und Gruppen-Zuweisung, Sicherheitseinstellungen, Backup-Systeme von Dritt-Anbietern, Logs und so weiter.

Durch ein Benutzer- und Gruppenkonzept können Sie User definieren, die Kontrolle über bestimmte Bereiche der Administration haben. Denkbar ist, dass Benutzer neue Instanzen oder Festplatten anlegen, das System aber nicht herunterfahren oder rebooten dürfen.

Bei den Sicherheitseinstellungen konfigurieren Sie, auf welche Weise der ESX-Server erreichbar sein soll:

Die Default-Einstellung ist High, also keine unverschlüsselten Verbindungen. Dies implementiert logischerweise, dass Dienste wie zu Beispiel Telnet oder FTP deaktiviert sind, die keine Verschlüsselung bieten. Wir empfehlen, diese Einstellung nicht zu ändern, wenn Sie nicht unbedingt müssen. Heutzutage gibt es keinen logischen Grund, mehr FTP oder Telnet einzusetzen. Jede bekannte Linux-Distribution hat SSH-Software an Bord. Für Windows gibt es frei erhältliche Software wie putty oder FileZilla, die SSH oder SFTP beherrschen.

Ein sehr interessantes Feature ist das Anlegen von Virtual Switches in den Network Connections. Diese ermöglichen Ihnen sozusagen eine abgeschottete Netzwerk-Umgebung zu schaffen. Ein solches Szenario eignet sich hervorragend um Komponenten zu testen, die Ihren Produktivbereich stören könnten. Die Netzwerkabteilung in Ihrer Firma würde Sie unter Garantie virtuell lynchen, sollten Sie plötzlich einen zweiten DHCP-Server oder dergleichen ins Netz stellen. Das schöne ist, dass Sie diese Testumgebung aber trotzdem über die Remote Console von Ihrem Arbeitsplatz aus erreichen.

Virtuelle Maschinen anlegen und konfigurieren

Mit dem Button „Add Virtual Machine“ führt Sie die Software mit einer Art Wizard unkompliziert zum Ziel. Zuerst wählen Sie das Gast-System sowie Name und Ort der Konfigurations-Datei (*.vmx) aus. Danach weisen Sie der virtuellen Instanz Prozessoranzahl und Arbeitsspeicher zu.

Im nächsten Schritt kreieren Sie eine neue virtuelle Festplatte oder Sie benutzen eine bereits vorhandene, die anderweitig nicht mehr in Benutzung ist. Bei der Wahl einer neuen Festplatte entscheiden Sie, auf welchem physikalischen Device diese wie groß und mit welcher SCSI-ID angelegt werden soll. Weiterhin haben Sie vier Modi, die sich der Harddisk zuweisen lassen.

Optionen der virtuellen Festplatten

Modus

Auswirkung

Persistent

Änderungen werden direkt und permanent geschrieben

Nonpersistent

Änderungen bleiben nur bis zum Ausschalten der Instanz bestehen

Append

Das System schreibt die Änderungen nach einem Power-Off in ein „redo log“.

Undoable

Hier können Sie die Änderungen nach Ihrem Gutdünken behandeln. Sie haben sozusagen die Wahl zwischen: speichern, nicht speichern oder anhängen und in das „redo log“ schreiben.

Nach diesen Schritten legt der ESX-Server eine neue Instanz an und Sie können die Einstellung verfeinern. Wir haben festgestellt, dass die meisten Linux-Systeme mit dem Default-SCSI-Controller vmxbuslogic nicht zusammenarbeiten.

Sollten Sie ein Linux-System aufsetzen wollen, empfehlen wir Ihnen diesen auf vmxlsilogic umzustellen.

Haben Sie einen virtuellen Switch angelegt, können Sie entscheiden ob die virtuelle Maschine sich dort oder im gleichen Netz wie die Service Console befinden soll. Sie haben die Möglichkeit, neue Hardware-Komponenten hinzuzufügen oder zu entfernen. Als DVD/CD-ROM-Laufwerk dürfen Sie entweder ein physikalisches Gerät oder eine ISO-Datei verwenden. Das gilt auch für das Disketten-Laufwerk. Das ist zum Beispiel wichtig bei der Installation von Windows. Sie brauchen dafür einen Third-Party-Treiber, da Windows den virtuellen SCSI-Controller nicht erkennt. Dieses Floppy-Image bekommen Sie hier.

Eine genaue Beschreibung, wie das Einbinden des SCSI-Treibers funktioniert, stellt VMWare hier zur Verfügung.

Hardware-Komponenten, die das Gast-System nicht zwingend zum Starten braucht, lassen sich über die Option „Connect at Power On“ abschalten. Bei Bedarf können Sie diese Devices „on demand“ zuschalten.

In den Options lassen sich nachträglich Name und Logging konfigurieren. Weiterhin dürfen Sie bestimmen, was mit der Virtual Machine bei einem Start des Gesamtsystems geschieht: soll das Gast-System sofort starten oder erst auf Ihre Anweisung.

Ein sehr interessantes Feature finden Sie hinter der Schaltfläche Network. VMWare hat hier einen „Traffic Shaper“ implementiert. Damit lässt sich die durchschnittliche und maximale Netzwerklast der virtuellen Instanz reglementieren.

Nicht minder interessant ist die „Scheduling Affinity“-Option unter „CPU“. Sie können die Instanz auf bestimmte Prozessoren festnageln, vom Hyper-Threading ausnehmen und den allgemeinen Resourcen-Bedarf einschränken. Der Sinn davon ist leichter in einem Beispiel-Szenario erklärt:

Sie haben einen ESX-Server mit vier physikalischen Prozessoren. Hier laufen als Produktivsysteme ein DHCP-, Anmelde- und Proxy-Server sowie eine Firewall in drei verschiedenen Instanzen. Weiterhin befinden sich zwei Test-Systeme auf dem Rechner. Da Produktiv-Systeme höher zu bewerten sind als Testumgebungen, weisen Sie diesen drei Prozessoren zu. Den Testsystemen stellen Sie Prozessor Nummer vier zur Verfügung und verbieten diesen gleichzeitig eine Benutzung der ersten drei CPUs. Somit verbrauchen die Testumgebungen keine Ressourcen, die wichtige Systeme verlangsamen könnten.

Die Remote Console

Das Einrichten des ESX-Servers und einer Instanz ist eine Sache. Die andere ist der Zugriff und das Installieren des Gast-Betriebssystems. Hier kommt die Remote Console ins Spiel.

Herunterladen und einspielen der Remote Console

Unter Windows geht das ganze nach altbwährtem Schema. Am Ende der Schaltfläche „Status Monitor“ finden Sie einen Link, der Ihnen eine exe-Datei direkt vom ESX-Server beschert. Diese Datei spielen Sie einfach auf Ihr System und die Software steht Ihnen zur Verfügung. Unter Linux verhält sich die Sache ein bisschen anders. Sowohl eine rpm- als auch eine tar.gz-Datei haben Sie zur Auswahl. Das rpm installieren ganz normal mit

rpm -ivh VMware-console-2.5.0-11343.i386.rpm

Aber nicht jedes Linux-System kann mit rpm-Files umgehen. Dennoch ist das Einspielen aus der tar.gz-Datei auch kein großes Problem. Zunächst packen Sie die Datei aus.

tar xzvf VMware-console-2.5.0-11343.tar.gz

danach finden Sie das Verzeichnis vmware-console-distrib mit dem Installations-Skript. Dieses rufen Sie mit

./vmware-install.pl

auf. Die übliche Lizenzvereinbarung bejahen Sie. Danach fragt die Installationsroutine, wohin sie die Binaries kopieren soll. Wenn Sie kein extrem modifiziertes Eigen-Linux haben, sollten die Fragen durch Drücken der Enter-Taste korrekt beantwortet sein. Standards einzuhalten hilft auch, wenn Sie nicht der einzige Administrator sind. Ihre Kollegen müssen dann nicht unnötige Suchorgien starten.

Danach können Sie die Remote Console mit

vmware-console

aufrufen.

Im folgenden Fenster tragen Sie die IP-Adresse des ESX-Server, Username und Passwort ein. Wenn Sie bereits eine oder mehrere Gast-Systeme angelegt haben, können Sie im nächsten Schritt wählen, auf welches Sie zugreifen möchten. Drücken Sie nun den „Power On“-Knopf, ist das so als würden Sie einen neuen PC einschalten.

Wenn Sie schon mit VMWare Workstation gearbeitet haben, sollte Ihnen das ganze sehr bekannt vorkommen. Jede VMWare Instanz hat ein eigenes virtuelles Phoenix-BIOS. Sie installieren nun das gewünschte Betriebssystem als stünde ein physikalisches Gerät vor Ihnen. Das Gastsystem läuft selbstverständlich auch dann weiter, wenn Sie die Remote Console schliessen. Remote-Konsolen dürfen Sie übrigens so viele öffnen wie benötigt oder gewünscht.

Tipps, Tricks und Troubleshooting

Da der ESX-Server auf Linux basiert, können Sie im Falle eines Fehlers auf gewohnte Methoden zurückgreifen. Wie üblich finden Sie alle log-Dateien im Verzeichnis /var/log/. Die VMWare-relevanten Logfiles beginnen alle mit vm. Sollte der Part nicht starten, der die virtuelle Ebene zur Verfügung stellt, ist das erst einmal weniger schlimm. VMWare können Sie auch nachträglich über das Script

/etc/init.d/vmware {start|stop|status|restart}

starten.

Die Datei /etc/rc.local

Alles was das System nach dem eigentlichen Startvorgang starten soll, können Sie in dieser Datei hinterlegen. Die Befehle werden so ausgeführt, als würden Sie diese direkt in einer Shell eingeben und bestätigen. Wegen der besseren Übersichtlichkeit bietet sich aber an, separate Scripts zu schreiben und in der rc.local auf diese zu verweisen. In einem Beispiel erklärt sich das Ganze wieder leichter:

Angenommen der ESX-Server muss von einem DHCP-Server eine IP-Adresse beziehen und dieser reagiert so langsam, dass es bei einem Neustart zu einem Time Out kommt. Das hätte zur Folge, dass der vmkernel nicht hochfährt und der Server nicht ordnungsgemäß läuft. Diesen Missstand müssten Sie also zunächst beheben und danach der vmkernel starten. Somit wären folgende manuellen Schritte notwendig:

1. Netzwerkkarte eth0 händisch hochfahren.

2. IP-Adresse über den DHCP-Client beziehen

3. VMWare starten

In einem Script sähe das so aus:

#!/bin/sh

/sbin/ifconfig eth0 up

/sbin/dhcpcd

sleep 10

/etc/init.d/vmware start

Dieses Script speichern Sie zum Beispiel als dhcp_d.sh im Verzeichnis /usr/local/bin und machen diese ausführbar. In der Datei rc.local fügen Sie die Zeile

/usr/local/bin/dhcp_d.sh

ein. Bei einem Neustart meldet das System erst einmal, dass der vmkernel nicht gestartet ist. Da das Betriebssystem die Datei rc.local nach dem eigentlichen Systemstart ausführt, läuft das System mit ein paar Sekunden Verzögerung trotzdem rund.

ESX-Server mit nur einer Netzwerkkarte betreiben

Um das zu bewerkstelligen, ist einiges an Handarbeit nötig. Diesen Vorgang sollten nur erfahrene Linux-Benutzer durchführen. Eine ausführliche englische Anleitung stellt VMWare hier bereit

Dokumentation

VMWare ESX-Server ist sehr komplex und Sie haben bei entsprechender Hardware nahezu grenzenlose Möglichkeiten. Auf der Homepage von VMWare finden Sie daher sehr ausführliche, allerdings englische Dokumentationen.

An einer Knowledge Base und einem Hilfe Forum mangelt es auch nicht. Links zu den gewünschten Bereichen finden Sie auch bei der Dokumentation. Hinter folgendem Link ist alles, was das Herz begehrt.

Fazit

Ganz billig ist der ESX-Server nicht. Eine Lizenz für zwei CPUs schlägt mit zirka 2500 Euro zu Buche. Aber dafür leistet diese Software auch einiges. Geht es um professionelle Virtualisierung ist, VMWares ESX-Server das Nonplusultra.

Warum sollte man sich das Rechenzentrum mit Hardware vollstopfen, wenn ein etwas besser ausgestatteter Server mit Virtualisierungs-Software das Gleiche verrichten kann. Hardware-Konsolidierung ist angesagter denn je. Aus diesem Blickwinkel betrachtet, könnte sich der vermeintlich hohe Preis der Software wiederum egalisieren. Zieht man laufende Kosten, wie Stromverbrauch noch in Betracht, könnte sich dadurch sogar Geld sparen lassen. (mja)