Netzwerk & IP

„NAS“ im Eigenbau – mit MSI Cubi und Ubuntu

Besser als gekaufte NAS: Cubi mit x86-Prozessor und Ubuntu Server 20.04

Das Für und Wider eines NAS habe ich quasi als Vorläufer zu diesem Artikel bereits ausführlich durchgekaut, hier geht es jetzt um den praktische Aufbau eines eigenen NAS-Ersatz-Servers: WLAN, Dateifreigaben, Mediaserver und eine Weboberfläche. Als Basis dienen ein MSI Cubi und Ubuntu Server 20.04 - eine Kombination, die auch teurere NAS-Hardware locker aussticht.

Das System

Ein modernes NAS ist längst mehr als Network Attached Storage, nämlich ein kompletter Server mit eigenem App-Store und eigenem Betriebssystem. Und einen Server kann man eben auch besser haben: Mit ganz normaler x86-Hardware, einem ganz normalen Ubuntu Server 20.04 und all den vielen Möglichkeiten, die das so mit sich bringt.

Hier soll es Headless-Server werden, also ohne angeschlossenen Monitor. Ihr könnt natürlich genauso gut die Desktop-Variante von Ubuntu nutzen und den Server zum Beispiel an den Fernseher hängen - dann könnt Ihr über den ganz normalen Desktop arbeiten, ganz ohne Kommandozeile ;) Wie immer wieder gesagt: Ein NAS ist nur ein Computer ...

Den Cubi haben wir hier behandelt, das Wichtigste: Intel-Pentium-Quadcore-Prozessor, 4 Gigabyte RAM und absolut lautlos, weil passiv gekühlt. Dazu gibt es einen HDMI-Ausgang, 4 USB-Anschlüsse und einen Stromverbrauch, der nur minimal über dem eines Raspberry Pis liegt. Daran hängt ein externe USB-Festplatte, die später für die Dateifreigaben herhalten muss.

(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Dazu kommen noch ein Mediaserver und eine Weboberfläche für den Browser - inklusive einer eigenen Shell, so dass Ihr Euch später gar nicht mehr via Terminal einloggen müsst. Vorab zeigen wir noch die Einrichtung des WLAN-Zugangs, damit das Ganze später auch ohne Kabel funktioniert.

0. Ubuntu installieren

Anfangen solltet Ihr freilich mit angeschlossenem LAN-Kabel, auch, um sicherzugehen, dass das Netzwerk eingerichtet ist und funktioniert - zudem natürlich für etwaige Updates. Installiert also zunächst Ubuntu Server über ein externes USB-Medium, beispielsweise mit UNetbootin. Wie genau das funktioniert, zeigt Christian hier für Mac, unter Windows und Linux funktioniert das Tool aber exakt genauso. Kurz: USB-Medium und Ubuntu-ISO-Datei wählen, starten, fertig.

1. WLAN

Unter Ubuntu gibt es mittlerweile eine neue Herangehensweise an die Netzwerkeinrichtung: Netplan - und das macht es sehr einfach. Die Installationsroutine von Ubuntu Server, Subiquity (Ubiquity for Server), hat die Ethernet-Verbindung bereits eingetragen, fügt einfach den folgenden wifis-Abschnitt zu der Datei /etc/netplan/00-installer-config.yaml hinzu:

    # This is the network config written by 'subiquity'
network:
  ethernets:
    enp6s0:
      dhcp4: true
  version: 2
  wifis:
       wlo1:
           optional: true
           access-points:
               "meinsuperwlan":
                   password: "meinsuperpasswort"
           dhcp4: true

Das Ganze sollte hübsch eingerückt sein, wifis direkt unter ethernets. Unter access-points gebt Ihr den Namen/die SSID des WLANs ein, unter password freilich das Passwort und vor allem den Namen Eures Wifi-Adapters (oben wlo1), den Ihr wie folgt auslesen könnt:

iw dev | awk '$1=="Interface"{print $2}'

iw dev listet Informationen zu Geräten, awk beschränkt das dann lediglich auf den Namen, könnt Ihr auch weglassen. Anschließend müsst Ihr die neue Konfiguration noch anwenden oder optional zunächst ausprobieren, wozu folgende Befehle dienen:

sudo netplan try 
sudo netplan apply 

Mit

ip a | grep wlo1

(oder wie auch immer Euer WLAN-Adapter nun heißt) könnt Ihr dann gucken, ob alles läuft und Ihr eine IP-Adresse bekommen habt; hier beschränkt grep die Ausgabe auf den relevanten Part, dürft Ihr wiederum weglassen.

2. Freigaben

Als Nächstes könnt Ihr die externe USB-Festplatte als Netzwerkfreigabe einrichten - was wir hier als eigenen kurzen und aktuellen Artikel haben. Für Eilige mit Vorkenntnissen, hier die TLDR-Version:

USB mounten:

    blkid
        UUID notieren   
    sudo nano /etc/fstab
        UUID=XXXXXXXXXX /media/festplatte auto nosuid,nodev,nofail 0 0

Samba-Freigabe:

    apt-get install samba
    smbpasswd -a mirco
    cp /etc/samba/smb.conf ~

    sudo nano /etc/samba/smb.conf
        [festplatte]
        path = /media/festplatte
        valid users = mirco
        read only = no
        service smbd restart

Anschließend könnt Ihr diese Freigaben wie gewohnt unter Windows als Netzlaufwerke einbinden, über Apps zugreifen und so weiter.

3. Mediaserver

Mit MiniDLNA ist Streaming so unfassbar einfach: Installieren, Medienpfade in Config-Datei eintragen, fertig - auch das hier als kurzer und aktueller Artikel. Für eine TLDR-Version ist der Artikel selbst einfach zu kurz ;)

4. Web-Oberfläche

Wo wir gerade bei einfachen Dingen sind - so installiert Ihr die Weboberfläche Cockpit:

sudo apt-get install cockpit

Und schon könnt Ihr Euch unter der oben ausgelesenen IP-Adresse und Port 9090 mit Eurem normalen Ubuntu-Account anmelden, also etwa 192.168.178.100:9090. Ihr findet in Cockpit allerlei Infos und Statusmeldungen sowie einige Konfigurationsmöglichkeiten, etwa zum Einrichten eines RAIDs, zum Formatieren von Datenträgern oder Verwalten von Nutzerkonten.

Speicherübersicht in Cockpit.

Das mächtigste Werkzeug ist aber natürlich der eingebaute Terminal - SSH-Sessions sind fortan nicht mehr nötig.

Terminal im Browser - immer eine super Sache ;)

Wie geht's weiter?

Ihr habt nun also ein NAS im klassischen Sinne plus Mediaserver - vielen Anwendern wird das erstmal reichen. Und da es sich, wie schon häufig erwähnt ..., um einen ganz normalen Rechner handelt, könnt Ihr nach Belieben weiteren Kram installieren, etwa Datenbankserver, Mailserver, FTP-Server, Docker, Backup-Tools und und und.

Wie wäre es mit einer Website? Der Webserver läuft sowieso schon, also legt doch einfach mal eine Datei hallo.html mit dem Inhalt Hallo Welt an und speichert sie im Webroot:

echo Hallo Welt > /var/www/html/hallo.html

Und schon könnt Ihr Eure "Webseite" über 192.168.178.100/hallo.html aufrufen - und genauso einfach geht das sogar mit einigen textbasierten CMS, für dicke Dinger wie Wordpress bräuchte es noch einen MySQL-Server, auch nur ein paar Befehle entfernt.

Ihr könntet nun sogar grafische Programme von diesem Server auf Euren Desktop bringen! Eines sollte spätestens jetzt klar sein: So ein stinknormaler Server ist doch das bessere NAS! Alles ist etwas simpler, schlanker, flexibler als bei Fertig-NAS aus dem Laden. Und sofern Linux für Euch neu ist: Was Ihr für Euren Server lernt, wird für immer und jedes Linux-System nützlich sein. Was Ihr für ein QNAP-, Synology- oder Sonstwas-NAS lernt, wird immer nur für Produkte dieses einen Herstellers nützlich sein. Und das auch nur so lange bis dieser etwas verändert.

Mehr zu Linux und zu NAS.

(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

25 Kommentare

  1. Moin,

    sag mal, wie viele Festplatten kann ich hier einbinden? Ich bin durch Zufall an 1 Petabyte Datenträger gekommen und suche nun nach einer Lösung, diese in mein Heimnetzwerk einzuspeisen ohne mir gleich einen Storage Server zulegen zu müssen.

    Aktuell sind diese über eine ICY Box mit 10-Bays verbunden, jedoch schwächelt der USB Controller bei 70 Laufwerken. Weiter bin ich über Windows Speicherpools auf 63 TB im RAID 0 Verbund begrenzt, was sich leider nicht umgehen lässt. Wenn ich nun 7 × 10 HDDs zu je einem RAID 0 Verbund zusammen fügen kann, wäre ich glücklich. Lässt mich dieses System denn RAID Systeme mit knapp 160TB Erstellen?

    1. 1PB kann man recht einfach verwalten. Bei Deinem Layout hast Du vermutlich 70*16TB HDD

      Linux: Linux kann problemlos und auch performant 70 oder mehr Harddisks verwalten, die Grenzen sind eher bei den Controller-Treibern angesiedelt (scsi,sata,sas ca. 128-256 Devices), weniger im Kernel.

      USB: Falls die alle über USB eingebunden werden brauchst Du natürlich entsprechende Controller und HUBs, ein einzelner Controller kann nach USB Spezifikation 127 Devices verwalten, da wirst Du nicht dran kommen, aber wahrscheinlich wird es nicht performant, weswegen sich mehere Controller anbieten würden, falls man solche eingebaut bekommt.

      Filesystem: Sowohl lvm/ext4 als auch zfs oder btrfs packen das locker. Ob es Sinn macht hier ein Software-Raid0 einzurichten ist eine andere Frage. Die Performance könnte ebenfalls nicht optimal sein.

      Lösungen dieser Größe werden üblicherweise mit ceph oder (exotischer) gluster in einem Cluster erstellt, wobei hier dann erhöhte Aufmerksamkeit auf Ausfallredundenzen gelegt wird. Bei Storages dieser Größe kommt meist ein Workload dazu, der auch zu aufwändigerem Caching zwingt.

  2. Hi, bin grade auf den Artikel gestoßen und liebäugel auch mit dem msi cubi.

    Aktuell habe ich eine WD MyCloud 3TB. Finde diese aber sehr langsam und erreiche max. 60MB/s.

    Nehme mal an mit dem Cubi würde das Besser laufen? Welche Festplatten sind denn zu empfehlen? Müssen ja für Dauerbetrieb ausgelegt sein oder?

    Viele Grüße Minnimii

    1. Theoretisch sollte im Gigabit-LAN knapp die doppelte Rate möglich sein, sofern das alle Komponenten unterstützen, also Router, Rechner und etwaige Switches. Allerdings sind die Fehlerquellen reichhaltig, beispielsweise habe ich hier ein Gigabit-LAN mit Cubi und Hauptrechner an einer modernen Fritzbox. Und iperf, ein Tool zum Messen des Netzwerkdurchsatzes, sagt auch 864 Mbit/s. Am Cubi hängt eine SSD per USB-3-Anschluss, ist also auch kein Flaschenhals. Und dennoch: Wenn ich Dateien vom Windows-PC auf die Cubi-Festplatte kopiere, per Samba-Freigabe, sind es doch wieder nur knapp 60 Megabyte pro Sekunde. Vom Cubi auf den Windows-PC sind es wiederum knapp 120 MB/s.

      Was die Festplatte angeht: Wenn das Budget es hergibt, würde ich eine SSD empfehlen – einfach weil sie geräuschlos und tendenziell ausfallsicherer ist. Eine 4-TB-NAS-HDD von Seagate gibt es für rund 100 Euro, 4-TB-SSDs beginnen bei rund 350 Euro …

      Wenn es eine HDD sein soll schadet es sicher nicht, eine explizite NAS-HDD zu verwenden, die für diese Betriebsart optimiert ist, zumal sich da preislich auch wenig bis gar nichts tut. Synology führt Ausfallsicherheit, Temperatur und Vibrationen pro Server-HDD an, wobei die letzten beiden Punkte nur was mit dem Gehäuse zu tun haben, in dem die HDD letztlich beheimatet sein wird.

      Aber ich hatte viele viele Jahre ganz stinknormale Desktop-HDDs in diversen NAS und Servern und nie Probleme damit. Und auch mein PC lief viele Jahre eher im 24/7-Modus, natürlich auch mit Standardplatten. Insofern: Ein Muss ist das nicht, aber je intensiver der Cubi-Server genutzt wird, desto interessanter könnte eine Server-HDD sein. Und da es preislich aufs Gleiche hinausläuft, spricht nichts dafür, eine Desktop-HDD zu kaufen. Aber Du könntest natürlich die 3-TB-Platte aus der MyCloud verwenden. Letztlich sind HDDs und mittlerweile auch SSDs so alte und etablierte Technologien und Produkte, dass man sich die Auswahl da nicht übertrieben schwer machen muss.

      1. Meinst du denn ich habe Vorteile bei einem Cubi gegenüber meiner WD MyCloud?

        Ich nutze sie hauptsächlich als Ablage für Daten und Musik/Filme. Filme halt über meinen SamsungTV. Oder ist die MyCloud ausreichend? (Ist halt träge das ding :-) )

        Die HDD kann man aus der MyCloud nicht ausbauen. In mehreren Foren gelesen das es nicht geht.

        Grüße

      2. Ah, okay, das ist natürlich mies von Western Digital ;)

        Also wenn das Streamen von der MyCloud ohne Ruckler klappt und Du nicht wirklich täglich etliche Gigabyte Daten hin und her schaufelst, sehe ich da keine riesigen Vorteile. Wie gesagt, der Transfer kann durchaus doppelt so schnell sein, aber wie oft braucht man das wirklich? Ich habe hier in die eine Richtung nur 60 MB/s und es ist mir erst aufgefallen, als ich vorhin mal gemessen habe.

        Der Cubi bietet vor allem Vorteile, was Dinge über das reine Datengrab hinaus angeht, es ist halt ein normaler Rechner/Server. Wenn es wirklich nur beim Datenspeicher bleiben soll, wäre der Raspberry Pi die günstigere Variante, bei ähnlicher Leistung. Ein einfaches NAS wäre ebenfalls noch günstiger und dazu einfacher in der Pflege – eine neue 4-TB-MyCloud liegt heute bei 194 Euro. Der Cubi kann am meisten, macht aber mehr arbeit als ein NAS und kostet mehr als der Raspi. Datentransfermäßig sollten die drei Varianten sehr nah beieinander liegen, zumindest theoretisch.

        Ich persönlich würde als reinen Datenspeicher vermutlich ein günstiges NAS wie MyCloud kaufen, beziehungsweise dabei bleiben. Wenn der Server hingegen auch selbst Funktionen anbieten soll und man gewillt ist, sich einzuarbeiten, bietet der Cubi jede Menge Vorteile.

    1. Kommt drauf an, was Du damit machen willst … Aber tendenziell würde ich ein NAS eher einfach halten, Windows löschen und rein mit Ubuntu arbeiten. Ansonsten verbraucht das zweite OS einfach sehr viel Platz, will gewartet werden und eigentlich braucht glaube ich kein Mensch wirklich einen Windows-Server im Heimnetz. Das Windows ist für den Desktop-Einsatz auf den Cubis.

  3. kannst du als Artikel mal Docker-Installation und Container einbinden/sichern machen?

    Ich habe nun einen Cubi und richte ihn gerade ein :)

    1. Habe ich vor einiger Zeit schon mal – findest Du hier.

      Die Docker-Installation selbst geht mittlerweile scheinbar minimal anders, die Anweisungen von Docker selbst sind im Artikel aber auch verlinkt. Der Rest passt noch genau so, also wie man Container findet, einbindet und anspricht.

  4. Bin sehr begeistert von dem Beitrag. Ich bin schon lange dran mein QNAP endlich zu verbannen und mir ein NAS, nein, eher ein Server selbst zu bauen. Ein NAS im eigentlichen Sinn ist heutzutage ja nicht mehr zeitgemäß, da niemand die zig fache Sicherheit und und und…, eigentlich braucht. Und somit auch kein NAS Betriebssystem, Was ich vielmehr suche ist ein sicherer Server auf den man von überall zugreifen kann, wobei der Zugriff über den VPN Tunnel der Fritz Box völlig ausreicht. Bin nun nur noch auf der Suche nach geeigneten Komponenten für den Mini PC selbst zu bauen um vorhandenes aus dem QNAP NAS wiederzuverwenden (Arbeitsspeicher/Festplatten).

  5. Ich muss zugeben, als ich „NAS im Eigenbau“ gelesen habe, mir etwas größeres vorgestellt hab, als ne externe Platte an etwas NUC-ähnliches zu stecken.

    Auf der einen Seite ist das vll einfacher als etwas selbst zusammenzubauen, nur wird diese Zielgruppe auch mit Linux nicht viel anfangen können…

    Gibt es noch eine etwas „komplexere Variante“ des Artikels, da ich aktuell in der endgültigen Komponentenauswahl für eine Selbstbau-Nas mit 10 Festplatten stecke und für jede weitere Inspiration dankbar wäre.

    1. Zielgruppe für die Anleitung sind in der Tat eher Laien und „normale Nutzer“, die eine simple schlichte Basis haben wollen. Aber die Quintessenz ist schon, dass ein NAS eben nicht viel anderes ist als ein NUC mit ’ner Festplatte ;) Klar sind auf meinem QNAP-NAS noch Dutzende, vielleicht Hunderte anderer Dienste eingerichtet, nur brauchen tue ich davon so gut wie nichts.

      Es kommt halt sehr drauf an, was Du mit dem Ding anfangen willst. Bei 10 Festplatten würde ich den Fokus beim traditionellen Netzwerkspeicher vermuten – da würde sich dann tatsächlich ein NAS-Betriebssystem wie FreeNAS anbieten oder OpenMediaVault, wenn es Linux-basiert sein soll. Das sind ausgereifte Systeme, mit denen sich auch ganze Büros bedienen lassen.

      Wenn es doch ein kompletter Server mit entsprechenden Diensten sein soll wäre meine persönliche Präferenz nach wie vor ein ganz popeliges Debian, um dann nach und nach die Dienste einzurichten, die ich brauche.

      Was sonstige Komponenten angeht: Lässt sich ehrlich gesagt nicht viel zu sagen, das hängt zu sehr vom Einsatz ab. Ich zum Beispiel hänge einfach USB-Festplatten dran und stapel sie bei Bedarf … Bei zehn Platten wirst Du eher einen Wechselrahmen benötigen, sowas hier von Icy Box etwa.

      Auch der Rechner muss zum Projekt passen. Wenn all die Platten einfach nur Speicher für Medien sind – egal. Wenn kontinuierlich 20 Leute darauf zugreifen und ein Dutzend Datenbank-, Web- und Sonstwas-Server darauf laufen …, nun, dann muss es irgendwann ein richtiger Server sein.

      Kurz: Was Konkretes kann ich da so allgemein echt nicht anbieten – aber mit Icy Box und FreeNAS als Anspieltipps sollte sich etwas machen lassen.

      1. Bei mir ist die Planung eher in Richtung Windows 10 wegen der Kompatibilität zu Programmen die noch drauf laufen sollen plus die Möglichkeit des günstigen Backups auf Backblaze. Bei Linux etc müsste man den teuren Business Tarif nehmen. Mit USB etc tu ich da nicht rum. Das kommt alles in ein Gehäuse entweder direkt ans MB oder über PCIe SATA Karten. Alles schön aufgeräumt, direkt ansprechbar und keine zig Netzteile für die externen oder über 400 € nur fürs Icybox Gehäuse. Für den Preis krieg ich den ganzen Server ohne Daten HDDs

  6. Was mir an den Synology Geräten immer gut gefallen hat, war die Möglichkeit bestimmt Dateien (z.bsp. Fotos) durch eine App auf dem Handy automatisch auf das NAS zu laden.

    Hast du dafür auch eine Alternative parat? Ansonsten schöner Artikel.

    1. Wenn das auch außerhalb des Heimnetzes gehen soll würde ich ownCloud nehmen. Falls Du es nicht kennst: Im Grunde wie Dropbox, nur Open Source. Die Android-App kann auch Fotos automatisch hochladen.

      Die Einrichtung ist natürlich mit ein wenig Aufwand verbunden: Server installieren, App installieren, Dynamic-DNS einrichten (damit die heimische, wechselnde IP-Adresse über einen fixen Namen wie mein-nas.example.com zu erreichen ist). Je nach Kenntnisstand klingt das jetzt vermutlich nach „schnell gemacht“ oder böhmischen Dörfern ;) Eigentlich ist das aber nicht sonderlich kompliziert, aber es sind schon ein paar Schritte.

      Aber ich befürchte, eine genaue Anleitung dafür muss ich bei Gelegenheit tatsächlich mal nachreichen.

      Oder man nimmt einfach direkt Dropbox, das ist dann zwar nicht Open Source und die Daten laufen über deren Server, ist aber simpel.

  7. Konstruktiver Verbesserungsvorschlag: Statt Ubuntu OmniOS oder FreeBSD nehmen. Mit genug RAM kann man da – und, anders als unter Linux, sogar lizenzkonform – ZFS als Dateisystem einsetzen.

    1. OmniOS kannte ich noch gar nicht, danke dafür, gucke ich mir mal an. Einsteigern beim Thema Linux- oder eben unixoide Server (oder -Desktops), die hier vor allem adressiert werden, würde ich das tendenziell nicht unbedingt empfehlen – einfach weil Ubuntu das gerade für Laien und auf Deutsch bestdokumentierte OS sein dürfte. Ist schließlich schnon schwer genug, reine Windows- oder Smartphone- oder Fertig-NAS-Nutzer zu Linuxen oder BSDs zu bewegen ;)

      Aber für alle anderen, klar FreeBSD ist immer eine Alternative, ich trinke 80 Prozent meiner Kaffees aus einem FreeBSD Mug :O Persönlich würde ich Debian nehmen, aber für die Anleitung sollte es dann aus obigen Gründen doch das – man möge es mir verzeihen … – Windows unter den Linuxen sein.

      Seit 15 Jahren im Einsatz.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"