Moin!
Wenn man nun mithilfe von Statstiken bestimmt, dass die Chance dafür, dass eine Festplatte an einem Tag kaputt geht (sagen wir einfach mal) 0,001 beträgt, dann wäre die Wahrscheinlichkeit dafür, dass zwei zusammengehörige Platten am selben Tag ausfallen also 0,001 * 0,001 = 0,000001.
Diese Rechnung ist falsch.
Es kommt ja nur dann zu Datenverlust, wenn nach dem Ereignis des ersten Festplattenausfalls exakt die korrespondierende Festplatte auch noch ausfällt - nicht irgendeine.
Das, was du ausrechnest, ist die Wahrscheinlichkeit, dass zwei Platten nacheinander ausfallen.
Nachdem die erste Platte ausgefallen ist, stehen aber noch sieben verbleibende Platten zur Verfügung, von denen aber nur der Ausfall einer einzigen direkt zu Datenverlust führt.
Die Wahrscheinlichkeit für den Ausfall der "falschen" Platte beträgt daher nur ein Siebtel.
Als Chance: (8 * 0,001) * (0,001 / 7) = 0,00001428
Du irrst dich. Gehen wir mal von 10% Ausfallwahrscheinlichkeit am Tag aus. Dann sähe das nach deiner Rechnung so aus:
(8 * 0,1) * (0,1 / 7) = 0,1428
Bei 10'000 Tagen würde das bedeuten, dass ungefähr 143 mal ein Datenverlust stattfinden würde.
Um das nun zu überprüfen, habe ich ein kleines Programm (extra für dich in Javascript =)) geschrieben, welches das mal nachrechnet.
Wenn ich eingebe, dass es 8 Festplatten sein sollen (4mal Daten, 4mal Parität), es 10'000 Tage dauern soll und die Ausfallwahrscheinlichkeit 10% beträgt, erhalte ich Werte von um die 400. Und das entspricht genau dem, was ich gesagt habe. Hier das Programm:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<script type="text/javascript">
function berechnen()
{
//Inputdaten sammeln
var festplattenanzahl = document.getElementById("festplattenanzahl").value;
var ausfallwahrscheinlichkeit = document.getElementById("ausfallwahrscheinlichkeit").value / 100;
var zeitabschnitte = document.getElementById("zeitabschnitte").value;
//Am Anfang gibt es noch keinen Datenverlust
var datenverluste = 0;
//Zuerst zwei Arrays von Festplatten erstellen... die Hälfte sind Datenfestplatte, die andere Hälfte Paritätsfestplatten
//Datenfestplatten[n] und Paritätsfestplatten[n] gehören jeweils zusammen
var Datenfestplatten = new Array(festplattenanzahl / 2);
var Paritätsfestplatten = new Array(festplattenanzahl / 2);
while (zeitabschnitte > 0) //Für jeden Zeitabschnitt wird geprüft, ob es einen Ausfall gab
{
for (var i = 0; i < festplattenanzahl / 2; i++) //Für jede Festplatte...
{
//...einen Zufallswert zuweisen (von 0 bis 1)
Datenfestplatten[i] = Math.random();
Paritätsfestplatten[i] = Math.random();
}
//Überprüfen, ob es einen Ausfall gab. Dies wäre dann der Fall, wenn Datenfestplatten[n] und Paritätsfestplatten[n] gleichzeitig ausgefallen sind.
//Ausgefallen sind sie dann, wenn der Zufallswert kleiner als die Ausfallwahrscheinlichkeit ist.
//Wenn die Ausfallwahrscheinlichkeit 5% beträgt (0,05) dann würden alle Zufallswerte von 0,00 bis 0,05 einen Ausfall bedeuten
for (var i = 0; i < festplattenanzahl / 2; i++) //Für jede Festplatte...
{
//...auf einen gleichzeitigen Ausfall überprüfen
if (Datenfestplatten[i] <= ausfallwahrscheinlichkeit && Paritätsfestplatten[i] <= ausfallwahrscheinlichkeit)
{
datenverluste++; //Es hat einen Datenverlust gegeben!
}
}
zeitabschnitte--;
}
//Datenverluste ausgeben...
document.getElementById("ergebnis").innerHTML = "Es ist zu "+ datenverluste +" Datenverlusten gekommen.";
}
</script>
</head>
<body>
<div id="ergebnis" style="height: 30px; background: lightgray;"></div><br>
Anzahl an Festplatten (inkl. den Gespiegelten): <input type="text" id="festplattenanzahl"><br>
Ausfallwahrscheinlichkeit innerhalb eines Zeitabschnitts: <input type="text" id="ausfallwahrscheinlichkeit"> (in Prozent)<br>
Anzahl an Zeitabschnitten: <input type="text" id="zeitabschnitte"><br>
<button onclick="berechnen();">Datenverlustanzahl ermitteln</button>
</body>
</html>