PXE Netzwerk Boot

Aus NComputing Knowledge Base
Wechseln zu: Navigation, Suche

PXE-Boot ist eine Möglichkeit, Computersysteme aus dem Netzwerk anstelle einer lokalen Festplatte zu starten. PXE ermöglicht es, Computer ohne lokale Festplatte (diskless operation) zu verwenden.

PXE-Boot mit der NComputing Virtual Appliance

Die NComputing Virtual Appliance enthält einen einsatzfertigen PXE-Boot-Service.

Wenn Sie die NComputing Virtual Appliance eingerichtet haben, müssen Sie sich an der Verwaltungsoberfläche anmelden (Port 80 oder 443, nicht NoTouch Center) und nur zwei Dinge tun:

  • Laden Sie ein OS-Image hoch (d.h. Sie laden die NoTouch OS ZIP-Datei hoch, indem Sie auf "OS-Images" und dann "OS-Image hochladen" klicken.
  • Klicken Sie auf den Hauptmenüpunkt "PXE". Dieser Bildschirm zeigt Ihnen, welche DHCP-Optionen Sie in Ihrem Netzwerk einstellen müssen. Sobald Sie diese Änderungen vorgenommen haben, funktioniert die Funktion wie von selbst. Das Hinzufügen dieser Optionen ist nicht schädlich, solange Sie keine andere PXE-basierte Lösung stören.

Hinweis: Wenn Sie dies auf einem Desktop-Virtualisierungsprodukt wie VMware Workstation, VirtualBox, Parallels oder Vergleichbares ausprobieren und "interne"/"gemeinsam genutzte" Netzwerke verwenden, müssen Sie den internen DHCP-Dienst Ihres Virtualisierungsprodukts ändern; wenn Sie überbrückte Netzwerke verwenden, müssen Sie Ihren normalen DHCP-Server ändern.

Live-Boot vs. Installation

Die NComputing Virtual Appliance unterstützt sowohl das Live-Booten als auch die Installation auf der Festplatte über den PXE-Boot. Standardmäßig wird für einige Sekunden ein Boot-Menü angezeigt, genau wie beim Booten von einem vorbereiteten USB-Laufwerk (Sie können dies ändern, siehe unten):

Download vs. Network Block Device

Eine über PXE gestartete Maschine kann entweder das gesamte Betriebssystem während des Bootvorgangs herunterladen (je nach tatsächlicher Größe, typischerweise zwischen 100 und 400 MB) oder mit einem Streaming-Ansatz nur die benötigten Teile holen. Letzteres baut auf der Linux-Funktionalität "network block device" auf, daher wird es "Netzwerk-Blockgerät" genannt.

Es ist nicht möglich zu sagen, was besser ist. Tatsächlich bevorzugen die meisten Leute die Download-Methode, da sie Endpunkte unabhängig macht (wenn der PXE-Server weggeht, spielt es keine Rolle, ob ein Rechner bereits mit dieser Methode gestartet wurde). Wenn Sie sich beim Booten wirklich um die Netzwerklast kümmern, dann ist das Network Block Device genau das Richtige für Sie, auch wenn es eine Abhängigkeit von der Virtual Appliance erzeugt.

PXE Konfiguration

In der Verwaltungskonsole der Virtual Appliance können Sie durch Anklicken von PXE und dem Menüpunkt "Konfiguration" unter "PXE" die PXE-Konfiguration ändern, wie z.B.:

  • Timeout in seconds. Die Zeit in der das Bootmenü angezeigt wird.
  • Show boot prompt. Die Boot-Eingabeaufforderung kann "immer", "nie" oder beim Drücken von Shift oder Alt angezeigt werden ("versteckte Tastenfolge").
  • Default OS image. Wenn der Benutzer nichts anderes wählt, ist dies das "Label", das nach einem Timeout oder durch Drücken der Eingabetaste gestartet wird. Bearbeiten Sie die untenstehenden Labels und Boot-Images in der "Detaillierten Bildkonfiguration".
  • Image access policy. Beim "Download" werden Bilder in den RAM des Endpunktes heruntergeladen und ausgeführt. "Network Block Device" holt nur die benötigten Blöcke, was RAM und Netzwerkkapazität spart, aber die Endpunkte vom Server abhängig macht.

Darüber hinaus können Sie das Boot-Menü bearbeiten, d.h. den textuellen Inhalt dessen, was der Benutzer sehen wird, sowie die aktuellen bootfähigen Images und deren Labels sowie Kernelparameter. Sie brauchen vielleicht keine Kernelparameter zu bearbeiten (wir wissen, dass das beängstigend klingt), aber wenn Sie sich dafür entscheiden, mehrere Images zur Verfügung zu stellen, weisen Sie einfach lesbare und leicht zu bedienende Labels zu. Tatsächlich wäre ein gültiges Label nur die Nummer 1 und die Nummer 2. So können Sie ein Bootmenü erstellen, bei dem der Benutzer zwischen 1 und 2 wählen kann.

Detaillierte Image-Konfiguration

Der Abschnitt "Detailed image configuration" ermöglicht es, die Live-Boot- oder Installationsfunktionalität pro NoTouch-Version, die auf der VA vorhanden ist, selektiv zu aktivieren oder zu deaktivieren. Es erlaubt Ihnen auch, benutzerdefinierte Labels zu definieren, die Benutzer eingeben müssen, um eine bestimmte Aktion zu starten. Diese Labels sollten mit dem Bootmenü übereinstimmen, sonst verwirren Sie Ihre Benutzer!

Bitte beachten Sie, dass es sich hierbei im Wesentlichen um eine Systemadministrator-Sache handelt. Endbenutzer werden viel zufriedener sein, wenn sie nur ein einziges Betriebssystem-Image haben, das gebootet wurde, ohne dass sie auch nur daran denken.

Bootmenü-Editor

Mit dem Bootmenü-Editor können Sie die Datei welcome.txt des Systems ändern. Bitte beachten Sie die spezielle Farbcodierung. Anscheinend ist diese Art der Farbcodierung einzigartig für den PXELinux-Lader und wird nirgendwo anders verwendet. Die On-Screen-Hilfe führt Sie dabei durch.

Überlegungen zur Bereitstellung

WAN, Internet, VPN

PXE-Boot beinhaltet Low-Level-Netzwerkprotokolle wie DHCP und TFTP, die typischerweise nur in LANs und nicht über Internet oder VPNs verwendet werden. Obwohl es möglich ist, es über WAN-Verbindungen laufen zu lassen, empfehlen wir dringend, PXE-Serverumgebungen zu verwenden, d.h. Instanzen der NComputing Virtual Appliance oder NoTouch OS-Instanzen mit ihrer integrierten PXE-Servicefähigkeit an jedem entfernten Standort. Bei der Bereitstellung von Virtual Appliances an anderen Standorten empfehlen wir, NoTouch Center in den Satelliteninstanzen zu deaktivieren, da Ihr Management einfacher wird, wenn nur eine Instanz verwendet wird. Um das Herunterladen von Client-Images über WAN-Verbindungen zu vermeiden, gibt es bereits einsatzbereite Lösungen:

  • Sie können Ihre Client-OS-Images einmalig auf die entfernte VA hochladen, um sicherzustellen, dass sowohl heruntergeladene als auch von Network Block Device betriebene Clients lokal mit LAN-Geschwindigkeit bereitgestellt werden.
  • Für einen reinen Download (d.h. ohne Netzwerkblockgerät) können Sie auch einen Proxy-Server oder noch eleganter einen Reverse Proxy einrichten, der transparent für Clients agiert und automatisch Client-OS-Images zwischenspeichert. Wenn Sie dies tun, stellen Sie sicher, dass Sie die Dateigröße entsprechend begrenzen, so dass auch größere Dateien zwischengespeichert werden.

Ändern der DHCP-Serveroptionen

Je nachdem, welches Produkt Sie verwenden, können unterschiedliche Verfahren zur Anwendung kommen. Wir empfehlen, die Dokumentation des von Ihnen verwendeten Produkts zu beachten. Die meisten Leute werden entweder die DHCP-Funktion auf einem Windows-Server oder das Unix/Linux-basierte ISC DHCPD verwenden.

Windows

Die Einstellung der Optionen auf einem Windows DHCP-Server ist einfach:

  1. Start > Administrative Tools > DHCP
  2. Öffnen Sie Ihren Server in der Hierarchie und suchen Sie nach dem richtigen Umfang - in den meisten Fällen gibt es nur einen Umfang.
  3. Klicken Sie mit der rechten Maustaste auf Scope Options.
  4. Klicken Sie auf Configure Options.
  5. Klicken Sie auf 066 und geben Sie die IP-Adresse des Boot-Servers ein, höchstwahrscheinlich NComputing Virtual Appliance.
  6. Klicken Sie auf 067 und geben Sie pxelinux.0 ein.
  7. Option 060 sollte deaktiviert sein.

Wir empfehlen weiterhin, die Dokumentation zur Änderung der Windows DHCP-Serveroptionen zu lesen. Gute Ausgangspunkte sind [1] und [2]. Sollten Sie in Schwierigkeiten geraten, überprüfen Sie [3].

Linux/UNIX

Wenn Sie einen bestehenden Linux-basierten DHCPD-Server verwenden möchten, müssen Sie die folgenden Schritte ausführen:

  • Melden Sie sich bei Ihrem Linux/UNIX-Server an und erhalten Sie Root-Rechte.
  • Verwenden Sie Ihren bevorzugten Texteditor, um die Datei dhcpd.conf zu ändern. Der genaue Speicherort ist distributionabhängig, z.B. hält Ubuntu ihn unter /etc/dhcp/dhcp/dhcpd.conf.
  • Fügen Sie im globalen Abschnitt oder in einer Subnetzdeklaration Folgendes hinzu:
    • next-server X.X.X.X;
      • X.X.X.X ist die IP-Adresse des Boot-Servers, höchstwahrscheinlich NComputing Virtual Appliance.
    • filename "pxelinux.0";
  • Starten Sie Ihren dhcpd-Server neu.
    • service dhcpd restart

NComputing PXE technischer Hintergrund

PXE betreibt einen PC während des Bootvorgangs, so dass er als Teil des BIOS des Systems implementiert ist, genauer gesagt, er ist Teil der BIOS-Erweiterung des Netzwerkadapters. PXE benötigt kein lokales Betriebssystem, sondern wird zum Booten eines Betriebssystems vom Netzwerkstandort aus verwendet.

Dieser Abschnitt beschreibt die ausführlichen technischen Schritte, wie die PXE-Lösung funktioniert. Die NComputing Virtual Appliances übernehmen all dies für Sie, so dass Sie dies nicht lesen müssen, es sei denn, Sie sind neugierig oder stoßen auf unerwartete Probleme. Technisch gesehen läuft ein PXE-Prozess so ab:

  1. Der PC ist eingeschaltet, das BIOS übernimmt die Kontrolle, das PXE-BIOS wird geladen.
  2. Das PXE-BIOS führt eine DHCP-Anfrage durch und empfängt:
    • Die zu verwendende IP-Adresse und grundlegende Netzwerkkonfiguration wie Gateway, Subnetzmaske usw.
    • Eine IP-Adresse eines Servers, auf dem das Boot-Image abgerufen werden soll (definiert in DHCP-Option 66, "nächster Server"). Dies ist höchstwahrscheinlich die IP-Adresse der NComputing Virtual Appliance.
    • Ein Dateiname der Datei, die von diesem Boot-Server abgerufen werden soll (definiert in Option 67, "Boot-Dateiname"). Dies wird höchstwahrscheinlich "pxelinux.0" sein.
  3. Das PXE-BIOS verwendet das TFTP-Protokoll, um sich mit der oben angegebenen IP-Adresse zu verbinden und diese herunterzuladen.
  4. pxelinux.0 enthält ausführbaren Code - er wird ohne Betriebssystem direkt von der BIOS-Ebene aus ausgeführt. Es wird nun versucht, seine Konfigurationsdatei von derselben IP-Adresse zu holen, wiederum über das TFTP-Protokoll:
    • Wenn eine Datei den Namen pxelinux.cfg/MACADDRESS (wobei MACADDRESS durch die aktuelle MAC-Adresse des Systems in Form eines Bindestrichpaares ersetzt wird, wie z.B. 00-C0-AB-12-34-56) trägt, wird sie abgerufen und als Konfiguration verwendet. In einem Standard-Setup schlägt dies fehl, da die Datei (noch) nicht existiert.
    • Wenn keine MAC-adressenspezifische Datei existiert, holt das System die Datei pxelinux.cfg/default und verwendet sie. Diese Datei existiert und wird von der NComputing Virtual Appliance gemäß den von Ihnen vorgenommenen Konfigurationseinstellungen und den verfügbaren Bildern erstellt.
  5. Standardmäßig enthält die Konfigurationsdatei einen Verweis auf eine Bootmenü-Datei, welcome.txt, die ebenfalls über TFTP abgerufen wird.
  6. Der Inhalt des Bootmenüs wird angezeigt, zusammen mit einer Aufforderung für einige Sekunden, damit der Benutzer ein bestimmtes "Label" eingeben kann, das gebootet werden soll. Dies ist konfigurierbar - möglicherweise haben Sie die Konfiguration bereits geändert, so dass dieser Schritt entfallen konnte. Wenn nichts eingegeben wird, startet das System das Label "default", das in einer Standardkonfiguration auf Live Boot voreingestellt ist.
  7. Das Label weist pxelinux.0 an, zwei weitere Dateien herunterzuladen und anschließend auszuführen, wiederum über TFTP:
    • bzImage, das ist die ausführbare Linux-Kernel-Datei.
    • cuba.img, das ist der Live-Bootloader; oder genesis.img, wenn Sie den Installer zum Booten gebracht haben.
  8. Der Linux-Kernel startet nun, übernimmt die Kontrolle über die Maschine vom BIOS und verwendet cuba.img oder genesis.img als Root-Dateisystem und führt seine Startup-Skripte aus. Wenn Sie das Installationsprogramm ausgewählt haben, ist der PXE-Bootprozess abgeschlossen, das Installationsprogramm wird geladen und zeigt sein Menü an und arbeitet so, als ob es lokal gestartet wäre. Im Falle eines Live-Boot wird der Prozess fortgesetzt:
  9. Linux/cuba.img kontaktiert die Virtual Appliance per HTTP, um sich über die Einstellungen zu informieren, z.B. welches Image gebootet werden soll und ob Download- oder Netzwerkblockgerät verwendet werden soll. Die URL wird von der Label-Befehlszeile aus der Konfigurationsdatei pxelinux.0 gelesen.
  10. Linux/cuba.img lädt das Bild über HTTP herunter oder richtet ein Netzwerkblockgerät ein.
  11. Linux/cuba.img hängt das Image als "Root-Dateisystem" neu an und übergibt die Kontrolle, indem es den Init-Prozess für Images ausführt, als ob es lokal gestartet worden wäre. Das Image wird hochgefahren. Es wird die Parameter der Label-Befehlszeile erneut überprüfen, um zu sehen, wo der lokale Konfigurations-Cache liegen soll: NComputing Virtual Appliance stellt einen WebDAV-Ordner zur Verfügung, und das System richtet sich so ein, dass es diesen WebDAV-Ordner als "quasi-lokalen" Speicher verwendet, unabhängig vom NoTouch Center. Ansonsten verhält es sich genau so, als ob es lokal gestartet worden wäre, kontaktiert das NoTouch Center und tut, was es tun soll.