NAS (NFS-Server)


Aufgaben

Einbindung ins Netzwerk und Bedienung:

Zuerst wollen wir uns darüber klar werden was ein NAS (Network Attached Storage), oder auf deutsch: netzgebundener Speicher, überhaupt ist. Im Grunde genommen ist ein NAS nichts anderes, als eine oder mehrere Festplatten, die in das Netzwerk eingebunden sind. Auf diese Festplatte(n) kann gleichzeitig mit mehreren Geräten (Nutzern) zugegriffen werden. Der Zugriff erfolgt über ein Netzwerkprotokoll. Die Festplatte(n) sind an einen Computer angeschlossen, auf dem ein Server läuft. Dieser Computer ist dann über LAN, oder auch über WLAN, mit dem WLAN Router verbunden.

Es gibt im Grunde genommen 3 Netzwerkprotokolle, mit denen man ein NAS aufbauen kann:

Stichwort Geschwindigkeit:

Ich lese sehr häufig, dass Mbit/s mit MB/s verwechselt wird. Die Geschwindigkeitsangabe von Routern, Accesspoints, etc. wird in Mbit/s (also Megabit pro Sekunde angegeben). Das ist nicht zu verwechseln mit MB/s (Megabyte pro Sekunde).

1 Byte = 8 Bit, dementsprechend sind 100 Mbit/s = 12,5 MB/s.

Der Raspberry Pi (Raspi) hat einen 100 Mbit/s LAN Anschluss. Bei einer Datenübertragung von meinem PC über WLAN zum NFS-Server erreiche ich eine Geschwindigkeit von ca. 9 - 10 MB/s. Das wären dann zwischen 70 und 80 Mbit/s. Damit ist der Raspi auch schon fast an seinem Limit von 100 Mbit/s angekommen. Mit einer Samba Übertragung komme ich auf maximal 3 MB/s (24 Mbit/s). Aus diesem Grund ist mir natürlich die Entscheidung leicht gefallen als NAS einen NFS-Server einzurichten.

Der NFS-Server läuft auf einem Raspberry Pi mit dem aktuellen Betriebssystem Raspbian Stretch.


Software und Einrichtung:

Die nachfolgenden Punkte setzen voraus, dass ihr den Raspi fertig eingerichtet und konfiguriert habt, wie im Kapitel Konfiguration beschrieben.

Für den Zugriff von einem Linux PC auf einen NFS-Server benötigt man ein Client Programm. Dieses Programm heisst nfs-common, und ist sowohl unter Ubuntu, als auch unter Raspbian schon vorinstalliert. Wir installieren jetzt auf dem Terminal des Raspi's das Server Programm:

 sudo apt-get update
 sudo apt-get install nfs-kernel-server

Als nächstes erstellen wir ein Verzeichnis /data/nfs, welches wir später per nfs im Netzwerk freigeben:

 sudo mkdir /data
 cd /data
 sudo mkdir nfs
 cd

Nun geben wir die Verzeichnisse frei und legen die Zugriffrechte fest. Dazu öffnen wir die Datei exports mit einem Editor:

 sudo nano /etc/exports

Am Ende dieser Datei fügen wir jetzt die Clients pc und mediaplayer mit Lese/Schreibzugriff ein:

 /data/nfs    pc(rw,sync,no_subtree_check,fsid=0) mediaplayer(rw,sync,no_subtree_check,fsid=0)

(zwischen /data/nfs und pc liegt als Abstand ein TAB, zwischen pc und mediaplayer ein Leerzeichen)

Datei speichern mit <Strg> + <X> und Bestätigen.

Damit sich die Clients pc und mediaplayer auch mit der Freigabe /data/nfs verbinden dürfen, müssen sie mit den dazugehörigen IP-Adressen in der Datei hosts stehen.

Wie gelange ich an die IP-Adressen?

Die Rechner im Netzwerk müssen mit einer festen IP-Adresse in das Netzwerk eingebunden sein, wie ich das hier beschrieben habe. Ihr könnt dort unter Netzwerkverbindungen die IP Adresse erfahren, oder ihr macht eine Abfrage über nmap. Zuerst installiert ihr auf eurem Ubuntu PC das Programm nmap. Terminal öffnen:

 sudo apt-get update
 sudo apt-get install nmap

Nun die Abfrage:

 nmap -sP 192.168.178.0/24

Jetzt werden euch die Hostnamen der Rechner im Netzwerk mit den dazugehörigen IP Adressen angezeigt.


Weiter geht es auf dem Terminal des Raspi's. Wir öffnen die Datei hosts:

 sudo nano /etc/hosts

Nun fügt ihr an das Ende der Datei eure IP Adressen mit den dazugehörigen Clients ein:

 192.168.178.xx    mediaplayer
 192.168.178.xx    pc

Datei speichern.

Nach jeder Änderung an der Datei exports muss diese neu eingelesen werden:

 sudo exportfs -ra

Jetzt müssen wir noch eine Festplatte anschliessen und sie in die Verzeichnisstruktur von Raspbian einbinden. Ich verwende eine USB Festplatte mit externer Stromversorgung. Das Netzteil der Festplatte wird zusammen mit dem Netzteil das Raspi's von einer Funksteckdose geschaltet.

Zuerst formatieren wir die Festplatte neu. Wie ich schon erklärt hatte, sind Rechte unter Linux eine wichtige Sache. Aus diesem Grund müssen wir natürlich eine Formatierung wählen, die diese Rechte unterstützt. Wir wählen die Linux Formatierung ext4. Am einfachsten geht das mit dem Programm GParted. Verbindet die USB Festplatte mit eurem Ubuntu PC und öffnet GParted (das Programm verlangt euer Passwort, weil dort mit root Rechten gearbeitet wird). Oben rechts könnt ihr die Festplatte wählen. In der Regel wird es /dev/sdc oder /dev/sdb sein.

Aber Vorsicht! /dev/sda ist die interne Festplatte eures PC's. Eine Formatierung dieser Festplatte hätte fatale Folgen.

Wenn die Festplatte formatiert ist, beendet GParted und öffnet ein Terminal. wir müssen noch die UUID der Festplatte ermitteln:

 sudo blkid

Unter /dev/sdc1 oder /dev/sdb1 findet ihr die UUID. Notiert euch diese Nummer. Jetzt könnt ihr die Festplatte vom PC trennen und sie mit einem freien USB Port eures Raspi's verbinden. Wir müssen sie nun noch dauerhaft in Raspbian einbinden. Man nennt das mounten. Die Einbindung erfolgt in der Datei fstab:

 sudo nano /etc/fstab

An das Ende dieser Datei fügt ihr folgendes ein:

 UUID=(eure UUID)      /data/nfs      ext4   noatime         0      0

Als Leerstellen macht ihr jeweils einen TAB. Datei speichern und neu booten:

 sudo shutdown -r now

Nun sollte die Festplatte eingebunden sein. Da die Festplatte mit root Rechten formatiert wurde, gehört sie natürlich auch dem Besitzer root. Damit wir sie nutzen können, ändern wir noch den Besitzer. In unserem Fall wird das der Benutzer pi sein. Danach ändern wir noch die Rechte, damit wir auch Schreibrechte haben:

 sudo chown -R pi:pi /data/nfs
 sudo chmod -R 755 /data/nfs

Jetzt können wir testen, ob wir Zugriff auf den Server haben. Wir öffnen auf dem Ubuntu PC ein Terminal:

 showmount -e raspiname

raspiname ist natürlich der Hostname eures Raspi's. Jetzt sollte dort stehen:

 Export list for raspiname:
 /data/nfs mediaplayer, pc

So, fast haben wir es geschafft. Wir müssen nur noch ein Verzeichnis auf unserem PC erstellen, in das wir den
NFS-Server einbinden wollen:

 sudo mkdir /mnt/nas

Jetzt können wir den NFS Server in das Dateisystem des Ubuntu PC's einbinden (mounten):

 sudo mount -t nfs raspiname:/data/nfs /mnt/nas

Über das Verzeichnis /mnt/nas auf unserem PC können wir nun auf den NFS-Server zugreifen. Die USB Festplatte des Servers können wir jetzt genauso benutzen, wie die interne Festplatte des Computers.

Aushängen könnt ihr den Server mit folgendem Befehl:

 sudo umount /mnt/nas

Natürlich habt ihr auch mit LibreELEC Kodi Zugriff auf den NFS-Server. Ihr bindet dort die Verzeichnisse der USB Festplatte ein, und könnt so Filme schauen, oder Musik hören. Zur Datensicherung empfehle ich euch das Programm rsync.




Hier geht es zurück zum Inhalt.