Snapraid & Flexraid Verständniss Fragen

Stoker

Enthusiast
Thread Starter
Mitglied seit
26.05.2010
Beiträge
280
Hi zusammen.
Bis mein erster Homeserver gekauft wird werden zwar noch ein bis zwei Monate ins Land ziehen, aber die gedankliche Planung dauert nun schon länger an. Lange habe ich gehardert ob es denn Raid 5, ein Storage pool oder ZFS werden soll. Dann bin ich auf Snapraid und Flexraid gestoßen und ich denke, dass ist genau das richtige für mich. Ich hab einen HP Microserver mit Wondows Server 2012 im Auge - die Lizenz habe ich schon.

Ich habe da aber noch einige Verständniss Fragen...

Also ersteinmal liest sich das auf der Snapraid Internetseite so, dass Snapraid sowohl für das Pooling, als auch für die Parität zuständig sei. In verschiedenen Foren liest es sich hingegen so, dass Snapraid lediglich für die Parität da ist und man für das Pooling Flexraid benutzen müsste (was ja auch kein Problem darstellen würde). Aber was davon ist jetzt richtig?

Die zweite Frage betrifft die die Paritätsmöglichkeiten bei Snapraid. Der Unterschied von einem Raid 5 zu einem Snapraid mit 1 Paritätsplatte ist ja der, dass beim Raid Blöcke über alle HDDs verteilt werden. Beim Snapraid verstehe ich es so, dass der Inhalt der HDDs so bleibt wie auch bei der Verwendung einzelner HDDs (also immer ganze Dateien) und dann lediglich Windows vorgegaukelt wird, dass es sich um ein großes Laufwer handelt. Wenn das so ist, wie kann es dann bei einem 4er Pool in Verbindung mit einer Paritätsplatte sein, dass die Daten beim Ausfall einer der Platten komplett wieder hergestellt werden können? Das ist doch eigentlich gar nicht möglich... Offensichtlich habe ich hier einen Denkfehler - könnt ihr mir auf die Sprünge helfen?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Das pooling bei snapraid ist noch nicht wirklich fertig...sind nur Links, welche damit die Daten über eine Stelle verfügbar machen.
Verschiebst Du die Daten später, verwaist der Link.

Parity ist immr so gross wie die grösste Platte im Pool und gilt immer für den ganzen Pool...egal wieviele Platten nun drin sind, einmal Parity reicht.
Striping verteilt die Daten über die Disks, also liegt ein File nicht immer ganz auf einer Platte (Block-Level, kein File-Level).
Gehen Dir in einem ge-striped Array mehr Platten kaputt als Du Parity hast, ist der ganze Pool kaputt.
Bei einem Pool ohne stripes, bei dem nur Platten "zusammengemischt" werden, bleibt jede Platte immer noch lesbar und die Files da drauf auch, weil sie nicht verteilt sind (und jede disk ein eigenes Filesystem hat).
Alternative zu Flexraid (für win) ist auch Stablebit Drivepool.
snapraid ist snapshot parity, also nachdem die Daten geschrieben wurden, zB timer-gesteuert...online parity mit "gemischten Disks" und pooling wäre zB unRAID.

Edit: guck mal hier: http://snapraid.sourceforge.net/compare.html
 
Zuletzt bearbeitet:
Das pooling bei snapraid ist noch nicht wirklich fertig...sind nur Links, welche damit die Daten über eine Stelle verfügbar machen.
Verschiebst Du die Daten später, verwaist der Link.

Das ist natürlich schlecht. Eine Kombination aus Flexraid fürs Pooling und Snapraid für die Parität erscheint mir hier sinnvoll - siehst du das auch so?

Parity ist immr so gross wie die grösste Platte im Pool und gilt immer für den ganzen Pool...egal wieviele Platten nun drin sind, einmal Parity reicht.
Striping verteilt die Daten über die Disks, also liegt ein File nicht immer ganz auf einer Platte (Block-Level, kein File-Level).
Gehen Dir in einem ge-striped Array mehr Platten kaputt als Du Parity hast, ist der ganze Pool kaputt.
Bei einem Pool ohne stripes, bei dem nur Platten "zusammengemischt" werden, bleibt jede Platte immer noch lesbar und die Files da drauf auch, weil sie nicht verteilt sind (und jede disk ein eigenes Filesystem hat).
Alternative zu Flexraid (für win) ist auch Stablebit Drivepool.

Nur um das noch einmal klar zu stellen. Wird bei Snapraid jetzt auf Block Ebene Gestriped oder nicht?

Wenn Gestriped wird: Wie kann es sein dass immer nur eine HDD läuft wenn es zu einem Zugriff kommt und wie kann es sein dass angeblich auch Daten von einzelnen HDDs gerettet werden können? Das ist beides bei einem sochen System doch gar nicht möglich.

Wenn nicht gestriped wird: Wie kann es sein, dass ich mit hilfe von nur einer Paritäts HDD gegen den Ausfall von einer HDD gesichert bin (in einem Pool von 3 oder 4 HDDs)?



snapraid ist snapshot parity, also nachdem die Daten geschrieben wurden, zB timer-gesteuert...online parity mit "gemischten Disks" und pooling wäre zB unRAID.

Edit: guck mal hier: SnapRAID

Eine Timer gesteuerte Parity würde mir absolut ausreichen.
 
Das ist natürlich schlecht. Eine Kombination aus Flexraid fürs Pooling und Snapraid für die Parität erscheint mir hier sinnvoll - siehst du das auch so?

Ist wirklich eher eine Gefühlsfrage.
Ich bin beim Pooling unter Win ein Fan von Stablebit DrivePool und unter *nix eher von anderen Alternativen
Snapraid ist die Wahl für Daten die sich wenig ändern, zB für ein Mediengrab.


Nur um das noch einmal klar zu stellen. Wird bei Snapraid jetzt auf Block Ebene Gestriped oder nicht?
Nein, garnicht, weil snapraid parity nicht Teil des Pools ist (des Arrays)...ist ein externer Parity-Snapshot

Wenn nicht gestriped wird: Wie kann es sein, dass ich mit hilfe von nur einer Paritäts HDD gegen den Ausfall von einer HDD gesichert bin (in einem Pool von 3 oder 4 HDDs)?
Das hat nix mit stripes zu tun....stripes sind was für Performance, nicht für Verfügbarkeit.
Parity ist eine Prüfsumme "über alles"...also über 3, oder 4 oder x Platten, stripes, blöcke, bytes
Solange Du an der Struktur nichts änderst, kannst Du mittels der Prüfsumme einen Zustand (byte, block, ....) überprüfen und als Ganzes genau so rekonstruieren/wiederherstellen,
wenn Du die Struktur kennst.
Du kannst also aus einem RAID1 kein RAID5 machen, bei der Aktion.
Eine Prüfsumme der Tiefe 1 erlaubt eine Wiederherstellung wenn ein Element des Arrays wegfällt...eine Prüfsumme der Tiefe 2 erlaubt die Rekonstruktion wenn 2 Elemente fehlen ... usw...
Ich kenne nur ZFS mit raidz3, in dem es drei Parity Disks gibt...erst ab der 4ten Disk ist dann alles futsch.

Wenn Du jetzt aber einen Pool (Array) hast, der *nicht* striped und bei dem alle HDDs je ein eigenes Filesystem haben (ge-striped wäre es *ein* Filesystem über alle Disks)
dann kannst Du zumindets mehr rekonstruieren, auch im Schadensfall wenn mehr Elemente ausfallen als Du Parity-Tiefe hast.
So ein Pool ist ein virtuelles Filesystem über die Disks (mit eigenem Filesystem)...sozusagen geschachtelt, zusätzlich.
Edit: also selbst ohne Parity gehen nur die Daten der kaputten Disk flöten.
 
Zuletzt bearbeitet:
Also als erstes mal vielen lieben Dank für deine sehr ausführlichen und aufschlussreichen Antworten!

Snapraid ist die Wahl für Daten die sich wenig ändern, zB für ein Mediengrab.

Genau das wird es auch werden. 99 % der Datengröße wird für Videos verwendet werden. Dokumente und Fotos werden da zwar auch drauf liegen, aber primär zum Backup.


Parity ist eine Prüfsumme "über alles"...also über 3, oder 4 oder x Platten, stripes, blöcke, bytes
Solange Du an der Struktur nichts änderst, kannst Du mittels der Prüfsumme einen Zustand (byte, block, ....) überprüfen und als Ganzes genau so rekonstruieren/wiederherstellen,
wenn Du die Struktur kennst.

Aha! Das ist sehr aufschlussreich. Ich ging immer davon aus das Dateien, oder Datenblöcke komplett doppelt vorliegen müssen um sie erneut wiederherstellen zu können. Ich hab zwar noch nicht so ganz verstanden wie die Daten anhand von Prüfsummen wieder hergestellt werden können, aber dann werde ich mich dazu mal belesen...

So ein Pool ist ein virtuelles Filesystem über die Disks (mit eigenem Filesystem)...sozusagen geschachtelt, zusätzlich.
Edit: also selbst ohne Parity gehen nur die Daten der kaputten Disk flöten.

Das ist genau die Eigenschaft, die mich dazu bewog von Raid Abstand zu nehmen und mir Snapraid genauer anzusehen.

ICh werde mich dann jetzt erst nocheinmal bezüglich der Vor und Nachteile zwischen Drivepool und Flexraid schlau machen.

Danke noch mal!
 
Aha! Das ist sehr aufschlussreich. Ich ging immer davon aus das Dateien, oder Datenblöcke komplett doppelt vorliegen müssen um sie erneut wiederherstellen zu können. Ich hab zwar noch nicht so ganz verstanden wie die Daten anhand von Prüfsummen wieder hergestellt werden können, aber dann werde ich mich dazu mal belesen...

...OK, es ist komplizierter ;)
Es ist keine Prüfsumme im eigentlichen Sinne sondern es wird ein Parity-Bit benutzt.
Aber eben nicht für jedes einzelne Byte, sondern immer für eine Gruppe - einem Parity Set. Wenn in der Gruppe ein Bit kippt, kannst Du die wieder herstellen.
Ich glaube man muss da viel lesen..das Geheimnis ist das XOR Verfahren zur Berechnung der Sets.
Hier mal anfangen: Parity - unRAID (der parity Algo sollte ähnlich dem von snapraid sein, weil auch kein striping im Array vorliegt, also alle Daten/Files (und Parity) immer auf einer Disk liegen.

Ansonsten viel Erfolg!
 
Ich bin beim Pooling unter Win ein Fan von Stablebit DrivePool und unter *nix eher von anderen Alternativen

@hominidae: welche Storage-Pool-SW kannst du für Linux empfehlen?

Ausserdem würd ich gern wissen, ob sich folgendes realisieren liesse und wenn ja mit welcher SW (Linux bevorzugt, Windows als eventuelle Alternative):

1. Zwei Pools anlegen (2x10 Platten plus jeweils 2 Parity für SnapRaid =~= 2xRaid6)
2. Selbst bestimmen, wo welche Dateien abgelegt werden, also kein automatisches Balancing (so kann ich Musik auf entsprechenden Platten haben, Serien auf anderen und Daten wieder woanders - und alles jederzeit kompakt trennen)
3. Im Nachhinein den Speicherort bestimmter Daten ändern (also verschieben von einer auf die andere HDD)
4. den Pool exploren ohne alle Platten anzufahren (also sowas wie ein virtuelles Abbild der Dateistruktur)

Eigentlich möchte ich einen schönen Pool (oder zwei), bei dem ich selbst bestimmen kann, welche Daten auf welcher der vorhandenen HDDs gespeichert werden. Ist sowas möglich?

Vielen Dank für alle Infos
 
Extra Pool-SW brauchst du doch nur, wenn auch das Schreiben automatisch auf Platten verteilt werden soll. Wenn du eh alles manuell verteilen willst, ist das doch nur eine Frage von "alle Platten mounten und in ein gemeinsames Verzeichnis symlinken". Lediglich Punkt 4 wird so einfach nicht machbar sein.
 
Also ich bin mir da nicht ganz sicher, ab ob das so funktioniert, wie ich es gerne möchte.

Es müssten ja 24 Platten gemounted werden. Diese 24 Platten mit zum Teil gleichnamigen Ordnern müssten danach per Symlink zusammengefasst und unter einem einzigen Laufwerksbuchstaben fürs Netzwerk bereitgestellt werden (bzw. zwei Laufwerksbuchstaben bei 2 Pools). Woher weiss der Symlink auf welchen Ordner er sich beziehen soll, wenn zB auf drei Platten im Root ein Ordner Videos liegt, der jeweils wiederum gleichnamige Unterordner beinhaltet? Und wie funktioniert dann die Anzeige am Hostsystem (zB Mediaplayer)? Bleibt dann der LW-Buchstabe des Pools bestehen oder wird beim Exploren des Pools einfach durch die Gegend verwiesen (weil die Platten sollten ja keine sichtbaren LW-Buchstaben erhalten)?

Vllt hab ich das auch unklar ausgedrückt, aber der Zugriff auf den Server erfolgt sowohl zum Schreiben als auch zum Lesen aussschließlich über Samba/NFS.

Es muss doch was geben, das mir ein fiktives Platten/Ordner/Dateisystem zur Verfügung stellt mit dessen Hilfe ich zum Speichern direkten Zugriff erhalte und im gleichen Moment (on the fly) den Pool anpasst. Oder zB alle Platten "hide" und die Pool-SW überwacht diese, passt automatisch den Pool an und stellt ein virtuelles Abbild des Pools unter einem LW-Buchstaben für externen Zugriff zur Verfügung.
 
  • mhddfs
  • aufs
  • FlexRAID Pooling
  • SnapRAID pool-Befehl


Ist doch nicht so schwer über Google herauszufinden?

Grüße
 
Habe Snapraid selbst im Einsatz. Zum Pooling:
mhddfs: bei schwacher Hardware würde ich davon abraten, das gepoolte verzeichnis über Samba freizugeben/zu nutzen - auf einem N35L mit 2x 1,3 Ghz bekommt man übers Netz (Samba/smbd + mhddfs) nur noch rund 20 Mb/s schreibend hin (samba und mhddfs je rund 100% CPU-Last bei 2 Kernen) weil mhddfs nicht im Kernel rennt und somit extreme CPU Last verursacht (und Samba auch recht ressourcenhungrig ist). Als Abhilfe habe ich eins der gepoolten Drives fürs Netzwerk gesondert freigegeben und schreibe dort auch mit fast vollen 1 Gbit/s hin (Samba CPU-Last dann bei rund 140%).

Ich werde daher auch bald auf aufs zum poolen umsteigen.
 
Danke josen, danke JKuehl. Ich hab zwar schon einige Stunden rumgesucht, aber eben wohl nicht genau gewusst, wonach ^^.

Für mein Verständnis:

Mhddfs macht den eigentlichen Pool, korrekt?
Und aufs ist lediglich ein Overlay-Dateisystem, das allerdings mit Pooling nix zu tun hat, oder? (weil JKuehl aufs zum Poolen verwenden möchte)
Wozu benötige ich dann noch FlexRAID?
Oder ist Mhddfs nicht in der Lage, den Speicherort der Dateien nach meinen Wünschen auszuwählen und ich benötige daher noch eine zusätzliche Pool-SW fürs Schreiben?

@josen: was meinst du mit dem pool-Befehel bei SnapRAID?
@JKuehl: welches Netzwerkprotokoll würdest du denn empfehlen, um va gute Leseraten zu erhalten? (ich hatte eigentlich nicht vor, extra einen starken Rechner für ein Storage-System zu konfigurieren)

Vielen Dank nochmal für eure Hilfe
Grüße, me
 
@hominidae: welche Storage-Pool-SW kannst du für Linux empfehlen?

Ausserdem würd ich gern wissen, ob sich folgendes realisieren liesse und wenn ja mit welcher SW (Linux bevorzugt, Windows als eventuelle Alternative):

1. Zwei Pools anlegen (2x10 Platten plus jeweils 2 Parity für SnapRaid =~= 2xRaid6)
2. Selbst bestimmen, wo welche Dateien abgelegt werden, also kein automatisches Balancing (so kann ich Musik auf entsprechenden Platten haben, Serien auf anderen und Daten wieder woanders - und alles jederzeit kompakt trennen)
3. Im Nachhinein den Speicherort bestimmter Daten ändern (also verschieben von einer auf die andere HDD)
4. den Pool exploren ohne alle Platten anzufahren (also sowas wie ein virtuelles Abbild der Dateistruktur)

Eigentlich möchte ich einen schönen Pool (oder zwei), bei dem ich selbst bestimmen kann, welche Daten auf welcher der vorhandenen HDDs gespeichert werden. Ist sowas möglich?

Vielen Dank für alle Infos

Tja, ich nutze einfach ZFS ...mit LUKS/dmcrypt nun auch unter Debian...vorher Solaris.

Die Anforderungen 3+4 habe ich einfach nicht.
Davor habe ich unRAID genutzt...finde ich immer noch gut, aber da geht Verschlüsselung nicht so, wie ich es brauche.
Spindown / selectives Spinup ist mir inzwischen auch zu kompliziert...ich nutze konsequent Suspend der Kiste und WOL...24/7 services laufen auf der Fritte (mit freetz) oder auf ner 5W Pogo-Plug.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh