- I don't trust midgets with wands, and neither should you...
- -- Frumpy The Clown by Judd Winick
Es ist mal wieder Technikzeit, und diesmal soll es um das RAID gehen, hauptsächlich darum, warum ich es nicht mag. Dazu muss ich aber erstmal erklären was ein RAID eigentlich ist. Die Abkürzung RAID steht für
Redundant Array of Inexpensive Disks, in der Praxis steht RAID einfach für den Zusammenschluss von mehreren physisch existenten Festplatten zu einer Einheit, die vom Computer aus als wie einzige Festplatte aussieht. Um dieses Ziel umzusetzen gibt es viele Wege: man kann es zum Beispiel über das Betriebssystem machen lassen, oder auch über einen speziellen Controller.
Es gibt auch mehrere Möglichkeiten die Festplatten zusammenzufassen, hier soll es um die Varianten gehen, die eine Ausfallsicherheit versprechen. Wie wird so etwas bewerkstelligt? Das ist eigentlich gar nicht so schwer, und um das zu erklären baue ich hier jetzt mal ein RAID aus drei Festplatten auf, die alle genau ein Bit, also nur 0 oder 1 speichern können. Warum? Weil es so am einfachsten zu erklären ist, und sich "im Großen" genauso verhält, nur halt eben nicht nur einmal, sondern viele Billionen Male.
Für die Ausfallsicherheit muss natürlich ein gewisser Preis bezahlt werden. Im Fall eines RAIDs ist das sie Kapazität. So können meine Festplatten zwar zusammen insgesamt 3 Bit speichern, aber in meinem RAID sind nur 2 zu sehen, denn eine Festplatte enthält nur Sicherungsdaten, die sich aus den beiden anderen, den Datenplatten, errechnen.
Wie wird nun Sicherungsdaten erstellt? Auch das ist ganz einfach: wenn die Anzahl der 1en der beiden Platten ungerade ist, dann soll in meiner Sicherungsplatte an derselben Stelle eine 1 stehen, sonst eine 0. Daraus ergibt sich folgende Möglichkeiten für die gespeicherten Daten:
Daten 1 | Daten 2 | Sicherung |
---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Sollte nun eine der drei Platten ausfallen, so kann man deren Inhalt aus dem Inhalt der anderen Festplatten und der von mir oben festgelegten Regel wieder rekonstruieren. Das ist schon eine tolle Erfindung, und das meine ich im Moment auch ganz ironiefrei.
In der Praxis treten jedoch zwei Probleme auf. Die Hardware und die Benutzer. Neben der Software zwei von drei Hauptquellen für Probleme mit Rechnern. ;-) Schon mal gar nicht so gut.
Fangen wir mal mit dem Problem "Benutzer" an. Er hat nun ein RAID bekommen, und stellt fest, das seine Daten ja jetzt sicher sind. Dabei übersieht er allerdings gerne, dass sie nur gegen den Ausfall einer von drei Festplatten gesichert sind, und nicht zum Beispiel gegen versehentliches Löschen. So etwas schlägt sich meist in der Moral nieder, mit der dann die Backups angefertigt werden.
Aber wenn der "relativ erfreuliche" Ausfall einer der drei Festplatten stattfindet, dann ist doch wenigstens alles in Butter, sollte man meinen. In diesem Fall hat man aber die Rechnung ohne die Hardware gemacht. Überlegen wird mal kurz: wir haben zum Einrichten des RAIDs drei gleiche Festplatten gekauft, die alle drei gleichviel gelaufen sind. Jetzt fällt eine aus, und ich ersetze sie durch eine neue. Damit das Komplettsystem RAID aber wieder ausfallsicher ist, muss auf diese ja noch die die rekonstruierbaren Daten geschrieben werden, für den Fall, dass die nächste ausfällt. Dafür muss aber jede der anderen Platten einmal komplett eingelesen werden... Na, klingelts? Nicht? Also nochmal kurz etwas anders beschieben: wir haben hier Drillinge, die das gleiche durchlebt haben. Einer ist an Altersschwäche gestorben, und um einen neuen einzuarbeiten, müssen die verbliebene zwei Drillinge nochmal so richtig volle Leistung bringen. Wäre es da wirklich überraschend, wenn bei dieser Anstrengung noch ein weiterer Drilling das zeitliche segnet und abtritt, bevor er seine Daten komplett preisgegeben hat?
Und so komme ich zu dem Schluss, dass ein RAID einen Verlust von Daten nicht wirklich vermeiden kann. Zumindest nicht so sicher, dass man sich darauf verlassen kann. Es hilft nur, einen spontanen Totalausfall zu vermeiden. Wenn also eine Festplatte morgens um halb zehn ausfällt, muss nicht die ganze Firma einen Tag Urlaub nehmen, sondern kann normal weiterarbeiten. Wenn dann Feierabend ist, kann die arme Sau von IT-Experte sich dann des Problems annehmen und dann versuchen, das System zu retten, ohne dass, falls es nicht klappt, gleich die ganze Firma lahmgelegt ist.
Und da kann ich schon die Fragen hören: wenn der SvOlli hier schon so am klugscheißen ist, dann soll er und auch sagen, wie man es richtig macht. Die Antwort hierdrauf lautet: es kommt drauf an. Eine ultimative Lösung gibt es nicht. Da das als Antwort für die meisten bestimmt ungenügend ist, beschreibe ich hier noch kurz was ich mache: auf meinem Linuxserver, also da wo die wichtigen Daten sind, gibt es zwei Festplatten. Eine ist die ganz normale Systemfestplatte, auf der auch alle Daten gespeichert sind. Die zweite Festplatte ist auf Standby, das bedeutet, sie dreht sich nicht, und läuft erst dann an, wenn sie wirklich angesprochen wird. Das ist um 6 Uhr morgens. Dann kopiere ich nämlich alle Änderungen mit Hilfe eines Programms namens "rsync" von allen relevanten Verzeichnissen aus dem laufenden System auf diese Sicherungsfestplatte. Danach lege ich sie wieder schlafen, damit sie möglichst lange hält. Sollte die Systemplatte ausfallen, kaufe ich eine neue und kann mithilfe eines von CD gestarteten Linux und der Datensicherungsplatte ein den alten Zustand in Rekordzeit wieder herstellen, minus ein paar Daten, die ich für nicht Sicherungswürdig erachtet hatte, weil die Sicherungsplatte kleiner ist als die Systemplatte. Sollte die Sicherungsplatte ausfallen wird sie einfach ersetzt, und das nächste "6 Uhr Backup" dauert dann halt mal etwas länger.
Auch das ist nicht unbedingt das Ei des Kolumbus, lässt mich aber ruhig schlafen.
Nachtrag: Hier nochmal zwei Links, die ich zu dem Thema schon vor längerer Zeit gefunden hatte: einen
Blogartikel und ein
Dokument.
Kommentare
http://blog.koehntopp.de/archives/1711-RAID-5.html
Das scheint doch ein Problem zu sein, wenn auch etwas anders gelagert. Bestätigt aber die Vorbehalte im Beitrag hier.
Google hat doch vor Kurzem so eine interne Studie veröffentlicht, in der es darum ging, wie lange Festplatten (und damit meinten die normale Desktopplatten) im Schnitt halten.
Und da meine ich gelesen zu haben, dass Festplatten im Schnitt länger halten, wenn sie im Dauerbetrieb sind als dass sie jedes Mal neu anlaufen müssen. Deckt sich auch mit dem, was ich sonst so lese/höre.
Ich halte deine Standby-Theorie im ersten Anblick ganz nett, man muss aber den erhöhten Verschleiß des immer wieder Anlaufens beachten und damit relativiert sich deine nett aufgestellte Theorie.
Die Frage stellt sich also eher so: wo liegt der Fall, bei dem sich beide Nutzungsweisen die Waage halten?
Obwohl mich das genaugenommen nicht interessiert. Mir kommt es nicht darauf an, dass die "Backupplatte" möglichst lange hält, sondern nur, dass nicht beide Platten gleichzeitig ausfallen. Denn der Ausfall der "Backupplatte", wie auch der "Systemplatte", wird kommen. Ob dies nun in 30 Minuten oder 30 Jahren passiert, ist dabei eher zweitrangig. Mir geht es nur darum die "gefühlte Wahrscheinlichkeit", dass der Fall "beide gleichzeitig kaputt" eintritt, zu minimieren. Und dieses Ziel habe ich durch die unterschiedliche Einsatzweise der Platten erreicht.
Genaugenommen würde ich mich sogar drüber freuen, wenn die "Backupplatte" zum Beispiel nächstes Jahr ausfallen würde. Die aktuelle Systemplatte ist dann noch relativ jung, und ich würde einfach eine neue "Backupplatte" kaufen. Oder alternativ eine neue "Systemplatte" und dann die alte "Systemplatte" als "Backupplatte" verwenden.