Kapitel 17. Betreiben eines Microsoft Distributed-File-System-Baums

Shirish Kalele

Samba Team & Veritas Software

John H. Terpstra

Samba Team

Felix Erlacher

Deutsche Übersetzung
German Samba-3-Docs-Translation Team

Stefan G. Weichinger

Deutsche Übersetzung
German Samba-3-Docs-Translation Team

Inhaltsverzeichnis

Eigenschaften und Vorzüge
Gängige Fehler
Der MSDFS-UNIX-Pfad ist case-critical

Eigenschaften und Vorzüge

Das Distributed File System (DFS) erlaubt es, die logische Ansicht der Laufwerke und Ordner, die der Benutzer sieht, von der tatsächlichen physischen Lage dieser Ressourcen im Netzwerk zu trennen. Die Vorteile sind höhere Erreichbarkeit, einfachere Speicherplatzerweiterung, Lastausgleich usw.

Informationen zu DFS finden Sie in der Microsoft Dokumentation. Dieses Dokument erklärt, wie man einen DFS-Baum auf einer UNIX-Maschine (zum Browsing für DFS-fähige Clients) mit Samba betreibt.

Um SMB-basierendes DFS für Samba zu aktivieren, konfigurieren Sie es mit der Option --with-msdfs. Wenn das geschehen ist, kann ein Samba-Server zu einem DFS-Server gemacht werden, indem Sie den globalen booleschen Parameter host msdfs in der Datei smb.conf setzen. Sie kennzeichnen eine Freigabe als DFS-Wurzelverzeichnis durch den booleschen Freigaben-Parameter msdfs root. Ein DFS-Wurzelverzeichnis unter Samba beinhaltet DFS-Links in der Form von symbolischen Links, die auf andere Server zeigen. So arbeitet zum Beispiel ein symbolischer Link junction->msdfs:storage1\share1 im Freigabenverzeichnis als die DFS-Junction. Wenn DFS-fähige Clients versuchen, auf diesen Junction-Link zuzugreifen, werden sie auf die tatsächliche Daten-Freigabe weitergeleitet (in diesem Fall ist das \\storage1\share1).

DFS-Bäume unter Samba funktionieren mit allen DFS-fähigen Clients von Windows 95 bis 200x. ??? zeigt, wie man einen DFS-Baum auf einem Samba-Server einrichtet. Im Verzeichnis /export/dfsroot richten Sie die DFS-Links auf andere Server im Netzwerk ein.

root# cd /export/dfsroot
root# chown root /export/dfsroot
root# chmod 755 /export/dfsroot
root# ln -s msdfs:speicherA\\freigabeA linka
root# ln -s msdfs:serverB\\freigabe,serverC\\freigabe linkb

Beispiel 17.1. smb.conf mit konfiguriertem DFS

[global]
netbios name = GANDALF
host msdfs = yes
[dfs]
path = /export/dfsroot
msdfs root = yes

Sie sollten die Berechtigungen und den Eigentümer des DFS-Wurzelverzeichnisses so setzen, dass nur bestimmte Benutzer die msdfs-Links anlegen, löschen oder verändern können. Beachten Sie auch, dass die Symlink-Namen alle in Kleinschreibung angegeben werden. Diese Einschränkung existiert, um zu vermeiden, dass Samba alle Schreibweisen durchprobiert, um zu dem Linknamen zu gelangen. Zum Abschluss richten Sie die symbolischen Links so ein, dass sie auf die gewünschten Netzwerkfreigaben zeigen, und starten Samba.

Jetzt können Benutzer auf den DFS-fähigen Clients unter \\samba\dfs den DFS-Baum durchsuchen. Zugriffe auf die Links linka oder linkb (die dem Client als Verzeichnisse erscheinen) führen die Benutzer direkt auf die entsprechenden Netzwerk-Freigaben.

Gängige Fehler

  • Windows-Clients müssen rebootet werden, wenn eine zuvor gemountete Nicht-DFS-Freigabe zu einem DFS-Wurzelverzeichnis gemacht wird, oder umgekehrt. Eine bessere Lösung ist, eine neue Freigabe zum DFS-Wurzelverzeichnis zu machen.

  • Derzeit herrscht die Einschränkung, dass alle msdfs-Symlinks in Kleinschreibung benannt werden müssen.

  • Aus Sicherheitsgründen sollte das DFS-Wurzelverzeichnis Eigentümer und Berechtigungen so gesetzt haben, dass nur bestimmte Benutzer die Symlinks in diesem Verzeichnis verändern können.

Der MSDFS-UNIX-Pfad ist „case-critical

Ein Netzwerk-Administrator sandte folgenden Rat an die Samba-Mailing-Liste, nachdem er in langen Sitzungen versucht hatte herauszufinden, warum DFS nicht funktionierte. Sein Rat ist beachtenswert.

Ich habe einige Zeit damit verbracht herauszufinden, warum mein dfs root nicht funktioniert. In der Dokumentation steht, dass der Symlink in Kleinschreibung benannt werden muss. Dies sollte dahingehend berichtigt werden, dass der gesamte Pfad zu dem Symlink auch in Kleinschreibung angegeben werden muss.

Zum Beispiel hatte ich eine Freigabe so definiert:

		[pub]
			path = /export/home/Shares/public_share
			msdfs root = yes
		

und konnte mein Windows 9x/Me (mit installiertem DFS-Client) nicht dazu bringen, diesem Symlink zu folgen:

			damage1 -> msdfs:damage\test-share
		

Der Debug-Level 10 enthüllte:

		[2003/08/20 11:40:33, 5] msdfs/msdfs.c:is_msdfs_link(176)
		  is_msdfs_link: /export/home/shares/public_share/* does not exist.
		

Ich wurde neugierig. Also änderte ich den Verzeichnisnamen von .../Shares/... in .../shares/... (wie auch meine Freigaben-Definition), und es funktionierte!