Automatische Fehlerkorrektur ReFS und Storage Spaces

Chrissi007

Cadet 4th Year
Registriert
Aug. 2004
Beiträge
79
Hi zusammen,

ich habe gerade folgenden Artikel gelesen:
https://blogs.msdn.microsoft.com/b8...next-generation-file-system-for-windows-refs/
Konkret ging es mir um die folgenden Abschnitte:
- Resiliency to disk corruptions
- Integrity streams
- Battling “bit rot”
... dann die entsprechende FAQ:

Q) What about parity spaces and ReFS?

ReFS is supported on the fault resiliency options provided by Storage Spaces. In Windows Server 8, automatic data correction is implemented for mirrored spaces only.

---

Das ist ja interessant, dachte ich mir! ReFS unterstützt die automatische Fehlerkorrektur scheinbar nur dann, wenn man Mirrored Spaces verwendet. Wie sieht das aber aus mit Parity Spaces? Denn das, was dieser Blogeintrag beschreibt, ist in einer gewissen Hinsicht ja wiedersprüchlich zu dem, was auf einer anderen MS-Website steht:

https://technet.microsoft.com/en-us/library/hh831724(v=ws.11).aspx

Abschnitt: Important functionality

Integrity. ReFS stores data in a way that protects it from many of the common errors that can normally cause data loss. When ReFS is used in conjunction with a mirror space or a parity space, detected corruption—both metadata and user data, when integrity streams are enabled—can be automatically repaired using the alternate copy provided by Storage Spaces. In addition, there are Windows PowerShell cmdlets (Get-FileIntegrity and Set-FileIntegrity) that you can use to manage the integrity and disk scrubbing policies.

---

Hier wird explizit erwähnt, dass die automatische Fehlerkorrektur auch für Parity Spaces gilt. Was ist denn hier nun korrekt und was gilt exakt für Win Server 2012 R2 und welche Aussicht gibt es für Win Server 2016?
 
Hatte nach den ersten Artikeln auch mit dem Gedanken gespielt ReFS mal zu testen. Leider ist dieser 'Nachfolger' von NTFS kein vollständiger Ersatz. Je nachdem was du machen willst kannst du früher oder später Probleme bekommen, also überleg dir gut ob du einen größeren Datenträger mit wichtigen Daten diesem Ausfallrisiko aussetzen willst.
Bis ReFS für den täglichen Einsatz tauglich ist kann es noch Jahre dauern.
 
Das ist ja interessant, dachte ich mir! ReFS unterstützt die automatische Fehlerkorrektur scheinbar nur dann, wenn man Mirrored Spaces verwendet. Wie sieht das aber aus mit Parity Spaces? Denn das, was dieser Blogeintrag beschreibt, ist in einer gewissen Hinsicht ja wiedersprüchlich zu dem, was auf einer anderen MS-Website steht:
Ist ganz einfach: In Server 2012 war nur die automatische Korrektur mit Mirrored möglich mit Server 2012 R2 kam dann auch Parity dazu.
Siehe Abschnitt "New and updated functionality"
"Corruptions on parity spaces
Updated
When a corruption occurs on a parity space, ReFS automatically corrects the corruption."
 
vielen Dank für eure Antworten.

@ vander:

Ich kann deinen Standpunkt total nachvollziehen. Ich möchte demnächst gerne auf ein Dateisystem aufspringen, das mir bitrot-Schutz und gewisse "Self-Healing"-Funktionen bietet. Ich hab mittlerweile schon zig Blogeinträge durchwühlt, die alle von den tollen neuen Funktionen von beispielsweise btrfs schwärmen, aber wenn ich den Abschnitt "Warnings" lese (siehe: https://wiki.debian.org/Btrfs ), vergeht mir die Lust ein Live-Dateisystem mit wichtigen Daten auf ein btrfs-Volume umzustellen. Keine Frage, ich glaube auch, dass btrfs viel Potenzial hat, aber es ist eben momentan noch zu früh.
Als Alternative habe ich mir ReFS überlegt. Nachdem es schon mit Win2012 eingeführt wurde, gehe ich davon aus, dass im Win2016-Release eine gewisse Stabilität vorhanden sein sollte. Dennoch finde ich auch, dass ReFS nicht das Gelbe vom Ei ist... Allein schon die fehlende Unterstützung von RAID10 bei Storage Spaces lässt bei mir ein Fragezeichen entstehen... Außerdem: Ich bin Hardware-Raidcontroller gewöhnt, die mir wegen jeder Kleinigkeit eine E-Mail zukommen lassen.... und ReFS / Storage Spaces informieren mich nicht mal dann, wenn eine Unit degraded ist? Was denkt sich MS bei sowas? Wie soll sowas eine bewährte Lösung für den Produktiveinsatz sein? Man muss sich über Tasks / Cronjobs so einen Notifier selber basteln und hoffen, dass das Script auch immer funktioniert...

Hast du Links oder eventuelle Lektüre, die auf die von dir erwähnte Langzeit-ReFS-Problematik eingeht?
 
Allein schon die fehlende Unterstützung von RAID10 bei Storage Spaces lässt bei mir ein Fragezeichen entstehen
Das eine sind Storage Spaces, das andere ist das Dateisystem ReFS. Die sind zwar sehr gut verzahnt aber im Grunde zwei unterschiedliche Dinge.
Ein Raid 10 wie bei (Hardware-)Storage Controllern gibt es hier nicht da die Blöcke hier anders geschrieben werden. Jeder mirrored Storage Space mit mehr als zwei Platten entspricht somit quasi einem Raid 10.

Außerdem: Ich bin Hardware-Raidcontroller gewöhnt, die mir wegen jeder Kleinigkeit eine E-Mail zukommen lassen.... und ReFS / Storage Spaces informieren mich nicht mal dann, wenn eine Unit degraded ist?
Naja die Controller direkt schicken dir noch keine Mail, das macht eine Software die auf dem Host mitläuft. Das ist bei Storage Spaces nicht anders, die alleine Melden brav in die Ereignis ins Eventlog, das du meine Mail bekommst muss dann (leider) eine zusätzliche Software übernehmen. Oder man bastelt sich entsprechende Task in der Aufgabenplanung die auf die Events reagieren.
 
Jeder mirrored Storage Space mit mehr als zwei Platten entspricht somit quasi einem Raid 10.

Gibt es etwa Möglichkeiten einen mirrored Storage Space wie ein Raid 10 aufzubauen? Ich dachte es besteht in einem mirrored Storage Space nur die 1:1 Kopiermöglichkeit (z.B. 4 Festplatten a 2 TB würden in einer Gesamtkapazität von 2 TB resultieren).
 
Bei Mirrored Storage Spaces hast du die Hälfte der Kapazität nutzbar. Egal ob es zwei Platten oder 100 sind. Bei vier Platten a 2TB hast du also 4TB nutzbar.
 
Danke für die Info! :) Davon bin ich nicht ausgeganen...

Hast du Infos bzw. Lektüre zu der Art und Weise, wie genau die Daten bei einem Mirror Storage Space auf die Festplatten verteilt werden?
 
Das ist eigentlich nicht nur bei Storage Spaces so sondern auch bei jedem Software Raid und mitterweile auch bei allen Hardware Controllern die ich kenne.
Das Raid (also die Redundanz) wird nicht mehr auf Plattenebene erstellt sondern auf logischer Blockebene. Das heißt beim Mirror wird einfach ein Block (jeweils 256KB) auf die erste Platte geschrieben, die Kopie davon auf die zweite Platte. Der nächste Block (die nächsten 256KB) dann auf die dritte Platte und die Kopie auf die vierte. So gehts weiter bis zur letzten Platte und dann wieder von vorne los. Hab ich zwei Platten ist das ein klassisches Raid 1, bei mehr ist es ein Raid 10. Damit ist es sogar möglich ein "Raid1" mit drei Platten zu erstellen: Ein Block auf Platte 1 und 2, der nächste auf 2 und 3, der nächste auf 3 und 1 und dann wieder von vorne.
Ein weiterer Vorteil dieses Systems: Du kannst X Platten zu einem Pool zusammen fassen und darauf unterschiedliche Volumes mit unterschiedlichen Redundanzen anlegen. z.B. ein Pool mit 4x 2TB Platten. Darauf dann ein mirrored Volume mit 1TB und ein Parity Volume mit 4,5TB.
 
Zurück
Oben