Der Wendepunkt des Software-RAID

Im Juni 2001 geschah in der IT-Welt etwas Bemerkenswertes: Intel brachte den auf Tualatin basierenden Pentium IIIS mit 1,0 GHz auf den Markt. Dies war einer der ersten Intel-Prozessoren (IA32-Architektur), der die Taktgrenze von 1 GHz durchbrach, und der erste von wirklicher Bedeutung. Besonders war er auch deshalb, weil er Mehrprozessorbetrieb unterstützte und einen doppelt so großen Cache besaß wie seine auf Coppermine basierenden Vorgänger oder sein nicht mit “S” bezeichneter Tualatin-Nachfolger (der nur einen Monat später folgte). Die PIIIS-Systemplatinen waren in ihrer Ära ungemein beliebt und bildeten das Rückgrat leistungsstarker Standardserver wie Proliant und PowerEdge – im Jahr 2001 und in den darauffolgenden Jahren, was in den Dualprozessorsystemen mit Pentium IIIS 1,4 GHz gipfelte, die so bedeutsam waren, dass sie den Anstoß zur heute berühmten “G”-Namenskonvention der HP Proliant gaben. Die Pentium-III-Maschinen waren die “G1”.
Was hat all dies mit RAID zu tun? Nun, wir müssen einen Schritt zurücktreten und betrachten, wo RAID bis zum Mai 2001 stand. Von den 1990er-Jahren bis zum Mai 2001 war Hardware-RAID der Standard in der IA32-Serverwelt, zu der hauptsächlich Systeme wie Novell Netware, Windows NT 4, Windows 2000 und teilweise Linux gehörten. Software-RAID gab es für einige dieser Systeme durchaus (nicht für Netware), doch Server rangen stets um CPU- und Speicherressourcen, und diese kostbaren Ressourcen für RAID-Funktionen aufzuwenden war teuer und führte dazu, dass Anwendungen mit dem RAID um Zugriff konkurrierten, sodass die Systeme an diesem Konflikt häufig zu ersticken drohten. Hardware-RAID löste dies, indem es dedizierte CPU und RAM allein für diese Funktionen hinzufügte.
RAID basierte in den späten 1990er- und frühen 2000er-Jahren zudem sehr stark auf RAID 5 und in geringerem Maße auf RAID 6, also auf Parity-Striping, denn Festplatten waren winzig und je Kapazität extrem teuer, sodass das Herauspressen maximaler Kapazität aus den verfügbaren Platten oberste Priorität hatte. Risiken wie URE waren aufgrund der geringen Kapazitäten so unbedeutend, dass Parity-RAID alles in allem sehr zuverlässig war. Die Rahmenbedingungen waren völlig anders als sie es 2009 sein sollten. Im Jahr 2001 war es noch üblich, in Enterprise-Servern Festplatten mit 2,1 GB, 4,3 GB und 9 GB anzutreffen!
Da Parity-RAID an der Tagesordnung war und in jedem Server typischerweise viele Laufwerke verwendet wurden, verursachte RAID im Jahr 2000 im Durchschnitt mehr CPU-Last als im Jahr 2010! Der Einfluss von RAID auf die Systemressourcen war also sehr erheblich.
Und das ist der Hintergrund. Doch im Juni 2001 hatten diejenigen, die zuvor sehr leistungsschwache IA32-Systeme gekauft hatten, plötzlich Zugang zu den Tualatin-Prozessoren des Typs Pentium IIIS mit stark verbesserten Taktraten, effizientem Mehrprozessorbetrieb und doppelt so großen On-Chip-Caches, die buchstäblich über Nacht einen erstaunlichen Sprung in der Systemleistung darstellten. Mit all dieser neuen Leistung und ohne entsprechende Veränderung der Softwareanforderungen verfügten Systeme, die traditionell an CPU und RAM darbten, plötzlich über mehr, als sie zu nutzen wussten – zumal zusätzliche Threads verfügbar waren und die meisten Anwendungen jener Zeit nur einen einzigen Thread nutzten.
Die System-CPUs waren selbst in der Pentium-III-Ära dramatisch leistungsfähiger als die kleinen CPUs auf den Hardware-RAID-Controllern, bei denen es sich oft um Einstiegs-Chips der Typen PowerPC oder MIPS handelte, und der verfügbare Systemspeicher war häufig deutlich größer als die Hardware-RAM-Caches. Die Investition in zusätzlichen Systemspeicher war zudem oft weitaus wirkungsvoller und im Allgemeinen vorteilhafter. Mit der Verfügbarkeit freier Kapazität im Hauptsystem konnten RAID-Funktionen daher im Durchschnitt von den Hardware-RAID-Karten auf das zentrale System verlagert werden und an Leistung gewinnen, selbst wenn man dabei auf die zusätzliche CPU und das RAM der Hardware-RAID-Karten verzichtete. Dies galt nicht für überlastete Systeme, also solche, die unter Ressourcenmangel litten, und war eher für Parity-RAID-Systeme relevant, wobei RAID 6 am meisten profitierte und nicht paritätsbasierte Systeme wie RAID 1 und 0 am wenigsten.
Doch der Juni 2001 war der berühmte Wendepunkt – vor diesem Datum war das durchschnittliche IA32-System mit Hardware-RAID schneller. Und nach Juni 2001 waren neu gekaufte Systeme im Durchschnitt mit Software-RAID schneller. Mit jedem weiteren Jahr verschoben sich die Vorteile mehr und mehr zugunsten des Software-RAID, da die Fülle an ungenutzten Prozessorkernen, ungenutzten Threads und freiem RAM förmlich explodierte, wobei der einzige verbliebene Vorteil zugunsten von Hardware-RAID im Rückgang der Parity-RAID-Nutzung bestand, da Mirror-RAID zum Standard wurde, als die Festplattengrößen dramatisch zunahmen und die Kapazitätskosten fielen.
Heute ist es mehr als fünfzehn Jahre her, dass die Vorstellung, Hardware-RAID sei schneller, ausgedient hat. Der Glaube hält sich vor allem aufgrund des eigentümlichen “Class of 1998”-Effekts. Doch dies ist seit Langem ein Mythos, der von jenen unsachgemäß wiederholt wird, die sich nicht die Zeit nahmen, das ursprüngliche Ausgangsmaterial zu verstehen. Hardware-RAID bietet weiterhin Vorteile, doch Leistung gehört während des überwiegenden Zeitraums, in dem es RAID gibt, nicht dazu, und es ist nicht zu erwarten, dass sie jemals wieder die Oberhand gewinnt.