Gebruik je Raspberry Pi als energiezuinige NAS

Neem een Raspberry Pi en een paar goedkope externe harde schrijven en je hebt het recept voor een ultra low-power netwerkopslag apparaat. Lees verder om te zien hoe je zelf een Raspberry Pi als energiezuinige NAS kunt gebruiken.

Benodigdheden

Waarom?

Het voordeel van een netwerkopslag apparaat dat altijd aanstaat is dat je altijd toegang tot je data hebt (of een backup kunt maken) van computers van zowel in als buiten je eigen netwerk. Het nadeel is dat je redelijk wat stroom kwijt bent, aangezien het apparaat 24/7 aanstaat. Voor een doorsnee server betaal je al gauw 150-175 euro aan stroomkosten. Een netwerkopslag apparaat gebaseerd op een Raspberry Pi gebruikt slechts zo’n 5 euro aan stroomkosten per jaar.

Oké, een ‘echte’ server heeft wat meer mogelijkheden, zoals meer opslagcapaciteit en een hoger snelheid. Echter, voor de meeste mensen is het voldoende om een simpele backup server te hebben en daar is de Raspberry Pi meer dan krachtig genoeg voor en bespaart een hoop kosten.

 

Wat heb je nodig?

Uiteraard heb je een Raspberry Pi nodig, voorzien van Raspbian software. Daarnaast heb je één USB harddisk nodig voor eenvoudige netwerk-backups. Dat is alles! Als je lokale gegevens-redundantie wilt hebben dan heb je twee (dezelfde) USB harddisks nodig.

In principe kun je iedere externe harddisk gebruiken die je toevallig hebt liggen, maar het meest ideaal is om een low-power schijf te gebruiken, aangezien het een van de doelen is om een energiezuinige NAS zelf op te zetten. Voordat we verder gaan moet je zelf bedenken je de Raspberry Pi NAS wilt gaan configureren. Je kunt uiteraard exact onderstaande stappen volgen, maar het is ook mogelijk om dingen te wijzigen, zodat de NAS precies aan jouw eisen voldoet.

We gaan gebruik maken van NTFS geformatteerde harde schijven. Het voordeel hiervan is dat je ze dan ook direct op een Windows computer kunt aansluiten, mocht je Raspberry Pi het een keer niet doen of als je snel veel data wilt kopiëren via USB 3.0. Daarnaast gaan we gebruik maken van Sambe voor de netwerk shares, ook vanwege de reden dat dit uitstekend samen gaat met Windows computers.

 

Harddisk voorbereiden en mounten

Het is tijd om de Pi in te gaan stellen als een NAS. Allereerst gaan we natuurlijk de harde schijven fysiek aansluiten op de USB poorten van de Raspberry Pi. De schijven krijgen de voeding via de USB poorten en zijn dus direct gereed voor gebruik.

Noot: In onderstaand voorbeeld gaan we uit van het gebruik van twee harddisks. Indien je besluit om slechts één harddisk te gaan gebruiken dan kun je bepaalde stappen uiteraard overslaan.

Al het werk gaan de doen via de terminal. Je kunt direct op de Raspberry Pi werken door LXTerminal in Raspbian te gebruiken of je kunt gebruik maken van SSH m.b.v. een programma als Putty, dat maakt verder geen verschil.

De eerste stap is om ervoor te zorgen dat Raspbian NTFS schijven gaat ondersteunen. Dit doen we met onderstaand commando:


Het duurt een minuut of twee, voordat alles packages zijn gedownload, uitgepakt en geïnstalleerd. Als de NTFS package geïnstalleerd is gaan we kijken naar de unmounted partities van de aangesloten externe harde schijven:


Je zal minimaal twee schijven zien. indien je twee USB schijven aangesloten heb voor data mirroring (zoals ik gedaan heb) dan zie je er drie:

De eerste schijf /dev/mmcb1k0 is de SD kaart in de Raspberry Pi, waar Raspbian op geïnstalleerd is. Hier gaan we uiteraard niets mee doen.

De tweede schijf, /dev/sda is onze eerste 1TB externe harddisk. De derde schijf, /dev/sdb is onze tweede 1TB harddisk. De partities van de schijven waar we in zijn geïnteresseerd zijn /sda1/ en /sdb1/. Schrijf de namen van de harde schijven ergens op.

Voordat we de schijven kunnen mounten moeten we een map aanmaken waar we  de schrijven naar kunnen mounten. Gemakshalve zullen we de map USBHDD1 en USBHDD2 gaan noemen voor ieder schijf:


Nadat de twee mappen zijn aangemaakt kunnen we de externe schijven mounten naar de locaties, door onderstaande commando’s in te geven:


We hebben nu twee externe harddisks gemount naar de USBHDD1 en USBHDD2 mappen. Op beide schijven gaan nu een extra map aanmaken voor gedeelde mappen (op deze manier houden we alles overzichtelijk op de schijven). Geef onderstaande commando’s in:

Samba installeren en configureren

We gaan nu Samba installeren, zodat de opslagruimte vanuit het gehele netwerk benaderbaar is:


Dit duurt een paar minuutjes en je moet een keer met Y bevestigen. Zodra Samba geïnstalleerd is gaan we het configureren. Uiteraard maken we eerst een back-up van het configuratiebestand:


Vervolgens gaan we het Samba configuratiebestand bewerken:


Dit commando opent de nano text editor, waar je eenvoudig wijzigingen in het bestand mee kunt maken. Je zal iets als onderstaand zien:

Eerst gaan we de workgroup identifier wijzigen (indien nodig). Standaard staat er workgroup = WORKGROUP. Mocht je een andere naam voor je thuisnetwerk gebruik verander het dan hier, anders hoef je niets tedoen.

De volgende stap is om user authentication aan te zetten voor de samba opslag, anders kan iedereen met toegang tot het netwerk, zoals gasten op het Wi-Fi netwerk, op de NAS komen. Scroll naar benenden in het Samba configuratiebestand, totdat je onderstaande ziet:

Haal het # symbool weg voor security = user, zodat gebruikersnaam/wachtwoord verificatie aanstaat voor Samba shares.

Vervolgens gaan we een nieuw blok toevoegen aan het configuratiebestand. Scroll bijna helemaal naar beneden en voeg de volgende tekst toe:


Noot: Het gene wat je tussen de haakjes op de eerste regel zet wordt de naam van de folder van de netwerk share. Als je iets anders dan “Backup” wilt wijzig het dan nu.

Druk op CTRL+X om af te sluiten, bevestig met Y als er gevraagd wordt om de wijzigingen te behouden en overschrijf het bestaande configuratiebestand. Terug in de terminal geef je onderstaand commando in om de Samba daemons te herstarten:

Gebruikersaccount aanmaken

Nu gaan we een gebruiker aanmaken die toegang kan hebben tot de samba shares van de Raspberry Pi. We maken een account aan met de gebruikersnaam backups en wachtwoord backups4ever. Uiteraard kun je een zelfbedachte gebruikersnaam en wachtwoord instellen . Geef onderstaande commando’s in:


Je moet nu twee keer het wachtwoord ingeven. Nadat het wachtwoord ingegeven is gaan we backups toevoegen als legitieme Samba gebruiker:


Voer het wachtwoord het backup account in als er om gevraagd wordt. Je hoeft de Samba daemon niet te herstarten, nadat je het gebruikersaccount aangemaakt hebt. We kunnen nu de netwerk share test met bv. een Windows computer.

Open Windows Verkenner, klik op Netwerk en je zal RASPBERRYPI zien staan als hostname. Klik vervolgens op de gedeelde map Backups:

Geef de inloggegevens in, zodra hier om gevraagd wordt (deze hebben we hierboven aangemaakt.

Indien alles goed gegaan is kom je in een lege map terecht. Als extra check maken we een bestandje aan op de computer:

In de terminal controleren we of het aangemaakte bestandje zichtbaar is. Dit doen we met onderstaande commando’s:


hello-is-it-me-you-are-looking-for.txt staat in de directory; het is gelukt!

Tot slot volgt nog de laatste stap: bij een herstart van de Raspberry Pi willen we natuurlijk dat de externe harde schijven automatisch gemount worden.  Dit doen we door onderstaand commando in te geven in de terminal:


In de tabel voegen we onderstaande regels toe:


Druk op CTRL+X om af te sluiten, druk op Y om de wijziginen op te slaan en overschrijf het bestaande bestand.

Indien je één harddisk gebruikt voor je NAS, zonder gegevensredundantie, ben je nu al klaar, geniet van je Raspberry Pi als energiezuinige NAS!

 

Configuratie van Raspberry Pi NAS met gegevensredundantie

De Raspberry Pi als energiezuinige NAS is nu verbonden met het netwerk, bestandsoverdracht werkt, maar er is nog één ding dat we missen. De tweede harddisk is geconfigureerd, maar heeft nog geen functie.

We gaan nu gebruik maken van twee simpele, maar erg handige Linux tools, namelijk rsync en cron. Met deze twee tools gaan we de Raspberry Pi als energiezuinige NAS configureren, zodat ‘s nachts de bestanden in de /shares/ map van de ene naar de andere schijf gekopieerd worden. Dit doen we voor het geval één van de schijven stuk gaat.

Eerst moeten we rsync toevoegen aan de Raspbian installatie. Dit doen we met onderstaand commando:


Zodra rsync geïnstalleerd is gaan we een cron job instellen  om het proces van het kopiëren van USBHDD1 naar USBHDD2 te automatiseren. Geef onderstaand commando in:


Je komt nu in een tabel van alle cron jobs. Voeg onderaan de volgende regel toe:


Deze regel zorgt ervoor dat iedere dag om 05.00 uur, op iedere dag, de twee schijven met elkaar gesynchroniseerd worden. Let erop dat verwijderde bestanden op USBHDD1 ook automatisch worden verwijderd op USBHDD2.

Het is belangrijk dat je een tijdstip kiest op een moment dat de synchronisatie niet in conflict komt met andere netwerkactiviteit op de gedeelde mappen, zoals bijvoorbeeld een automatische backup of het maken van een complete image. Zorg ervoor dat je back-ups maakt voordat je gaat synchroniseren, dan worden de nieuwste back-ups altijd meegenomen.

Sluit het bestand af met CTRL-X en sla het bestand op. Indien je direct rsync wilt laten lopen, zodat de nachtelijke taak wat korter duurt, gebruik je onderstaand commando in de terminal:


Dit is alles! Het enige wat je nog na een dag of twee moet doen is kijken of de cron job uitgevoerd wordt en de data van /USBHDD1/shares/ in /USBHDD2/shares/ verschijnt.

5 gedachten over “Gebruik je Raspberry Pi als energiezuinige NAS

  • 29 juli 2019 om 16:35
    Permalink

    Bedankt voor deze publicatie.
    Er zijn 3 problemen die niet goed gaan.
    1e de opmerking haal # symbool weg voor security = user.
    Dit kan niet, want security = user staat niet in de smb.conf.
    Ik heb deze wel er in gezet.

    2e Om samba te herstarten wordt het volgende commando gevraagd in te voeren.
    sudo /etc/init.d/samba restart.
    Helaas krijg ik de melding dat de opdracht init.d niet herkend wordt.

    Bij de netwerk share test volgt de melding dat ik niet de juiste machtiging heb om de test in de map backups op te slaan.

    Graag zou ik uw advies willen horen

    Mvrg
    Stef

    Beantwoorden
  • 28 oktober 2020 om 13:11
    Permalink

    Eén van de drie problemen heb ik opgelost met:
    sudo /etc/init.d/samba-ad-dc restart

    In smb.conf. heb ik ook maar de regel security = user toegevoegd

    Bij de netwerktest heb ik ook niet de juiste machtigingen.

    Graag een vervolgje op dit artikel

    Chris

    Beantwoorden
  • 25 januari 2021 om 09:03
    Permalink

    Aanvulling Januari 2021.
    Ik kom nog op dezelfde problemen uit.

    Stef

    Beantwoorden
  • 15 oktober 2021 om 07:29
    Permalink

    Als je kijkt bij eigenschappen zie je dat alleen root alle rechten heeft. Door force user = “root” toe te voegen kun je dit oplossen.

    Voorbeeld:
    [Backup]
    comment = Backup Folder
    path = /media/HDD/shares
    writeable = yes
    create mask = 0777
    directory mask = 0777
    public = no
    force user = “root”

    Beantwoorden
  • 13 april 2023 om 17:38
    Permalink

    Ik kwam dit project tegen toen ik op zoek was naar een eenvoudig en goedkoop NAS alternatief. Ik ben er mee bezig geweest en kwam ook de problemen tegen die mijn voorgangers al tegen kwamen. De oplossingen die aangedragen werden werken ook.

    Ik kwam nog een probleem tegen nadat ik de regels had getypt in fstab voor het automatisch mounten van de harde schijven.

    Bij het uitvoeren van de volgende regel: rsync -av –delete /media/USBHDD1/shares/ /media/USBHDD2/shares/ kreeg ik de volgende melding: “failed: Permission denied (13) rsync error: error in file IO (code11) at main.c(787) [Receiver=3.2.3]

    De fout ziet in de 2e regel die bij fstab moet worden toegevoegd. Daar staat “/dev/sda2 /media/USBHDD2 auto comment=noatime,nofail,systemd.automount 0 0”

    sda2 moet zijn sdb1 omdat deze bij het opstarten zo gezien wordt en in jullie verhaal al eerder aangegeven werd bij het mounten naar de locatie /media/USBHDD2.

    Nadat ik de zaak had ge-reboot werd van schijf 1 een backup gemaakt naar schijf 2.

    Beantwoorden

Laat een antwoord achter aan Stef Oijen Reactie annuleren

Het e-mailadres wordt niet gepubliceerd.