Zugriffsproblem Heimatverzeichnisse

Aus FMD
Zur Navigation springenZur Suche springen

Linux/UNIX: Anwendungen arbeiten fehlerhaft durch Blockaden beim Zugriff auf einzelne Dateien im Heimatverzeichnis

So äußert sich der Fehler

Vereinzelt kann auf Dateien im Heimatverzeichnis /net/home/Ihre_Kennung über NFS (Linux/UNIX-Systeme) durch populäre Programme wie z.B. Firefox, Thunderbird oder iFolder nicht zugegriffen werden. Die Anwendungen reagieren sehr unterschiedlich, sie starten z.B. nicht, geben Fehlermeldungen über defekte Datenbanken aus, verlieren ihre Suchmaschinen-Einstellungen. Ursache sind "vergessene" Dateiblockaden (file locks), welche von Ihrem Client auf dem Server nicht entfernt werden können.

Der Fehler stört immer stärker die Anwendung, bis sie zum Schluss überhaupt nicht mehr benutzbar ist. In diesem Stadium treten auch irreversible Datenverluste ein, welche bei den ersten Symptomen noch nicht vorhanden sind.

So können Sie sich helfen

Sollten Sie solcherlei Probleme haben, hilft es die Anwendung zu beenden und die dazugehörigen Arbeitsverzeichnisse umzubenennen und mit originalem Namen eine neue, nicht blockierte Version daraus anzulegen.

Beispiel für Firefox:

cd
mv .mozilla .mozilla-sicherung
cp -ax .mozilla-sicherung .mozilla

Wenn Sie sicher sind, die Kopie des alten Verzeichnisses .mozilla in .mozilla-sicherung nicht mehr zu benötigen, löschen Sie diese bitte mit

rm -rf .mozilla-sicherung

Andernfalls können Sie die alte Version wiederherstellen mit

mv .mozilla .mozilla-neu
mv .mozilla-sicherung .mozilla

Und die neuere Version ggf. später löschen mit

rm -rf .mozilla-neu

Für Thunderbird .mozilla durch .thunderbird ersetzen. Bitte beachten Sie die Quotierung des verfügbaren Platzes in Ihrem Heimatverzeichnis (Kommando squota), besonders bei größeren Verzeichnissen wie .thunderbird (Die Qutoe ist aktuell 20 GB).

So kann man das Problem dauerhaft lösen und auch sein Quota schonen

Wenn Sie einen Arbeitsplatzrechner unter Linux dauerhaft zur Verfügung haben, können Sie die Profildateien von Firefox und Thunderbird auf diesen Rechner auslagern. Achtung: Diese werden dann nicht mehr gesichert!

Das geht so:

Der Rechner habe den Namen demo, die Kennug sei dat, Thunderbird läuft nicht, das lokale Verzeichnis existiert noch nicht.

Auf dem Rechner demo:

cd
mkdir /chmi/demo/dat/
cp -ax /net/home/dat/.thunderbird /chmi/demo/dat/
mv /net/home/dat/.thunderbird /net/home/dat/.thunderbird-alt
ln -s /chmi/demo/dat/.thunderbird /net/home/dat/.thunderbird

Dann Thunderbird starten und alles ausprobieren. Wenn man zufrieden ist, kann mit

cd
rm -rf /net/home/dat/.thunderbird-alt

das alte Profilverzeichnis gelöscht werden.

Der Rechner muss jetzt immer laufen, wenn man Thunderbird nutzen möchte, da die Daten von demo geholt werden. Wenn man z.B. von dinux8 darauf zugreift, geht es dann über das Netz automatisch mit NFS.

Ersetzt man .thunderbird durch .mozilla kann man so das Firefox-Profil umlegen.

Aktueller Stand der Lösung

Das Problem ist nicht lösbar, solange das hierarchische Dateisystem SAM-FS eingesetzt wird. Es wird nur für die Gruppen- und Heimat-Verzeichnisse von home verwendet.

Etwas zum Hintergrund

Die Anwendungen erzeugen in ihren Arbeitsverzeichnissen (z.B. .mozilla/firefox/) Dateien, welche sie (da z.B. als Datenbank-Datei genutzt) gegen konkurrierenden Zugriff schützen müssen. Dieses machen sie durch sog. file locks, also Dateisperren. Solange nur auf einem Rechner (also ohne ein Netzwerk dazwischen mit der Möglichkeit des Zugriffs durch andere Rechner oder dem Abbruch der Verbindung) so etwas gemacht wird, gibt es keine Schwierigkeiten. Unsere Heimatverzeichnisse und damit die Arbeitsverzeichnisse sind aber mit NFS (Network File System) über das Netzwerk angebunden. Die dort mögliche Realisierung von Dateisperren ist aus mathematischen Gründen nicht perfekt. Es kann zu der Situation kommen, dass der Rechner (Client) meint, eine Datei sei frei, der Server (NFS-Heimatverzeichnis) sie aber noch blockiert, da er meint, sie wäre noch blockiert. Auflösen lässt sich solch ein Deadlock nur manuell. Genau das machen Sie mit dem Kopieren. Leider ist die Programmierung dieser Mechanismen so dürftig und tief in den Systemen versteckt, dass man nicht sehen kann, welche Dateien gerade blockiert sind. Sonst wäre es einfach, z.B. über einen Time-Out-Mechanismus solche falschen Dateisperren nach einiger Zeit zu löschen. Beim Neustart des Servers macht dieser so etwas, nachdem er alle ihm bekannten Clients (PCs) nachgefragt hat, ob sie noch Dateisperren auf seinen Dateien haben. Da wir den Server nicht einfach so neu starten dürfen, ist das auch keine Lösung für unser Problem.

Zurück zu Aktuelle Ereignisse