Hallo lieber Leser,

lange Zeit habe ich überlegt, ob ich mir ein teures NAS System kaufe, von Synology oder QNAP. Die Preise haben mich immer wieder erschreckt, was das reine Gehäuse + den MiniComputer angeht. Jedoch wollte ich unbedingt einen NAS haben. Die Tatsache, dass ich ~10 Speichermedien rumfliegen habe und immer Daten suchen muss, störte mich extrem. Eine zentrale Stelle musste her.

Hardware

Als ich mir die Spezifikationen der einzelnen NAS Systeme angeschaute, war ich irgendwie wenig beeindruckt. 1,2GHz Quad-Core ARM, 1GB DDR3 RAM, LAN/WLAN, etc. für 200€ bis 300€ je nach Modell und Leistung ohne Festplatten! WHAT THE F… Diese Spezifikationen kamen mir aber irgendwie bekannt vor. Solch ein ähnliches Gerät besitzte ich doch bereits. Mein Raspberry Pi 3 Model B ist ähnlich bestückt und hat mich nur knapp 35€ gekostet. Für die jenigen, die noch keinen RPI haben, würde ich das Vilros Raspberry Pi 3 Starter Kit empfehlen. Ob ich daraus ein gleichwertiges NAS bauen kann? Challenge Accepted!


Also das Gerät hätte ich schonmal. Bräuchte also noch eine oder mehrere Festplatten, die groß genug sind um alle Daten zu speichern. Damals besorgte ich mir die Seagate Expansion Desktop, 4TB für knapp 90€ als sie im Angebot war. An dieser Stelle werden bestimmt einige laut schreien. Ja, ich weiß, dass diese Festplatte nicht für den 24/7 Einsatz gedacht ist. Mein NAS wird auch nicht im Dauerbetrieb sein, sondern nur dann angeschaltet werden, wenn ich es benötige. Somit dürfte die Festplatte für diesen Einsatz ganz okay sein. Für die jenigen, die mehr mit dem NAS machen möchten, öfter Zugriff auf den Netzwerkspeicher benötigen und sogar weitere Dienste laufen lassen wollen, wie z.B. WebServer, FTP/SFTP/NFS etc… würde ich eine WD Red 4TB + externes Gehäuse / Docking Station empfehlen.


Was wollen wir eigentlich erreichen?

Unser Ziel ist es, dass der Raspberry Pi im Netzwerk verfügbar sein soll, sodass wir auf ihn zugreifen können. Dabei ist es vollkommen egal ob vom Desktop, Laptop, Tablet, Smartphone oder Fernseher. Also eine zentrale Stelle in der Wohnung für uns. 


Software

Auf meinem Raspberry Pi läuft als Betriebssystem Raspian, eine angepasste und optimierte Variante der beliebten Linux Distrubution Debian. Ich wähle hier bewusst kein Fertigsystem, mit Tools und Interfaces, da ich ggf. nicht alles brauche. Nur das was wirklich benötigt wird, kommt auf das System. Nur so können wir die Performance des kleinen Teufels beeinflussen. Aber welche Software brauchen wir? Da gibt es ein spezielles Protokoll, was theoretisch jedes Betriebssystem versteht, egal ob Windows, Linux, MacOS, iOS, Android, etc… das sogenannte SMB/CIFS-Protokoll. Durch die Software Samba wird unser Vorhaben erleichtert, denn es nimmt die Rolle eines Domain-Controllers an und verwaltet die Freigaben im Netzwerk. 


Vorbereitung

Bevor wir überhaupt richtig loslegen können, gehen wir sicher, dass unser Raspberry Pi bereits mit dem Netzwerk verbunden ist und vom DHCP unseres Multifunktionsgeräts (Router) immer die selbe lokale IP-Adresse zugeteilt bekommt. Als nächstes verbinden wir uns via ssh mit unserem Raspberry und loggen uns ein um in der Shell die benötigten Pakete zu installieren und zu konfiguieren. Dazu verwende ich das Programm PuTTY.

Als erstes legen wir eine Systemgruppe für unsere Benutzer an um von außen an die gewünschten Daten rankommen zu können.

   sudo addgroup sharing

Als nächstes benötigen wir noch die Benutzer, die wir dieser Gruppe hinzufügen werden.

   sudo adduser ray -G sharing

So, Gruppe und Benutzer hätten wir schonmal. Jetzt fehlt nur noch der Ort / das Verzeichnis, wo sich die Benutzer frei bewegen sollen. Diesen lege ich an einer Wunschstelle im System an und verteile die Rechte für das angelegte Verzeichnis.

   sudo mkdir /share
   sudo chgrp -R sharing /share
   sudo chmod -R 776 /share
   sudo chmod g+s /share
   sudo setfacl -m d:user::rwx,d:group:sharing:rwx /share

Jetzt fehlt noch unsere Festplatte. Diese ist via USB am Raspberry Pi angeschlossen, jedoch müssen wir diese nun selbst mounten, damit dies ordentlich geschieht (und auch automatisiert nach jedem Start), müssen wir einige Befehle eingeben.

Als erstes schauen wir uns an, welche Geräte uns zur Verfügung stehen:

   sudo blkid

   /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="993B-8922" TYPE="vfat"
   /dev/mmcblk0p2: UUID="afb7272d-6c75-4f4c-adca-7f755b913a0c" TYPE="ext4"
   /dev/sda1: UUID="961a1e6b-5875-491a-a25b-522da9abc841" TYPE="ext4"

Hier benötigen wir die UUID der externen Festplatte (sda1). Diese UUID tragen wir in  /etc/fstab ein.

   sudo nano /etc/fstab

Am Ende der Datei trage ich folgendes ein. Hier wird auch der mount-Ort /share mit angeben:

   # externe USB-Festplatte
   UUID=961a1e6b-5875-491a-a25b-522da9abc841 /share ext4 defaults 0 0

Anschließend führen wir ein sudo mount a aus um die Festplatte einzubinden.


Einrichtung

Jetzt brauchen wir die Software samba und werden uns anschließend um die Konfiguration kümmern. Dazu sprechen wir unseren Package Manager apt-get an um diesen zu installieren. 

   sudo apt-get install samba samba-common-bin

Danach öffnen wir die /etc/samba/smb.conf Datei um die Konfiguration vorzunehmen. Hier kommen Einträge rein, die unser /share Verzeichnis betreffen.

  [share]
        path = /share
        comment = Network Share Folder
        writeable = yes
        browseable = yes
        create mask = 0666
        directory mask = 0777
        force user = nobody
        force group = sharing
        guest ok = no

Folgende Regeln wurden hier festgelegt. Gäste (nicht angemeldete User) haben keinen Zugriff auf das Netzwerkverzeichnis (guest ok). Alle erstellten Verzeichnisse und Dateien gehören keinem Benutzer, sondern allen Benutzern der Gruppe sharing (force user, force group). Die Daten sind nicht nur lesbar, sondern auch beschreibbar (writeable). Außerdem ist die Freigabe direkt sichbar (browseable).


Fazit

So, das wars. Somit hätten wir einen kleinen Server Zuhause mit genügend Speicherplatz, welcher extrem leise und dennoch Leistungsstark ist um unsere Anforderungen zu erfüllen und zudem auch sparsam ist, was den Stromverbrauch betrifft. Außerdem ist noch viel Spielraum für weitere Dienste wie z.B. einem Webserver, Datenbanken, etc… verfügbar und das für vergleichsweise wenig Geld. Dadurch haben wir die volle Kontrolle über den Server und sind nicht von Weboberflächen abhängig. Jedoch haben wir damit die Bequemlichkeit nicht, welches uns solch ein Webinterface anbieten würde. Aber damit kann ich persönlich ganz gut leben. Letztenendes habe ich dadurch einige Euros gespart und das zahlt sich aus. 

Aufbauend auf diesem Raspberry Pi NAS werde ich weitere Dienste installieren und euch die Ideen und Umsetzung präsentieren. Webserver, Datenbanken sowie automatisierte Ereignisse wären die ersten Anlaufstellen. Seid gespannt.

Ich hoffe, dass ich euch hiermit einen einfachen Einstieg in die Welt des eigenen Home NAS ermöglichen konnte. Für Fragen, Kritik und Lob könnt ihr gerne die Kommentarfunktion nutzen oder mir per Mail an dev@ray-works.de schreiben.

Kommentare: