NFS Server · 4 min read · Oct 09, 2025

Einrichten eines hochverfügbaren NFS-Servers

Dies ist ein “Copy & Paste” HowTo!

Der einfachste Weg, dieses Tutorial zu befolgen, ist die Verwendung eines Befehlszeilenclients/SSH-Clients (wie

PuTTY

für Windows) und einfach die Befehle zu kopieren und einzufügen (außer wo Sie eigene Informationen wie IP-Adressen, Hostnamen, Passwörter,… angeben müssen). Dies hilft, Tippfehler zu vermeiden.

Einrichten eines hochverfügbaren NFS-Servers

Version 1.0
Autor: Falko Timme
Letzte Bearbeitung: 03.07.2006

In diesem Tutorial werde ich beschreiben, wie man einen hochverfügbaren NFS-Server einrichtet, der als Speicherlösung für andere hochverfügbare Dienste wie zum Beispiel einen Cluster von Webservern, die lastbalanciert werden, verwendet werden kann. Wenn Sie einen Webserver-Cluster mit zwei oder mehr Knoten haben, die dieselbe Webseite(n) bedienen, müssen diese Knoten auf denselben Datenpool zugreifen, damit jeder Knoten dieselben Daten bereitstellt, egal ob der Lastbalancer den Benutzer zu Knoten 1 oder Knoten n leitet. Dies kann mit einem NFS-Share auf einem NFS-Server erreicht werden, auf den alle Webserver-Knoten (die NFS-Clients) zugreifen können.

Da wir nicht wollen, dass der NFS-Server ein weiterer “Single Point of Failure” wird, müssen wir ihn hochverfügbar machen. Tatsächlich werde ich in diesem Tutorial zwei NFS-Server erstellen, die ihre Daten in Echtzeit mit DRBD spiegeln und sich gegenseitig mit heartbeat überwachen, und wenn ein NFS-Server ausfällt, übernimmt der andere stillschweigend. Nach außen (z.B. die Webserver-Knoten) werden diese beiden NFS-Server als ein einzelner NFS-Server erscheinen.

In diesem Setup werde ich Debian Sarge (3.1) für die beiden NFS-Server sowie für den NFS-Client (der einen Knoten des Webserver-Clusters darstellt) verwenden.

Ich möchte zuerst sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!

1 Mein Setup

In diesem Dokument verwende ich die folgenden Systeme:

  • NFS-Server 1: server1.example.com, IP-Adresse: 192.168.0.172; ich werde diesen als server1 bezeichnen.
  • NFS-Server 2: server2.example.com, IP-Adresse: 192.168.0.173; ich werde diesen als server2 bezeichnen.
  • Virtuelle IP-Adresse: Ich verwende 192.168.0.174 als die virtuelle IP-Adresse, die den NFS-Cluster nach außen repräsentiert.
  • NFS-Client (z.B. ein Knoten aus dem Webserver-Cluster): client.example.com, IP-Adresse: 192.168.0.100; ich werde den NFS-Client als client bezeichnen.
  • Das /data Verzeichnis wird von DRBD zwischen server1 und server2 gespiegelt. Es wird den NFS-Share /data/export enthalten.

2 Grundinstallation von server1 und server2

Zuerst richten wir zwei grundlegende Debian-Systeme für server1 und server2 ein. Sie können dies wie auf den ersten beiden Seiten dieses Tutorials beschrieben tun: https://www.howtoforge.com/perfect_setup_debian_sarge. Als Hostnamen geben Sie jeweils server1 und server2 ein, und als Domain geben Sie example.com ein.

Bezüglich der Partitionierung verwende ich das folgende Partitionsschema:

/dev/sda1 – 100 MB /boot (primär, ext3, Bootable flag: on)
/dev/sda5 – 5000 MB / (logisch, ext3)
/dev/sda6 – 1000 MB swap (logisch)
/dev/sda7 – 150 MB nicht gemountet (logisch, ext3)
(wird die Metadaten von DRBD enthalten)
/dev/sda8 – 26 GB nicht gemountet (logisch, ext3)
(wird das /data Verzeichnis enthalten)

Sie können die Größen der Partitionen je nach Größe Ihrer Festplatte variieren, und die Namen Ihrer Partitionen können ebenfalls variieren, abhängig von Ihrer Hardware (z.B. haben Sie möglicherweise /dev/hda1 anstelle von /dev/sda1 usw.). Es ist jedoch wichtig, dass /dev/sda7 ein wenig mehr als 128 MB hat, da wir diese Partition für die Metadaten von DRBD verwenden werden, die 128 MB benötigt. Stellen Sie außerdem sicher, dass /dev/sda7 sowie /dev/sda8 in der Größe identisch sind auf server1 und server2, und bitte mounten Sie sie nicht (wenn der Installer Sie fragt:

Kein Mount-Punkt ist für das ext3-Dateisystem in Partition #7 von SCSI1 (0,0,0) (sda) zugewiesen.
Möchten Sie zum Partitionierungsmenü zurückkehren?

bitte antworten Sie mit Nein)! /dev/sda8 wird unsere Datenpartition (d.h. unser NFS-Share) sein.

Nach der Grundinstallation stellen Sie sicher, dass Sie server1 und server2 statische IP-Adressen zuweisen (server1: 192.168.0.172, server2: 192.168.0.173), wie zu Beginn von https://www.howtoforge.com/perfect_setup_debian_sarge_p3 beschrieben.

Anschließend sollten Sie /etc/fstab auf beiden Systemen überprüfen. Meins sieht auf beiden Systemen so aus:

| # /etc/fstab: statische Dateisysteminformationen. # # proc /proc proc defaults 0 0 /dev/sda5 / ext3 defaults,errors=remount-ro 0 1 /dev/sda1 /boot ext3 defaults 0 2 /dev/sda6 none swap sw 0 0 /dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

Wenn Sie feststellen, dass Ihres beispielsweise so aussieht:

| # /etc/fstab: statische Dateisysteminformationen. # # proc /proc proc defaults 0 0 /dev/hda5 / ext3 defaults,errors=remount-ro 0 1 /dev/hda1 /boot ext3 defaults 0 2 /dev/hda6 none swap sw 0 0 /dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

dann stellen Sie bitte sicher, dass Sie /dev/hda anstelle von /dev/sda in den folgenden Konfigurationsdateien verwenden. Stellen Sie außerdem sicher, dass /dev/sda7 (oder /dev/hda7) und /dev/sda8 (oder /dev/hda8…) nicht in /etc/fstab aufgeführt sind!

3 Systemzeit synchronisieren

Es ist wichtig, dass sowohl server1 als auch server2 die gleiche Systemzeit haben. Daher installieren wir einen NTP-Client auf beiden:

server1/server2:

apt-get install ntp ntpdate

Anschließend können Sie überprüfen, ob beide die gleiche Zeit haben, indem Sie

server1/server2:

date

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.