DXS-Server Howto

An einen Server für Linux Diskless Clients bestehen je nach Einsatzzweck und Zahl der Clients einige Anforderungen. Da ja das Root-Filesystem der Clients komplett vom Server bezogen wird, summieren sich die Einzelzugriffe, die sonst auf jeder einzelnen Workstation stattfinden würden. Grob gerechnet kann man davon ausgehen, dass für q Clients die sich vervielfacht mit q*n, q jedoch kleiner 1 durch Caching von Blöcken.

Beim Server ist eines entscheidend: Ein breiter Pfad von der Serverplatte mit dem Client-Dateisystem zum Netzwerk. Prozessorleistung ist dabei zweitrangig, solange die CPU das Management des NFS oder NBD leistet. Dieses kann man erreichen durch:

  • sehr schnelle Einzelplatte (auf der moeglichst nicht noch das Serversystem liegt)
  • besser: Striping-RAID. So kann selbst eine Hochleistungs-SCSI-Platte ein Gigabit-Interface nicht annähernd saturieren! Eine ungünstige Zugriffscharakteristik (viele Kopfbewegungen) reduziert die Plattenleistung.
  • Viel Hauptspeicher - dieses erhöht die Wahrscheinlichkeit, dass angeforderte Blöcke noch im Cache des Servers liegen, womit q zum Teil deutlich kleiner wird.
  • Ersatz von NFS durch NBD/DNBD (wird hier gerade beforscht - da ist gerade eine Diplomarbeit fertig geworden, die das auch zum Thema hat). NFS produziert gerade bei kleinen Dateien einen ziemlichen Overhead an Netzwerktransfer. So ist das Netzwerkaufkommen beim einfachen Austausch von NFS gegen NBD schon um ein Viertel bis ein Drittel niedriger.
  • Einsatz von SquashFS auf NBD/DNBD, um die Menge an zu transportierendem Dateisystem deutlich zu reduzieren siehe auch SquashfsBenutzen. Damit reduziert sich sowohl die Netzwerklast als auch die Menge an Daten, die serverintern bewegt werden muss.

In kleineren Umgebungen reicht es sicherlich aus, das Client-Dateisystem auf eine eigene Platte (nicht Partition!) zu legen, die an einem eigenen Controller (möglichst keine weiteren Geräte, wenn nicht SCSI) hängt. Bei grösseren Installationen lohnt sich der Einsatz sehr schneller Platten und die Anschaffung von einer Menge RAM.