cd ~/

Home of Daniel Graf

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

cd ~/

Home of Daniel Graf

Seiten

Suche

Blog Meta

Dynamo Dresden

Galerie

blog:unattended_vsphere_installation_mit_pxe

Unattended vSphere Installation mit PXE

Geht es um den Neuaufbau einer größeren VMware Landschaft (50+ Hosts) gelangt man sehr schnell zu der Erkenntnis, dass diese nicht per Hand installiert werden können. Geht man im besten Fall von 20 Minuten pro System aus, dauert der reine Installationsprozess bei 50 Servern etwa 17 Stunden.

Wesentlich entspannter wäre da doch eine Methode, die weitestgehend unbeaufsichtigt abläuft. Eine Möglichkeit wäre VMware vSphere Auto Deploy. Auto Deploy setzt allerdings schon eine bestehende VMware Landschaft voraus, ist also besser geeignet, wenn neue ESXi Hosts einer bestehenden Landschaft hinzugefügt werden.

Ansonsten wird von VMware auch noch die Installation mittels PXE angeboten, auf die ich an dieser Stelle eingehen möchte. Zunächst einmal gibt es dazu auch ein offizielles Paper von VMware, welches das Vorgehen beschreibt, an einigen Stellen aber nachlässig ist.

Grundsätzlich gibt es die Möglichkeit via gPXE den Installer zu booten oder auch via iPXE. Während gPXE das booten aus dem Netzwerk nur von einem TFTP Server unterstützt, ermöglicht iPXE das Beziehen der Dateien auch von einem HTTP Server. Das mag jetzt nicht sonderlich interessant klingen. Allerdings ergeben sich zwischen den beiden Protokollen (TFTP / HTTP) enorme Performance-Unterschiede. Für meine Tests betreibe ich unter VMware Workstation 12 Pro (Dank des Erreichens des vExpert 2016 Titels habe ich div. Lizenzen von VMware kostenfrei bekommen, u.A. auch die Workstation Lizenz) die folgenden 2 VMs:

  • PXE Server (Debian 8.3)
    • 2 Prozessoren mit je 2 Kernen (Intel Core i5-5200 @ 2,20 GHz)
    • 4GB Arbeitsspeicher
    • vNIC in eigenem VMnet für PXE
    • ISC-DHCP-Server als DHCP Server
    • tftpd-hpa als TFTP Server
    • Nginx als HTTP Server
  • PXE Client (VMware ESXi 6.0)
    • 2 Prozessoren mit je 1 Kern (Intel Core i5-5200 @ 2,20 GHz)
    • 4GB Arbeitsspeicher
    • 40GB vDisk (betrieben auf einer SSD)
    • vNIC in eigenem VMnet für PXE

Mit diesen Settings bin ich auf folgende Messwerte gekommen. Für eine Installation mittels gPXE und TFTP hat meine Installation 8 Minuten und 43 Sekunden benötigt. Die Installation mittels iPXE und TFTP hat gar etwas länger gebraucht, nämlich 9 Minuten und 26 Sekunden. Am schnellsten war die Installation mittels iPXE und HTTP. Nach bereits 5 Minuten und 48 Sekunden war meine VM fertig installiert (gemessen wurde jeweils die Zeit vom Einschalten der VM bis zu dem Punkt, an dem man sich am DCUI anmelden konnte).

Leider ist der tftpd-hpa nicht sehr gesprächig, weshalb es manchmal schwer ist, Probleme zu verstehen und zu beheben. So kann es durchaus vorkommen, dass während des ladens vom ESXi Installer folgende Fehlermeldung erscheint:

Laut Fehlermeldung gibt es also ein Problem mit dem File s.v00. Dies ist im Dateisystem ~98MB groß. Und hier liegt auch schon das Problem. Die Blocksize der TFTP Verbindung ist zu gering eingestellt. Im tftpd-hpa lässt sich dies in der Datei /etc/default/tftpd-hpa ändern:

tftpd-hpa
# /etc/default/tftpd-hpa
 
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --blocksize 1468"

Ein anderes Problem, auch wenn es nicht direkt den tftpd-hpa betrifft, kann folgendes sein:

In diesem Fall kann keine Boot Konfiguration gefunden werden. Normalerweise sollte sich diese im Root-Verzeichnis des TFTP Servers befinden. Möchte man hingegen für einzelne Systeme unterschiedliche Konfigurationen verteilen, legt man im Root-Verzeichnis des TFTP Servers Ordner an, die die MAC-Adresse des zu installierenden Systems beinhalten (siehe VMware PXE Guide Seite 10, Punkt 2c "DIfferent installers"). Hier ist darauf zu achten, dass (wie im PDF vorgegeben) die MAC-Adresse kleingeschrieben wird (der PXE Client fragt die Datei mit Kleinschreibung an, und Linux achtet auf die Groß- und Kleinschreibung). Ansonsten gibt es die oben dargestellte Meldung.

Ein weiterer Stolperstein tritt auf, wenn man ESXi 5.5 auf UEFI Basis mit PXE installieren möchte:

Hier ist das Problem, dass der UEFI Bootloader von VMware zu alt ist. Es empfiehlt sich aus dem ESXi 6.0 Image die Datei /efi/boot/bootx64.efi stattdessen zu verwenden (und natürlich in mboot.efi umbenennen).

Wenn dies alles beachtet wird, und man beim Installationsprozess auf HTTP setzt, lassen sich Systeme sehr schnell und zuverlässig installieren :-)

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
 
blog/unattended_vsphere_installation_mit_pxe.txt · Zuletzt geändert: 2016/03/08 18:06 von Daniel Graf