The NFS section of "Advanced Networking".
Submitted by: Johann Kois <J.Kois@web.de>
This commit is contained in:
parent
45fbed1546
commit
6c7fbabc60
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=16459
1 changed files with 609 additions and 10 deletions
|
@ -3,8 +3,8 @@
|
|||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.28 2003/03/08 18:27:42 mheinen Exp $
|
||||
basiert auf: 1.196
|
||||
$FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.38 2003/04/06 14:26:10 mheinen Exp $
|
||||
basiert auf: 1.202
|
||||
-->
|
||||
|
||||
<chapter id="advanced-networking">
|
||||
|
@ -603,7 +603,7 @@ host2.example.com link#1 UC 0 0
|
|||
(Host) ausgeführt. Angezeigt werden die Gateway-Rechner
|
||||
entlang des Verbindungspfades. Schließlich wird der
|
||||
Zielrechner erreicht oder es kommt zu einem Verbindungsabbruch
|
||||
(z.B. durch Nichterreichbarkeit eines
|
||||
(beispielsweise durch Nichterreichbarkeit eines
|
||||
Gateway-Rechners).</para>
|
||||
|
||||
<para>Für weitere Informationen lesen Sie bitte die
|
||||
|
@ -1154,7 +1154,8 @@ wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
|
||||
<para>Die zweite häufig anzutreffende Situation tritt auf,
|
||||
wenn Firewallfunktionen benötigt werden, ohne dass
|
||||
IP-Maskierung (NAT - Network Adress Translation) verwendet wird.</para>
|
||||
IP-Maskierung (NAT – Network Adress Translation)
|
||||
verwendet wird.</para>
|
||||
|
||||
<para>Ein Beispiel dafür wäre ein kleines Unternehmen,
|
||||
das über DSL oder ISDN an ihren ISP angebunden ist. Es
|
||||
|
@ -1218,7 +1219,7 @@ wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
der Bridge als Firewall lesen Sie bitte den entsprechenden Abschnitt
|
||||
des Handbuchs (<xref linkend="firewalls">).</para>
|
||||
|
||||
<para>Wenn Sie Nicht-IP-Pakete (wie z.B. ARP) durch Ihre
|
||||
<para>Wenn Sie Nicht-IP-Pakete (wie ARP-Pakete) durch Ihre
|
||||
Bridge leiten wollen, müssen Sie eine zusätzliche,
|
||||
undokumentierte Option verwenden. Es handelt sich um
|
||||
<literal>IPFIREWALL_DEFAULT_TO_ACCEPT</literal>.
|
||||
|
@ -1288,12 +1289,610 @@ wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
</sect1>
|
||||
|
||||
<sect1 id="nfs">
|
||||
<title>NFS (Network File System)</title>
|
||||
<!-- j.kois@web.de, 04. April 2003 -->
|
||||
<sect1info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
<contrib>Reorganisiert und erweitert von </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
||||
bitte <ulink
|
||||
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/nfs.html">
|
||||
das Original in englischer Sprache</ulink>.</para>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Bill</firstname>
|
||||
<surname>Swingle</surname>
|
||||
<contrib>Geschrieben von </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
|
||||
<title>NFS – Network File System</title>
|
||||
|
||||
<indexterm><primary>NFS</primary></indexterm>
|
||||
|
||||
<para>Eines der vielen von FreeBSD unterstützten Dateisysteme
|
||||
ist das Netzwerkdateisystem, das auch als <acronym>NFS</acronym>
|
||||
bekannt ist. <acronym>NFS</acronym> ermöglicht es einem
|
||||
System, Dateien und Verzeichnisse über ein Netzwerk mit anderen
|
||||
zu teilen. Über <acronym>NFS</acronym> können Benutzer
|
||||
und Programme auf Daten entfernter Systeme zugreifen, und zwar
|
||||
genauso, wie wenn es sich um lokale Daten handeln würde.</para>
|
||||
|
||||
<para>Einige der wichtigsten Vorteile von <acronym>NFS</acronym>
|
||||
sind:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Lokale Arbeitsstationen benötigen weniger Plattenplatz,
|
||||
da gemeinsam benutzte Daten nur auf einem einzigen Rechner
|
||||
vorhanden sind. Alle anderen Stationen greifen über das
|
||||
Netzwerk auf diese Daten zu.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Benutzer benötigen nur noch ein zentrales
|
||||
Heimatverzeichnis auf einem <acronym>NFS</acronym>-Server.
|
||||
Diese Verzeichnisse sind über das Netzwerk auf allen
|
||||
Stationen verfügbar.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Speichergeräte wie Disketten-, CD-ROM-
|
||||
oder ZIP-Laufwerke können über das Netzwerk von
|
||||
anderen Arbeitstationen genutzt werden. Dadurch sind für
|
||||
das gesamte Netzwerk deutlich weniger Speichergeräte
|
||||
nötig.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect2>
|
||||
<title>Wie funktioniert <acronym>NFS</acronym>?</title>
|
||||
|
||||
<para><acronym>NFS</acronym> besteht aus zwei Hauptteilen: Einem
|
||||
Server und einem oder mehreren Clients. Der Client greift
|
||||
über das Netzwerk auf die Daten zu, die auf dem Server
|
||||
gespeichert sind. Damit dies korrekt funktioniert, müssen
|
||||
einige Prozesse konfiguriert und gestartet werden:</para>
|
||||
|
||||
<para>Der Server benötigt folgende Daemonen:</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>NFS</primary>
|
||||
<secondary>Server</secondary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary><application>portmap</application></primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary><application>mountd</application></primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary><application>nfsd</application></primary>
|
||||
</indexterm>
|
||||
|
||||
<informaltable frame="none">
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Daemon</entry>
|
||||
|
||||
<entry>Beschreibung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>nfsd</entry>
|
||||
|
||||
<entry>Der <acronym>NFS</acronym>-Daemon. Er bearbeitet
|
||||
Anfragen der <acronym>NFS</acronym>-Clients.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>mountd</entry>
|
||||
|
||||
<entry>Der <acronym>NFS</acronym>-Mount-Daemon. Er
|
||||
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
|
||||
weitergibt.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>portmap</entry>
|
||||
|
||||
<entry> Der Portmapper-Daemon. Durch ihn erkennen die
|
||||
<acronym>NFS</acronym>-Clients, welchen Port der
|
||||
<acronym>NFS</acronym>-Server verwendet.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
<para>Der Client kann ebenfalls einen Daemon aufrufen, und zwar den
|
||||
<application>nfsiod</application>-Daemon. Der
|
||||
<application>nfsiod</application>-Daemon bearbeitet Anfragen vom
|
||||
<acronym>NFS</acronym>-Server. Er ist optional und verbessert
|
||||
die Leistung des Netzwerks. Für eine normale und korrekte
|
||||
Arbeit ist er allerdings nicht erforderlich. Lesen Sie
|
||||
&man.nfsiod.8;, wenn Sie weitere Informationen benötigen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="configuring-nfs">
|
||||
|
||||
<title><acronym>NFS</acronym> einrichten</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NFS</primary>
|
||||
<secondary>einrichten</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para><acronym>NFS</acronym> läßt sich leicht
|
||||
einrichten. Die nötigen Prozesse werden durch einige
|
||||
Änderungen in <filename>/etc/rc.conf</filename> bei
|
||||
jedem Systemstart gestartet.</para>
|
||||
|
||||
<para>Stellen Sie sicher, dass auf dem <acronym>NFS</acronym>-Server
|
||||
folgende Optionen in <filename>/etc/rc.conf</filename>
|
||||
gesetzt sind:</para>
|
||||
|
||||
<programlisting>
|
||||
portmap_enable="YES"
|
||||
nfs_server_enable="YES"
|
||||
mountd_flags="-r"
|
||||
</programlisting>
|
||||
|
||||
<para><command>mountd</command> läuft automatisch, wenn der
|
||||
<acronym>NFS</acronym>-Server aktiviert ist.</para>
|
||||
|
||||
<para>Auf dem Client muss in <filename>/etc/rc.conf</filename>
|
||||
folgende Option gesetzt sein:</para>
|
||||
|
||||
<programlisting>nfs_client_enable="YES"</programlisting>
|
||||
|
||||
<para>
|
||||
<filename>/etc/exports</filename> legt fest, welche Dateisysteme
|
||||
<acronym>NFS</acronym> exportieren (manchmal auch als
|
||||
<quote>teilen</quote> bezeichnet) soll. Jede Zeile in
|
||||
<filename>/etc/exports</filename> legt ein Dateisystem sowie
|
||||
die Arbeitsstationen, die darauf Zugriff haben, fest. Außerdem
|
||||
ist es möglich, Zugriffsoptionen festzulegen. Es gibt viele
|
||||
verschiedene Optionen, allerdings werden hier nur einige von
|
||||
ihnen erwähnt. Wenn Sie Informationen über weitere
|
||||
Optionen benötigen, lesen Sie &man.exports.5;.</para>
|
||||
|
||||
<para>Nun folgen einige Beispieleinträge für
|
||||
<filename>/etc/exports</filename>:</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>NFS</primary>
|
||||
<secondary>Beispiele zum Export von Dateisystemen</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Die folgenden Beispiele geben Ihnen Anhaltspunkte zum
|
||||
Exportieren von Dateisystemen, obwohl diese Einstellungen
|
||||
natürlich von Ihrer Arbeitsumgebung und Ihrer
|
||||
Netzwerkkonfiguration abhängen. Das nächste
|
||||
Beispiel exportiert das Verzeichnis <filename>/cdrom</filename>
|
||||
für drei Rechner, die sich in derselben Domäne wie
|
||||
der Server befinden oder für die entsprechende Einträge
|
||||
in <filename>/etc/hosts</filename> existieren.
|
||||
Die Option <option>-ro</option> kennzeichnet das
|
||||
exportierte Dateisystem als schreibgeschützt. Durch dieses
|
||||
Flag ist das entfernte System nicht in der Lage, das exportierte
|
||||
Dateisystem zu verändern.</para>
|
||||
|
||||
<programlisting>/cdrom -ro host1 host2 host3</programlisting>
|
||||
|
||||
<para>Die nächste Zeile exportiert <filename>/home</filename>
|
||||
auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung
|
||||
ist nützlich, wenn Sie über ein privates Netzwerk ohne
|
||||
<acronym>DNS</acronym>-Server verfügen. Optional
|
||||
könnten interne Rechnernamen auch in
|
||||
<filename>/etc/hosts</filename> konfiguriert werden.
|
||||
Benötigen Sie hierzu weitere Informationen, lesen Sie bitte
|
||||
&man.hosts.5;. Durch das Flag <option>-alldirs</option> wird es
|
||||
möglich, auch Unterverzeichnisse als Mountpunkte
|
||||
festzulegen. Dies bedeutet aber nicht, dass alle
|
||||
Unterverzeichnisse eingehängt werden, vielmehr wird es dem
|
||||
Client ermöglicht, nur diejenigen Verzeichnisse
|
||||
einzuhängen, die auch benötigt werden.</para>
|
||||
|
||||
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
|
||||
|
||||
<para>Die nächste Zeile exportiert <filename>/a</filename>,
|
||||
damit Clients von verschiedenen Domänen auf das Dateisystem
|
||||
zugreifen können. Das <option>-maproot=root</option>-Flag
|
||||
erlaubt es dem Benutzer <username>root</username> des entfernten
|
||||
Systems, als <username>root</username> auf das exportierte
|
||||
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
|
||||
kann selbst <username>root</username> nicht auf das exportierte
|
||||
Dateisystem schreiben.</para>
|
||||
|
||||
<programlisting>/a -maproot=root host.example.com box.example.org</programlisting>
|
||||
|
||||
<para>Damit ein Client auf ein exportiertes Dateisystem zugreifen
|
||||
kann, muss ihm dies explizit gestattet werden. Stellen Sie also
|
||||
sicher, dass der Client in <filename>/etc/exports</filename>
|
||||
aufgeführt wird.</para>
|
||||
|
||||
<para>Jede Zeile in <filename>/etc/exports</filename> entspricht
|
||||
der Exportinformation für ein Dateisystem auf einen Rechner.
|
||||
Ein entfernter Rechner kann für jedes Dateisystem nur
|
||||
einmal festgelegt werden, und kann auch nur einen Standardeintrag
|
||||
haben. Nehmen wir an, dass <filename>/usr</filename>
|
||||
ein einziges Dateisystem ist. Dann wären folgende Zeilen
|
||||
ungültig:</para>
|
||||
|
||||
<programlisting>
|
||||
/usr/src client
|
||||
/usr/ports client
|
||||
</programlisting>
|
||||
|
||||
<para>Das Dateisystem <filename>/usr</filename> wird hier zweimal
|
||||
auf den selben Rechner (<hostid>client</hostid>)
|
||||
exportiert. Dies ist aber nicht zulässig. Der richtige
|
||||
Eintrag sieht daher so aus:</para>
|
||||
|
||||
<programlisting>/usr/src /usr/ports client</programlisting>
|
||||
|
||||
<para>Die Eigenschaften eines auf einen anderen Rechner
|
||||
exportierten Dateisystems müssen alle in einer Zeile
|
||||
stehen. Zeilen, in denen kein Rechner festgelegt wird, werden
|
||||
als einzelner Rechner behandelt. Dies schränkt die
|
||||
Möglichkeiten zum Export von Dateisystemen ein, für
|
||||
die meisten Anwender ist dies aber kein Problem.</para>
|
||||
|
||||
<para>Eine gültige Exportliste, in der
|
||||
<filename>/usr</filename> und <filename>/exports</filename>
|
||||
lokale Dateisysteme sind, sieht so aus:</para>
|
||||
|
||||
<programlisting>
|
||||
# Export src and ports to client01 and client02, but only
|
||||
# client01 has root privileges on it
|
||||
/usr/src /usr/ports -maproot=root client01
|
||||
/usr/src /usr/ports client02
|
||||
# The client machines have root and can mount anywhere
|
||||
# on /exports. Anyone in the world can mount /exports/obj read-only
|
||||
/exports -alldirs -maproot=root client01 client02
|
||||
/exports/obj -ro
|
||||
</programlisting>
|
||||
|
||||
<para>Sie müssen <command>mountd</command> nach jeder
|
||||
Änderung von <filename>/etc/exports</filename> neu
|
||||
starten, damit die Änderungen wirksam werden. Dies
|
||||
kann durch das Senden des HUP-Signals an den
|
||||
<command>mountd</command>-Prozess erfolgen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
|
||||
|
||||
<para>Alternativ können Sie auch das System neu starten.
|
||||
Dies ist allerdings nicht nötig. Wenn Sie die folgenden
|
||||
Befehle als <username>root</username> ausführen, sollte
|
||||
alles korrekt gestartet werden.</para>
|
||||
|
||||
<para>Auf dem <acronym>NFS</acronym>-Server:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portmap</userinput>
|
||||
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
|
||||
&prompt.root; <userinput>mountd -r</userinput></screen>
|
||||
|
||||
<para>Auf dem <acronym>NFS</acronym>-Client:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
|
||||
|
||||
<para>Nun sollte alles bereit sein, um ein entferntes Dateisystem
|
||||
einhängen zu können. In unseren Beispielen nennen wir
|
||||
den Server <literal>server</literal>, den Client
|
||||
<literal>client</literal>. Wenn Sie ein entferntes Dateisystem
|
||||
nur zeitweise einhängen wollen, oder nur Ihre Konfiguration
|
||||
testen möchten, führen Sie auf dem Client als
|
||||
<username>root</username> einen Befehl ähnlich dem
|
||||
folgenden aus:</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>NFS</primary>
|
||||
<secondary>Dateisysteme einhängen</secondary>
|
||||
</indexterm>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount server:/home /mnt</userinput></screen>
|
||||
|
||||
<para>Dadurch wird das Verzeichnis <filename>/home</filename> des
|
||||
Servers auf dem Client unter <filename>/mnt</filename> eingehängt.
|
||||
Wenn alles korrekt konfiguriert wurde, sehen Sie auf dem Client
|
||||
im Verzeichnis <filename>/mnt</filename> alle Dateien des
|
||||
Servers.</para>
|
||||
|
||||
<para>Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
|
||||
automatisch einhängen wollen, fügen Sie das Dateisystem
|
||||
in <filename>/etc/fstab</filename> ein. Dazu ein Beispiel:</para>
|
||||
|
||||
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
|
||||
|
||||
<para>Für Informationen zu allen möglichen Optionen lesen
|
||||
Sie bitte &man.fstab.5;.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Praktische Anwendungen</title>
|
||||
|
||||
<para><acronym>NFS</acronym> ist in vielen Situationen
|
||||
nützlich. Einige Anwendungsbereiche finden Sie in der
|
||||
folgenden Liste:</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>NFS</primary>
|
||||
<secondary>Anwendungsbeispiele</secondary>
|
||||
</indexterm>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Mehrere Maschinen können sich ein CD-ROM-Laufwerk
|
||||
oder andere Medien teilen. Dies ist billiger und außerdem
|
||||
praktischer, um Programme auf mehreren Rechnern zu
|
||||
installieren.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>In größeren Netzwerken ist es praktisch,
|
||||
einen zentralen <acronym>NFS</acronym>-Server einzurichten,
|
||||
auf dem die Heimatverzeichnisse der Benutzer gespeichert
|
||||
werden. Diese Heimatverzeichnisse werden über das
|
||||
Netzwerk exportiert. Dadurch haben die Benutzer immer das
|
||||
gleiche Heimatverzeichnis zur Verfügung,
|
||||
unabhängig davon, an welchem Arbeitsplatz sie sich
|
||||
anmelden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Verschiedene Rechner können auf ein gemeinsames
|
||||
<filename>/usr/ports/distfiles</filename>-Verzeichnis
|
||||
zugreifen. Wenn Sie nun einen Port auf mehreren Rechnern
|
||||
installieren wollen, greifen Sie einfach auf dieses
|
||||
Verzeichnis zu, ohne die Quelldateien auf jede Maschine
|
||||
zu kopieren.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="amd">
|
||||
<!-- j.kois@web.de, 05. April 2003 -->
|
||||
<sect2info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Wylie</firstname>
|
||||
<surname>Stilwell</surname>
|
||||
<contrib>Beigetragen von </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Chern</firstname>
|
||||
<surname>Lee</surname>
|
||||
<contrib>Überarbeitet von </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect2info>
|
||||
|
||||
<title>AMD</title>
|
||||
|
||||
<indexterm><primary>amd</primary></indexterm>
|
||||
<indexterm><primary>Automatic Mounter Daemon</primary></indexterm>
|
||||
|
||||
<para>&man.amd.8; (Automatic Mounter Daemon) hängt ein
|
||||
entferntes Dateisystem automatisch ein,
|
||||
wenn auf eine Datei oder ein Verzeichnis in diesem Dateisystem
|
||||
zugegriffen wird. Dateisysteme, die über einen gewissen
|
||||
Zeitraum inaktiv sind, werden von <application>amd</application>
|
||||
automatisch abgehängt.
|
||||
<application>amd</application> ist eine einfache
|
||||
Alternative zum dauerhaften Einhängen von Dateisystemen
|
||||
in <filename>/etc/fstab</filename>.</para>
|
||||
|
||||
<para>In der Voreinstellung stellt <application>amd</application>
|
||||
die Verzeichnisse <filename>/host</filename> und
|
||||
<filename>/net</filename> als NFS-Server bereit. Wenn auf eine Datei
|
||||
in diesen Verzeichnissen zugegriffen wird, sucht
|
||||
<application>amd</application> den entsprechenden Mountpunkt
|
||||
und hängt das Dateisystem automatisch ein.
|
||||
<filename>/net</filename> wird zum Einhängen von
|
||||
exportierten Dateisystemen von einer IP-Adresse verwendet,
|
||||
während <filename>/host</filename> zum Einhängen
|
||||
von exportierten Dateisystemen eines durch seinen Namen
|
||||
festgelegten Rechners dient.</para>
|
||||
|
||||
<para>Ein Zugriff auf eine Datei in
|
||||
<filename>/host/foobar/usr</filename> würde
|
||||
<application>amd</application> veranlassen,
|
||||
das von <hostid>foobar</hostid> exportierte Dateisystem
|
||||
<filename>/usr</filename> einzuhängen.</para>
|
||||
|
||||
<example>
|
||||
<title>Ein exportiertes Dateisystem mit
|
||||
<application>amd</application> in den Verzeichnisbaum
|
||||
einhängen</title>
|
||||
|
||||
<para>Sie können sich die verfügbaren Mountpunkte
|
||||
eines entfernten Rechners mit <command>showmount</command>
|
||||
ansehen. Wollen Sie sich die Mountpunkte des Rechners
|
||||
<hostid>foobar</hostid> ansehen, so verwenden Sie:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>showmount -e foobar</userinput>
|
||||
Exports list on foobar:
|
||||
/usr 10.10.10.0
|
||||
/a 10.10.10.0
|
||||
&prompt.user; <userinput>cd /host/foobar/usr</userinput></screen>
|
||||
</example>
|
||||
|
||||
<para>Wie Sie an diesem Beispiel erkennen können, zeigt
|
||||
<command>showmount</command> <filename>/usr</filename>
|
||||
als exportiertes Dateisystem an. Wenn man in das Verzeichnis
|
||||
<filename>/host/foobar/usr</filename> wechselt, versucht
|
||||
<application>amd</application> den Rechnernamen
|
||||
<hostid>foobar</hostid> aufzulösen und den gewünschten
|
||||
Export in den Verzeichnisbaum einzuhängen.</para>
|
||||
|
||||
<para><application>amd</application> kann durch das Einfügen
|
||||
der folgenden Zeile in <filename>/etc/rc.conf</filename>
|
||||
automatisch gestartet werden:</para>
|
||||
|
||||
<programlisting>amd_enable="YES"</programlisting>
|
||||
|
||||
<para>Mit der Option <varname>amd_flags</varname> kann
|
||||
<application>amd</application> angepasst werden.
|
||||
Die Voreinstellung für <varname>amd_flags</varname> sieht
|
||||
so aus:</para>
|
||||
|
||||
<programlisting>amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"</programlisting>
|
||||
|
||||
<para><filename>/etc/amd.map</filename> legt die Standardoptionen
|
||||
fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum
|
||||
eingehängt werden. <filename>/etc/amd.conf</filename>
|
||||
hingegen legt einige der erweiterten Optionen von
|
||||
<application>amd</application> fest.</para>
|
||||
|
||||
<para>Für weitere Informationen lesen Sie bitte &man.amd.8;
|
||||
und &man.amd.conf.5;.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="nfs-integration">
|
||||
<!-- j.kois@web.de, 05. April 2003 -->
|
||||
<sect2info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>John</firstname>
|
||||
<surname>Lind</surname>
|
||||
<contrib>Beigetragen von </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect2info>
|
||||
|
||||
<title>Integrationsprobleme mit anderen Systemen</title>
|
||||
|
||||
<para>Bestimmte ISA-Ethernetadapter haben Beschränkungen, die
|
||||
zu ernsthaften Netzwerkproblemen, insbesondere mit NFS
|
||||
führen können. Es handelt sich dabei nicht um ein
|
||||
FreeBSD-spezifisches Problem, aber FreeBSD-Systeme sind davon
|
||||
ebenfalls betroffen.</para>
|
||||
|
||||
<para>Das Problem tritt fast ausschließlich dann auf, wenn
|
||||
(FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden,
|
||||
wie Systemen von Silicon Graphics, Inc. oder
|
||||
Sun Microsystems, Inc. Das Einhängen via NFS funktioniert
|
||||
problemlos, auch einige Dateioperationen können erfolgreich
|
||||
sein. Plötzlich aber wird der Server nicht mehr auf den
|
||||
Client reagieren, obwohl Anfragen an und von anderen Rechnern
|
||||
weiter bearbeitet werden. Dieses Problem betrifft stets den
|
||||
Client, egal ob es sich beim Client um das FreeBSD-System oder
|
||||
den Hochleistungsrechner handelt. Auf vielen Systemen gibt es
|
||||
keine Möglichkeit mehr, den Client ordnungsgemäß
|
||||
zu beenden. Die einzige Lösung ist oft, den Rechner neu
|
||||
zu starten, da dieses NFS-Problem nicht mehr behoben werden kann.</para>
|
||||
|
||||
<para>Die <quote>korrekte</quote> Lösung für dieses
|
||||
Problem ist es, sich eine schnellere Ethernetkarte für
|
||||
FreeBSD zu kaufen. Allerdings gibt es auch eine einfache und
|
||||
meist zufriedenstellende Lösung, um dieses Problem zu
|
||||
umgehen. Wenn es sich beim FreeBSD-System um den
|
||||
<emphasis>Server</emphasis> handelt, verwenden Sie beim
|
||||
Einhängen in den Verzeichnisbaum auf der Clientseite
|
||||
zusätzlich die Option <option>-w=1024</option> . Wenn es
|
||||
sich beim FreeBSD-System um den <emphasis>Client</emphasis>
|
||||
handelt, dann hängen Sie das NFS-Dateisystem mit der
|
||||
zusätzlichen Option <option>-r=1024</option> ein.
|
||||
Diese Optionen können auf der Clientseite auch durch
|
||||
das vierte Feld der Einträge in <filename>/etc/fstab</filename>
|
||||
festgelegt werden, damit die Dateisysteme automatisch eingehängt
|
||||
werden. Um die Dateisysteme manuell einzuhängen, verwendet
|
||||
man bei <command>mount</command> zusätzlich die Option
|
||||
<option>-o</option>.</para>
|
||||
|
||||
<para>Es gibt ein anderes Problem, das oft mit diesem verwechselt
|
||||
wird. Dieses andere Problem tritt auf, wenn sich über NFS
|
||||
verbundene Server und Clients in verschiedenen Netzwerken
|
||||
befinden. Wenn dies der Fall ist, stellen Sie
|
||||
<emphasis>sicher</emphasis>, dass Ihre Router die
|
||||
nötigen UDP-Informationen weiterleiten, oder Sie werden
|
||||
nirgends hingelangen, egal was Sie machen.</para>
|
||||
|
||||
<para>In den folgenden Beispielen ist <hostid>fastws</hostid> der
|
||||
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
|
||||
<hostid>freebox</hostid> hingegen ist der Name des
|
||||
FreeBSD-Systems, das über eine Netzkarte mit geringer
|
||||
Leistung verfügt. <filename>/sharedfs</filename> ist das
|
||||
exportierte NFS -Dateisystem (lesen Sie dazu auch
|
||||
&man.exports.5;). Bei <filename>/project</filename> handelt es
|
||||
sich um den Mountpunkt, an dem das exportierte Dateisystem auf
|
||||
der Clientseite eingehängt wird. In allen Fällen
|
||||
können zusätzliche Optionen, wie z.B.
|
||||
<option>hard</option>, <option>soft</option> oder
|
||||
<option>bg</option> wünschenswert sein.</para>
|
||||
|
||||
<para>FreeBSD als Client (eingetragen in
|
||||
<filename>/etc/fstab</filename> auf <hostid>freebox</hostid>):</para>
|
||||
|
||||
<programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
|
||||
|
||||
<para>Manuelles Einhängen auf <hostid>freebox</hostid>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
|
||||
|
||||
<para>FreeBSD als Server (eingetragen in
|
||||
<filename>/etc/fstab</filename> auf <hostid>fastws</hostid>):</para>
|
||||
|
||||
<programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
|
||||
|
||||
<para>Manuelles Einhängen auf <hostid>fastws</hostid>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen>
|
||||
|
||||
<para>Nahezu alle 16-bit Ethernetadapter erlauben Operationen
|
||||
ohne obengenannte Einschränkungen auf die Lese- oder
|
||||
Schreibgröße.</para>
|
||||
|
||||
<para>Für alle technisch Interessierten wird nun beschrieben,
|
||||
was passiert, wenn dieser Fehler auftritt, und warum er
|
||||
irreversibel ist. NFS arbeitet üblicherweise mit einer
|
||||
<quote>Blockgröße</quote> von 8 kByte (obwohl
|
||||
es kleinere Fragmente zulassen würde). Da die maximale
|
||||
Rahmengröße von Ethernet 1500 Bytes
|
||||
beträgt, wird der NFS-<quote>Block</quote> in einzelne
|
||||
Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine
|
||||
Einheit handelt, die auch als Einheit empfangen, verarbeitet
|
||||
und <emphasis>bestätigt</emphasis> werden muss. Der
|
||||
Hochleistungsrechner verschickt die Pakete, aus denen der
|
||||
NFS-Block besteht, so eng hintereinander, wie es der Standard
|
||||
erlaubt. Auf der anderen Seite (auf der sich die langsamere
|
||||
Netzkarte befindet), überschreiben die späteren
|
||||
Pakete ihre Vorgänger, bevor diese vom System verarbeitet
|
||||
werden (Überlauf!). Dies hat zur Folge, dass der NFS-Block
|
||||
nicht mehr rekonstruiert und bestätigt werden kann. Als
|
||||
Folge davon glaubt der Hochleistungsrechner, dass der andere
|
||||
Rechner nicht erreichbar ist (Timeout!) und versucht die
|
||||
Sendung zu wiederholen. Allerdings wird wiederum der komplette
|
||||
NFS-Block verschickt, so dass sich der ganze Vorgang wiederholt,
|
||||
und zwar immer wieder (oder bis zum Systemneustart).</para>
|
||||
|
||||
<para>Indem wir die Einheitengröße unter der maximalen
|
||||
Größe der Ethernetpakete halten, können wir
|
||||
sicherstellen, dass jedes vollständig erhaltene
|
||||
Ethernetpaket individuell angesprochen werden kann und vermeiden
|
||||
die Blockierung des Systems.</para>
|
||||
|
||||
<para>Überläufe können zwar nach wie vor auftreten,
|
||||
wenn ein Hochleistungsrechner Daten auf ein PC-System
|
||||
transferiert. Durch die besseren (und schnelleren) Netzkarten
|
||||
treten solche Überläufe allerdings nicht mehr
|
||||
<emphasis>zwingend</emphasis> auf, wenn
|
||||
NFS-<quote>Einheiten</quote> übertragen werden. Tritt nun
|
||||
ein Überlauf auf, wird die betroffene Einheit erneut
|
||||
verschickt, und es besteht eine gute Chance, dass sie nun
|
||||
erhalten, verarbeitet und bestätigt werden kann.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="diskless">
|
||||
|
|
Loading…
Reference in a new issue