Update to r42602:

Improve NFS section.

Approved by:	bcr
Differential Revision:	https://reviews.freebsd.org/D5036
This commit is contained in:
Bjoern Heidotting 2016-01-23 13:09:16 +00:00
parent 6262256695
commit d8c3be379b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48079

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/network-servers/chapter.xml,v 1.103 2011/12/24 15:51:18 bcr Exp $
basiert auf: r42525
basiert auf: r42602
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="network-servers">
<info><title>Netzwerkserver</title>
@ -565,7 +565,7 @@ server-program-arguments</programlisting>
</sect1>
<sect1 xml:id="network-nfs">
<info><title>NFS &ndash; Network File System</title>
<info><title>Network File System (NFS)</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Reorganisiert und erweitert von </contrib></author>
</authorgroup>
@ -578,40 +578,42 @@ server-program-arguments</programlisting>
<indexterm><primary>NFS</primary></indexterm>
<para>Eines der vielen von FreeBSD unterstützten Dateisysteme
ist das Netzwerkdateisystem, das auch als <acronym role="Network File System">NFS</acronym>
bekannt ist. <acronym role="Network File System">NFS</acronym>
ermöglicht es einem System, Dateien und Verzeichnisse
über ein Netzwerk mit anderen zu teilen. Über
<acronym role="Network File System">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>&os; unterstützt das Netzwerkdateisystem
<acronym>NFS</acronym>, das es einem Server erlaubt, Dateien
und Verzeichnisse über ein Netzwerk mit Clients zu teilen. Mit
<acronym>NFS</acronym> können Benutzer und Programme auf Daten
entfernter Systeme zugreifen, und zwar so, als ob es sich
um lokal gespeicherte Daten handeln würde.</para>
<para>Einige der wichtigsten Vorteile von <acronym>NFS</acronym>
<para>Die 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>
<para>Daten, die sonst auf jeden Client dupliziert würden,
können an einem zentralen Ort aufbewahrt, und von den Clients
über das Netzwerk aufgerufen werden.</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>
<para>Die Heimatverzeichnisse der Benutzer werden an einem
zentralen Ort gespeichert und den Benutzern über das
Netzwerk zur Verfügung gestellt.</para>
</listitem>
<listitem>
<para>Speichergeräte wie Disketten-, CD-ROM- oder
&iomegazip;-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>
<para>Die Verwaltung der <acronym>NFS</acronym>-Exporte wird
vereinfacht. Zum Beispiel gibt es dann nur noch ein
Dateisystem, für das Sicherheits- oder Backup-Richtlinien
festgelegt werden müssen.</para>
</listitem>
<listitem>
<para>Wechselmedien können von anderen Maschinen im Netzwerk
verwendet werden. Dies reduziert die Anzahl von Geräten im
Netzwerk und bietet einen zentralen Ort für die Verwaltung.
Oft ist es einfacher, über ein zentrales Installationsmedium
Software auf mehreren Computern zu installieren.</para>
</listitem>
</itemizedlist>
@ -624,7 +626,8 @@ server-program-arguments</programlisting>
gespeichert sind. Damit dies korrekt funktioniert, müssen
einige Prozesse konfiguriert und gestartet werden:</para>
<para>Der Server benötigt folgende Daemonen:</para>
<para>Folgende Daemonen müssen auf dem Server ausgeführt
werden:</para>
<indexterm>
<primary>NFS</primary>
@ -688,13 +691,9 @@ server-program-arguments</programlisting>
</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. Mehr erfahren
Sie in der Hilfeseite &man.nfsiod.8;.</para>
<para>Der Einsatz von &man.nfsiod.8; ist nicht zwingend
erforderlich, kann aber die Leistung auf dem Client
verbessern.</para>
</sect2>
<sect2 xml:id="network-configuring-nfs">
@ -706,13 +705,10 @@ server-program-arguments</programlisting>
</indexterm>
<para><acronym>NFS</acronym> lässt 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 der Datei
<filename>/etc/rc.conf</filename> gesetzt sind:</para>
aktivieren. Die nötigen Prozesse werden durch das
Hinzufügen der folgenden Optionen in
<filename>/etc/rc.conf</filename> bei jedem Systemstart
ausgeführt:</para>
<programlisting>rpcbind_enable="YES"
nfs_server_enable="YES"
@ -721,23 +717,19 @@ mountd_flags="-r"</programlisting>
<para><application>mountd</application> 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>
<para>Um den Client zu aktivieren, muss folgende Option in
<filename>/etc/rc.conf</filename> gesetzt werden:</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. Weitere Optionen
werden in &man.exports.5; erörtert.</para>
<para>Nun folgen einige Beispieleinträge für
<filename>/etc/exports</filename>:</para>
Dateisysteme <acronym>NFS</acronym> exportieren soll. Jede
Zeile in <filename>/etc/exports</filename> beschreibt ein zu
exportierendes Dateisystem, Clients, die darauf
Zugriff haben sowie alle Zugriffsoptionen. Es gibt viele
verschiedene Optionen, allerdings werden hier nur wenige von
ihnen erwähnt. Eine vollständige Liste der Optionen finden
Sie in &man.exports.5;.</para>
<indexterm>
<primary>NFS</primary>
@ -747,56 +739,61 @@ mountd_flags="-r"</programlisting>
<para>Die folgenden Beispiele geben Anhaltspunkte zum
Exportieren von Dateisystemen, obwohl diese Einstellungen
natürlich von der Arbeitsumgebung und der
Netzwerkkonfiguration abhängen. Das nächste Beispiel
exportiert <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>
Netzwerkkonfiguration abhängen.</para>
<para>Dieses Beispiel exportiert <filename>/cdrom</filename> für
drei Clients, <replaceable>alpha</replaceable>,
<replaceable>bravo</replaceable> und
<replaceable>charlie</replaceable>:</para>
<programlisting>/cdrom -ro host1 host2 host3</programlisting>
<programlisting>/cdrom -ro <replaceable>alpha</replaceable> <replaceable>bravo</replaceable> <replaceable>charlie</replaceable></programlisting>
<para>Die nächste Zeile exportiert <filename>/home</filename>
auf drei durch IP-Adressen bestimmte Rechner. Diese
Einstellung ist für ein privates Netzwerk nützlich, dass über
keinen <acronym>DNS</acronym>-Server verfügt. 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>
<para>Die Option <option>-ro</option> kennzeichnet das
exportierte Dateisystem als schreibgeschützt. Dadurch sind
Clients nicht in der Lage, das exportierte Dateisystem zu
verändern.</para>
<para>Das nächste Beispiel exportiert <filename>/home</filename>
auf drei durch <acronym>IP</acronym>-Adressen bestimmte
Clients. Diese Einstellung kann für Netzwerke ohne
<acronym>DNS</acronym>-Server nützlich sein. Optional können
interne Rechnernamen auch in <filename>/etc/hosts</filename>
konfiguriert werden. Benötigen Sie hierzu weitere
Informationen, lesen Sie bitte &man.hosts.5;. Die Option
<option>-alldirs</option> ermöglicht es, 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 <systemitem class="username">root</systemitem> des entfernten
Systems, als <systemitem class="username">root</systemitem> auf das exportierte
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
kann selbst <systemitem class="username">root</systemitem> nicht auf das exportierte
Dateisystem schreiben.</para>
damit Clients von verschiedenen Domänen auf das Dateisystem
zugreifen können. Die Option <option>-maproot=root</option>
erlaubt es dem Benutzer <systemitem
class="username">root</systemitem> des Clients, als
<systemitem class="username">root</systemitem> auf das
exportierte Dateisystem zu schreiben. Wenn diese Option nicht
gesetzt ist, wird der <systemitem class="username">
root</systemitem>-Benutzer des Clients dem <systemitem
class="username">nobody</systemitem>-Konto des Servers
zugeordnet und unterliegt somit den Zugriffsbeschränkungen
dieses Kontos.</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>Damit ein Client auf ein exportiertes Dateisystem
zugreifen kann, muss er in <filename>/etc/exports</filename>
eingetragen sein.</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>
der Exportinformation für ein Dateisystem auf einem oder
mehreren Clients. Ein entfernter Rechner kann für jedes
Dateisystem nur einmal definiert werden. Nehmen wir an, dass
<filename>/usr</filename> ein gesondertes Dateisystem ist.
Dann wären folgende Zeilen in
<filename>/etc/exports</filename> ungültig:</para>
<programlisting>#Nicht erlaubt, wenn /usr ein einziges Dateisystem ist
/usr/src client
@ -811,10 +808,9 @@ mountd_flags="-r"</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>
stehen. Wird in einer Zeile kein Rechner festgelegt, dürfen
alle Clients im Netzwerk das exportierte Dateisystem
einhängen.</para>
<para>Eine gültige Exportliste, in der
<filename>/usr</filename> und <filename>/exports</filename>
@ -829,28 +825,24 @@ mountd_flags="-r"</programlisting>
/exports -alldirs -maproot=root client01 client02
/exports/obj -ro</programlisting>
<para>Der Daemon <application>mountd</application> muss
die Datei <filename>/etc/exports</filename> nach jeder
Änderung neu einlesen, damit die Änderungen
wirksam werden. Dies kann durch das Senden des
HUP-Signals an den <command>mountd</command>-Prozess
erfolgen:</para>
<para>Wenn der <acronym>NFS</acronym>-Server startet, wird
auch <application>mountd</application> automatisch gestartet.
Allerdings liest <application>mountd</application>
<filename>/etc/exports</filename> nur, wenn der Server
gestartet wird. Um nachfolgende Änderungen an
<filename>/etc/exports</filename> wirksam werden zu lassen,
kann <application>mountd</application> angewiesen werden, die
Datei neu einzulesen:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
<para>Alternativ können Sie das
<command>mountd</command>-&man.rc.8;-Skript auch mit dem
passenden Parameter aufrufen:</para>
<screen>&prompt.root; <userinput>service mountd onereload</userinput></screen>
<screen>&prompt.root; <userinput>service mountd reload</userinput></screen>
<para>Lesen Sie bitte <xref linkend="configtuning-rcd"/>
des Handbuchs für Informationen zum Einsatz der
rc-Skripte.</para>
<para>Die <acronym>NFS</acronym>-Dienste können nun auf dem
<acronym>NFS</acronym>-Server als <systemitem
class="username">root</systemitem> gestartet werden:</para>
Server als <systemitem class="username">root</systemitem>
gestartet werden:</para>
<screen>&prompt.root; <userinput>service nfsd start</userinput></screen>
@ -858,14 +850,14 @@ mountd_flags="-r"</programlisting>
<screen>&prompt.root; <userinput>service nfsclient restart</userinput></screen>
<para>Nun sollte alles bereit sein, um ein entferntes
Dateisystem einhängen zu können. In unseren Beispielen nennen
wir den Server <systemitem>server</systemitem>, den Client
<para>Der Client ist nun in der Lage, ein entferntes Dateisystem
einzuhängen. In diesen Beispielen ist der Name des Servers
<systemitem>server</systemitem> und der Name des Clients
<systemitem>client</systemitem>. Für Testzwecke oder zum
temporären einhängen eines entfernten Dateisystems, führen Sie
auf dem Client als
<systemitem class="username">root</systemitem> einen Befehl
ähnlich dem folgenden aus:</para>
auf dem Rechner <systemitem>client</systemitem> den Befehl
<command>mount</command>als
<systemitem class="username">root</systemitem> aus:</para>
<indexterm>
<primary>NFS</primary>
@ -874,16 +866,14 @@ mountd_flags="-r"</programlisting>
<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 ist, sollten alle
Dateien des Servers im Verzeichnis <filename>/mnt</filename>
sichtbar und verfügbar sein.</para>
<para>Die Dateien und Verzeichnisse in
<filename>/home</filename> stehen dem Rechner
<systemitem>client</systemitem> nun im Verzeichnis
<filename>/mnt</filename> zur Verfügung.</para>
<para>Um ein entferntes Dateisystem nach jedem Systemstart
<para>Um ein entferntes Dateisystem bei jedem Systemstart
automatisch einzuhängen, fügen Sie das Dateisystem in
<filename>/etc/fstab</filename> ein. Dazu ein
Beispiel:</para>
<filename>/etc/fstab</filename> ein:</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
@ -894,33 +884,27 @@ mountd_flags="-r"</programlisting>
<sect2>
<title>Dateien sperren (<foreignphrase>Locking</foreignphrase>)</title>
<para>Einige Anwendungen (beispielsweise
<application>mutt</application>) erfordern die Sperrung von
Dateien, damit sie korrekt arbeiten. Verwenden Sie
<acronym>NFS</acronym>, so können Sie für die
Sperrung von Dateien <application>rpc.lockd</application>
einsetzen. Um diesen Daemon zu aktivieren, müssen Sie
in <filename>/etc/rc.conf</filename> (sowohl auf Client- als
auch auf Serverseite) folgende Zeilen aufnehmen (wobei
vorausgesetzt wird, dasss <acronym>NFS</acronym> auf beiden
Systemen bereits konfiguriert ist):</para>
<para>Einige Anwendungen erfordern die Sperrung von Dateien,
damit sie korrekt arbeiten. Um diese Sperre zu aktivieren,
müssen diese Zeilen in <filename>/etc/rc.conf</filename>
sowohl auf dem Client als auch auf dem Server hinzugefügt
werden:</para>
<programlisting>rpc_lockd_enable="YES"
rpc_statd_enable="YES"</programlisting>
<para>Danach starten Sie die Anwendung zur Verwaltung der
Dateisperren durch folgenden Befehl:</para>
<para>Danach starten Sie die beiden Anwendungen:</para>
<screen>&prompt.root; <userinput>service lockd start</userinput>
&prompt.root; <userinput>/etc/rc.d/statd start</userinput></screen>
&prompt.root; <userinput>service statd start</userinput></screen>
<para>Benötigen Sie keine echten Dateisperren zwischen den
<para>Wenn keine Dateisperren zwischen den
<acronym>NFS</acronym>-Clients und dem
<acronym>NFS</acronym>-Server, können Sie den
<acronym>NFS</acronym>-Server benötigt werden, können Sie den
<acronym>NFS</acronym>-Client durch die Übergabe der
Option <option>-L</option> an &man.mount.nfs.8; zu einer lokalen
Sperrung von Dateien zwingen. Lesen Sie dazu auch die
Manualpage &man.mount.nfs.8;.</para>
Option <option>-L</option> an &man.mount.nfs.8; zu einer
lokalen Sperrung von Dateien zwingen. Weitere Details finden
Sie in &man.mount.nfs.8;.</para>
</sect2>
<sect2>
@ -937,29 +921,28 @@ rpc_statd_enable="YES"</programlisting>
<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>
<para>Mehrere Maschinen können sich ein
<acronym>CD-ROM</acronym>-Laufwerk oder andere Medien
teilen. Dies ist praktisch, um Programme von einem
einzelnen Standort aus 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>
<para>In größeren Netzwerken ist es praktisch, einen
zentralen <acronym>NFS</acronym>-Server einzurichten, auf
dem die Heimatverzeichnisse der Benutzer gespeichert
werden. Dadurch steht den Benutzern immer das gleiche
Heimatverzeichnis zur Verfügung, unabhängig davon, an
welchem Client im Netzwerk sie sich anmelden.</para>
</listitem>
<listitem>
<para>Verschiedene Rechner können auf ein gemeinsames
<para>Verschiedene Clients können auf ein gemeinsames
Verzeichnis <filename>/usr/ports/distfiles</filename>
zugreifen. Dies ermöglicht einen schnellen Zugriff auf
die Quelldateien, ohne sie auf jede Maschine zu
kopieren zu müssen.</para>
zugreifen. Die gemeinsame Nutzung dieses Verzeichnisses
ermöglicht einen schnellen Zugriff auf die Quelldateien,
ohne sie auf jede Maschine zu kopieren zu müssen.</para>
</listitem>
</itemizedlist>
</sect2>
@ -986,9 +969,9 @@ rpc_statd_enable="YES"</programlisting>
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>
<application>amd</application> ist eine 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
@ -1013,10 +996,9 @@ rpc_statd_enable="YES"</programlisting>
<application>amd</application> in den Verzeichnisbaum
einhängen</title>
<para>Das Kommando <command>showmount</command> zeigt die
verfügbaren Mountpunkte eines entfernten Rechners. Um sich
die Mountpunkte des Rechners <systemitem>foobar</systemitem>
anzusehen, verwenden Sie:</para>
<para><command>showmount -e</command> zeigt die exportierten
Dateisysteme des <acronym>NFS</acronym>-Servers
<systemitem>foobar</systemitem> an:</para>
<screen>&prompt.user; <userinput>showmount -e foobar</userinput>
Exports list on foobar:
@ -1025,24 +1007,32 @@ Exports list on foobar:
&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
<systemitem>foobar</systemitem> aufzulösen und den gewünschten
Export in den Verzeichnisbaum einzuhängen.</para>
<para>Die Ausgabe von <command>showmount</command> zeigt
<filename>/usr</filename> als exportiertes Dateisystem an.
Wenn man in das Verzeichnis
<filename>/host/foobar/usr</filename> wechselt, fängt
<application>amd</application> die Anfrage ab und versucht
den Rechnernamen <systemitem>foobar</systemitem> aufzulösen.
Wenn dies gelingt, wird <application>amd</application>
automatisch den gewünschten Export in den Verzeichnisbaum
einhängen.</para>
<para><application>amd</application> kann durch das Einfügen
der folgenden Zeile in <filename>/etc/rc.conf</filename>
automatisch gestartet werden:</para>
<para><application>amd</application> kann durch folgende 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>
<para>Um <application>amd</application> direkt zu
starten:</para>
<screen>&prompt.root; <userinput>service amd start</userinput></screen>
<para>Individuelle Optionen können über die Umgebungsvariable
<varname>amd_flags</varname> an <application>amd</application>
übergeben werden. In der Voreinstellung ist
<varname>amd_flags</varname> eingestellt auf:</para>
<programlisting>amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"</programlisting>
@ -1055,140 +1045,6 @@ Exports list on foobar:
<para>Weitere Informationen finden Sie in den Hilfeseiten
&man.amd.8; und &man.amd.conf.5;.</para>
</sect2>
<sect2 xml:id="network-nfs-integration">
<info><title>Integrationsprobleme mit anderen Systemen</title>
<authorgroup>
<author><personname><firstname>John</firstname><surname>Lind</surname></personname><contrib>Beigetragen von </contrib></author>
</authorgroup>
</info>
<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&nbsp;Graphics, Inc. oder
Sun&nbsp;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 von
anderen Rechnern weiterhin 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 es 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
&man.mount.8; 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 die Router die nötigen
<acronym>UDP</acronym>-Informationen weiterleiten.</para>
<para>In den folgenden Beispielen ist <systemitem>fastws</systemitem> der
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
<systemitem>freebox</systemitem> hingegen ist der Name des
FreeBSD-Systems, das über eine Netzkarte mit geringer
Leistung verfügt. <filename>/sharedfs</filename> ist das
exportierte NFS&nbsp;-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 <systemitem>freebox</systemitem>):
</para>
<programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
<para>Manuelles Einhängen auf
<systemitem>freebox</systemitem>:</para>
<screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
<para>&os; als Server (eingetragen in
<filename>/etc/fstab</filename> auf <systemitem>fastws</systemitem>):
</para>
<programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
<para>Manuelles Einhängen auf <systemitem>fastws</systemitem>:</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&nbsp;kByte (obwohl
es kleinere Fragmente zulassen würde). Da die maximale
Rahmengröße von Ethernet 1500&nbsp;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 xml:id="network-nis">