Update to r42602:
Improve NFS section. Approved by: bcr Differential Revision: https://reviews.freebsd.org/D5036
This commit is contained in:
parent
6262256695
commit
d8c3be379b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48079
1 changed files with 170 additions and 314 deletions
|
@ -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 – 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 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 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 -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 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 xml:id="network-nis">
|
||||
|
|
Loading…
Reference in a new issue