Zentrum für Informationsverarbeitung (ZIV)
Röntgenstraße 7-13 48149 Münster
Tel.: +49 251 83-31600
Fax: +49 251 83-31555
ziv@uni-muenster.de

inforum 4/1997 - Das TVFS im LAN

inforum 4/1997 Inhalt - Vorheriger Artikel - Nächster Artikel - Impressum

Das TVFS im LAN

von R. Jüngling

Unter dem Betriebssystem OS/2 löst das „virtuelle File-System“ TVFS, ein Shareware-Programm, das leidige Problem der starren Laufwerksbuchstabenzuordnung.

Einleitung

Das Konzept der Laufwerksbuchstaben in den gängigen PC-Betriebssystemen ist ein lästiger Anachronismus. Mag man sich an einem Einzelplatzsystem noch damit arrangieren (schließlich kennt man ja nichts anderes), in einer Netzwerkumgebung wird es schnell zu einem echten Ärgernis.

Zunächst ist die Zahl der Laufwerksbuchstaben begrenzt. Als LAN-Administrator wird man die zentral installierte Software über einige wenige Netz-Laufwerke einem Client-PC zugänglich machen. Programme aber, für die nur ein paar Lizenzen erworben wurden, muß man extra behandeln. Der einfachste Mechanismus, den PC-Fileserver hierfür bieten, ist, die Zahl der möglichen Anforderungen einer Dateiressource zu begrenzen. Auf der Client-Seite wird dann der Aufruf eines solchen Programmes für gewöhnlich mit einem Skript realisiert; etwa so:

REM *** Aufruf von MAPLE ***
NET USE P: \\FILESRV\MAPLE
P:
maple.exe
NET USE P: /d

Damit ist das Laufwerk P: dann schon für das Programm Maple reserviert. Man könnte versuchen, die Laufwerksbuchstaben ­ mit etwas aufwendigeren Skripten ­ dynamisch zu reservieren, also statt Laufwerk P: z. B. das erste nicht benutzte Laufwerk aus dem Bereich N: bis Z: verwenden. Allerdings setzt das voraus, daß man in den Konfigurationsdateien dieser Programme alle Referenzen auf das Installationslaufwerk entfernen kann, was zusätzliche Arbeit bereitet oder aber gar nicht möglich ist.

Ein anderes Problem ergibt sich, will man die Dateiressourcen später auf mehrere Fileserver verteilen (etwa um der gewachsenen Zahl von Clients Rechnung zu tragen und die Antwortzeiten zu verbessern). Die Inhalte eines Netzlaufwerkes N: beispielsweise sollen zukünftig auf zwei Fileserver verteilt werden; man ist in diesem Fall gezwungen, zwei Netzlaufwerke zu verwenden und damit die bisherige Installation ­ zumindest teilweise ­ über den Haufen zu werfen und auf die neue Situation umzustricken.

Zusammenfassend kann man sagen: Das Konzept der Laufwerke bereitet nur unnötige Arbeit und bietet eigentlich keine Vorteile; ein einziger hierarchischer Dateiraum wie unter Unix wäre wünschenswert.

Erklärung des Toronto Virtual File Systems (TVFS)

Ein Werkzeug, das hier Abhilfe schafft ist das TVFS, das es für OS/2 als Freeware gibt. Es löst nicht nur die genannten Probleme sehr elegant, sondern noch eine Reihe weiterer, die ich nach einer kurzen Beschreibung des TVFS weiter unten erläutern möchte.

Das TVFS besteht aus einem Dateisystemtreiber, der beim Booten installiert wird und einem Set von Kommandos, mit denen sich ein „virtuelles Dateisystem“ aufbauen läßt. Dazu reserviert man sich mit TVMOUNT X: zunächst ein virtuelles Laufwerk, das erst einmal nichts weiter enthält als das Rootverzeichnis. Nun kann man Verzeichnisse anlegen und Referenzen auf bestehende Dateiressourcen hinzufügen ("linken"), etwa:

TVLINK X:\WINWORD C:\WINPROGS\WORD60
MD X:\DOS
TVLINK X:\DOS\AUTOEXEC.BAT C:\AUTOEXEC.BAT

Es sind sowohl Referenzen auf Verzeichnisse als auch auf Dateien möglich; der erste Befehl erzeugt einen Link auf das Verzeichnis C:\WINPROGS\WORD60, der letzte einen Link auf die Datei C:\AUTOEXEC.BAT. Im Laufwerk X: befinden sich nun die Verzeichnisse \WINWORD und \DOS. öffnet man z. B. mit einem Editor die Datei X:\DOS\AUTOEXEC.BAT, so öffnet man tatsächlich die Datei C:\AUTOEXEC.BAT; die Referenz X:\DOS\AUTOEXEC.BAT ist also vergleichbar mit einem Hard Link in Unix-Dateisystemen. Erlaubt sind auch Links auf nichtlokale Dateiressourcen, z. B.:

TVLINK X:\MAPLE \\FILESERV\MAPLE

Weiter hat man die Möglichkeit, die Zugriffsrechte auf die referenzierte Ressource einzuschränken, z. B. die Datei C:\AUTOEXEC.BAT als „nur lesbar“ zu linken (Option -r). Man kann die Datei X:\DOS\AUTOEXEC.BAT dann nur zum Lesen öffnen, will man sie auch zum Schreiben öffnen, so schlägt diese Dateioperation fehl, Fehlermeldung: „Die Datei X:\DOS\AUTOEXEC.BAT existiert nicht“, was zunächst etwas abwegig erscheint.

Mit den bislang erläuterten Möglichkeiten lassen sich die oben beschriebenen Probleme sofort lösen. Man kann nun mit einem einzigen Netzlaufwerk auskommen (das dann ein TVFS-Laufwerk ist) und alle benötigten Ressourcen ­ die selbstverständlich auf diversen Fileservern verteilt sein können ­ der Reihe nach hinzulinken. Ein Skript zum Aufruf eines Programmes mit beschränkter Lizenzzahl würde jetzt ­ analog zu obigem ­ so aussehen:

REM *** Aufruf von MAPLE ***
NET USE \\FILESRV\MAPLE
TVLINK X:\MAPLE \\FILESRV\MAPLE
X:
cd \MAPLE
maple.exe
TVULINK X:\MAPLE *
NET USE \\FILESRV\MAPLE /d

Das virtuelle Dateisystem besteht also ausschließlich aus Referenzen und hat die Aufgabe, Dateioperationen an die referenzierten Ressourcen zu vermitteln ­ und zwar gemäß den durch das Linken implizit definierten Regeln. Für die bislang erläuterten Möglichkeiten sind diese Regeln trivial, aber das TVFS kann noch mehr. Es ist möglich, einen Link mehrfach zu verwenden, d. h. mehrere verschiedene Ressourcen unter demselben Namen in die Verzeichnisstruktur einzuhängen. Betrachten wir das Beispiel zweier Verzeichnisse C:\DATEN (lokale Ressource) und \\FILESRV\DATEN (Netzressource), die beide unter dem Namen X:\DATEN gelinkt werden:

TVLINK X:\DATEN C:\DATEN -rw
TVLINK X:\DATEN \\FILESRV\DATEN -r

Das erste Verzeichnis wurde als les- und schreibbar gelinkt, das zweite als nur lesbar. Angenommen im Verzeichnis C:\DATEN befinden sich die beiden Dateien JUNI.DAT und JULI.DAT, im Netzverzeichnis die Dateien MAI.DAT und JUNI.DAT. Im virtuellen Verzeichnis X:\DATEN sind dann die drei Dateien MAI.DAT, JUNI.DAT und JULI.DAT zu finden. Die Datei JUNI.DAT existiert aber zweimal. Hier bestimmt die Link-Reihenfolge und die Art der Dateioperation, an welche Datei das TVFS schließlich vermittelt: gemäß der Link-Reihenfolge werden alle gelinkten Verzeichnisse nach der zu öffnenden Datei durchsucht; der erste Link, der mit der geforderten Operation „verträglich“ ist, erhält den Zuschlag. In unserem Beispiel ist der Zugriff auf die Datei JUNI.DAT klar, in jedem Fall wird die Datei C:\DATEN\JUNI.DAT verwendet. Hätten wir in der umgekehrten Reihenfolge gelinkt, so würde bei einem „nur lesenden“ Zugriff auf die Datei im Netzverzeichnis zugegriffen, bei schreibendem Zugriff auf die lokale Datei.

Falls für die Datei C:\DATEN\JUNI.DAT im lokalen Filesystem nicht das „nur lesbar-Attribut“ gesetzt ist, kann man die Datei X:\DATEN\JUNI.DAT löschen. Danach sind immer noch die drei genannten Dateien im Verzeichnis X:\DATEN; allerdings ist JUNI.DAT in diesem Falle die nur lesbare Datei \\FILESRV\DATEN\JUNI.DAT.

Nun gibt es zwei Möglichkeiten, wie sich das TVFS verhalten kann, wenn die Datei X:\DATEN\JUNI.DAT schreibend geöffnet wird. In jedem Fall wird eine neue Datei C:\DATEN\JUNI.DAT erzeugt; diese kann nun entweder leer sein oder es wird der Inhalt der Datei \\FILESRV\DATEN\JUNI.DAT übernommen ­ je nach TVFS-Einstellung. Mit diesem Feature kann man z. B. auf eine CD-ROM schreiben ­ virtuell versteht sich: man linkt ein (leeres) Verzeichnis mit Schreibzugriff und unter demselben Namen das CD-ROM-Laufwerk...

Das TVFS im praktischen Einsatz

In den vergangenen Semesterferien haben wir im CIP-Pool Soziologie die skizzierte Umstellung gewagt und mit dem TVFS noch ein paar weitergehende Probleme gelöst. Es gibt nun nicht mehr diverse Netzlaufwerke, sondern nur noch das eine Laufwerk V:, über das alle Dateiressourcen zu erreichen sind. Die Umstellung machte zunächst natürlich viel Arbeit, einige Programme mußten wegen ungültig gewordener Installationspfade neu installiert werden.

Die meisten unserer Rechner haben eine Festplatte mit für die Client-Installation (Betriebssystem, Fonts, ausgewählte Anwendungen) hinreichender Kapazität. In einigen alten Rechnern hingegen arbeiten jeweils zwei kleine Platten, auf die unsere Client-Installation nicht mehr als Ganzes draufpaßt; die Kapazität beider Platten zusammen reicht allerdings aus. Die Lösung ist nun naheliegend: Teile der lokalen Installation werden ebenfalls über das virtuelle Laufwerk angesprochen (das Windows-Verzeichnis heißt jetzt z. B. V:\SYS\WINDOWS) und können nun auf verschiedene Platten verteilt werden (oder gar auf dem Fileserver liegen).

Es werden leider heute immer noch Programme entwickelt, welche für die zentrale Installation auf einem Fileserver nicht taugen, da sie Schreibzugriff im Installationslaufwerk erwarten (von alten Programmen aus DOS-Tagen gar nicht zu reden). Mit dem TVFS ist das Problem schnell gelöst: „über“ den Link auf das Installationsverzeichnis (auf dem Fileserver) wird einfach ein weiterer Link auf ein lokales Verzeichnis „gelegt“, in das geschrieben werden kann. Die Dateien in diesen Verzeichnissen werden wie temporäre behandelt und bei Beginn jeder Sitzung gelöscht. Damit kann dem Benutzer auch endlich erlaubt werden, die Konfiguration eines Programms ­ zumindest für die Dauer einer Sitzung ­ an seine Bedürfnisse anzupassen. Das Verzeichnis mit der Default-Konfiguration wird bei diesem Szenario nur lesbar gelinkt und bleibt vor Veränderung geschützt.

Das Problem der Default-Konfiguration stellte sich in unserem Pool tatsächlich in einer etwas variierten Form. Ebenfalls in den Semesterferien wurde ein weiterer Fileserver auf dem AIX-Rechner des Fachbereiches installiert, der den Pool-Besuchern ihr Unix-Home-Verzeichnis als SMB-Share zur Verfügung stellt (gelinkt als V:\HOME). Das Home-Verzeichnis taugt nicht nur zur Ablage persönlicher Daten, sondern natürlich auch als Depot für Konfigurationsdateien (wie es unter Unix üblich ist). D. h. für die im Pool installierte Software sollen die Konfigurationsdateien im Home-Verzeichnis des Benutzers zu liegen kommen, wo dies sinnvoll und technisch möglich ist. Allerdings ist unzumutbar, die Benutzer diese Programme selbst konfigurieren zu lassen; unter Unix hat man für diesen Zweck systemweit geltende Konfigurationsdateien, die gelesen werden, falls der Benutzer keine eigene Konfigurationsdatei in seinem Home-Verzeichnis hat. Für Programme, die in Einzelbenutzer-Umgebungen laufen, ist sowas in der Regel nicht vorgesehen.

Die erste Idee ist, einfach alle Default-Konfigurationsdateien bei der ersten Sitzung in das Home-Verzeichnis zu kopieren. Das ist allerdings nicht sehr schön, da auch Konfigurationsdateien Plattenplatz beanspruchen und es ergäben sich Probleme, sobald neue Software im Pool installiert wird, deren Konfigurationsdateien ebenfalls ins Home-Verzeichnis sollen ... Viel eleganter geht es ­ natürlich ­ mit dem TVFS. Ein Verzeichnis, das auf dem Fileserver liegt (und somit eine zentral durchzuführende Aktualisierung erlaubt) hält alle möglichen Konfigurationsdateien vor. Es wird nach dem eigentlichen Home-Verzeichnis als nur lesbar unter V:\HOME gelinkt. Somit stehen sofort alle Konfigurationsdateien in V:\HOME zur Verfügung, allerdings wurde keine einzige kopiert ­ kein unnötiger Plattenplatz wird verbraucht. Wird eine Anwendung zum ersten Mal gestartet, so mit den Default-Werten; eventuelle Änderungen werden schließlich ins „wirkliche“ Home-Verzeichnis geschrieben. Bei jedem weiteren Aufruf dieser Anwendung wird dann die modifizierte Konfigurationsdatei verwendet, die Einstellungen des Benutzers bleiben dauerhaft erhalten.

Alles super?

Neben die mannigfaltigen Vorteile treten leider auch ein paar Nachteile. Die Funktionsweise des TVFS impliziert natürlich einen gewissen Overhead für jede Dateioperation, die vermittelt wird. Man muß also bei Datei-intensiven Applikationen mit Performance-Einbußen rechnen. Tatsächlich konnten wir das in der Praxis aber nur selten beobachten, bei Programmen nämlich, die regen Gebrauch von temporären Dateien machen, wie z. B. Web-Browser. Es empfiehlt sich daher nicht, das Verzeichnis für temporäre Dateien auf ein virtuelles Laufwerk zu legen.

Die meisten Probleme ergaben sich allerdings aus mangelndem Verständnis der Arbeitsweise des TVFS im Detail, bzw. durch nichtssagende Fehlermeldungen von Anwendungsprogrammen bei fehlgeschlagenen Dateioperationen. Beispielsweise wurde die Installation eines Windows-Programms auf dem virtuellen Laufwerk mit dem lapidaren Hinweis abgebrochen, die Registry (REG.DAT) könne nicht aktualisiert werden. Glücklicherweise ließ sich dem Problem durch genaue Analyse der Dateizugriffe auf die Spur kommen (und schließlich lösen) ­ das TVFS hat nämlich auch einen Debug-Modus, in dem alle vermittelten Dateioperationen protokolliert werden.

Da ein virtuelles Laufwerk keinen eigenen Datenträger repräsentiert, ist auch keine sinnvolle Angabe über den noch freien Speicherplatz möglich. Das TVFS erlaubt, hier einen (fixen) Wert vorzugeben, allerdings nur in gewissen Grenzen. Eine Installation kann deswegen auch schon mal mit der Meldung „Nicht genügend Speicherplatz auf Datenträger!“ fehlschlagen.

Als „Standardtrick“ bei Installationsproblemen auf dem virtuellen Laufwerk hat sich bei uns folgendes Verfahren bewährt. Für die Installation wird statt des virtuellen ein Netzlaufwerk verwendet. Das Programm wird unter dem Pfad auf das Netzlaufwerk installiert, über den es nachher auf dem virtuellen Laufwerk angesprochen werden soll. Zuletzt muß das Installationsverzeichnis auf dem Serverlaufwerk noch an die richtige Stelle verschoben werden.

Problematischer ist die geringe Fehlertoleranz des TVFS gegenüber Fehlfunktionen der Zieldatenträger. Der Zusammenbruch einer Netzwerkverbindung während einer Dateioperation auf dem Netzlaufwerk etwa führt zum Absturz des TVFS-Control-Dämons (wird beim Booten nach dem Dateisystemtreiber installiert). Infolgedessen ist dann das gesamte virtuelle Laufwerk nicht mehr verfügbar. (Allerdings sind solcherlei Ausfälle auch Ausnahmesituationen.) Ob andere Randbedingungen die Stabilität des TVFS negativ beeinflussen, müssen die Erfahrungen im Langzeitbetrieb zeigen.

Fazit

Das TVFS erweist sich als flexibles Werkzeug, mit dem sich viele administrative Probleme in einer LAN-Umgebung lösen lassen. Sicher mit dem TVFS umzugehen erfordert allerdings eine gewisse Eingewöhnung; die beschriebenen Nachteile relativieren sich mit zunehmender Erfahrung. Man muß natürlich keineswegs den oben skizzierten Weg gehen und gleich alles auf TVFS umstellen; es ist ebenso denkbar, ein virtuelles Laufwerk neben den bestehenden Netzlaufwerken zu benutzen und die Client-Installation schrittweise anzupassen.

Kontakt zum CIP-Pool Soziologie: ifscip@uni-muenster.de


inforum 4/1997 Inhalt - Vorheriger Artikel - Nächster Artikel - Impressum

Zentrum für Informationsverarbeitung (Universitätsrechenzentrum)


Impressum | © 2011 Universität Münster
Zentrum für Informationsverarbeitung (ZIV)
Röntgenstraße 7-13 · 48149 Münster
Tel.: +49 251 83-31600 · Fax: +49 251 83-31555
E-Mail: