Raspberry Pi als NAS
Die schönsten Geschenke zu Weihnachten sind doch immer noch selbst gemacht. Deshalb stelle ich, passend zu dieser Jahreszeit, einen als NAS zusammengebastelten Raspberry PI vor. Eine X-NAS sozusagen.
Ich konzentriere mich dabei auf ein recht simples Setup, sodass nur eine Festplatte ohne RAID-Verbund verwendet wird. Einerseits, damit der stromsparende Gedanke vom Raspberry Pi gewahrt bleibt und andererseits um das empfindliche Gehör all jener nicht zu sehr zu strapazieren, die ihr NAS direkt neben sich auf dem Schreibtisch platziert lassen. Trotzdem wird eine kleine redundante Datenablage auf einem USB-Stick möglich sein und im letzten Schritt erklärt.
Was wird benötigt?
Möglicherweise seid ihr bereits im Besitz der benötigten Teile, denn die Grundzutaten sind recht simpel. Wir benötigen …
- 1x Raspberry Pi 3/3B oder 4 samt Stromkabel
- 1x microSD Karte, mindestens 4GB groß
- microSD Kartenlesegerät
- 1x HDD oder SSD Festplatte
- 1x USB-SATA Adapter (mit Stromanschluß)
- 1x USB-Stick mit beliebiger Größe (je nach Plattenbedarf der Backups Daten)
Achtet beim Kauf des USB-SATA Adapters besser darauf, eine mit externer Stromzufuhr zu erwischen damit die Festplatte im laufenden Betrieb nicht plötzlich der Saft ausgeht.
Vorbereitung des Raspberrys
Zunächst kopieren wir die neueste Version des offiziellen Raspberry Pi Betriebssystems ‚Raspberry OS‘ in der Sparversion ohne grafische Oberfläche auf die microSD-Karte. Nutzt dazu das Tool ‚Rasperry Pi Imager‘, welches für Linux, Windows sowie MacOS zur Verfügung steht. Verbindet hierfür die microSD Karte samt microSD-Kartenlesegerät mit einem PC auf dem der ‚Raspberry Pi Imager‘ installiert ist und startet das Programm. Von dort aus könnt ihr euch innerhalb dreier Mausklicks das Betriebssystem auf die Karte kopieren. Wählt unter ‚OS wählen‘ den Eintrag ‚Raspberry Pi OS (other)‘ -> ‚Raspberry Pi OS Lite‘ …
… unter ‚SD-Karte‘ entsprechend eure SD-Karte, anschließend ‚Schreiben‘ und der Schreibprozess beginnt. Es ist wirklich wichtig, dass die Raspberry Installation keine grafische Oberfläche besitzt, da wir sonst im nächsten Schritt nicht weiterkommen. Sobald alles abgeschlossen ist (und uns das Programm dazu auffordert) entfernen wir die microSD-Karte.
Steckt die SD-Karte in den Raspberry ein und verbindet ihn mit dem Strom. Nach erfolgreichem Boot landet ihr in einem Terminal-Anmeldefenster. Loggt euch mit dem Benutzer ‚pi‘ und dem Passwort ‚raspberry‘ ein.
Achtung: Möglicherweise habt ihr noch das englische Tastaturlayout voreingestellt. Benutzt deshalb anstelle des ‚y‘ im Passwort ‚rasperry‘ ein ‚z‘ (y und z sind auf der englischen Tastatur eben vertauscht).
Habt ihr euch angemeldet, können wir uns nach Bedarf das Sprach- und Tastaturlayout vorknöpfen, das Passwort für den Benutzer ‚pi‘ ändern und die neuesten Paketupdates installieren. Um einige erste Einstellungen vorzunehmen, steht uns die grafische Terminalanwendung ‚raspi-config‘ zur Verfügung, die wir folgendermaßen aufrufen.
sudo raspi-config
Deutsches Tastaturlayout:
Localisation Options -> Keyboard -> Generic 105-key PC (intl.) -> Other -> German -> German -> The default for the keyboard layout -> No compose key
Europäische (deutsche) Zeitzone:
Localisation Options -> Timezone -> Europe -> Berlin
Passwort für den Benutzer ‚pi‘ ändern:
System Options -> Password -> ‚New password:‘
Neueste Paketupdates installieren:
Update
Ferner kann unter ‚System Options‘ noch das W-LAN eingerichtet werden, falls ihr euch lieber kabellos mit dem Netzwerk verbinden wollt. Passt die Einstellungen entsprechend eures Bedarfs an, falls ihr mit der obigen Auswahl nicht einverstanden seid. Ist alles erledigt, schließt ihr das Menü mit ‚Finish‘.
Startet die Kiste anschließend einmal neu!
sudo reboot
Nach erfolgtem Neustart verpassen wir unserem angehenden NAS eine feste IP-Adresse. Im Privatanwender- Bereich erfolgt dies in aller Regel über den heimischen Router, der in aller Regel die Option ‚immer dieselbe IP-Adresse zuweisen‘ bereithält. Folgendes Beispiel betrifft den Router-Klassiker Fritzbox. Öffnet in eurem Browser die Adresse ‚fritz.box‘ und loggt euch auf die Oberfläche ein. Von dort aus navigieren wir über ‚Heimnetz‘ nach ‚Netzwerk‘, suchen in der Liste unseren Mini-Computer und klicken unter diesem Eintrag auf das Stift-Symbol auf der rechten Seite.
Im darauffolgenden Fenster wählt ihr die Option ‚Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen‘. Klickt danach auf ‚OK‘ um diese Einstellung zu speichern.
Installation von OpenMediaVault
‚OpenMediaVault‘ ist das Mittel der Wahl um unser NAS zu betreiben. Was ehemals ein eigenes Betriebssystem für den Raspberry Pi war, wird nun über folgenden Terminal-Befehl heruntergeladen und installiert:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
Der Vorgang nimmt einige Zeit in Anspruch und startet nach Vollendung den Pi automatisch einmal neu.
Das wars dann auch schon mit der Installation.
Einrichtung von OpenMediaVault
Bevor wir uns das erste mal auf die OpenMediaVault Oberfläche anmelden, schließen wir noch unsere Festplatte über den USB-SATA-Adapter an den Raspberry an. Achtet darauf, den USB3 Port am Raspberry zu erwischen (sofern vorhanden).
Öffnet also von einem anderen PC im Netzwerk aus einen Browser und gebt die IP-Adresse des Raspberrys ein. Die initialen Login-Daten lauten:
Benutzername: admin
Passwort: openmediavault
Der Sicherheit zuliebe ändern wir direkt das Passwort, indem wir das Zahnrädchen in der oberen rechten Ecke anklicken, ‚Change Password‘ auswählen und ein neues vergeben.
Als nächsten Schritt richten wir unsere angeschlossene Festplatte als Datenspeicher ein. Hierzu navigieren wir nach ‚Storage‘ und ‚Disks‘, wählen unsere Festplatte aus und klicken auf das Radiergummi-Symbol, namentlich ‚wipe‘.
Bestätigt, dass ihr die Festplatte tatsächlich formatieren wollt und wählt die schnelle Formatierungsmethode ‚quick‘. Ist der Vorgang abgeschlossen, legen wir ein neues Dateisystem auf dem Datenträger an. Dazu bleiben wir im selben Obermenü ‚Storage‘ und wählen diesmal ‚File Systems‘ aus. Von hier aus klicken wir auf ‚Create‘, wählen im nächsten Fenster das entsprechende Device aus, behalten die Dateisystem Voreinstellung ext4 bei und erstellen das Dateisystem mit ‚Save‘.
Ist auch dieser Vorgang abgeschlossen, binden wir die Festplatte ein. Dies wird ebenfalls im Menü ‚Storage‘ -> ‚File Systems‘ erledigt. Anstelle auf Create klicken wir diesmal auf ‚Mount‘, wählen auch hier unsere Festplatte aus und bestätigen mit ‚Save‘. Ist alles gut gelaufen, wird unser Datenspeicher als Online angezeigt.
Möchte man dem NAS noch einen unüblicheren Namen als ‚raspberrypi‘ geben, kann dies unter ‚Network‘ -> ‚Hostname‘ erledigt werden.
Bevor es weitergeht noch eine Information zur Bedienung vorab. Sollten wir Änderungen an der Konfiguration vorgenommen haben, treten diese erst in Kraft, nachdem wir dem gelb unterlegten Hinweis auf der Web-Oberfläche folge geleistet haben und die Änderungen auch dort gespeichert haben.
Benutzerverwaltung
Möchten wir mehrere Benutzer samt eigenen Ordnerfreigaben erstellen, können wir dies über ‚User Management‘ -> ‚Users‘ erledigen. Dem einsamen Statthalter pi stellen wir nun einen weiteren Verwalter zur Verfügung, indem wir auf das altbekannte +-Symbol klicken und ‚Create‘ auswählen. Im neuen Fenster wählen wir Namen, Passwort, Shell, Gruppenzugehörigkeit, SSH-Keys und optional eine E-Mail Adresse aus und klicken zum anlegen auf ‚Save‘. In folgendem Beispiel soll ‚Urmel‘ der neue werden.
Ordnerfreigaben
Um nun endlich den ersten Ordner auf dem Datenspeicher zu erstellen, bleiben wir immer noch in der Rubrik ‚Shared Storage‘ und wählen ‚Shared Folders‘ aus. Ein Klick auf das +-Symbol ‚Create‘ und wir definieren uns einen Ordner im nächsten Fenster, indem wir Name, das Dateisystem und die Zugriffsrechte angeben. Im folgenden wird der Ordner ‚backup‘ erstellt. Achtet am besten darauf, die Ordnernamen klein zu schreiben, da dies unter Umständen viel Frust beim späteren mounten der Shares ersparen kann.
Anschließend wählen wir den neu angelegten Ordner aus und klicken auf ‚Privileges‘. Als nächstes vergeben wir unseren neu angelegten Benutzer ‚Urmel‘ ‚Read/Write‘-Berechtigungen.
Netzwerkprotokoll einstellen
Um für die Kommunikation zwischen Datenspeicher und Endgerät das passende Netzwerkprotokoll festzulegen, klicken wir uns durch ‚Services‘ -> ‚SMB/CIFS‘ -> ‚Shares‘ und fügen ein neues mit dem +-Symbol ‚Create‘ hinzu. Unter ‚Shared folder‘ wählen wir unseren zuvor erstellten Ordner aus, sorgen dafür, dass ‚Enabled‘ angehakt ist und speichern das ganze wieder mit ‚Save‘.
Als letztes aktivieren wir noch den SMB-Dienst unter ‚Services‘ -> ‚SMB/CIFS‘ -> ‚Settings‘ und haken auch dort den obersten Punkt ‚Enabled‘ an. Speichert wieder mit ‚Save‘ und das Share ist eingerichtet!
Verbindung testen
Testen wir nun unseren Dateizugriff. Je nach OS lösen wir die Zieladresse anders auf:
Unter Linux:
Je nach verwendetem Dateimanager kann die Adresseingabe hier leicht anders ausfallen. In einer reinen und unmodifizierten Ubuntu Umgebung kommt z.B. Nautilus zum Einsatz in dem wir uns ein neues Fenster öffnen. In der linken Leiste am unteren Rand klicken wir auf ‚+ Andere Orte‘ und geben anschließend unter ‚Mit Server verbinden‘ die Adresse nach folgendem Schema ein:
smb://192.168.10.50/backup
Im daraufhin erscheinendem Fenster gebt ihr die Benutzerinformationen ein, mit denen wir uns verbinden möchten. Achtet unbedingt auf Groß- und Kleinschreibung.
Unter Windows:
Öffnet den File-Explorer und gebt in der Suchleiste die IP-Adresse eures Raspberry Pis (oder wahlweise den Hostnamen) mit 2 vorangestellten \\ samt Zielordner ein, also in etwa so:
\\192.168.10.50\backup
Auch hier erscheint ein Anmeldefenster welches bedient werden möchte. Hinweis auch hier: Achtet auf die Groß- und Kleinschreibung.
Redundante Datenablage
Trotz einsamer Festplattenkonfiguration habe ich euch eingangs versprochen, dass wir uns noch eine kleine USB-Stick betriebene redundante Datenablage einrichten. Hierfür habe ich mir folgendes Konzept überlegt. Wir schließen zusätzlich den bislang außen vorgelassenen USB-Stick an das Raspberry NAS an, fügen diesen ebenfalls als Datenablage hinzu, richten ein maximal zu nutzendes Kontingent (ein sogenanntes quota) auf dem Shared Folder ‚backup‘ ein, und lassen die Daten dann regelmäßig unidirektional von der Festplatte auf den USB-Stick mittels Rsync Job synchronisieren.
Soweit, so unverständlich. Stecken wir also den USB-Stick an den Raspberry an. Unter ‚Storage‘ -> ‚Disks‘ sollte dieser dann in Form eines neuen Eintrages auftauchen. Wie bei der Festplatte zuvor, wählen wir diesen neuen Eintrag aus und wipen über das Radiergummi-Symbol das Gerät, bestätigen mit ‚yes‘ und der Methode ‚Quick‘. Das Dateisystem legen wir unter ‚Storage‘ -> ‚File Systems‘ an, indem wir dort das +-Symbol ‚Create‘ anklicken. Auch hier wählen wir das neue Device aus, lassen wieder das voreingestellte EXT4-Dateisystem bestehen und klicken auf ‚Save‘. Um den Stick zu mounten verfahren wir wie gerade eben, nur das wir dieses mal Mount, anstelle auf Create klicken. Nutzbar machen wir das ganze dann noch, indem wir noch einen Shared Folder unter ‚Storage‘ -> Shared Folders‘ und ‚Create‘ erstellen. Ich nenne den Ordner im folgenden ‚usb-backup‘. Achtet darauf, auch tatsächlich den USB-Stick auszuwählen und speichert mit ‚Save‘.
Somit hätten wir den USB-Stick schonmal nutzbar gemacht.
Bevor wir den Rsync-Job einrichten, limitieren wir noch mit Hilfe eines quotas den nutzbaren Speicherplatz auf der Festplatte für unseren neu angelegten Benutzer (Urmel). Dies lässt sich recht fix in ‚Storage‘ -> ‚File Systems‘ einrichten. Wir wählen die Festplatte aus, klicken auf ‚Quota‘, und editieren den betreffenden Benutzer mit ‚Edit‘. In folgendem Menü wird unter ‚Quota‘ der Speicherplatz angegeben, den der Benutzer maximal verwenden darf. Dieser sollte nicht die Gesamtgröße des USB-Sticks übersteigen. Speichert anschließend mit ‚Save‘.
Nun geht es zum großen Finale, der Rsync-Job.
Diesen finden wir unter ‚Services‘ -> ‚Rsync‘ -> ‚Tasks‘. Wir richten einen neuen mit ‚Create‘ ein. Unter ‚Source shared folder‘ wählen wir die Festplatte aus, von der wir die Daten beziehen wollen, bei ‚Destination shared folder‘ wiederum den USB-Stick, der als Ziel der Datensynchronisierung dienen soll. Je nach Bedarf, können die Ausführungszeiten für diesen Prozess beliebig gewählt werden. Die Zeitangabe erinnert dabei wohl nicht ohne Grund stark an die eines Cronjobs. In diesem Beispiel habe ich mich für die Synchronisierung der Daten alle 30 Minuten entschieden. Wählt unbedingt noch die Option ‚Delete‘ etwas weiter unten aus. Damit werden auch im Zielordner Daten gelöscht, die im Quellordner nicht mehr vorhanden sind und somit verhindert, dass der USB-Stick voll läuft.
Das Menü bietet noch viele weitere Optionen für Spielereien, die uns aber vorerst nicht interessieren sollen. Der Dienst als solches möchte aber vor Inbetriebnahme noch eingeschaltet werden. Im selben Obermenü landen wir unter ‚Server‘ -> ‚Settings‘ im richtigen Menü dafür. Einmal ‚Enabled‘ angehakt und ‚Save‘ geklickt und es kann losgehen.
Um zu sehen, ob die Synchronisation auch funktioniert, lege ich spaßeshalber 2 Objekte in die Festplatte der NAS ab.
Starten wir nun im ‚Rsync‘ Fenster unter ‚Tasks‘ einen Durchlauf mit dem Play-Symbol ‚Run‘ und schauen im Terminal vom Raspberry NAS aus, ob die Dateien auch angekommen sind.
Scheint funktioniert zu haben!
Um diesen Beitrag nun mit ein paar abzuschließenden Worten zu schmücken …
Ihr habt nun die Möglichkeit nach belieben weitere ‚Shared Folder‘ und Benutzer auf der NAS einzurichten und zu verwalten. Lagert ihr darauf ein paar besonders wichtige Daten die nicht verloren gehen dürfen, könnt ihr diese in den Ordner /backup verlagern. Von dort aus würden sie (nach aktueller Konfiguration) alle 30 Minuten auf den USB-Stick synchronisiert werden.