RAID diverser HDDs

Crys

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.655
Hallo miteinander,

ich habe einen Haufen an (alter) HDDs, die alle noch funktionieren und denen ich ein neues Leben schenken möchte.
z.B: 2x 500GB Samsung, 2x 1TB Samsung, 1TB WD, 2x 1TB Seagate, 2x 2TB Samung, 2x 2TB Seagate, ... (auch wenn Hersteller gleich, ist es meist unterschiedlicher Typ)

Auf meinem Server (Ubuntu 16) möchte ich eine Partition schaffen, für Daten ohne hohe Priorität oder Wert.
Im konkreten geht es um Daten von: CCTV Aufzeichnungen (7d-Schleife), Transfer-Daten (zwischen gespeichert), Rohmaterial aus digitalisierten analog Filmen (vor Schnitt, vor Nachbearbeitung oder Sichtung, ...), ...

Ich möchte ein RAID schaffen, dass alle alten HDDs umfasst, erweiterbar für weitere HDDs ist, aber auch redundant ist (gegen Hardwareausfall einer HDD).
Wie ich ein Software RAID 0 (oder LVM) über alle HDDs spanne, ist kein Problem. Ich möchte davor aber nicht jede HDDs nach Größe noch per Software RAID 1 spiegeln. Da dies aus meiner Sicht keinen Sinn macht, da die HDDs auch von unterschiedlichen Typ sind und es nicht immer Paare gibt.

Gibt es ein RAID, dass die HDDs als eine Partition zur Verfügung stellt und automatisch für Redundanz (Hardware Ausfall von 1/2/... HDDs) sorgt?

Vielen Dank.


=> Bitte keine Antwort wie: "geht nicht"! Das hilft niemanden, Danke!
 
Zuletzt bearbeitet: (Geht nichts, gibt's nicht!)
Ein Raid ist dafür ungeeignet, weil das sich nach der Größe deiner kleinsten HDDs (die 500GB) richten würde.

Unter Windows könntest du dir Storage Spaces anschauen, sonst mal in die Linux-Welt schauen, z.B. TrueNas mit ZFS.
 
  • Gefällt mir
Reaktionen: Raijin und madmax2010
Geht nicht im Linux. Das kann nur Windows Storage Spaces. Und SS funktioniert richtig gut.
 
Automatisch?
Wäre mir nicht bekannt.
Aber Unraid macht sowas ähnliches mit dem Fuse-Dateisystem.
An sich ist jede Platte "einzeln" für sich, und Du nimmst die größte(n) als Redunanz-Laufwerke, und Fuse sorgt dafür, dass sie für Dich aussehen als wäre es nur eine Partition. In wirklichkeit entscheidet aber das OS darüber wo jede Datei zu liegen kommt.

Steigt das Partitäts-Laufwerk aus: Neues einbauen.
Steigt ein Daten-Laufwerk aus wird aus der Paritäts-Platte wieder hergestellt.

Hinzufügen von Datenplatten kein Problem, sofern sie nicht größer als die Partitätsplatten sind.
 
RenoV schrieb:
Geht nicht im Linux.
Naja, Synology hat's mit Synology Hybrid Raid hinbekommen (DSM basiert ja auch auf Linux). Irgendwas muss also schon möglich sein.

Aber ja, ich kenne mich mit Linux Dateisystemen nicht gut aus.
 
Rickmer schrieb:
Synology hat's mit Synology Hybrid Raid hinbekommen
Ist nicht das Gleiche. Also ich bin da nicht ganz auf dem Laufenden. Aber kann man da flexibel HDDs rein stecken und raus nehmen? Und man kann das dann wohl nur mit Synology nutzen. Reine Linux-Lösungen, selbst Unraid, sind total starre Konstrukte.
Edit: von der Doku her klingt es wie ein abgespecktes SS.
 
Klingt für mich danach, als wenn Unraid ein Kandidat wäre. Kostet zwar Geld, aber einmalig 130 USD (ca. 120 EUR) für die größte Lizenz mit lebenslangen Upgrades ist aus meiner Sicht günstig. Hat HisN ja weiter oben auch gut beschrieben, wie Unraid das hand habt.
 
Wenn du verschieden Große Platten im RAID mischen möchtest, musst du partitionieren und dann für jede Partition ein eigenes RAID anlegen, das ganze lässt sich dann mit LVM wieder zusammen fassen.

Also wenn deine kleineste Festplatte 500GB hat dann machst du 500GB Partition auf alle Festplatten und daraus ein RAID 5 oder RAID 6.

Dann eine weitere 500GB Partition (auf den Platten ab 1TB) und aus diesen Partitionen mit RAID 5 ein RAID.

Dann kannst du eine 1TB Partition machen (wenn keine 1.5TB Platte da ist) um alle 2TB Platten reinzunehmen.

Und so weiter und dann hast du am Ende /dev/md1, 2, 3, 4 ... im LVM und kannst beliebige Volumes daraus anlegen.

Das ist ein weit verbreiteter Ansatz um gemischte Festplattengrößen verarbeiten zu können, bei Synology schimpft sich das "Hybrid Raid".

https://kb.synology.com/en-my/DSM/tutorial/What_is_Synology_Hybrid_RAID_SHR

Ein Neben effekt von dem Ansatz ist, wenn eine Festplatte Lesefehler bekommt, dann geht nur das RAID auf der betroffenen Partition kaputt. Die restlichen Partitionen bleiben erstmal voll redundant! Wer große RAIDs aus ganzen Festplatten baut der verliert dagegen direkt die volle Redundanz auf der gesamten Speicherkapazität.

So gesehen kann es auch Sinn machen selbst bei gleich großen Festplatten eine Unterteilung zu schaffen.

RenoV schrieb:
Reine Linux-Lösungen sind total starre Konstrukte.

Linux stellt nur Werkzeuge bereit. Die Kreativität wie man diese verwendet muss man selbst mitbringen. (Und wenn das in die Hose geht ist man meistens selber schuld daran.)

Gleichzeitig kann irgendein Enthusiast nicht einfach so seine eigene Raid Lösung für Linux erfinden, bzw. die würde niemand nehmen wollen. Ist ja auch vertrauens Sache. Das Rad neu zu erfinden hat in letzter Zeit nur Systemd geschafft und da ist auch viel Mist dabei leider.
 
Zuletzt bearbeitet:
RenoV schrieb:
Geht nicht im Linux. Das kann nur Windows Storage Spaces. Und SS funktioniert richtig gut.
natürlich geht das auch mit linux, z.b. mit ceph. man muss nur für die einzelne platten je nach grösse die entsprechende gewichtung konfigurieren. das ubuntu 16 sollte davor aber mal aktualisiert werden.
 
  • Gefällt mir
Reaktionen: _roman_, guzzisti und snaxilian
Crys schrieb:
Ich möchte ein RAID schaffen, dass alle alten HDDs umfasst, erweiterbar für weitere HDDs ist, aber auch redundant ist (gegen Hardwareausfall einer HDD).
Wie ich ein (oder LVM) über alle HDDs spanne, ist kein Problem. I

Ich verstehe ihr Anliegen nicht, im Bezug: "Wie ich ein (oder LVM) über alle HDDs spanne, ist kein Problem."

Ihre Fragen sind im Grunde schon beantwortet mit LVM2.

Wie sie die Physical Extends, logical Extends, logical Volumes und die Redundanz anlegen liegt bei Ihnen.
erweiterbar = Das Vergrößern ist möglich wenn sie LVM2 verwenden, dann luks reinlegen, dann ext4 reinlegen.

redundant ja möglich. = stichwort stripes und mirror feature

Ich würde es nicht als Raid bezeichnen. Man kann Sektoren öfters auf ein oder mehreren Datenträgern haben.
Raid ungleich LVM2 für mich, vielleicht irre ich mich da auch.
Ergänzung ()

kieleich schrieb:
Wenn du verschieden Große Platten im RAID mischen möchtest, musst du partitionieren und dann für jede Partition ein eigenes RAID anlegen, das ganze lässt sich dann mit LVM wieder zusammen fassen.
Wieso soll das notwendig sein?
Es reicht wenn man LVM2 hierfuer verwendet. Es sei denn man hat einen echten Hardware RAID Controller und kein Fake RAID.
 
Wäre mir neu daß das mit LVM geht. Also ja LVM hat ein RAID Modus, aber der ist auch stark auf PVs gleicher Größe ausgelegt, nicht auf Mischbetrieb. Und wenn das LVM RAID Probleme macht ist es viel undurchsichter als normales mdadm RAID...

Der traditionelle Ansatz unter Linux ist "mach eine Sache und mache sie gut" und so gibt es eben diesen Schichtaufbau:

Festplatte (/dev/sda) » Partitionen (/dev/sda1) » mdadm RAID (/dev/md1) » cryptsetup/LUKS Verschlüsselung (/dev/mapper/md1_luks) » LVM Volumes (/dev/mapper/vg-lv) » Dateisystem (/mnt/vg-lv)

Und für jede Schicht ist ein anderes Tool zuständig.

Daß das alles ins eins zusammen vermischt wird (ZFS Dateisystem das sich selbst um Volumes, Verschlüsselung, RAID und Partitionen kümmert) das ist relativ neu und ungewöhnlich.

Aber auch ZFS kann nicht mit verschieden großen Festplatten umgehen. Da wird die Kapazität auf die kleinste Festplatte verringert.

Deswegen muss man das mit Partitionen und mdadm zu Fuß machen. Und wenn man das Konzept verstanden hat macht es sogar richtig Spaß.

Beispiel mit 500GB Stückelung:

/dev/sda 1TB/dev/sdb 1.5TB/dev/sdc 2TB/dev/sdd 2TB
x​
/dev/sda1 500GB/dev/sdb1 500GB/dev/sdc1 500GB/dev/sdd1 500GB/dev/md1 1500GB
/dev/sda2 500GB/dev/sdb2 500GB/dev/sdc2 500GB/dev/sdd2 500GB/dev/md2 1500GB
-​
/dev/sdb3 500GB/dev/sdc3 500GB/dev/sdd3 500GB/dev/md3 1000GB
-​
-​
/dev/sdc4 500GB/dev/sdd4 500GB/dev/md4 500GB

Dann LVM aus /dev/md[1234] und fertig. So hat man ein RAID diverser HDDs verschiedener Größen in Linux.

Und wenn /dev/sdb2 einen Lesefehler hat, dann betrifft das nur /dev/md2, /dev/md1 und /dev/md3 bleiben erstmal redundant.

Man kann dann /dev/md2 zuerst reparieren und hat nicht diesen ewigen nicht-redundanten Zustand wie wenn man große Platten am Stück ins RAID steckt.

Wenn die Festplatte ganz stirbt ist es natürlich was anderes, aber sehr oft ist ja erstmal nur eine Region betroffen.
 
Zuletzt bearbeitet:
Und deshalb Windows Storage Spaces. Da kann man unkompliziert verschiedenste Platten beliebig* hinzufügen und entfernen, ganz ohne Gefrickel. Wenn man sich vorher damit etwas beschäftigt, auch recht perfomant. Und sogar Platten über USB etc einbinden.

*beliebig: ja es gibt Grenzen, denn logischer Weise kann man nicht endlos Platten aus dem Pool entfernen, wenn dann nicht mehr genug Platz für den schon belegten Speicher zur Verfügung steht.

_roman_ schrieb:
Gibt es nicht. Ist es Redundant ist es RAID, wenn nicht ist es auch kein RAID. Aber du scheinst zu glauben du wärst elitär, wobei du nur reaktionär bist.
 
Zuletzt bearbeitet:
Und der Pool ist auch nicht endlos groß, rein von der Anzahl der Platten her :-)
 
RenoV schrieb:
Und deshalb Windows Storage Spaces. Da kann man unkompliziert verschiedenste Platten beliebig* hinzufügen und entfernen, ganz ohne Gefrickel. Wenn man sich vorher damit etwas beschäftigt, auch recht perfomant. Und sogar Platten über USB etc einbinden.
So wie bei btrfs…
 
Zurück
Oben