Vorschlag Devman Filesystem Struktur
Auf Embedded Systemen (
MicroIOC, SCU, zukünftig auch PPC) hat das Grundsystem die Aufgabe das System zu booten, eine Netzwerkverbindung aufzubauen und einen SSH Zugang bereitszustellen. Die eigentliche Applikation wird per NFS nachgeladen. Um in einer solchen Umgebung einen Devman laufen zu lassen, hier ein Vorschlag wie man das Dateisystem für eine solche Applikation aufbauen kann.
NFS Server
$BASE |
/common/usr/export |
Basisverzeichnis für alle Applikationen |
$APP |
devacc |
Eine Applikation |
$ARCH |
i386, ppc, x86_64, noarch |
Prozessor Architektur |
/common/usr/export/devacc/ppc/eqp/bc/bc.so.17.09.02.00
-> $BASE/$APP/$ARCH/eqp/bc/bc.so.17.09.02.00
/common/usr/export/devacc/i386/eqp/gpib/gpib.so.17.09.02.00
-> $BASE/$APP/$ARCH/eqp/gpib/gpib.so.17.09.02.00
/common/usr/export/devacc/i386/sys/devman/17/devman
$BASE/$APP/$ARCH/sys/devman/17/devman
Für jeden Frontend Computer existiert ein für diesen Host spezifisches Verzeichnis. Hier befinden sich Konfigurationsdateien und symbolische Links zu den auf diesem Host zu verwendenden Programmen und Bibliotheken
/common/usr/export/devacc/local/kp1ci04
kp1ci04.dbs
gpib.so -> ../../i386/eqp/gpib/gpib.so.18.09.00.00
library -> ../../i386/sys/devman/18
Frontend Computer
FEC = Front End Computer = Embedded System =
MicroIOC, SCU, CPU87, etc.
Ein Frontend Computer mounted den kompletten Applikationsordner.
fec:/opt/devacc = blade:/common/usr/export/devacc
und ein Startscript fuehrt dann in etwa folgendes aus
cd /opt/devacc/local/$(hostname) && ./library/devman
Offen
Zusaetzlich die pfade /opt/acc/cpu, /opt/acc/sys, /opt/acc/eqp als symlink in der Ramdisk generieren. So koennen User die die "alten" Pfade kennen ihre Dateien wiederfinden (--> Rufbereitschaften)
Einführen eines Bereich-Verzeichnisses zwischen $BASE und $APP. Also z.B. /comm/usr/export/acc/devman bzw /common/usr/export/sd/beamview. Dies ermöglicht eine Unterscheidung in den Zugriffsrechten. Alternativ hierzu wäre eine seperate Basis für die Bereiche. Die Anzahl der Applikationen ist derzeit eher gering, man kann die Rechte auch per Applikation setzen.
Wie sieht der NFS export von $BASE aus? Es wird nur read-only exportiert. Root Squash ist aktiv. Sollte man noch ein Squash aller IDs auf eine frontend-id (z.B. 1000) durchfuehren? Die Benutzer-IDs sind auf den frontends nicht bekannt und daher koennt man die damit alle squashen.
Die Ids sollen auf dem Frontend sichtbar sein, damit erkannt werden kann wer ein Geraetmodell releast hat. macht aber erst richtig sinn wenn auf den Frontends auch die Zuordnung Uid -> Name existiert. Dann muss pam und pam_ldap auf den Frontends installiert und konfiguriert sein.
Man kann auch blade:/common/usr/export/devacc irgendwo unter /media/nfs mounten und dann /opt/devacc als symlink auf /media/nfs/local/hostname setzen. Das funktioniert, wenn man aber auf die relativen symlinks schaut bekommt man einen Knoten im Kopf.