PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : diskless client - Grundsätzliches ??



filou
05.02.05, 15:25
Hallo,

ich habe vor, mir eine Umgebung für diskless-clients zu basteln. Soll heißen, ca. 100 diskkless clients sollen in einem Netzwerk laufen, kein X.
Das Ganze soll mit PXE, atftp, nfs, dhcp3 , syslinux laufen

Jetzt habe ich schon ein wenig gesucht - und auch gefunden. Es gibt ja anscheinend zwei Ansätze.
[1.] Mit NFS-root.
Der Client bootet, holt sich beim booten den pxelinux.0 und mountet anschließend sein FS über NFS.

[2.] Mit nem kompletten Filesystem. Der Client bootet, holt sich beim booten den pxelinix.0 und anschließend wird das komplette Filesystem als gzip-File geladen.

Was ist denn nun am sinnvollsten ? - Ist bei [1] für jeden diskless-client ein eigenes NFS-root erforderlich ??
Wie bekomm ich den diskless Client dazu, alle programme, die auszuführen sind, im RAM zu starten ?
Was ist mit Logdateien, kann man die auf den Server umlenken ?

mfg

geronet
05.02.05, 15:40
Also 1) ist vorzuziehen wenn die Clients wenig Speicher haben und ne schnelle Platte im Server ist. Ich hatte es mal so dass alle Clients das gleiche root-fs wie der Server hatten, ist ein Vorteil da dann alle Systeme automatisch die gleichen Dateien und Programme haben (natürlich ro-gemountet).

Für die Logfiles kann man syslog im Netzwerk verwenden, oder jedes /var/ auf dem Server extra rw-mounten, inclusive dem /etc z.B.
Wenn man also / ro-nfs mountet kann man einfach /etc oder /var von einer anderen Partition wieder rw-mounten, damit jeder Client seine eigene Konfiguration hat.

Grüsse, Stefan

filou
05.02.05, 15:47
Also 1) ist vorzuziehen wenn die Clients wenig Speicher haben und ne schnelle Platte im Server ist. Ich hatte es mal so dass alle Clients das gleiche root-fs wie der Server hatten, ist ein Vorteil da dann alle Systeme automatisch die gleichen Dateien und Programme haben (natürlich ro-gemountet).

Für die Logfiles kann man syslog im Netzwerk verwenden, oder jedes /var/ auf dem Server extra rw-mounten, inclusive dem /etc z.B.
Wenn man also / ro-nfs mountet kann man einfach /etc oder /var von einer anderen Partition wieder rw-mounten, damit jeder Client seine eigene Konfiguration hat.

Grüsse, Stefan

Hi Stefan,

d.h. ich kann ein mini NFS-Root erzeugen. In meinem Fall mit debootstrap (Debian). Dieses mounten alle Clients im Netz read-only, richtig ?

Für Arbeitsverzeichnisse, kann ich dann ein weiteres NFS-share erzeuegen, wo, je nach Client unterschiedliche Programme und Dateien liegen.

Wenn ich aus dem Arbeitsverzeichnis ein Programm auf dem Client starte, läuft dieses dann in einer Ramdisk, im RAM oder wo ?

mfg

Poseidon238
07.02.05, 17:35
Hallo,

ich habe vor, mir eine Umgebung für diskless-clients zu basteln. Soll heißen, ca. 100 diskkless clients sollen in einem Netzwerk laufen, kein X.
Das Ganze soll mit PXE, atftp, nfs, dhcp3 , syslinux laufen

Jetzt habe ich schon ein wenig gesucht - und auch gefunden. Es gibt ja anscheinend zwei Ansätze.
[1.] Mit NFS-root.
Der Client bootet, holt sich beim booten den pxelinux.0 und mountet anschließend sein FS über NFS.

[2.] Mit nem kompletten Filesystem. Der Client bootet, holt sich beim booten den pxelinix.0 und anschließend wird das komplette Filesystem als gzip-File geladen.

Was ist denn nun am sinnvollsten ? - Ist bei [1] für jeden diskless-client ein eigenes NFS-root erforderlich ??
Wie bekomm ich den diskless Client dazu, alle programme, die auszuführen sind, im RAM zu starten ?
Was ist mit Logdateien, kann man die auf den Server umlenken ?

mfg


Soll das ganze Richtung Terminalserver gehen? Also dem würde ich folgendes empfehlen:
http://pxes.sourceforge.net

Supergutes Tool, leicht zum handeln.

Für jeden Client ein eigenes NFS-Root ist nicht notwendig, man kann in dem Fall auf auch tftp ausweichen, einen Ordner anbieten und jeder Client zieht sich das ganze rüber (sind ca. 10 MB). NFS würde natürlich auch gehen, habe das aber grad mit tftp gemacht und es lief suppi.

filou
07.02.05, 20:02
Hallo Poseidon238,

naja, das ist ja schon was fertiges.... Es soll Clients geben, die "unverwüstlich" sind. D.h. am besten sollte das Betreibssystem nur ro gemountet werden. Nur wenige wichtige Verzeichnisse müssen beschreibbar sein (PID,Locks,etc).

Zusätzlich muss dann noch ein spezielles Programmverzeichnis gemountet werden, aus dem dann die Applikationen gestartet werden sollen.

So weit so gut. Im Moment läuft es soweit, das ein Client startet, sich den Kernel vom tftp holt und ein rootfs via NFS mountet. Aber irgendwie ist da noch der Wurm drin.
Würde gerne ein tmpfs auf dem Client anlegen, aber wenn ich ein mount tippe, erscheint nur proc, nichts anderes....
Bin noch schwer am probieren....

mfg

geronet
07.02.05, 20:08
Vorsicht, mount holt sich die Liste der mounts aus /etc/mtab.. wenn das ro gemountet ist stimmt das logischerweise nicht.
Besser ist ein "cat /proc/mounts"

Grüsse, Stefan

filou
07.02.05, 21:17
Vorsicht, mount holt sich die Liste der mounts aus /etc/mtab.. wenn das ro gemountet ist stimmt das logischerweise nicht.
Besser ist ein "cat /proc/mounts"

Grüsse, Stefan

Hi Stefan,

guter Tipp, gar nicht mehr dran gedacht


cat /proc/mounts
proc /proc proc rw 00
devpts /dev/pts devpts rw 0 0
tmpfs /tmp tmpfs rw 0 0
tmpfs /var tmpfs rw 0 0
tmpfs /var tmpfs rw 0 0
tmpfs /tmp tmpfs rw 0 0
tmpfs /etc tmpfs rw 0 0

Sieht schon besser aus. Kann auch mittlerweile in den Verzeichnissen schreiben. Nur sehen die Einträge noch ein wenig verwirrend aus, da doppelt....

mfg

Poseidon238
07.02.05, 22:02
Hallo Poseidon238,

naja, das ist ja schon was fertiges.... Es soll Clients geben, die "unverwüstlich" sind. D.h. am besten sollte das Betreibssystem nur ro gemountet werden. Nur wenige wichtige Verzeichnisse müssen beschreibbar sein (PID,Locks,etc).

Zusätzlich muss dann noch ein spezielles Programmverzeichnis gemountet werden, aus dem dann die Applikationen gestartet werden sollen.

So weit so gut. Im Moment läuft es soweit, das ein Client startet, sich den Kernel vom tftp holt und ein rootfs via NFS mountet. Aber irgendwie ist da noch der Wurm drin.
Würde gerne ein tmpfs auf dem Client anlegen, aber wenn ich ein mount tippe, erscheint nur proc, nichts anderes....
Bin noch schwer am probieren....

mfg


Na das ganze wäre ja auch nur ro.
Was ich auch noch empfehlen könnte:
http://www.ltsp.org
http://www.thinstation.org

Vielleicht findest Du da einige Ideen und Inspiration. Das spezielle Verzeichnis gemount werden muss, er schließt sich mir gerade nicht der Sinn, da PXES ein komplettes Terminalserver-Programm darstellt, während man den Rest auf dem Terminalserver arbeitet oder möchtest Du das ganze so machen, dass du die Applikationen auf dem Client ausführst, also der Client die Rechenzeit übernimmt, während weitere Ressourcen (Daten) auf dem Terminalserver offeriert werden?