Raspberry Pi NAS mit RAID 1

Raspberry Pi NAS mit RAID 1


22.06.2016  |  Tutorial, Raspberry Pi Smart Home

Raspberry Pi NAS mit RAID 1 bauen - oder kaufen?

Dieser Artikel beschäftigt sich mit dem Selbstbau eines Raspberry Pi NAS mit RAID 1. Dank dem Raspberry Pi können die Anschaffungs- und Stromkosten sehr gering gehalten werden. Dafür leidet aber auch die Performance an dem für solche Aufgaben weniger geeigneten Prozessor, Arbeitspeicher, vor allem aber an der langsamen LAN-Schnittstelle die mit 100 Mbit/s nicht für das schnelle Verschieben größerer Datenmengen geeignet ist. Wenn du stattdessen einen fertigen Datenserver kaufen möchtest, findest du am Ende dieses Artikels eine Auswahl verschiedener NAS-Fertiglösungen.

Raspberry Pi als NAS mit RAID 1 (Spiegelung) oder RAID 0 (Striping)

Mit einem Datenserver, oder auch NAS (Network Attached Storage) genannt kannst du von überall in deinem Haus auf deine Daten zugreifen, egal ob vom PC, vom Laptop oder vom Tablet: deine Dateien sind überall verfügbar. Einen solchen Datenserver kann man entweder fertig kaufen und zuhause einrichten oder aber komplett selbst zusammenbauen. Mit einem Raspberry Pi als Recheneinheit ist das ganze sogar schonend für den Geldbeutel. In diesem Tutorial zeige ich dir, wie du dir deinen eigenen Raspberry Pi NAS mit RAID 1 (Die Daten auf einer Festplatte werden auf die zweite Festplatte gespiegelt, um Datenverlust bei Ausfall einer Speichereinheit zu verhindern.) oder RAID 0 (Die Dateien werden in kleinere Stücke geteilt, welche abwechselnd auf beiden Platten gespeichert werden. Somit ist die Kapazität beider Platten verfügbar.) bauen kannst. In meinem Fall stammen die beiden Festplatten aus einem einige Jahre alten PC und haben jeweils 160 GB Speicherkapazität. Anstatt interner Festplatten kannst du jedoch auch jede beliebige externe Festplatte benutzen. Bei internen Festplatten wird jedoch ein "USB zu SATA"-Converter gebraucht, wie du ihn auf der folgenden Liste findest.

Welche Komponenten werden für den Datenserver benötigt?

Selbstverständlich brauchst du für deinen NAS-Server einen Raspberry Pi. Für die beste Performance empfehle ich dir einen Raspberry Pi 4, da er 2 USB3-Ports und einen Gigabit-Ethernet-Anschluss besitzt.

Raspberry Pi 4 (4 GB Ram)

Neben einem Raspberry Pi brauchst du auch noch die folgende Hardware. Den "USB zu Sata"-Adapter und die Festplatte brauchst du für das RAID jeweils 2 mal.

USB zu Sata Kabel

Festplatte

microSD-Karte

aktiver USB-Hub

Das Tutorial als Video

Vorbereitung des Datenservers

Als erstes musst du dir das Linux Betriebssystem RaspBian herunterladen und es auf die SD-Karte deines Pi aufspielen. Wie das geht, habe ich schon einmal in einem anderem Tutorial erklärt (Raspberry einrichten: Die ersten Schritte). Je nachdem, ob dein Datenserver per W-LAN mit deinem Router verbunden werden soll oder nicht, solltest du eben genanntes Tutorial entweder bis zum Punkt "WLAN-Verbindung einrichten" oder bis zum Punkt "Webserver installieren und auf dem Raspberry einrichten" verfolgen. Nach der Installation und Einrichtung fährst du den Pi mit dem folgendem Befehl herunter:

sudo shutdown now -h
Anschließend steckst du beide Speichergeräte an die USB-Ports deines Raspberry (wenn du den Raspberry Pi Modell 1 benutzt, solltest du die Festplatten an einen USB-Hub anschließen und den USB-Hub in einen USB-Port deines Raspberry) an, verbindest, wenn nötig die Festplatten mit den mitgelieferten Netzteilen und steckst den Pi wieder ans Netzteil an. Mit dem Programm Putty kannst du deinen Pi wie mit der Remotedesktopverbindung über das Netzwerk steuern, allerdings muss dazu auf dem Pi keine zusätzliche Software installiert werden. Um dich per Putty mit deinem Raspberry zu verbinden öffnest du die eben heruntergeladene Datei "putty.exe".
So sieht das Programm
Dort gibst du im Feld "Host Name (or IP adress)" die IP-Adresse deines Pi ein und klickst unten auf den Button "open". Jetzt öffnet sich ein SHELL-Fenster, in dem du zuerst den Benutzernamen des Pi (standardmäßig: "pi") und dann das Passwort dieses Nutzers (standardmäßig: "raspberry") eingeben musst. Beide Eingaben bestätigst du mit der Eingabetaste. In der nun sichtbaren Kommandozeile lässt du dir mit dem folgendem Befehl die vorhandenen Festplatten anzeigen:
sudo fdisk -l
Du solltest nun eine Ausgabe wie diese erhalten:
Hier werden die Festplatten des Datenservers aufgelistet.
Bevor zum nächsten Schritt übergegangen wird, gibst du folgende Befehle in die Kommandozeile ein, um deine Distribution zu aktualisieren:
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade

Die Software installieren

In diesem Tutorial benutze ich "mdadm", um das RAID-System anzulegen. Um "mdadm" zu installieren, gibst du folgenden Befehl in die Kommadozeile ein:

sudo apt-get install mdadm
Nach der Installation öffnet sich das Konfigurations-Menü von "mdadm". Dort gibst du "all" ein.
Hier wird „mdadm“ konfiguriert.
Anschließend wird dein Pi neu gestartet:
sudo reboot
Um ein System mit RAID 0 (Summe der Speicherkapazität der Festplatten nutzbar, keine Sicherung) anzulegen gibst du den folgenden Befehl ein:
sudo mdadm -Cv /dev/md0 -10 -n2 /dev/sd[ab]1
Möchtest du hingegen ein System mit RAID 1 (Nur Speicherkapazität einer Festplatte nutzbar, dafür Sicherung) anlegen, ist der folgende Befehl erforderlich:
sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1
Nun prüfst du, ob das Speicherdevice "/dev/md0" angelegt wurde:
sudo fdisk -l
Anschließend wird das angelegte Dateisystem mit dem Format ext4 formattiert:
sudo mkfs /dev/md0 -t ext4
Danach kannst du dir den Status des Gerätes anzeigen lassen:
sudo mdadm --detail /dev/md0
Du solltest nun eine Ausgabe wie diese sehen:
Hier werden dir die Details der RAID-Speichereinheit des Datenservers angezeigt.
Jetzt wird ein Verzeichnis angelegt, in das die Festplatten gemountet werden:
sudo mkdir /media/nas
Dort wird nun das RAID-Array eingebunden:
sudo mount /dev/md0 /media/nas
Damit die Festplatten bei jedem Systemstart automatisch gemountet werden, wird die Datei "/etc/fstab" bearbeitet:
sudo nano /etc/fstab
Ans Ende der Datei fügst du nun folgendes ein:
/dev/md0 /media/nas ext4 4,nofail 0 0
Speichere die Datei mit STRG + X ab, bestätige den Speichervorgang mit J und drück anschließend die Eingabetaste. Um mdadm beim Systemstart automatisch auszuführen öffnest du die Datei /etc/default/mdadm:
sudo nano /etc/default/mdadm
Dort trägst du am Ende "AUTOSTART=true" ein und speicherst die Datei mit STRG + X, J und drückstdie Eingabetaste. Damit die Freigegebenen Dateien auch auf anderen Geräten (Computer, Tablets, Smartphones etc.) angezeigt werden, wird im Nächsten Schritt die Dateifreigabe mit Samba eingerichtet.

Fehlerbehebung

Bei mir gab es das Problem, dass der Raspberry schneller hochfuhr, als das RAID-Array erkannt werden konnte. Dadurch wurde es nicht automatisch gemountet und konnte auch nicht verwendet werden. Eine kleine Änderung der Datei /boot/cmdline.txt behebt dieses Problem jedoch sehr leicht:

sudo nano /boot/cmdline.txt
Dort fügst du nun zum Schluss "rootdelay=5" ein. Durch diese Verzögerung beim Systemstart wird das RAID-Array erkannt, gemountet und kann problemlos verwendet werden. Nachtrag vom 14.08.2018: Ein Nutzer hat mich darauf aufmerksam gemacht, dass ein höheres Root-Delay bei ihm nicht geholfen hat. Stattdessen hat ein Cronjob mit "@reboot sleep 5; sudo mount /dev/md0 /media/nas" das Problem gelöst. Einen Cronjob kannst du mit dem Befehl "sudo crontab -e" anlegen, in dem du einfach den Befehl in eine neue Zeile einfügst.

Dateifreigabe des Datenservers mit Samba einrichten

Um die Dateifreigabe für Windows-Rechner einzurichten, wird zuerst die Software Samba installiert:

sudo apt-get install samba samba-common-bin
Als erstes wird Samba konfiguriert:
sudo nano /etc/samba/smb.conf
Füge dazu am Ende der Datei folgenden Text ein:
[Raspi NAS] path = /media/nas writeable = yes guest ok = no
Statt [Raspi NAS] kann auch ein beliebiger Name eingetragen werden, mit dem die Netzwerkfestplatte dann im Windows Explorer angezeigt wird. Speichere die Datei mit STRG + X, drücke danach j und anschließend die Eingabetaste. Jetz wird dem Nutzer Pi noch ein Passwort für den Zugriff auf den NAS gegeben:
sudo smbpasswd -a pi
Anschließend werden diesem Benutzer und seiner Gruppe noch die Rechte für den Ordner der Freigabe erteilt:
sudo chown -R pi:sambashare /media/nas
Um die Konfiguration abzuschließen startest du deinen Pi neu:
sudo reboot
Auf deinem Windows-Computer kannst du dich mit dem Netzlaufwerk verbinden, indem du im Datei-Explorer in der Leiste Links auf "Netzwerk" klickst und anschließend in der Liste mit einem Doppelklick "RASPINAS" anklickst. Nun musst du die Anmeldedaten des Nutzers "pi" eingeben. Danach klickst du mit rechts auf den Ordner "Raspi NAS", wählst "Netzlaufwerk verbinden...", gibst die Daten des Nutzers Pi ein und klickst schließlich auf "Fertig stellen". Jetzt ist der Datenserver fertig eingerichtet und du kannst ihn über deinen Arbeitsplatz (bei Windows 7 & 8: "Computer" / bei Windows 10: "Dieser PC") unter dem Punkt "Netzwerkadressen" finden. Statt als Netz-Laufwerk kannst du natürlich auch eine NAS-Software wie OpenMediaVault oder Nextcloud installieren.

Raspberry Pi 3 NAS Performance

Die Performance des Raspberry Pi NAS übertrifft - wie erwartet - nicht die kommerziellen Lösungen. Ich erreiche damit durchschnittlich ca. 5 Megabyte pro Sekunde. Das ist für Arbeit mit Live-Zugriff auf den NAS-Speicher nicht optimal, für ein regelmäßiges Backup von wichtigen Dateien aber vollkommen ausreichend. Auch der Preis ist mit ungefähr 75€ (Raspberry Pi, USB-zu-SATA-Adapter und aktiver USB-Hub) auch nicht zu hoch. Ob der Raspberry Pi 3 B+ mit seinem 300 MBit-Ethernet besser abschneidet, habe ich noch nicht getestet. Bei Fragen oder Problemen kannst du mir gerne einen Kommentar hinterlassen.

Fertige Datenserver kaufen

Ein fertiger Datenserver hat gegenüer einem Raspberry Pi den Vorteil dass er die Festplatte(n) nicht über den langsamen USB2.0-Anschluss (maximal 480 MBit/s), sondern direkt per SATA anbinden kann. Damit sind je nach Version 1,5 GBit/s (SATA I), 3,0 GBits/s (SATA II) oder sogar 6,0 GBit/s (SATA III) möglich. Statt einer 100 MBit/s LAN-Schnittstelle verfügen die meisten aktuellen NAS-Systeme über Gigabit-Ethernet, dass eine Übertragungsrate von 1 GBit pro Sekunde ermöglicht. Manche Highend-Modelle verfügen sogar über zwei Gigabit-Ethernet-Anschlüsse um maximale Performance zu gewährleisten. Viele solcher Datenserver besitzen außerdem USB-Schnittstellen an denen beispielsweise direkt ein USB-Stick angeschlossen werden kann, um die Daten direkt auf den NAS-Server zu übertragen.

Synology DS923+ 4 Bay Desktop NAS Ryzen R1600 Dual-Core

-13%

Synology DS223J 2 Bay Desktop NAS

TERRAMASTER F2-212 2Bay NAS - Quad Core

Über den Autor


Sascha

Hallo, ich bin Sascha, der Gründer von Smarthome Blogger.

Mit einer Leidenschaft für Technologie und einem Hintergrund als Software Engineer habe ich 2016 Smarthome Blogger gegründet. Mein Ziel war es schon immer, innovative Lösungen zu entdecken, die unser Leben einfacher und intelligenter gestalten können. In meinem beruflichen Leben arbeite ich täglich mit Software und Technik, aber auch in meiner Freizeit bin ich stets auf der Suche nach neuen technischen Spielereien und Möglichkeiten, mein Zuhause zu automatisieren und zu verbessern.

Auf Smarthome Blogger teile ich mein Wissen, meine Erfahrungen und meine Begeisterung für alles rund um das Thema Smarthome.



Dieser Beitrag hat dir gefallen?

Dann abonniere doch unseren Newsletter!