kleiner Homeserver -> Software-RAID (Linux) vs Hardware-RAID; was für Festplatten

cc_aero

Lt. Junior Grade
Registriert
Juli 2013
Beiträge
505
Hallo,

ich möcht mir gerne einen kleinen Home-Server zusammensetzen. Für dieses Projekt hätte ich mir ein Mainboard mit integrierter CPU und gering Stromverbrauch vorgestellt, Leistung ist nicht wirklich wichtig. Wichtig ist mir ein geringer Stromverbrauch und das das Board noch einige Erweiterungsports (PCI, PCIe) zur verfügung hat -> Meine derzeitige Auswahl: Klick

Die Hauptaufgabe, welche diesen kleinen Ding angelastet wird, wird Datenspeicherung sein (NAS). Außerdem soll ein Media-Server drauf laufen (zB mediatomb) und ein Web-Server inkl. PHP & Datenbank für kleine spielereien.
Später kommt vl auch eine DVB-S Karte dazu (HD muss nicht sein) um einen zentralen Videorecorder bereitzustellen.

Als Betriebssytem wird entweder Debian 7 oder ein Ubuntu LTS (jeweils mit Minimalsausstattung) zum Einsatz kommen.

Ziemlich fest steht, das dem System 2 RAID1 Arrays zur Verfügung stehen sollen um Ausfallsicherheit und auch eine gewisse Daten-Sicherheit zu gewährleisten (mir ist jedoch klar das ein RAID kein Backup ersetzt).

Das erste Array soll nutzbare 500GB haben - es dient als System-Laufwerk, sowie als Speicher für kleine Webseiten (Apache), Datenbank, Home-Verzeichnis und sonstigen Datenmüll. -> Die beiden Festplatten hierfür habe ich bereits (liegen rum, sind fast neu und werden derzeit nicht benötigt)

Das zweite Array soll nutzbare 2TB zur Verfügung stellen -> Diese Array wird das eigentliche "Datengrab" dh werden hier ua Multimedia-Daten etc abgelegt.

Nun die erste Frage, welche 2TB Festplatten sind zu empfehlen (geringe Leistungsaufnahme, wenn möglich leise)?

Folgendes Modell hätte ich derzeit im Auge: http://www.amazon.de/Western-Digital-WD20EURS-interne-Festplatte/dp/B0042AG9V8/ref=sr_1_5?ie=UTF8&qid=1377765677&sr=8-5&keywords=Western+Digital+AV


Die zweite Frage - soll Software-Raid (via MDADM) oder lieber Hardware-Raid eingesetzt werden?

Software-RAID ist natürlich die Kostengünstigere Variante, allerdings kompliziert einzurichten (obwohl mich das nicht so abschreckt) und möglicherweiße weniger performant - aber möglicherweiße flexibler.

Für Hardware-RAID hätt ich mich nach einen gebrauchten SAS-Controller für PCIe umgesehen - speziell nach LSI mit Cache.
Vorteil wäre (aus meiner Wahrnehmung) bessere Performance und einfacher einzurichten (via RAID-BIOS?)
Jedoch stellen sich mir beim HW-Raid noch einige Fragen ->
  • Funktioniert ein Controller für PCIe 4x oder 8x in dem 16x Slot des ausgewählten Mainboards?
  • Können Festplatten, welche in einem HW-RAID Verbund integriert sind von Linux nach einer gewissen Zeit "schlafen gelegt" werden? Diese wäre mir zwecks Leistungsaufnahme wichtig

Danke schon mal im Vorraus :)
 
Zuletzt bearbeitet:
also ich persönlich halte beide RAID1 Verbünde für nicht sinnvoll.

Mit dem RAID 1 für Linux erreichst du nix außer mehr Lärm und Stromverbrach. Wenn du dir regelmäßig ein Backup ziehst (zB auf die andere Platte im externen USB Gehäuse) kannst du bei nem defekt diese Platte sogar einfach einbauen bzw. das Backup auf ne neue Platte ziehen und gut.
Das RAID 1 für die Daten ist, wie du richtig sagst, kein Backup. RAID 1 bringt dir Redundanz, und die brauchst du bei deinem Vorhaben eigtl nicht, oder? Wieder das gleiche Spiel: nur eine Platte einbauen und das Backup auf die andere ziehen.

Als HDD (für den Server) könntest du die von dir vorgeschlagenen nehmen oder ein WD RED. Als Backup tuts ein WD Blue oder Green.

Board sieht ok aus, der Celeron reicht für nen reinen Fileserver aus. Aber das Board sollte es woanders billiger geben, oder?
 
RAID1 ist ja eigentlich dafür da, Serverausfälle durch Plattendefekte zu vermeiden. Bei einem Home-Server wärs aber weniger schlimm, wenn der mal bei einem Plattendefekt für kurze Zeit offline gehen muss, insofernstimme ich Picard87 voll und ganz zu.
 
Für ein Raid1 brauchst du dir eigentlich keinen Kopf in Richtung Hardware Raid machen. Das ist nur Geldverschwendung. Spannend sind solche Controller, wenn man in Richtung Raid5/6 geht, da die dann die Paritätsberechnungen übernehmen.

Ich habe in meinem Server unter anderem vier WD Red am laufen. Meiner Erfahrung nach sind die ziemlich leise und verbrauchen laut einiger Testberichte auch recht wenig Energie.

Raid1 bringt neben Redudanz aber auch eine höhere Leseleistung. Inwiefern die benötigt wird bzw. nutzbar ist, ist eine andere Sache.

Funktioniert ein Controller für PCIe 4x oder 8x in dem 16x Slot des ausgewählten Mainboards?
Theoretisch ja. Praktisch gibt es wohl manchmal Probleme, weil einige BIOS/UEFI Implementierungen im x16 Slot eine Grafikkarte erwarten. Im Zweifel beim Boardhersteller explizit nachfragen.

Können Festplatten, welche in einem HW-RAID Verbund integriert sind von Linux nach einer gewissen Zeit "schlafen gelegt" werden? Diese wäre mir zwecks Leistungsaufnahme wichtig
Theoretisch ja. Das kommt auf den Controller an, der muss die entsprechenden SATA Befehle an die Platten weiterleiten. Mit Software Raid gehts auf jeden Fall. Denk aber auch dran, dass ständiges an- und ausschalten nichts gut für Festplatten ist ;)
 
KillerCow schrieb:
...
Raid1 bringt neben Redudanz aber auch eine höhere Leseleistung. ...
Wenn der Server auf viele kleine Dateien gleichzeitig zugreifen soll, kann das Vorteile bringen. Also da, wo man im Linux-Bereich früher gerne ein ReiserFS mit Tailpacking verwendet hat. Zum Beispiel bei einem Mailserver mit vielen Kontos. Auf einem Home-Server wird man aber vermutlich nicht die Anzahl der gleichzeitigen Lesezugriffe erreichen, die man braucht, um dabei einen Unterschied zu bemerken. ;)
 
RAID 1 bringt dir Redundanz, und die brauchst du bei deinem Vorhaben eigtl nicht, oder?

Naja ... ich sehe das so:

Aus meiner gewohnheit heraus aktualisier ich die Backups nicht regelmäßig. Nicht täglich, nicht wöchentlich - eher monatlich oder alle 2 Monate.

Wenn mir nun die einzelne Daten-Platte bzw. auch Linux-Platte abraucht, muss ich auf das ältere Backup zurückgreifen. Wurden zwischen dem Backup-Intervallen neue Dateien angelegt oder geändert (inkl. OS-Configs) sind diese verloren.

Den Server möchte ich für ALLE meien Daten benutzen, nicht nur Multimedia, sondern auch Dokumente etc.

Wenn mir der RAID-Verbund hobs geht muss ich sowieso auf das Backup zurückgreifen


Aber das Board sollte es woanders billiger geben, oder?
Jup, nur Geizhals war grad nicht ansprechbar ^^


Für ein Raid1 brauchst du dir eigentlich keinen Kopf in Richtung Hardware Raid machen. Das ist nur Geldverschwendung. Spannend sind solche Controller, wenn man in Richtung Raid5/6 geht, da die dann die Paritätsberechnungen übernehmen.

Sowas hab ich mir schon gedacht. Wie sieht es bei SW-RAID aus, wenn eine Platte ausfällt? Kann man die Platte einfach tauschen und Linux kopiert die Daten automatisch auf die neue Platte oder muss man das kopieren manuell anstoßen?


Denk aber auch dran, dass ständiges an- und ausschalten nichts gut für Festplatten ist
Das ist mir klar, daher hätt ichs auch so konfiguriert, das das ein/auschaltintervalle eher selten vorkommen. zB nur für die größeren Platten (wo wahrscheindlich seltener Zugegriffen wird und dann auch eine hohe Zeit zB 2 Stunden festlegen.
Damit wären die Platten zB über Nacht inaktiv.
 
Software-RAID ist [...] allerdings kompliziert einzurichten
Nö. Zumindest nicht unter Linux ;) Da reicht eine Zeile wie diese (devices natürlich anpassen!):
Code:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
Ergänzung ()

Wie sieht es bei SW-RAID aus, wenn eine Platte ausfällt?
Da braucht es ein paar Befehle auf der Kommandozeile. Erst die defekte Platte aus dem Raid entfernen, wenn das nicht schon automatisch passiert ist. Anschließend die Platte tauschen und dem Raid die neue Platte anvertrauen. Der Rebuild läuft dann automatisch an. Für das Prozedere finden sich im Netz Unmengen Anleitungen. Die c't kaut das Thema auch gerne einmal im Jahr durch.
 
Kannst du das belegen?
Nein (habe gerade keine Benchmarks von meinem Softwareraid zur Hand), aber es ist logisch und in jeder brauchbaren Fachliteratur zum Thema Raid nachzulesen.

Warum es logisch ist? (manchmal kann ich doch Gedanken lesen :p )
Geschrieben werden muß bei einem Raid1 auf alle Platten das Selbe, daher gibt es beim Schreiben keinen Bonus. Wenn die Raidimplementierung ein bisschen schlau ist (was wohl auf alle modernen Implementierungen zutrifft), werden die Leseanforderungen über alle zum Raid1 Verbund gehörenden Platten verteilt. Ist übrigens das selbe "Phänomen" wie bei Raid5 oder Raid6. Da wird auch von allen beteiligten Platten parallel gelesen. Bei einem Raid0 wird auch noch schneller geschrieben.

PS: Die erzeugte Redundanz kann ich übrigens auch nicht belegen ;) :p
 
Zuletzt bearbeitet:
Wenn du mit jeder brauchbaren Fachliteratur Wikipedia meinst dann ist das leider falsch. Ich hab noch kein Raid 1 System gesehen welches beim lesen wie ein Raid 0 von beiden Platten gleichzeitig liest. Das mag theoretisch möglich sein, wird aber in der Praxis nirgendwo angewendet.

Und darauf wollte Onkelchen hinaus....
 
Die erzeugte Redundanz kannst du belegen wenn du ein Raid-1 System hast und die Daten auf beiden Festplatten identisch groß sind und denselben Inhalt haben.

Das, was jedoch immer wieder geschrieben wird ist, dass Raid-1 auch bedeutet die Leseraten wuerden nach oben gehen. Ich habe das eben schon sehr oft gehört, auch werde ich auf Wikipedia oder andere Seiten verwiesen. Bisher konnte mir aber niemand einen solchen Controller zeigen. Die Onboard-Controller machen es nicht, dass weiss ich. Was daher bleibt sind nur die Hardware-Controller. Auch hier habe ich noch keinen gesehen bisher, der es mal hat laufen lassen.

Warum auch? Wenn jemand einen Controller kauft, und wirklich Geld investiert um Leistung zu haben, dann wird meist mehr eingesetzt als "nur" ein Raid-1. Sondern direkt Raid-5 oder eben Raid-6. Raid-1 mit erhöhter Lesegeschwindigkeit ist sehr rar, ich schätze den Anteil im Privatsektor bei Raid-1 System bei unter 5%. Wenn überhaupt.
 
Mit Fachliteratur meine ich nicht Wikipedia nein, auch wenn es dort für den Einstieg viele interessante und inhaltlich richtige Artikel gibt.

Tatsächlich wird man mit einem Linux Raid1 kaum eine Steigerung der Leseperformance in einer single-thread Anwendung bemerken, da mdadm wohl pro Anforderung nur von einer Platte ließt. Kommen hingegen mehrere parallele Anfragen an, werden diese auch auf verschiedenen Platten verteilt.

Das Hardware Controller das in dieser Art eventuell nicht implementieren, mag, wie du schon sagst, mit deren primären Einsatzzweck im Bereich von Raid5/6 zusammenhängen. Die Hersteller sparen sich da wohl einfach die Implementierung, weil eh keiner Raid1 mit so einem Controller benutzt.

@Onkelhitman
Hast du denn einen Artikel zur Hand, der deine Annahme untermauert? Würde mich wirklich mal interessieren.

Die Onboard-Controller machen es nicht, dass weiss ich. Was daher bleibt sind nur die Hardware-Controller.
Du vergißt reine software Implementiereungen, wie etwa mdadm unter Linux. Onboard raid (bzw. fake-raid) ist etwas anderes, als software raid!

Nachtrag mit Beleg:
http://manpages.ubuntu.com/manpages/raring/man4/md.4.html
Data is read from any one device. The driver attempts to distribute read requests across all devices to maximise performance.
Note that the read balancing done by the driver does not make the RAID1 performance profile be the same as for RAID0; a single stream of sequential input will not be accelerated (e.g. a single dd), but multiple sequential streams or a random workload will use more than one spindle. In theory, having an N-disk RAID1 will allow N sequential threads to read from all disks.
 
Zuletzt bearbeitet:
Du hast völlig recht, ich habe mich da tatsächlich schwammig ausgedrückt. Ich hätte es mehr präzisieren müssen.
"Ich habe bisher noch keinen Onboard-Controller gesehen, der mit Windows eine Leistungssteigerung von Raid-1 erreichen konnte."
So müsste es eigentlich passen. Weder ein Software Raid, noch ein Fake-Raid. Mit Raid-1 und Controller könnte es sein, auch hier fehlt mir bisher auch die Erfahrung.

Ich halte es daher für möglich, dass eine erhöhte Leseleistung erzeugt werden kann. Man müsste ja ansich nur die Indexdateien so legen, dass der Controller weiss, von wo er die Daten lesen muss, bzw. sagt: Ich teile in 50:50 auf und lasse Festplatte 1 die ersten 50% lesen, und Festplatte 2 die letzten 50% lesen. Somit hätte ich eine doppelte Datenrate beim Lesen. Da ja bei Raid-1 auch Sektorweise geschrieben wurde, müssen beide dasselbe beinhalten. Dabei ist natürlich die Schreibleistung abhängig von der langsamsten Platte.

Was du da zitierst bedeutet für mich doch nur folgendes:
Der Treiber kann mehrere Programme von verschiedenen Festplatten aufrufen. Ergo in den Ram laden und sie ausführen. Das wird beschleunigt.

Wie funktioniert es bei Linux? Teilt er wirklich jede Datei in 50:50 auf oder arbeitet er mit der Chunk Size, was bedeutet, dass Dateien unter dieser Größe generell nur auf eine Festplatte kommen? Sodass eben kleine Dateien auch nur von einer Festplatte gelesen werden können?
 
Was du da zitierst bedeutet für mich doch nur folgendes:
Der Treiber kann mehrere Programme von verschiedenen Festplatten aufrufen. Ergo in den Ram laden und sie ausführen. Das wird beschleunigt.
Darum geht es doch die ganze Zeit, eine gesteigerte Leseleistung mit Raid1. Das ist zumindest meine ursprüngliche Aussage gewesen.

Wie funktioniert es bei Linux? Teilt er wirklich jede Datei in 50:50 auf oder arbeitet er mit der Chunk Size, was bedeutet, dass Dateien unter dieser Größe generell nur auf eine Festplatte kommen? Sodass eben kleine Dateien auch nur von einer Festplatte gelesen werden können?
Wir reden doch hier von Raid1, da landet alles auf allen Platten, sonst gibts keine Redundanz. Das was du beschreibst klingt nach Raid0 (und da arbeitet Linux mit einer Chunksize, ja).
 
Ist scheinbar nicht meine Woche mich mit Festplatten zu beschäftigen. Muss dir schon wieder Recht geben.
 
Alles nicht so wild. Ich war nur ein wenig irritiert :) Wäre nicht das erste mal, dass ich mich in einer falschen Richtung verrant hätte :D
 
Das Problem ist halt immer, so wirklich spezielle Fälle wie dieser hier, die kommen kaum vor, da verrenne ich mich selbst in solche Pauschalisierungen.

Ich werde diesen Thread hier einmal verlinken mit dem Hinweis, dass Raid-1 auch nicht gleich Raid-1 ist.

Hier kraxeln sehr wenige Linux User rum. Meine Raid-1 Pauschalisierung muss ich demnach erst einmal umändern in die Windows-Sparte. Ich selbst dachte, es wäre Controllerabhängig, dass bei Raid-1 die Dateistruktur nur von einer lesen kann und nicht von 2. Daher wäre auch Softwareseitig nichts mehr möglich gewesen.

Wenn man das jetzt so jedoch liest, dann bedeutet das, dass eigentlich das Bios (im Falle einer Raid-Einstellung per Bios-Raid-Menü) und Windows (im Sinne des dort hergestellten Software-Raids) Schuld daran sind, dass bei einem Raid-1 (es sei denn ein Hardware-Raid-Controller wird eingesetzt) nur von einer Festplatte gelesen wird.

Das wirft ein ganz anderes Licht als die bisherige Anschauung des Raids.
 
Also ich hab mir nun die genannte Hardware bestellt - sollte auch bald da sein :)

Ich hab mich nun für 2xSW-RAID 1 entschieden (500GB, 2TB) - auch wenn ich als Privat-Person RAID1 wahrscheindlich nicht unbedingt benötigt hätte ichs doch gerne (allein aus bequemlichkeit, falls doch mal was passiert; und weil ichs einfach ausprobieren möchte :D )

Außerdem möchte ich auch gerne LVM einsetzen.

Partitionierung hab ich mir so vorgestellt:

Die beiden 500GB Platten bekommen jeweils 3 Partitionen -> einmal für /boot, einmal für SWAP und einmal zum Anlegen einer Volume-Group in welche ich dann die einzelnen Volums fürs System anlegen werde (/, /var, /usr, usw).
Über die 3 Partitionen der beiden Platten werden dann SW-RAID1-Verbünde angelegt (3 MDx - Devices).

Die beiden 2TB Platten bekommen jeweils eine Partition, aus den Partitionen der beiden Platten erzeuge ich wieder ein MDx-Device (RAID1) - auf diesen wird dann eine Volume-Group für die Daten-Volumes angelegt.

Ist die Vorgangsweiße so korrekt oder kann man noch etwas verbessern? In einer VM habe ich das bereits getestet.

Welches File-Systeme würdet ihr empfehlen? XFS kommt ja eher nicht in Frage (weil LVM und XFS sich ja nicht verkleiner lässt (?)) - Somit evtl. auf ext4 setzen?
 
Zurück
Oben