Schlagwort-Archiv: RAID

unRAID als NAS Betriebssystem

Veröffentlicht am von 0 Kommentare

Schon seit langem betreibe ich ein NAS (Network Attached Storage) in meinem Heimnetzwerk. Primär um diverse Medien einfach zugänglich für verschiedene Stationen und Personen an zu bieten und sekundär um nur an einer Stelle für Ausfallsicherheit sorgen zu müssen. Hiermit ist gemeint, dass man zwar in jedem PC ein RAID für wichtige Daten bilden könnte, dies aber unnötiges Geld kosten würde und auf jeder Station konfiguriert werden müsste. Sorgt man aber dafür, dass alles Wichtige auf ein NAS repliziert wird ist es zum einen von anderen Stationen zugänglich und wird auf dem NAS gegen Hardwaredefekte abgesichert.

Da mir fertige System, wie zum Beispiel die von Synology, nicht flexibel genug sind habe ich schon immer auf selbstbau Lösungen gesetzt. Die Hardwareseite würde ich in diesem Kontext als trivial bezeichnen. Viel interessanter ist das Betriebssystem oder die Software um das NAS zu administrieren. Klar man kann alles mit einem einfachen Ubuntu und per Konsole erledigen doch gibt es auch genügend Alternativen, die zum Beispiel eine schöne Weboberfläche anbieten.

Bisher habe ich hierfür FreeNAS[1] genutzt. Es bietet eine meistens gut funktionierende Weboberfläche, über die die Laufwerke und Freigaben administriert werden können. Alles Weitere läuft ebenfalls wie zu erwarten, das Setup und die Konfiguration gehen leicht von der Hand. Was bei FreeNAS heraussticht ist, dass als Dateisystem ZFS verwendet wird. Dies bringt zwar einige sehr nette Funktionen mit sich, die ich inzwischen teilweise ein wenig misse, sorgt aber auch für den größten Kritikpunkt an FreeNAS. Für jedes TB an rohem Festplattenspeicher möchte ZFS ein GB Arbeitsspeicher zur Verfügung gestellt bekommen, was schnell für hohe Kosten, gerade bei einem privaten NAS, sorgen kann.

Über YouTube wurde ich auf unRAID[2] aufmerksam, welches das Bereitstellen von Netzwerkfreigaben nur als eine von mehreren Funktionen bietet. Daneben bietet es die Möglichkeit virtuelle Maschinen und Docker-Container verwalten zu können, dies eröffnet, gerade im privaten Bereich, einige weitere Verwendungszwecke für den Server.
Das besondere Merkmal an unRAID ist jedoch, wie flexibel der Datenspeicher aufgebaut werden kann. Wie der Name schon erahnen lässt wird nicht auf ein klassisches RAID gesetzt, sondern auf ein eigens entwickeltes System. Es können beliebige Festplatten zu einem großen Datenspeicher zusammengefasst werden, und beliebig ist an dieser Stelle wörtlich gemeint. So ist es kein Problem zum Beispiel eine alte 250GB, zwei 500GB und eine 1TB Festplatte zu einem 2250GB großen Volume zusammen zu setzen. Auch das erweitern ist kein Problem, stellt man fest der Speicher ist nicht mehr ausreichend, steckt man einfach eine weitere Festplatte nach und der Speicher wird um die entsprechende Kapazität erweitert.
Auch für Ausfallsicherheit kann gesorgt werden, hierzu werden wahlweise eine oder zwei Festplatten zum Speichern von Paritäten definiert. Zu beachten herbei ist, dass die paritäts Platte(n) die größte Kapazität im Verbund aufweisen müssen. Im obigen Beispiel könnten also weder die 250GB noch die 500GB Festplatte als Parität genutzt werden, die 1TB wäre hier die richtige Wahl. Die Kapazität der paritäts Festplatte(n) geht dann natürlich im Datenspeicher verloren, dafür kann nun eine Beliebige der Festplatten ausfallen und es können immer noch alle Daten wiederhergestellt werden.
Jedoch hat dieses Speichersystem auch einen Nachteil, wie sollte es auch anders sein… Nutzt man eine paritäts Festplatte, so werden Schreibvorgänge auf den Datenspeicher sehr schnell sehr langsam, Schreibraten von gerade einmal 40MB/s sind dann leider keine Seltenheit. Das liegt an der Art und Weise wie das Speichersystem funktioniert: Soll ein Datenblock geschrieben werden, so müssen auf allen Festplatten die parallelen Datenblöcke gelesen werden, es muss die Patität berechnet werden, diese wird dann auf die paritäts Festplatte geschrieben und schlussendlich wird der eigentliche Datenblock gespeichert. All diese Schritte dauern dann eben ihre Zeit…
Doch auch hierfür bietet unRAID eine Lösungsmöglichkeit, da eine Cache Festplatte (oder SSD) definiert werden kann. Ist diese für eine Freigabe aktiviert, werden alle Schreibvorgänge an das Cache Laufwerk geschickt. Erst ein Hintergrundprozess speichert diese Daten dann in regelmäßigen Intervallen (auf meinem System einmal in der Stunde) auf die eigentlichen Festplatten. Nutzt man eine SSD als Cache, so kann eine Gigabit Netzwerkleitung wieder problemlos mit Schreibvorgängen ausgelastet werden.
Noch eine Anmerkung am Rande: die Leserate wird vom Speichersystem übrigens nicht beeinflusst, es kann immer die maximale Leserate der Festplatten ausgenutzt werden.

Zusammengefasst bin ich sehr zufrieden mit unRAID, besonders die Möglichkeit den Speicher jederzeit um weitere Festplatten zu ergänzen hat es mir angetan, da man so sehr flexibel bleibt. Einzig die Möglichkeit Snapshots des gesamten Speichers anlegen zu können, wie es bei ZFS der Fall ist, vermisse ich bei unRAID. Aber eventuell wird eine ähnliche Funktion ja irgendwann noch implementiert. Ansonsten hat unRAID meine uneingeschränkte Empfehlung.


[1] http://www.freenas.org/
[2] https://lime-technology.com/