die Chance für Datenverlust durch einen einzigen Sektor-Fehlers im raid-5 array mit n Platten nach einem Plattenausfall liegt bei
(n - 1) * Diskkapazität[in Bit] / Bit Error Rate [der verwendeten Platten]
sei ein raid-5 array aus 10 Platten á 1TB mit einer BER von 10^14, mit welcher Wahrscheinlichkeit tritt dann ein Lesefehler während eines Rebuild (nach dem Ausfall einer ersten Platte) ein?
1TB = 8 * 2^40 bits, ausgedrückt in Potenzen zur Basis 10 sind das 8,79 * 10^12 bits
da für einen Rebuild sämtliche Sektoren aller verbliebenen 9 Platten gelesen werden müssen, ergibt das eine Menge von 79,16*10^12 oder 7,9*10^13 zu lesenden Bits
beträgt nun die Lesefehlerrate (wie bei low end platten üblich) 10^14, dann ergibt sich 7,9*10^13/10^14 also 79% Chance, dass während des raid-5 rebuild durch Lesefehler Daten oder das ganze array verloren gehen
für 2TB Consumer Platten mit 10^14 BER sieht es wie folgt aus
2TB in 10er Potenzen ausgedrückt sind 17,59*10^12
10^14/17,59*10^12 = 5,7; i.e. bei Verwendung von 5,7 Platten dieses Typs tritt nahezu zwingend ein Lesefehler während des Rebuilds ein
bei Nearline Platten á 2TB mit 10^15 BER tritt, wie man nun leicht selbst überprüfen kann, mit an Sicherheit grenzender Wahrscheinlichkeit erst bei Verwendung von 56 Platten dieses Typs ein Fehler dieser Art ein
was also kann man tun, 4 Dinge, würde ich sagen:
* für aktuelle Backups sorgen
* anständige Festplatten verwenden mit besseren BER, bei grösseren Platten im Sata-Bereich sind das die sog. Nearline Platten, zb. Constellation ES
* in der Formel oben an dem Parameter n drehen, um die Wahrscheinlichkeit für nicht korrigierbare Fehler während des rebuild eines raid-5 zu reduzieren;
das ist es nämlich, was raid-50 tut, und dennoch grössere Datenmengen handeln kann als ein raid-5 allein
für raid-50 bleibt allerdings immer noch das Problem eines möglichen zweiten Plattenausfalls, besonders bei low end platten
die Gesamt-Verlässlichkeit, bzw. umgekehrt die Chance auf Datenverlust eines solchen Arrays bestimmt sich bekanntlich aus den drei Grössen MTTR, MTBF und BER
für die Verlässlichkeit eines raid-5 gilt: MTBF^2 / (n * (n - 1) * MTTR), wobei n Anzahl der Platten
eine seriöse, und insoweit vorsichtige rechnerische Annäherung an die Problematik berücksichtigt aber natürlich die in der Praxis zu beobachtende Neigung von arrays nach einem ersten Plattenausfall im Rebuild gleich noch einen zweiten Ausfall nachzuschieben; ein raid-5 und ein raid-50 sind dann tot. Solche sogenannten korrelierten, nämlich von den Umständen abhängigen Plattenausfälle, deren Eintrittswahrscheinlichkeit eben nicht mehr entlang der statistischen Ausfallwahrscheinlichkeit der einzelnen Platte verläuft, werden dergestalt berücksichtigt, dass für eine weitere (zweite) eine 10mal höhere Wahrscheinlichkeit und für eine weitere (dritte) Platte eine 100mal höhere Ausfallwahrscheinlichkeit zugrunde gelegt wird
es ergibt sich so folgendes:
-raid-5 = MTBF * MTBF/10 / n * (n - 1) * MTTR
-raid-6 = MTBF * MTBF/10 * MTBF/100 / n * (n - 1) * (n - 2) * MTTR^2
* raid-6 verwenden, damit erschlägt man gleich mehrere Probleme,
ein Lesefehler im Rebuild macht nämlich einem raid-6 gar nichts, die Daten sind wegen der zweiten Paritätsschicht allemal rekonstruierbar
und auch ein zweiter Plattenausfall führt nicht zu irgendeinem Datenverlust