RAID allgemein: Unterschied zwischen den Versionen
Gehrke (Diskussion | Beiträge) K (Kategorien hinzugefügt) |
Gehrke (Diskussion | Beiträge) K ('Festplatten-Kapazität erweitern (mdadm + LVM + LUKS)' hinzugefügt) |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 84: | Zeile 84: | ||
== Hardwareraid == | == Hardwareraid == | ||
− | Echtes Hardwareraid kostet immer auch echtes Geld bei der Anschaffung und wird durch einen speziellen | + | Echtes Hardwareraid kostet immer auch echtes Geld bei der Anschaffung und wird durch einen speziellen eigenen Prozessor gestützt. Es werden private Plattencontroller und Busse benutzt, die für das Betriebssystem nicht zugänglich sind und sich ebenfalls mit auf dem Raidcontroller befinden. Zusätzlich sind meist noch Slots für Speichermodule als RAID-Cache sowie eine Batterie (BBU) zum Stützen der sich in diesem Speicher befindlichen Daten optional möglich. Die volle Leistungsfähigkeit erreicht der Raidcontroller erst dadurch. Der Raidcontroller arbeitet selbstständig und völlig ohne jegliche Unterstützung eines Betriebssytems, es ist ihm also vollkommen egal ob dort ein Dos, Windows, Linux oder Solaris gerade die RAIDs benutzt. Einzig einen Treiber zum Ansprechen des Controllers muss es im Betriebssystem geben, die Unterstützung der gebäuchlichsten Raidcontroller im Linuxkernel ist z.B. recht gut und umfassend. |
− | |||
− | + | Raidcontroller gibt es hauptsächlich für SCSI, SATA, oder SAS Platten. Es können vom Controller aus nur die an diesem Controller angeschlossenen Platten verwaltet werden, einige wenige Controller erlauben es auch RAID über mehrere baugleiche Controller zu erstellen. Durch die Nutzung des Cachespeichers in Kombination mit bestimmten Schreiboptionen ist es dem Raidcontroller möglich, eine Bestätigung für das Schreiben der Daten schon dann zu geben, wenn sich die Daten im Cache des Controllers befinden, also noch gar nicht physikalisch auf die Platten geschrieben sind. Ebenso können bestimmte Einstellungen beim Lesen von sequentiellen Dateien durch Nutzung des Caches eine deutliche Durchsatzsteigerung bewirken. Die richtige Nutzung des Caches kann eine Leistungssteigerung von bis zu 50% bewirken. Fällt der Strom aus und es befinden sich noch ungeschriebene Daten in diesem Cache, sorgt die Batterie dafür, dass diese für einige Stunden meist Tage nicht verloren gehen. Wird der Rechner eingeschaltet und der Controller aktiviert, werden diese Daten dann geschrieben. Es gehen dadurch auch beim Systemcrash u.Ä. keine Daten verloren und es werden dadurch auch die RAIDs nicht inkonsistent. Der Leistungsumfang und die Möglichkeiten sind in den einzelnen Controllern recht unterschiedlich und spiegeln sich nicht zuletzt auch im Preis wieder, gemeinsam ist ihnen jedoch begrenzte Konfigurationsmöglichkeiten und die Möglichkeit der Aktivierung und Deaktivierung sehr spezieller Funktionen.die zum Teil auch radikale Auswirkungen beim Datendurchsatz haben können. Fehlkonfiguration ist jedoch kaum möglich, solange man nur an den Feldern herumspielt, von denen man sich der Bedeutung bewusst ist. Der Controller sorgt nicht nur selbst für die optimalen Bedingungen und bedient und überwacht das RAID, er überwacht auch die Platten auf Unregelmäßigkeiten und Fehler. Inkonsistenzen und Fehler werden vom Controller selbst erkannt und gegebenenfalls auch mit Auskonfigurieren der verursachenden Platte geahndet. Inwieweit diese Fehler dann auch vom Betriebssystem abgegriffen werden können, hängt nicht zuletzt davon ab, ob man spezielle Tools und Managementunterstützung der Hersteller auf seinem Rechner installiert hat oder nicht. Plattentausch ist unproblematisch, das Wiederherstellen des RAID regelt der Controller selbst. Hardwareraid ist also eine sehr leistungsfähige Methode, die alle Vorteile von RAID optimal nutzen kann, außer die mit dem Preis. | |
+ | === Hardware Trends === | ||
− | + | Derzeit ist neben der weiter oben schon erwähnten Methode einfache Softwareraid basierende Funktionen auf dem Systemboard durch Firmware zu stützen, auch eine verstärkte Aktivität zu verzeichnen, preiswertes richtiges Hardwareraid mit auf die Mainboards zu setzen. | |
− | + | Dazu zählen einerseits vollwertige Raidcontroller-Chips inclusive Slot für Speichercache und BBU. So ein Board mit Vorbereitung für echtes Hardwareraid ist in der Anschaffung erst einmal vergleichsweise günstig, jedoch nicht immer auch so schon wirklich nutzbar. Es ist möglich, dass dieser Raidcontroller auf dem Systemboard erst durch einen separat zu kaufenden "Dongle" freigeschaltet wird. Der Dongle könnte aussehen wie eine etwas zu groß geratene BIOS-Batterie, und auch genauso einzubauen sein. In ihm befindet sich der Lizenzkey sowie die Konfigurationsdaten für das RAID. Auch der Speicher und die BBU (Cachebatterie) die für die volle Leistung des RAIDs notwendig wären, müssten optional erworben werden. | |
− | Dazu zählen einerseits vollwertige Raidcontroller-Chips inclusive Slot für Speichercache und BBU. So ein Board mit Vorbereitung für echtes Hardwareraid ist in der Anschaffung erst einmal vergleichsweise günstig, jedoch nicht immer auch so schon wirklich nutzbar. Es ist möglich, dass dieser Raidcontroller auf dem Systemboard erst durch einen separat zu kaufenden "Dongle" freigeschaltet wird. Der Dongle könnte aussehen wie eine etwas zu groß geratene BIOS-Batterie, und auch genauso einzubauen sein. In ihm befindet sich der Lizenzkey sowie die Konfigurationsdaten für das RAID. Auch der Speicher und die BBU ( Cachebatterie ) die für die volle Leistung des RAIDs notwendig | ||
− | Eine andere Masche ist der sogenannte "Zero-Channel RAID Controller" | + | Eine andere Masche ist der sogenannte "Zero-Channel RAID Controller". Dabei handelt es sich um einen vollwertigen Raidcontroller, der allerdings keinen eigenen Plattencontroller beherbergt. Statt dessen kann er aber die Plattencontroller auf dem Mainboard nutzen. Dieser Controller muss meist auf einen festgelegten PCI-Steckplatz betrieben werden. Einzige Einschränkung, die Daten müssen dabei zwei mal durch den PCI-Bus, Ein mal auf dem Weg zum Controller und dann von dort aus wieder zurück zu den Plattencontrollern. |
== weitere Links== | == weitere Links== | ||
Zeile 102: | Zeile 101: | ||
* [http://www.tecchannel.de/storage/san/432631 Praxis-Know-how: RAID-Controller optimal konfigurieren] | * [http://www.tecchannel.de/storage/san/432631 Praxis-Know-how: RAID-Controller optimal konfigurieren] | ||
* [http://www.raid-controller.info www.raid-controller.info] | * [http://www.raid-controller.info www.raid-controller.info] | ||
− | + | *[[Festplatten-Kapazität erweitern (mdadm + LVM + LUKS)]] | |
----- | ----- | ||
[[Allgemeines | Zurück zu Allgemeines]] | [[Allgemeines | Zurück zu Allgemeines]] | ||
− | [[Kategorie:Allgemeines]] [[Kategorie:Partitionen]] [[Kategorie:Security]] [[Kategorie:Übersicht]] | + | [[Kategorie:Allgemeines]] [[Kategorie:Hardware]] [[Kategorie:Partitionen]] [[Kategorie:Security]] [[Kategorie:Übersicht]] |
Aktuelle Version vom 13. Januar 2015, 13:41 Uhr
Mit gewisser Regelmäßigkeit erscheint in unserem Forum die Thematik RAID. Dabei zeigt sich, dass hier neben spezieller Hilfestellung durchaus auch noch einiges an allgemeinem Informationsbedarf besteht. Aus diesem Grunde soll hier eine allgemeinverständliche komprimierte Zusammenfassung über den Mythos RAID entstehen.
Inhaltsverzeichnis
RAID was ist das überhaupt
Der Begriff RAID
RAID redundant array of inexpensive disks (übersetzt: Redundanter Verbund kostengünstiger Festplatten) taucht in den späten 80er Jahren erstmal auf. Die Idee dahinter, man benötigte eine Möglichkeit mit preiswerten gebräuchlichen Festplatten große und extrem teure Speichermedien zu simulieren bzw. zu ersetzen. Das dabei durch die höhere Anzahl der Festplatten entstehende höhere Ausfallrisiko sollte durch die Redundanz, also das Vorkommen mehrfach gespeicherter Daten ausgeglichen werden. Doch die Entwicklung ging weiter, die verfügbaren Plattenkapazitäten haben sich fast 2 jährig verdoppelt, die Preise halbiert. Aber es gab neue Probleme für die das RAID optimale Voraussetzungen mitbrachte und die die Entwicklung von RAID voran getrieben haben. Man benötigte schnellere Zugriffszeiten, höhere Datensicherheit und größere Verfügbarkeit der Systeme. Heute spielt der Preis nur noch eine untergeordnete Rolle und man übersetzt RAID als redundant array of independent disks (übersetzt: Redundante Anordnung unabhängiger Festplatten)
Das Prinzip
Anstatt die Daten der Reihe nach auf eine einzige Platte zu schreiben, werden die Daten parallel und gleichzeitig auf mehrere Platten geschrieben. Die einfachste Methode, man teilt die Daten jeweils in kleine gleichgroße Blöcke auf, und schreibt die einzelnen Blöcke jeweils gleichzeitig auf eine bestimmte Anzahl von gleichgroßen Platten. Bei angenommenen 4 Platten wird dann nur jeder 4. Block auf eine bestimmte Platte geschrieben und die Gesamtkapazität ist 4 x die Einzelplattengröße. Gelesen wird dann genauso von allen Platten gleichzeitig. Und schon haben wir einen RAIDLEVEL definiert, RAID 0 auch Striping genannt, weil die Daten wie einzelnen Streifen auf die Platten verteilt werden
RAID 0 hat nun aber keine Redundanz, das heißt wenn auch nur eine Platte ausfällt, sind die Gesamtdaten aus den verbleibenden Platten nicht mehr vollständig herzustellen. Also schreiben wird doch all unsere Dateien einfach immer gleichzeitig parallel auf mehrere gleichgroße Platten. Dann können Platten ausfallen, solange aber noch eine Platte ok ist, sind unsere Daten alle noch vollständig verfügbar. Unsere Gesamtkapazität ist dann allerdings nur noch genauso groß wie die Einzelkapazität der Platten selbst. Damit haben wir so ziemlich das Gegenteil von RAID 0 und einen neuen RAIDLEVEL definiert RAID 1 auch Mirroring also Spiegelung genannt, auf mehreren Platten stehen Bitgenau immer die selben Daten.
Eine andere Möglichkeit, wir schreiben unsere Daten wie bei RAID 0 in Streifen auf mehrere Platten, und auf eine zusätzliche Platte schreiben wir die Parität, also eine Bitweise Verknüpfung der einzelnen Blöcke auf den einzelnen Platten. Jetzt kann eine Platte ausfallen, ist es die zusätzliche sind die Daten alle noch heil, ist es jedoch eine der anderen Platten, dann können wir aus den Daten der verbleibenden Platten und dem Vergleich mit dem Inhalt der zusätzlichen Platte den Dateninhalt der defekten Platte wieder genau rekonstruieren. Dazu benötigen wir zwar etwas Rechenleistung beim Schreiben sowie beim Auslesen wenn einen Platte defekt ist, aber wir haben eine Gesamtkapazität von (Anzahl der Platten-1) x Einzelkapazität und eine Redundanz von genau einer Platte. Und schon haben wir einen neuen RAIDLEVEL definiert RAID 3.
Von solchen RAIDLEVELN gibt es eine ganze Reihe die alle mehr oder weniger verschiedene Eigenschaften haben. Nachzulesen zB bei Wikipedia . Auch ist es möglich so entstandene RAIDs dann in weiteren RAIDs einzubinden und so die Stärken und Schwächen der einzelnen RAIDLEVEL zu kombinieren, um somit große Plattenkapazitäten mit speziellen RAID-Eigenschaften darzustellen.
Gemeinsam allen RAIDs ist, es wird eine logischer Verbund mehrerer physikalischer Platten erzeugt. Der Rechner arbeitet dann mit dem logischen Verbund als Ganzes genau so, als währe es eine einzelne physikalische Platte.
RAID ist nicht immer gleich RAID
Zwar ist mit dem RAIDLEVEL schon das wichtigste Kriterium für die Raideigenschaften festgelegt, jedoch ist ein RAID nicht immer das selbe RAID nur weil es den selben RAIDLEVEL hat. Es gibt eine Reihe von weiteren Eigenschaften die die Leistungsfähigkeit, insbesondere den Datendurchsatz innerhalb eines RAID positiv oder negativ beeinflussen können, auch wenn die Gesamtstruktur gleich ist. Angenommen wir haben ein RAID1 auf 2 Platten. Also gespiegelt. Beim Schreiben müssen die selben Daten sowohl auf die eine, wie auch auf die andere Platte geschrieben werden. Also die langsamste Platte bestimmt die maximale Schreibgeschwindigkeit. Jetzt kommt hier so ein Raidcontroller daher und sagt, ich warte aber nicht bis die Daten auf der Platte stehen, sondern melde schon "fertig" zurück, wenn ich die Daten erstmal nur in einem Speicher zwischengespeichert habe, auf Platte speichere ich wenn ich Zeit dazu habe. Na, wenn das mal gut geht. Oder beim Lesen desselben. Welche Platte ich lese ist ja egal, also lese ich immer die erste Platte solange diese ok ist. Ein anderes Raidkonzept sagt sich, wenn beide ok sind, dann lese ich doch die ersten 4 zusammenhängenden Blöcke von Platte 1 und fordere gleichzeitig schon mal die nächsten 4 Blöcke von Platte 2 an, sollten diese dann jetzt gleich angefordert werden, habe ich die schon fix und fertig auf Vorrat da.
der kleine Unterschied
Zum Betreiben eines RAIDs benötigen wir also neben mindestens 2 Platten auch eine gewisse Logik und in vielen Fällen sogar mehr oder weniger Rechenleistung die dahinter steckt. Diese Logik läßt sich nun in Form eines Treibers recht schnell vor den Zugriff auf die Einzelplatten innerhalb des Betriebssystems dazwischenschieben. Und schon haben wir einen neuen Begriff, Softwareraid Die gesamte Verwaltung und Steuerung übernimmt das Betriebssystem selbst. Wir sprechen nur dem RAID-Treiber an, und dieser verteilt unsere Daten und Aufträge dann entsprechend über die Funktionen des Betriebssystems auf die einzelnen Platten. Das hat eine ganze Menge Vorteile, aber auch einige nicht zu übersehende Nachteile.
Eine andere Möglichkeit, wir lagern die gesamte Logik mit samt der Plattencontroller und den Festplatten aus. Dazu brauchen wir einen Stück eigenständige Hardware die mindestens einen eigenen Plattencontroller besitzt, an dem dann mindestens 2 Platten angeschlossen werden. Diese Hardware benötigt ein eigenes Rechenwerk, um die Ansteuerlogik und Rechenarbeit für das RAID zu bewältigen. Selbstverständlich wird auch noch eine Schnittstelle für unseren Rechner benötigt, damit wir vom Rechner aus auch darauf zugreifen können. Quasi brauchen wir einen kleinen möglichst selbständigen arbeitenden Minicomputer der nur dazu da ist, unsere RAID-Platten zu betreiben und der irgendwie mit unserem Betriebssystem verbunden ist. Und schon haben wir Hardwareraid. Das Betriebssystem braucht jetzt gar nicht mehr mit den einzelnen Platten selbst zu arbeiten, ja es sieht sie nicht einmal mehr. Dafür gaukelt das Hardwareraid unserem Betriebssystem eine physikalische Platte vor, die in Wirklichkeit jedoch eine logische Platte aus mehreren physikalischen Platten ist, das weiß aber nur das Hardwareraid selbst, nicht unser Betriebsystem. Die benötigte Rechenleistung für das RAID, und die Ansteuerung der Platten und des Plattencontrollers wird einzig und allein vom Rechenwerk des Hardwareraids getragen. Dieses Hardwareraid könnten wir jetzt mit vielen Platten in einen eigenes Gehäuse bauen und zB über eine Netzwerk an unseren Rechner anschließen und schon haben wir ein Disk-Array. Oder aber wir könnten das auch etwas kleiner gebaut, mit einem so genannten Raid-Controller-Chip bestückt in Form eines eigenständigen Controllers in den PCI-Bus stecken und die Platten dennoch im Rechnergehäuse unterbringen und schon haben wir einen Hardware-RAID-Controller. Aber auch das Hardwareraid hat Vor- und Nachteile
Software RAID ist immer etwas kompliziert in der Handhabung während des frühen Boot-Prozesses, auch ist es in der Regel absolut unpraktisch bei Desktop-Version von Windows. Hardware-RAID-Controller sind jedoch teuer. Um diese Lücke zu schließen, wurden in den letzten Jahren preiswerte "RAID-Controller" erfunden und eingeführt. Diese enthalten jedoch keinen vollwertigen RAID-Controller-Chip, sondern lediglich einen Standard-Festplatten-Controller-Chip mit spezieller Firmware. Implementiert sind oftmals nur RAID 0 und RAID 1. Während der frühen Phase des Bootvorgangs wird dieses RAID von der Firmware dieses Festplatten-Controllers gestützt, wenn jedoch das Betriebssystem geladen ist, muss das Betriebssystem über einen Treiber selbst das RAID betreiben. Es handelt sich also um Softwareraid mit BIOS- oder Firmwareunterstützung.
Diese Art RAID ist meistens direkt auf den Mainboards verbaut und wird durch die Hersteller als RAID-Controllern verkauft. Es wird selten wirklich deutlich gemacht, dass die Belastung der Raidverarbeitung dabei durch die CPU des Rechners und nicht etwa durch den RAID-Controller selbst getragen wird. In technisch fachkundigen Kreisen und in der Linuxwelt wird diese Art RAID oftmals als Fake-RAID bezeichnet.
Wozu benötigen wird den RAID heute
Die Entwicklung von RAID hat sich ja vornehmlich in den Rechenzentren vollzogen, Erst waren die Platten zu teuer, dann zu klein, dann waren die Controller zu langsam, irgendwann waren dann die Platten nicht mehr schnell genug usw. Viele dieser Probleme stellen sich heute in den Rechnenzentren nicht mehr ganz so vordergründig dar. Beim Einsatz von RAID geht es dort heute vielmehr in erster Linie um Rechnerverfügbarkeit und Ausfallsicherheit. Was ist damit gemeint. Eine einzelne Platte wird zwangsläufig irgendwann versagen, ob sie durch Schreib-Lesefehler auffällt, durch versagen der Elektronik oder Motorstillstand ausfällt, ob es in 10 Jahren, morgen früh, oder nach dem nächsten Reboot ? Von einer einzelnen Platte kann man das nicht vorhersagen. Wir haben ein Risiko X. Haben wird 4 Platten, dann haben wir das Risiko 4X und haben wir 1000 Platten, dann haben wir das Risiko 1000X. Und irgendwann fällt uns auf, wir haben jetzt im Durchschnitt in der Woche oder im Monat so und so viele defekte Platten, Wir haben eine Ausfallwahrscheinlichkeit aber können nicht bestimmen welche Platte im einzelnen oder speziellen als nächste ausfallen wird. Nun hat man aber nicht wie vielleicht mit dem eigenem Laptop die Möglichkeit wegen jeder Kleinigkeit den Rechner anzuhalten oder zu rebooten, das bedeutet das System und die Applikation müssen ganz normal weiterlaufen auch wenn eine Platte defekt ist, und die Platte muss sich im laufenden Betrieb durch eine neue ersetzen lassen und danach muss sie wieder so integriert werden, das ein erneuter Plattenausfall auftreten darf.
Im anderem Extrem, dem privaten Umfeld auf einem normalem Desktop sieht es etwas anders aus, Hier habe ich sowieso nicht die Möglichkeit ein Platte im laufenden Betrieb zu tauschen, zu was auch, ich schalte den Rechner täglich sowieso mehrmals aus, und wegen jeder Mausbewegung muss ich den Rechner sowieso rebooten, damit die Änderung wirksam wird. Über Hoch-Verfügbarkeit brauchen wir hier nicht reden. Versuchen wir es mit Ausfallsicherheit. Auch hier wird über kurz oder lang mal eine Platte ausfallen. Wie wichtig ist es jetzt das der Rechner weiterläuft und ich das gar nicht mitbekomme? Währe es hier nicht besser der Rechner würde abstürzen und ich somit bemerken das eine Platte defekt ist? Ich möchte sogar frech behaupten, viele die irgendwann einmal auf LINUX ein Softwareraid auf ihren privaten Rechner installiert haben, haben weder die Raidfunktionen auf alle möglichen Ausfallkriterien getestet noch sich seit dem jemals wieder um den Zustand und die Konsistenz ihres RAID gekümmert.
Es ist zwar schön zu wissen, wenn eine Platte beim Einschalten ausgefallen, tot oder halbtot ist, dann könnte ich normalerweise trotzdem normal booten und weiter arbeiten, mir müssten nur mal schnell die Befehle wieder einfallen, um auch von der 2. Platte booten zu können oder die defekte Platte auszukonfigurieren damit sie mir nicht noch länger das gesammte System ausbremst. In diesem Umfeld ist es also nicht ganz ausgeschlossen, dass man entweder wochenlang schon defekte Platten im Rechner hat, ohne es zu merken, oder mit einer defekten Platte trotz RAID nicht normal arbeiten kann, weil zB im RAID-Desing Fehler gemacht wurden. Manch einer wird feststellen, dass eine Neuinstallation oder das Einspielen eines Backup schneller ist, als ungeübt die Reparatur eines defekten Raids durchzuführen. Das geht schon los, 80GB SATA Platte defekt, 80GB SATA Platte eines anderen Herstellers eingebaut da die orginal Platte nicht mehr auftreibbar. Ergebniss nach 2 Stunden suchen nach der Ursache warum das RAID nicht synchronisieren will, Platte zu klein 76GB will das RAID sehen, sieht aber nur 74GB. Und nun?
Ein Backup kann mir das RAID auch nicht ersetzen, zuwas also hier RAID?
Ich kann hier wunderbar die anderen Eigenschaften die RAID hat, versuchen für mich auszunutzen.
Billige kleine Platten zu größeren Raidplatten zusammenbauen, wenn es sich wirklich rechnet ist das mit RAID das kleinste Problem, meist ist es aber so, dass eine doppelt so große Platte in der Neuanschaffung nur 30% teurer ist. Die Datenzugriffszeit verbessern, gute Idee, und wird in der Praxis auch in einem gewissen Umfang durch RAID machbar sein, wer allerdings der Meinung ist durch RAID 0 über 4 Platten würde LINUX dann plötzlich in Lichtgeschwindigkeit booten, wird feststellen, das hier eine ganze Reihe von weiteren Faktoren mitspielen, die ohne ein tieferes Verständnis so einfach überhaupt nicht zu optimieren sind.
Bleibt noch der große Bereich zwischen Rechenzentrum und privatem PC. Hier wird man aus zum Teil ganz unterschiedlichsten Gründen heute und in Zukunft ohne RAID nicht auskommen können. Derzeitige Entwicklungstendenzen und Innovationen im Hardware Bereich haben deshalb insbesondere solche Umgebungen ins Auge gefasst.
das Handling
RAID ist nun ob Hardware oder Software gestützt nicht die einfachste Technologie, insbesondere da wir uns auf die Funktionalität eines RAIDs 100% verlassen müssen.Im Softwareraidbereich sind oftmals für jedes Betriebssystem 1 oder 2 komplett unterschiedliche Raidkonzepte möglich, in zT. unterschiedlicher Ausprägung und Umfang, von ganz unterschiedlichen Firmen entwickelt und vertrieben. Jedes ist in sich geschlossen und weder Funktionen, Konfigurationsdateien, Tools noch Befehle, geschweige denn schon konfigurierte Platten oder RAIDs,lassen sich von einem auf das andere übertragen. Auf der Konsolzeile hat man zwar überall die 100%ige Kontrolle über das RAID, allerdings sind die Befehle und Optionen zT so kompliziert, dass man sehr viel Erfahrung dazu benötigt. Für viele Produkte gibt es Grafische Raidmanager die es auch einem weniger Geübten erlauben sollen, RAID zu erstellen und zu verwalten, oftmals jedoch sind diese Tools entweder zu primitiv oder viel zu kompliziert für genau den einen Zweck den man gerade benötigt. Problematisch ist oftmals das Online Austauschen von Platten, da hier in einigen Konzepten eine noch nicht ganz ausgefallene Platte erst einmal aus dem RAID-Verbund heraus muss, und hinterher wieder dazugefügt werden muss. Es ist auch nicht immer das einfachste der Welt eine Ersatzplatte eines anderen Types oder Herstellers problemlos einzutauschen, wird aber häufig benötigt. Da man mit Softwareraid sehr viele Freiheiten in der prinzipiellen Konzeption der RAIDs hat, die wenig oder gar nicht vom System überprüfbar sind, kann man durchaus auch schwerwiegende RAID-Desing Fehler einbauen.
Im Hardwareraid Bereich ist es mit der Hardware ähnlich. Jeder Hersteller, zT jedes Produkt manchmal sogar jeder einzelne Firmwarestand ist nicht mit dem anderen kompatibel, Sprich defekter Controllertype 32a vom Hersteller A muss wirklich durch genau diesen Controller manchmal auch noch mit einem speziellen oder mindest Firmwarestand ersetzt werden, damit die Daten hinterher auch wieder sichtbar sind. Schon fertig konfigurierte Platten von einem Controllertype in einen anderen Controllertype übernehmen, unmöglich. Hier wird es bei der derzeitigen Geschwindigkeit mit der neue Produkte auf den Markt erscheinen und wieder verschwinden zunehmend schwieriger über einen längeren Zeitraum Ersatz für einen eventuellen defekten Controller zu bekommen, Man ist also entweder auf Wartungsverträge angewiesen oder muss im Bedarfsfall Ersatz auch über spezielle Vertriebswege einkalkulieren, oder jedesmal bei einem Defekt das Raidkonzept ändern. Plattentausch auch unterschiedlicher Typen und Hersteller macht weniger Ärger. Dafür hat man vom Betriebssystem selbst überhaupt keine Kontrolle über das RAID. Eine Administration ist entweder nur im BIOS des Raidcontrollers also im Offlinemodus des Rechners möglich, oder über spezielle Grafische Raidmanager der Hersteller. Hier besteht insbesondere ein Problem für Linuxanwender, zwar sind diese Tools oftmals für Professionelle Distributionen verfügbar und freigegeben, allerdings auf vielen normalen Distributionen wird man nicht selten vergeblich versuchen, diese Tools zum laufen zu bekommen. Ähnlich verhält es sich mit der Überwachung und frühzeitigen Fehlererkennung, nicht immer erhält man hier auf "normalen" Linuxdistributionen die Meldungen die man gerne hätte. Die Controller erlauben zwar eine sehr genaue und sehr spezielle Konfiguration in einzelnen Parametern, jedoch durch die default Voreinstellungen und die strikte Führung bei der RAID-Erstellung sind schwerwiegende Fehler in der RAID-Konfiguration jedoch ehr die Ausnahme. Allerdings ist man immer an den Umfang der Möglichkeiten des RAID-Controllers gebunden, was mit Controller und Firmware nicht berücksichtigt ist, bleibt nicht machbar.
Softwareraid
Softwareraid ist in der Anschaffung die preiswerteste Alternative. Es bietet die meisten Möglichkeiten und wenig Beschränkungen, da man nicht nur komplette Platten, sondern auch einzelne Partitionen einbinden und kombinieren kann. Auch ist das Anschlusskonzept der Platten völlig belanglos, man könnte also durchaus auch eine Parition einer IDE-Platte mit einer Partition einer SCSI-Platte und einem LOOP-Device und einem RAM-Device zu einem gemeinsamen RAID zusammenbauen. Der Konfiguration sind hier wenige Grenzen gesetzt. Softwareraid benötigt einen gewissen Teil der Systemresourcen, Das macht sich insbesondere bei rechenintensiven RAIDs wie RAID 5 oder RAID 6 bei hohem Datendurchsatz oder während des Rebuild des RAID durchaus bemerkbar. Darüber hinaus ist das Booten von einem RAID nicht in jedem Betriebssystem so einfach zu konfigurieren. Da das Betriebssystem jedoch auch die orginal Devices unterhalb des RAIDs sieht, sind Meldungen der einzelnen Platten ganz normal in den Logdateien zu finden, allerdings kann das RAID-Modul nicht verhindern, dass vom Betriebssystem aus eventuell auch unerwünscht und direkt auf die Plattenteile des RAID zugegriffen wird. Von einigen Softwareraids bestimmter Betriebssysteme ist bekannt, dass sie nach einem Systemcrash oder ähnlichen die gesamten konfigurierten RAID wieder neu synchronisieren bzw rebuilden müssen, die zum Zeitpunkt des Crashes für Schreibzugriffe geöffnet waren. Bei großen Raidkonfigurationen kann so etwas nicht nur viel CPU- und IO- Belastung erzeugen, sondern auch recht lange dauern, in dieser Zeit ist das System nicht durch Redundante Daten vor Plattenausfällen geschützt, fällt hier die falsche Platte aus, stehen nicht nur Teile des Rechners sondern ich kann mir überlegen aktiviere ich die andere Platte in der Gewissheit das hier eventuell einige Bit falsch sein könnten, oder spiele ich gleich ein Backup ein. Handlingsfehler bei der Administration auf der Konsole sind bei Softwareraid ein nicht zu unterschätzendes Problem, das durchaus auch mal zu Datenverlust führen kann. Finetuning bei der Raidkonfiguration ist durchaus machbar, allerdings benötigt man für optimale bis maximale Ergebnisse einige Erfahrung und genaue Kenntnis des Systems und der genauen Umstände. Schwachpunkt des Softwareraids ist, fällt das System zB wegen eines Defektes plötzlich aus, können eventuell zu diesem Zeitpunkt zu schreibende Daten verloren gehen, bzw. dadurch unvollständiges Schreiben die Konsistens des Raids beeinträchtigt werden, wodurch ein teilweises bzw vollständiges rebuild des Raids notwendig würde. Begünstigend für solchen unerwünschten Datenverlust bei einem Absturz währe ein zusätzlich aktivierter Schreibcache auf den Festplatten.
Hardwareraid
Echtes Hardwareraid kostet immer auch echtes Geld bei der Anschaffung und wird durch einen speziellen eigenen Prozessor gestützt. Es werden private Plattencontroller und Busse benutzt, die für das Betriebssystem nicht zugänglich sind und sich ebenfalls mit auf dem Raidcontroller befinden. Zusätzlich sind meist noch Slots für Speichermodule als RAID-Cache sowie eine Batterie (BBU) zum Stützen der sich in diesem Speicher befindlichen Daten optional möglich. Die volle Leistungsfähigkeit erreicht der Raidcontroller erst dadurch. Der Raidcontroller arbeitet selbstständig und völlig ohne jegliche Unterstützung eines Betriebssytems, es ist ihm also vollkommen egal ob dort ein Dos, Windows, Linux oder Solaris gerade die RAIDs benutzt. Einzig einen Treiber zum Ansprechen des Controllers muss es im Betriebssystem geben, die Unterstützung der gebäuchlichsten Raidcontroller im Linuxkernel ist z.B. recht gut und umfassend.
Raidcontroller gibt es hauptsächlich für SCSI, SATA, oder SAS Platten. Es können vom Controller aus nur die an diesem Controller angeschlossenen Platten verwaltet werden, einige wenige Controller erlauben es auch RAID über mehrere baugleiche Controller zu erstellen. Durch die Nutzung des Cachespeichers in Kombination mit bestimmten Schreiboptionen ist es dem Raidcontroller möglich, eine Bestätigung für das Schreiben der Daten schon dann zu geben, wenn sich die Daten im Cache des Controllers befinden, also noch gar nicht physikalisch auf die Platten geschrieben sind. Ebenso können bestimmte Einstellungen beim Lesen von sequentiellen Dateien durch Nutzung des Caches eine deutliche Durchsatzsteigerung bewirken. Die richtige Nutzung des Caches kann eine Leistungssteigerung von bis zu 50% bewirken. Fällt der Strom aus und es befinden sich noch ungeschriebene Daten in diesem Cache, sorgt die Batterie dafür, dass diese für einige Stunden meist Tage nicht verloren gehen. Wird der Rechner eingeschaltet und der Controller aktiviert, werden diese Daten dann geschrieben. Es gehen dadurch auch beim Systemcrash u.Ä. keine Daten verloren und es werden dadurch auch die RAIDs nicht inkonsistent. Der Leistungsumfang und die Möglichkeiten sind in den einzelnen Controllern recht unterschiedlich und spiegeln sich nicht zuletzt auch im Preis wieder, gemeinsam ist ihnen jedoch begrenzte Konfigurationsmöglichkeiten und die Möglichkeit der Aktivierung und Deaktivierung sehr spezieller Funktionen.die zum Teil auch radikale Auswirkungen beim Datendurchsatz haben können. Fehlkonfiguration ist jedoch kaum möglich, solange man nur an den Feldern herumspielt, von denen man sich der Bedeutung bewusst ist. Der Controller sorgt nicht nur selbst für die optimalen Bedingungen und bedient und überwacht das RAID, er überwacht auch die Platten auf Unregelmäßigkeiten und Fehler. Inkonsistenzen und Fehler werden vom Controller selbst erkannt und gegebenenfalls auch mit Auskonfigurieren der verursachenden Platte geahndet. Inwieweit diese Fehler dann auch vom Betriebssystem abgegriffen werden können, hängt nicht zuletzt davon ab, ob man spezielle Tools und Managementunterstützung der Hersteller auf seinem Rechner installiert hat oder nicht. Plattentausch ist unproblematisch, das Wiederherstellen des RAID regelt der Controller selbst. Hardwareraid ist also eine sehr leistungsfähige Methode, die alle Vorteile von RAID optimal nutzen kann, außer die mit dem Preis.
Hardware Trends
Derzeit ist neben der weiter oben schon erwähnten Methode einfache Softwareraid basierende Funktionen auf dem Systemboard durch Firmware zu stützen, auch eine verstärkte Aktivität zu verzeichnen, preiswertes richtiges Hardwareraid mit auf die Mainboards zu setzen.
Dazu zählen einerseits vollwertige Raidcontroller-Chips inclusive Slot für Speichercache und BBU. So ein Board mit Vorbereitung für echtes Hardwareraid ist in der Anschaffung erst einmal vergleichsweise günstig, jedoch nicht immer auch so schon wirklich nutzbar. Es ist möglich, dass dieser Raidcontroller auf dem Systemboard erst durch einen separat zu kaufenden "Dongle" freigeschaltet wird. Der Dongle könnte aussehen wie eine etwas zu groß geratene BIOS-Batterie, und auch genauso einzubauen sein. In ihm befindet sich der Lizenzkey sowie die Konfigurationsdaten für das RAID. Auch der Speicher und die BBU (Cachebatterie) die für die volle Leistung des RAIDs notwendig wären, müssten optional erworben werden.
Eine andere Masche ist der sogenannte "Zero-Channel RAID Controller". Dabei handelt es sich um einen vollwertigen Raidcontroller, der allerdings keinen eigenen Plattencontroller beherbergt. Statt dessen kann er aber die Plattencontroller auf dem Mainboard nutzen. Dieser Controller muss meist auf einen festgelegten PCI-Steckplatz betrieben werden. Einzige Einschränkung, die Daten müssen dabei zwei mal durch den PCI-Bus, Ein mal auf dem Weg zum Controller und dann von dort aus wieder zurück zu den Plattencontrollern.
weitere Links
- RAID Wikipedia
- RAID Grundlagen
- Praxis-Know-how: RAID-Controller optimal konfigurieren
- www.raid-controller.info
- Festplatten-Kapazität erweitern (mdadm + LVM + LUKS)