Raspberry Pi NAS – Datei Server einrichten
In diesem Artikel wird es nun ernst. Wir werden endlich die auf dem Raspberry Pi NAS gespeicherten Dateien im Netzwerk freigeben. Benutzer können Ordnerinhalte lesen oder erändern, Geräte wie Smartphone, Tablet oder Smart TV können auf die Daten zugreifen und die privaten Dateien kann man als Netzwerk Festplatte am Laptop oder PC verwenden. All unsere Daten sind nun endlich von einem zentralen Speicher rund um die Uhr verfügbar.
Raspberry Pi NAS – Datei Server einrichten
Wenn es um die Freigabe von Daten geht stellt sich immer gleich die Frage: in welchem Format, mit welchem Protokoll und welcher Dienst soll laufen. Im Laufe der Zeit haben sich unterschiedliche Technologien entwickelt, je mehr das NAS abdeckt desto besser. Da ich leider nicht weiß, welche Anforderungen ihr im speziellen habt gehen wir am besten die üblichen Verdächtigen durch.
SMB oder SAMBA
Der SMB Dienst ist schon seit Urzeiten teil von Linux und dient zum Datenaustausch als Datei Server mit den anderen Systemen. Die gute Implementierung ist mit ausschlaggebend, weshalb in vielen Firmen ein Linux Dateiserver steht. Dieses Vertrauen machen wir uns für unser NAS zu nutze. Im folgenden zeige ich euch wie ihm mit dem SAMBA Dienst den public Ordner freigebt. Weitere Infos zu SMB findet man in meinem Spezialartikel zu SMB.
Installation
Die Installation läuft wie folgt ab:
sudo apt-get install samba samba-common-bin
Konfiguration
SAMBA wird über die Konfigurationsdatei /etc/samba/smb.conf eingestellt. Diese ist relativ lang, dafür aber gut kommentiert. Am besten ihr fügt am Ende der Datei eure Konfiguration ein. Für unseren öffentlichen Ordner /nas/storage2/public sieht die Änderung wie folgt aus:
[public] path = /nas/storage2/public comment = Public writeable = yes browseable = yes create mask = 0666 directory mask = 0777 force user = nobody force group = users guest ok = yes
Die Änderungen werden nach einem Neustart des Dienstes wirksam. Das geht so:
sudo /etc/init.d/samba restart
Ich verwende zum Testen gerne die AndSMB App für mein Android Smartphone. Mit folgenden Einstellungen loggt man sich damit als Gast an und erhält Zugriff auf das öffentliche Verzeichnis public.
Netatalk
In der Apple Welt gibt es mit Netatalk einen Open Source AFP Datei Server (AFP steht für Apple Filing Protocol) mit der man beliebig viele Mac Clients gleichzeitig verbinden kann. AFP ist damit der Gegensatz zu SMB aus der Windows Welt, Linux verbindet diese unterschiedlichen Protokolle dadurch, dass es für beide Open Source Varianten bereitstellt. Da wir auch unsere Apple Jünger mit den NAS Daten versorgen wollen werden wir den Dienst ebenfalls aktivieren.
Installation
ist noch einfacher als bei SAMBA da man lediglich ein Paket installieren muss:
sudo apt-get install netatalk
Konfiguration
Die Konfigurationsdatei findet man für den AFP Server unter /etc/netatalk/afpd.conf (AFPd für AFP Daemon). Um den Dienst zu aktivieren müssen wir lediglich eine Zeile Code in die Konfiguration hinzufügen:
sudo nano /etc/netatalk/afpd.conf
Die neue Zeile:
- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2_passwd.so -nosavepassword
Der Inhalt der Datei sieht im ersten Moment nach viel aus, ist aber lediglich Kommentar. Falls man nähere Informationen zur Konfiguration braucht sollte man sich die Punkte durchlesen. *.so Dateien sind unter Linux übrigens Bibliotheken durch die man die Software durch zusätzliche Funktionen erweitern kann.
Anders als bei SMB müssen wir die Freigabe in einer weiteren separaten Datei einstellen. Diese findet man unter /etc/netatalk/AppleVolumes.default:
sudo nano /etc/netatalk/AppleVolumes.default
Auch in dieser Datei besteht der Inhalt aus einer umfangreichen Dokumentation. Wir fügen für die Freigabe vor der letzten Zeile „# End of File“ folgendes ein:
# Public folder /nas/storage2/public Public options:upriv perm:0776
Wobei die erste Zeile nur ein Kommentar ist und man den Pfad zum Ordner gegebenenfalls anpassen muss.
Das Service wird übrigens mit
sudo /etc/init.d/netatalk restart
NFS Server
Nachdem wir die Open Source Datei Server Nachbauten für die Windows und die Mac Freigabe angebunden haben stellt sich die Frage ob es auch einen Linux oder Unix Dienst gibt. Die Antwort ist das NFS (Network File System) mit dem man ein Netzlaufwerk recht einfach einbinden kann. NFS ist eine gute Möglichkeit seine Linux oder Unix Rechner zu Verbinden, ob das Protokoll auch von dem spezifischen Gerät unterstützt wird ist fraglich. Für Android gibt es wie schon bei SMB eigene Apps dafür.
Installation
Standardmäßig ist kein NFS Server installiert, am Raspberry Pi müssen wir das deshalb mit dem folgenden Kommando ändern:
sudo apt-get install nfs-kernel-server
Konfiguration
Bei der Ausgabe der Installation sieht man, dass die Konfigurationsdatei /etc/exports angelegt wird. Interessanterweise liegt diese direkt im /etc Verzeichnis und nicht unter einem Unterordner mit dem Namen des Dienstes. Da sieht man bereits, dass es sich um eine tiefer in Linux integrierte Software handelt. In der Datei legen wir nun wie folgt unsere Freigabe an:
sudo nano /etc/exports
Folgende Zeile gibt den public Ordner frei (am Ende der Datei hinzufügen):
# Freigabe für alle IP Adressen von 192.168.0.1 bis 192.168.0.255 /nas/storage2/public 192.168.0.0/24(rw,sync,no_subtree_check,all_squash)
Typisch Linux, da die Konfiguration viel komplexer ist… naja so schlimm ist es auch nicht. In jedem Fall muss man den Adressbereich der IP Adresse ans eigene Netzwerk anpassen. Bei mir laufen alle Geräte im Heimnetzwerk unter 192.168.0.xxx, das heißt mein DNS Server (Router) vergibt eine freie Adresse in diesem Bereich. Also gebe ich den Ordner für alle lokalen Geräte frei. In unserem Fall funktioniert das, falls man nähere Informationen zur Konfiguration benötigt findet man diese auf der Ubuntu Hilfeseite.
Den Server startet man mit folgenden Kommandos:
sudo exportfs -ra sudo /etc/init.d/rpcbind start sudo /etc/init.d/nfs-kernel-server start
Exportfs ist ein Kommando mit dem man eine Tabelle der aktuellen Freigaben erstellt. Abgelegt wird diese unter /var/lib/nfs/xtab. Rpcbind benötigen wir, damit sich Clients für die freigegebene Ressource anmelden können. Rpcbind ist dabei ein Dienst der auf die entsprechenden Nachrichten im Netzwerk wartet.
Sollte eine Fehlermeldung beim Start des NFS Servers ausgegeben werden, dann ist das durch einen Tippfehler oder einer falschen Konfiguration der /etc/exports Datei zurückzuführen. Ich hatte beispielsweise statt sync ein rsync stehen. Die genaue Fehlerursache findet man mit folgendem Befehl heraus:
systemctl status nfs-kernel-server.service
Fazit
In diesem Artikel habe ich euch recht umfassend gezeigt wie man das NAS als Dateiserver konfiguriert. Dabei haben wir 3 unterschiedliche Protokolle (SMB, Netatalk und NFS) konfiguriert. Nun liegt es an euch herauszufinden welches Service vom jeweiligen Gerät unterstützt wird und wo man die beste Performance erreicht.
Weitere Artikel dieser Artikelserie: