Lablog Online: Clients ohne Platten:
Aus dem Testlabor: NFS kommt zu neuen Ehren

von Andreas Stolzenberger (ast@nwc.de), Werner Veith

18.09.2008

Das Testlabor der Network Computing muss immer wieder für verschiedene Zwecke Clients aufsetzen. Mit Netzwerk-Boot per NFS hat es eine relativ simple und schnelle Methode ausprobiert, Linux- und Unix-Maschinen für Testzwecke bereitzustellen.

Im Labor der Network Computing kam die Idee auf, plattenlose Clients mit Hilfe von I-SCSI- und eines DHCP/PXE-Servers zu starten. Bei genauerem Hinsehen stellt sich allerdings heraus, dass es nicht so einfach ist: Ein Boot über I-SCSI ist zwar mit etlichem Aufwand technisch möglich, letzten Endes jedoch sehr unpraktisch. Es geht mit einer seit langen Jahren etablierten Technik viel einfacher: NFS.

Nahezu jedes Linux-/Unix-System akzeptiert anstelle einer physischen Platte auch eine NFS-Dateifreigabe als Root-Dateisystem. Moderne, auf Debian basierende Distributionen lassen sich in wenigen Minuten so modifizieren, dass sie vom LAN starten können.

Linux untersucht bei jedem Systemstart die vorliegende Hardware und lädt dann die passenden Treiber. Eine fertig installierte Linux-Instanz kann daher auf nahezu beliebiger Hardware starten, da sie sich während dem Hochfahren automatisch anpasst. Daher genügt ein System-Template, welches sich für verschiedene Diskless-Clients klonen lässt.

Im Labor setzt Network Computing eine virtuelle Maschine ein, um ein Client-OS zuerst zu installieren, Updates einzuspielen und dann die Konfiguration anzupassen. Die fertige Installation kopiert das Laborteam dann auf die zuvor vorbereitete NFS-Freigabe und passt die benötigten Konfigurationsdateien an den NFS-Betrieb an. Dazu genügt es prinzipiell, dem Init-Skript des startenden Linux zu verbieten, die Netzwerkkarte neu zu konfigurieren. Das würde im Betrieb das Remote-Root-Laufwerk abklemmen. Je nach Linux-Derivat muss der Verwalter zuvor auch noch mit »mkinitrd« eine initiale RAM-Disk erstellen, welche den Parameter »Boot-NFS« kennt. Bei modernen Linux-Versionen genügt es, dem startenden Kernel diese Information als Parameter mitzugeben.

Anschließend wird der Kernel und die initiale RAM-Disk des Systems in das Tftp-Root-Verzeichnis des PXE-Servers kopiert und dessen Konfiguration entsprechend modifiziert.

Startet nun eine Labormaschine über PXE, erhält sie ein Auswahlmenü mit verschiedenen Optionen. Zum einen kann der Labortechniker eine interaktive Installation von Centos oder Ubuntu anwählen. Zum anderen steht eine Reihe von Live-Systemen mit NFS-Root zur Auswahl.

Mit Hilfe dieser sehr einfachen Methoden und dem Konfigurationsaufwand von etwa einer Stunde kann das Laborteam nun binnen weniger Minuten Clients mit einer der vorgefertigten NFS-Linux-Instanz hochfahren. Jetzt lassen sich auch Hardware-nahe Programme und Treiber testen, was mit virtuellen Maschinen nicht geht.

Dank der bislang guten Erfahrungen mit Diskless-Clients wird Network Computing diesen Service ausbauen. Der zuständige PXE-/DHCP-/NFS-Server erhält weitere LAN-Adapter, damit es zu keinen Flaschenhälsen kommt. Außerdem hinterlegt Network Computing auch Server-Instanzen von Linux und anderen Unix-Systemen wie Solaris oder BSD.