NAS mit Ubuntu Server Linux und Webmin (auch für Apollo Lake)

In dieser Anleitung zeigen wir euch, wie ihr ein NAS auf Ubuntu Linux Server aufbaut. Dabei legen wir Wert auf ein schnelles, kleines System welches trotzdem alle wichtigen NAS-Funktionen mitbringt.

Bei uns gibt es bereits zahlreiche Anleitungen zur Realisierung eines NAS auf Linux Basis. Diese basieren aber zu einem großen Teil auf OpenMediaVault, einer Weboberfläche für Debian Linux (siehe Installation und Konfiguration von OpenMediaVault).

Die aktuellste Version von OpenMediaVault (3.x) basiert dabei auf Debian 8.6 und befindet sich seit Anfang 2016 in der Beta Phase. Viele Besucher fragen immer wieder nach einem Termin für die Final-Version von OpenMediaVault 3, da die aktuelle OpenMediaVault 2.x aktuelle Hardware nicht mehr einwandfrei unterstützt. Ein endgültiges Datum lässt sich aber auch nach einem Jahr Beta Phase nicht benennen.

Zusätzlich kommt als Problem hinzu, dass selbst das nicht mehr ganz aktuelle Debian 8.6 Grundsystem Probleme mit neuen Prozessoren hat, z.B. arbeitet Debian 8.6 nicht mit den neuen Intel Apollo Lake Systemen wie z.B. dem ASRock J4205-ITX zusammen. Das ist sehr schade, denn diese Systeme eigenen sich hervorragend für den Einsatz in einem NAS da sie eine deutliche Verbesserung in Leistung und Energieaufnahme verglichen mit dem Vorgänger auf Braswell Basis bieten.

Daher haben wir uns entschlossen eine Anleitung für ein NAS auf Ubuntu Linux Server 16.10 zu erstellen, denn dieses System beinhaltet einen sehr aktuellen Kernel (4.8) und unterstützt alle uns bekannten Systeme, einschließlich den neuen Intel Apollo Lake Prozessoren.

Als Weboberfläche verwenden wir Webmin. Webmin ist nicht auf NAS-Anwendungen spezialisiert, bietet aber alle Grundfunktionen (RAID, SMB-Freigaben, Benachrichtigungsfunktion bei Fehlern) die wir uns für ein NAS wünschen. Da es sich bei Ubuntu Linux Server um ein vollwertiges und mit Debian 8.6 vergleichbares Linux handelt, sind eigentlich alle OpenMediaVault Funktionen auch hier realisierbar, allerdings ist teilweise mehr Aufwand erforderlich um Module / Programme hinzuzufügen und zu konfigurieren.

Ubuntu Linux Server 16.10 kommt ohne Desktop-Oberfläche daher und wird komplett über die Kommandozeile bedient. Dadurch ist es sehr sparsam und schnell. Natürlich lässt sich sogar eine Desktopumgebung nachinstallieren, wir möchten aber zeigen, dass dies vielleicht gar nicht notwendig ist, denn durch die Webmin Oberfläche lässt sich das System zu einem großen Teil via Browser verwalten. Wir haben diese Anleitung sehr detailliert geschrieben und denken, dass diese auch für Linux-Einsteiger anwendbar sein sollte.

Downloads


Zuerst benötigen wir die neusten Versionen der hier vorgestellten Software, die für den privaten Nutzer kostenlos verfügbar ist. Neben dem Ubuntu Linux Server 16.10 Image und Webmin benötigen wir noch einen SSH-Client um Konsolenbefehle von einem anderen Computer an das NAS zu senden (so benötigen wir an dem NAS System später keinen eigenen Monitor), sowie den Win32DiskImager um das Image auf einen USB-Stick zu entpacken. Wer das Image lieber auf CD/DVD brennt, der benötigt den Win32DiskImager nicht.

Wer das Image auf einen USB-Stick kopieren möchte, der muss diesen zunächst im FAT32-Format formatieren. Sollte der Stick bereits von einer anderen Linux-Installation partitioniert worden sein, empfiehlt es sich den Stick komplett zu löschen. Dies funktioniert z.B. mit der Windows eigenen Software Diskpart (siehe Anleitung: USB-Stick bootfähig machen).

Anschließend den Win32DiskImager starten, die heruntergeladene Image-Datei von Ubuntu Server auswählen und auf den Write Button klicken. Danach kann man den Computer mit eingesteckten USB-Stick booten und die Installation von Linux startet.

Installation


Während der Erstinstallation bietet es sich an nur die Systemfestplatte anzuschließen, die Datenfestplatten für den RAID können wir dann später anschließen. Das erleichtert die Auswahl der richtigen Festplatte während der Installation, vor allem für Einsteiger.

In dieser Anleitung verwenden wir als Benutzernamen stefan und installieren das System auf die erste Festplatte /sda. Da wir die komplette erste Festplatte für das System benutzen wollen, bietet sich hier eine kleine SSD mit 32-128GB Kapazität an. Nach der Installation benötigt Ubuntu Linux Server ca. 1,5 GB Festplattenspeicher (plus Speicher für die Auslagerungspartition (Swap) des Arbeitsspeichers). Zusammen reichen, auch mit vielen installierten Programmen, 32GB Festplattenspeicher locker aus.


  1. Netzwerkkabel verbinden ! Es werden Daten während der Installation heruntergeladen

  2. Sprache / Tastaturmodell wählen: Deutsch / German

  3. Rechnername

  4. Vollständiger Name des Benutzers

  5. Benutzername (kurz)

  6. Passwort

  7. Verschlüsselung (Nein)

  8. Festplatte partitionieren (Geführt - gesamte Platte verwenden und LVM einrichten)

  9. Systemfestplatte für das Betriebssystem auswählen

  10. Partitionierung mit “Ja” bestätigen und die volle Kapazität der Festplatte “max” auswählen

  11. Änderungen mit “Ja” nochmals bestätigen

  12. Proxy eingeben

  13. Aktualisierungsoption wählen

  14. Paket “OpenSSH” auswählen

  15. Masterbootrecord installieren

  16. Festplatte für GRUB Bootloader auswählen (Systemfestplatte)

  17. Installation abgeschlossen


Bilder werden geladen ...

Bilder werden geladen ...

Am Ende der Installation startet das System neu. Der USB-Stick mit dem Installationsimage kann nun entfernt werden. Die Konsole verlangt nun nach einem Benutzernamen und unserem Passwort. Wir wollen uns nun aber nicht am System selbst anmelden, sondern von einem anderen Computer via SSH.

Dazu installiert und startet ihr den Bitvise SSH Client und logt euch mit eurem Benutzernamen (bei mir stefan) ein, zusätzlich wird euer Passwort abgefragt. Den Verbindungsschlüssel akzeptiert und sichert ihr. Bitvise zeigt euch nach erfolgreichem Login zwei Fenster an: ein schwarzes Konsolenfenster für Kommandos und einen SFTP-Dateimanager.

Ihr startet eine Session immer mit Standard-Benutzerrechten. Um Administratorrechte (root Rechte) zu erlangen, muss entweder vor jedem Befehl der Zusatz sudo gesetzt werden oder ihr wechselt für die Dauer euer Session in die Administratorebene (sudo -s).

Kommandozeilenbefehle per SSH


Im Konsolenfenster gebt ihr folgende Befehle ein:

sudo -s (um root-Rechte zu erlangen)
apt-get update (Aktualisierung der Paketlisten)
apt-get upgrade (Aktualisierung aller Pakete)

apt-get install samba-common samba (Ermöglicht später die Freigabe von Daten auf dem NAS via dem SMB/CIFS Protokoll, z.B. für einen Windows, Linux oder Mac Computer oder einem Mediaplayer).

Wer einen kleinen Taskmanager mit einfacher Oberfläche installieren möchte, kann dies mit folgendem Befehl tun:
apt-get install htop
Gestartet wird der Taskmanager dann einfach mit dem Befehl htop. Beendet wird der Taskmanager mit F10.

Webmin


Ihr wechselt nun zum SFTP-Dateimanager Fenster. Die heruntergeladene Datei “webmin_1.820_all.deb” per Bitvise SFTP in das home-Verzeichnis kopieren (Drag & Drop). Danach wechselt ihr wieder zum Konsolenfenster. Beim nachfolgendem Befehl müsst ihr das Verzeichnis (/home/stefan/) anpassen.

dpkg --install --force-depends /home/stefan/webmin_1.820_all.deb

Beim ersten Befehl wird eine Information ausgegeben, dass Abhängigkeiten installiert werden müssen. Dies tun wir mit dem folgenden Befehl:

apt-get install -f

E-Mail Benachrichtigungen konfigurieren


Damit uns das NAS bei einem Fehler per E-Mail informieren kann, muss zuerst ein Mail SMTP-Client installiert werden.

apt-get install msmtp msmtp-mta

Anschließend öffnen wir die Konfigurationsdatei:

nano /etc/msmtprc
account default
host smtp.meinedomain.de
port 25
from absendeadresse@meinedomain.de
auth login
user absendeadresse@meinedomain.de
password 12345z
syslog LOG_MAIL

Ihr müsst die Daten an euren Mailaccount anpassen. Googelt einfach nach msmtp zusammen mit dem Namen eures Mailproviders wenn ihr euch unsicher seid wie eure Daten lauten.

Strg+O um die Datei zu speichern, gefolgt von Strg+X um den Editor zu beenden. Ob der Mailversand funktioniert, lässt sich mit dem folgenden Befehl testen (ihr müsst hier eure E-Mail Adresse eingeben an die die Nachricht versendet werden soll):

echo "Das ist eine Testnachricht von meinem Linux Server" | msmtp -d empfaenger@meinedomain.de

Damit ist die Ersteinrichtung im Konsolenfenster abgeschlossen und wir können nun zur Webmin Weboberfläche wechseln. Öffnet dazu einen aktuellen Browser und gebt als Adresse http://IP-oder-Hostname:10000 an. Die 10000 steht für den Port auf dem Webmin lauscht. Es erscheint ein Login-Fenster in dem ihr wieder euren Benutzernamen und euer Passwort eingebt.

RAID Konfiguration


Habt ihr bereits eure Datenfestplatten angeschlossen? Wenn ihr einen RAID erstellen möchtet, könnt ihr dies nun tun und den RAID erstellen (Hardware -> Linux RAID). Wartet dann ab bis der Sync abgeschlossen ist. Dies kann je nach Anzahl und Kapazität der Festplatten mehrere Stunden dauern.

Sobald der RAID erstellt wurde (Status: clean), auf den RAID-Eintrag klicken und ein Dateisystem (ext4) auf dem RAID erstellen. Anschließend den RAID in einen beliebigen Ordner (z.B. /raid) mounten. Unter “Filesystem status” des RAID-Eintrages sollte nun Mounted on /raid stehen.

Anschließend sollte noch eine E-Mail Adresse im Feld Send notifications to gesetzt werden. Testen können wir den E-Mail Versand mit mdadm --monitor --scan --test -1 in der SSH-Kommandozeile.

Bilder werden geladen ...

In dieser Anleitung gehen wir davon aus, das wir einen RAID benutzen. Möchtet ihr lieber eine einzelne Festplatte für die Daten einbauen, könnt ihr dies natürlich auch tun, die folgenden Schritte sind identisch und müssen nur leicht angepasst werden.

Benutzer für den Zugriff auf das RAID erstellen


Unter System -> Users and Groups erstellen wir einen neuen Benutzer mit dem Namen Daten. Diesen Benutzer geben wir nun Zugriff auf den Mount /raid (Others -> File Manager), indem wir den Mount anhaken und oben rechts auf das Benutzerbild klicken (chown selected).

Samba(SMB)/CIFS Freigabe erstellen


Für die Freigabe müssen wir zunächst den Benutzer Daten für Samba verfügbar machen. Dazu benutzen wir die Convert Users Funktion unter Servers -> Samba Windows File Sharing. Hier wählen wir den Benutzer Daten aus und konvertieren diesen. Anschließend bearbeiten wir den Samba Benutzer Daten und setzen das gleiche Passwort welches wir auch für den Unix Benutzer “Daten” gesetzt haben.

Bilder werden geladen ...

Anschließend setzen wir unter dem Punkt Networking noch die Sicherheit auf Share level. Nun sind wir bereit und können die eigentliche Freigabe erstellen. Dazu klicken wir Oben auf den Link Create new file share. In unserem Beispiel heißt die Freigabe RAID.

Für die neue Freigabe müssen wir jetzt noch die Sicherheit bearbeiten und neben Writeable yes unseren Benutzer Daten unter Valid Users eintragen.

Bilder werden geladen ...

Damit ist die Freigabe erstellt. Sicherheitshalber könnt ihr den Samba-Dienst noch einmal neustarten. Danach lässt sich die Freigabe auf anderen Clients nutzen.

Freigabe auf dem Client einbinden (Windows)


Am Beispiel eines Windows 7 Clients möchten wir kurz zeigen, wie ihr die eben erstellte Freigabe in euer System einbinden könnt.
Bilder werden geladen ...

RAID vergrößern


Möchtet ihr später euren RAID-Verbund durch Festplatten mit größerer Kapazität vergrößern? Das funktioniert wie folgt:

  1. In Webmin auf das RAID klicken und eine HDD entfernen

  2. Neue (größere) Festplatte einbauen und diese zum RAID hinzufügen

  3. Wenn der RAID neu aufgebaut wurde (Status: clean), die zweite alte (kleine) Festplatte entfernen

  4. Zweite neue Festplatte einbauen

  5. Zweite kleine Festplatte entfernen

  6. Zweite neue Festplatte hinzufügen

  7. mdadm --grow /dev/md0 --size=max (Konsolenfenster)

  8. resize2fs /dev/md0 (Konsolenfenster)

RAID 5/6 um eine weitere Festplatte erweitern


Habt ihr euch für einen RAID 5 oder RAID 6 entschieden, könnt ihr jederzeit neue Festplatten zu dem Verbund hinzufügen um die Gesamtkapazität zu erhöhen:

  1. Neue Festplatte einbauen und eine SSH-Session (Konsolenfenster) starten

  2. mdadm --add /dev/md0 /dev/sdb3 (Damit würde die Festplatte /dev/sdb3 hinzugefügt werden)

  3. mdadm --grow --raid-devices=4 /dev/md0 (Der RAID würde nun aus 4 Festplatten bestehen)

  4. resize2fs /dev/md0 (Hiermit wird das Dateisystem auf dem RAID auf die maximale Größe ausgedehnt)

Fazit


Eine manuelle Installation von einem Linux Server Betriebssystem ist gar nicht so schwer. Auch für Einsteiger wird sich schnell ein Erfolgserlebnis einstellen. Wir haben hier natürlich nur die Grundfunktionen eines NAS beschrieben, OpenMediaVault kann viel mehr. Aber gerade im Hinblick auf die lange Beta-Phase von OpenMediaVault 3 und die fehlende Unterstützung der neuen Apollo Lake Systeme ist Ubuntu Server 16.10 aktuell eine gute Alternative.

Webmin ist einfach zu bedienen und besitzt viele Module um z.B. später einen Webserver oder eine Datenbank zu konfigurieren. Als Alternative bietet sich auch Rockstor auf CentOS Basis an, welches sich immer mehr zu einer guten und stabilen Alternative bestehender Lösungen entwickelt (siehe Vorstellung Rockstor).