====== NAS/RAID ======
===== NAS und RAID =====
NAS-Systeme haben viele Vorteile - insbesondere wenn es sich um reine Softwarelösungen auf einem 0-8-15-PC handeln. Da kann man z.b. auch einen ausgemusterten alten
PC nutzen.
Da es bei NAS-Systemen ja um viel und zudem ausfallsicheren Speicher geht, bieten sich natürlich RAIDs an. Da o.g. genannte ausgemusterte PCs meist aber keinen
Hardware-RAID-Controller haben (wenn überhaupt dann einen sehr eingeschränkten Fake-RAID), bietet sich Software-RAID an.
Zudem bietet dieses eine gewisse Ausfallsicherheit bei RAIDs die auf Striping setzen, also prinzipiell alle außer RAID-1. Alle anderen (z.B. RAID-0 und RAID-5, RAID-6).
RAID-5 und 6 sind zwar (eingeschränkt) gegen den Ausfall von Festplatten abgesichert, jedoch nicht gegen den Ausfall des RAID-Controllers. In diesem Fall sind
häufig die gesamten Daten verloren.
Anders bei Software-RAIDs. Fällt hier Hardware aus, lassen sich die noch funktionsfähigen Festplatten einfach in ein anderes System einbauen und man ist wieder
betriebsbereit, da der Controller in Software realisiert ist. Das geht soweit, dass sogar bei zerstörter Software einfach mittels Live-CDs die Daten wieder nutzbar
gemacht werden können.
===== Open-Source Lösungen =====
Es gibt eine Reihe an Open-Source NAS-Lösungen, im besonderen wollte ich hier FreeNAS, NAS4free und OpenMediaVault testen.
Die Tests wurden der Einfachheit halber in einer virtuellen Maschine ([[http://virtualbox.org|VirtualBox]]) durchgeführt, da man hier mit wenigen klicks viele
Festplatten erzeugen, kaputt machen und verändern kann.
Doch an Virtualbox liegt leider auch das Problem. So konnten die beiden BSD-basierten Systeme FreeNAS und NAS4free nicht getestet werden, da es sich hier nicht
starten ließ. Das liegt (lt. diverser Foren) möglicherweise daran, dass ich Intel VT nicht aktivieren kann, da mein Core2Duo das noch nicht unterstützt.
===== OpenMediaVault =====
==== Installation ====
Das letzte System - OpenMediaVault basiert auf Debian Linux und läuft auf Anhieb. Allerdings kann man in der Standardeinstellung die Partitionen nicht manuell wählen.
Um das zu ändern kann man die Datei preseed.cfg auf dem Installationsmedium im Ordner install mit einem Texteditor ändern. Die Zeilen, die mit "partman" starten müssen
auskommentiert werden, dann kann man per Hand partitionieren. Leider funktioniert dann Grub bei meiner Konfiguration nicht auf Anhieb.
Die Behebung erfordert etwas Fleißarbeit.
Am einfachsten startet man das System zunächst normal. Dabei kommt es kurz nach dem Start zum fehler und man fällt in eine Not-Konsole zurück. Mit dieser kann dann
z.B. über den Abruf von /proc/mdstat der name des System-Raids herausgefunden werden, in meinem Fall md126.
Nach dem Reboot muss das System "manuell" gestartet werden. Hierzu muss beim booten die Grub-Konfiguration mit einem Druck auf "e" geändert
werden. dann muss in der Kernel-Zeile der Teil root=/dev/md0 auf den zuvor herausgesuchten Wert (bei mir root=/dev/md126) angepasst werden.
Dann sollte der Start funktionieren. Damit das auch so bleibt, kann direkt nach dem erfolgreichen Start einmal update-grub ausgeführt werden, um die Konfigurations-
dateien neu (und nun auch richtig) zu schreiben.
==== Aktuelles System ====
Für RAID-Systeme müssen die Platten - oder zumindest die verwendeten Partitionen - gleich groß sein.
Mein aktuelles (virtuelles) Testsystem sieht nun so aus:
3x6 GB Festplatten (SATA)
Festplatte A:
* Partition 1: 100mb ext2, /boot
* Partition 2: 700mb, raid1
* Partition 3: restl. Platz, raid2
Festplatte B und C:
* Partition 1: 100mb, raid3
* Partition 2: 700mb, raid1
* Partition 3: restl. Platz, raid2
Raid1:
* RAID-5
* gemountet als /
* ext4
* Systempartition
Raid2:
* RAID-5
* nicht automatisch gemountet
* ext4
* Datenpartition
Raid3:
* RAID-0
* Genutzt als swap
Die (Software-)RAID-partitionen wurden mit dem Partitionsmanager der Installation erstellt, welcher unter der Haube einfach das in Linux-Kreisen bekannte
mdadm verwendet.
Hier muss beachtet werden, dass OpenMediaVault die Daten nicht auf der Systempartition ablegen kann - deshalb muss zwischen o.g. Raid1 und Raid2 unterschieden werden.
Es scheint sinnvoll, die Partition 1 auf Festplatte A zu sichern (z.b. auf Raid1 oder Raid2) oder sie gleich als RAID-1 auf die Platten B und C, die im
Moment ja als Swap verwendet werden, zu spiegeln, denn sie ist im Moment nicht gegen Ausfall gesichert. Zwar hätte ein Ausfall von Platte A keinen Einfluss auf
wichtige Daten, die Wiederherstellung des NAS-Systems würde aber durch die zerstörte Boot-Partition unnötig verkompliziert.
==== Aktueller Stand und Ausfallsicherheit ====
Alles funktioniert bisher perfekt, das Webinterface von Openmediavault wirkt aufgeräumt und ist mit etwas technischem Verständnis recht intuitiv zu bedienen -
einzige Ausnahme der Intuition: bevor man eine neue Freigabe einrichten kann, muss das entsprechende Laufwerk (hier Raid2) im Menüpunkt Dateisysteme eingebunden
werden. Der Rest geht wie von selbst und funktioniert reibungslos.
Wie oben schon geschrieben, ist natürlich auch die Ausfallsicherheit wichtig. Was lag also näher, als einfach mal eine Platte zu "schrotten", oder einfacher gesagt
abzuklemmen.
Also: Platte C gelöscht und eine neue, leere Platte reingehängt.
Leider hat Grub aus bisher unbekanntem Grund nicht mehr funktioniert (Partition 1 auf Platte A mit dem /boot-Verzeichnis ist ja unbeschädigt), aber die
Wiederherstellung war trotzdem kein großes Problem:
Start von einer Live-CD (ich habe das bekannte [[http://knoppix.org|Knoppix]] verwendet), dann Partitionierung der neuen Platte genau wie die Alte.
Bei meinem Beispiel läuft die Reparatur dann wie folgt ab:
Raid3 wird neu erstellt, es enthielt ja keine Daten (nur SWAP): mdadm --create /dev/md0 -l0 -n2 /dev/sdb1 /dev/sdc1
Die noch vorhandenen aber angeschlagenen RAID-5 Systeme werden mit mdadm --assemble --scan gesucht und zusammengesetzt und anschließend repariert:
mdadm /dev/md1 --add /dev/sdc2
mdadm /dev/md2 --add /dev/sdc3
Die Reparatur (auch Rekonstruktion genannt) dauert eine ganze Zeit lang, der Status kann in /proc/mdstat mitverfolgt werden.
Während der Reparatur kann auf die Daten zugegriffen werden - sie sind unversehrt.
Wenn die Reparatur abgeschlossen ist, kann das System wie gewohnt gestartet werden - auch Grub funktioniert von selbst wieder.
==== Update von 2017 ====
Das NAS läuft zwischenzeitlich auch in Hardware mit 4x3TB im RAID5-Verbund unter einem out-of-the-box Ubuntu LTS und verrichtet hier klaglos seinen Dienst - egal ob in Zusammenarbeit mit Windows oder Linux, beides mal kommt man auf knapp 120mb/s Lese- und Schreibgeschwindigkeit (mehr gibt das Gigabit-LAN nicht her).
Wichtig für die Performance ist allerdings ein kleiner Eingriff in die RAID-Steuerung, namentlich muss /sys/block/md*/md/stripe_cache_size hochgesetzt werden (z.B.8192), sonst bricht die Schreibleistung stark ein.