nikkytok - stock.adobe.com
Parallele I/O in der Datenspeicherung
Parallel I/O gibt es seit den Siebzigern, doch nun könnten moderne Multiprozessorsysteme ihr eine wichtige Rolle in der Speicherlandschaft zuweisen.
Mit der aktuellen Ausgabe der SPC-1-Benchmarks des Storage Performance Councils begann ein neues Zeitalter der Speicherleistung. Man könnte es das der parallelen I/O nennen. Führender Anbieter der neuen Technologie ist DataCore Software.
SPC-1 misst die Ein-/Ausgabevorgänge pro Sekunde (IOPS), die ein Speichersystem unter einer vordefinierenden Unternehmens-Workload schafft. Sie enthält zufällige Ein-/Ausgabeanfragen und Aktualisierungen wie sie in der Online-Transaktionsverarbeitung (OLTP), Datenbank- und Mailserver-Anwendungen häufig vorkommen. Es entspricht dem Benchmark des Transaction Processing Performance Council in der Datenbankwelt. In der Realität misst SPC-1 die Ein-/Ausgabevorgänge, die die Speicherinfrastruktur abwickeln kann und den Preis Pro Ein-/Ausgabevorgang, indem diese Menge auf den Preis des evaluierten Produkts bezogen wird.
Bevor die parallele Ein-/Ausgabetechnologie (wieder) auftauchte, waren die beiden SPC-1-Metriken im Allgemeinen proportional zueinander: IOPS ließen sich beschleunigen, meist mittels teurer und proprietärer Hardwareerweiterungen, die dann wiederum die Kosten pro Ein-/Ausgabevorgang senkten. Mit paralleler I/O von DataCore Software sind die Kosten pro Ein-/Ausgabevorgang umgekehrt proportional zu den Kosten des Geräts. Das Ergebnis ist eine stetige Verbesserung der Ein-/Ausgabeleistung bei stetig sinkendem Preis.
Die Ursprünge der parallelen Ein-/Ausgabeverarbeitung
Der Begriff parallele Ein-/Ausgabe klingt für einige vielleicht nach einer neuen, exotischen Technologie, aber im Grunde handelt es sich um ein einfaches Konzept, das auf wohlbekannten Technologien aufbaut, die allerdings in den letzten drei Jahrzehnten selten außerhalb kleiner Kreise von Hochleistungsrechnerspezialisten diskutiert wurden.
Parallele I/O ist ein Teilthema der Parallelverarbeitung, ein Gebiet der Computerwissenschaften und –entwicklung, das von den späten Siebzigern bis zu den frühen Neunzigern des zwanzigsten Jahrhunderts aktuell war. Damals arbeiteten Computerwissenschaftler und Ingenieure an Algorithmen, Verbindungstechnologien und Hauptplatinendesigns, mit denen sie mehrere zentrale Prozessorchips mit niedriger Leistung parallel implementieren und betreiben könnten, um den Anforderungen der neuen Hochleistungsalgorithmen für die Transaktionsverarbeitung entgegen zu kommen. Diese Entwicklungsanstrengungen hatten es schwer, weil Intel und andere eine andere Mikroprozessorarchitektur zum Erfolg führten. Sie hatte nur einen einzigen Prozessorchip (Unicore) und einem seriellen Bus, um die Speicherzugriffe der Anwendungen zu verarbeiten und Ein-/Ausgabevorgänge an das Speichersystem zu liefern.
Das prozessorbasierende Unicore-System – die Grundlage der PC-Revolution, der meisten Client-/Server-Systeme und des größten Teils des verteilten Servercomputing – dominierte die Computertechnik der Unternehmen für beinahe 30 Jahre. Übereinstimmend mit Moore`s Law verdoppelten sich die Transistoren pro Chip alle zwei Jahre, gemäß House's Hypothese verdoppelte sich die Taktrate ungefähr im selben Rhythmus.
Im Licht dieser Fortschritte schien die weitere Entwicklung der Parallelverarbeitung schlicht überflüssig. PCs und Server mit Unicore-CPUs entwickelten sich zu schnell, als dass die Entwickler des parallelen Computing hätten Schritt halten können. Bis eine komplexere, schwer zu bauende schnellere Multichipmaschine für die Parallelverarbeitung definiert war, wurde deren Leistung schon wieder durch schnellere Ein-Prozessor-Systeme mit seriellem Bus in den Schatten gestellt. Sogar als die Applikationen Ein-/Ausgabe-intensiver wurden, schafften es Unicore-Systeme, sich diesen Anforderungen mit durchgreifenden Verbesserungen bei Kapazität und Leistung der Chips anzupassen.
Und dann endete diese Phase. Am Anfang des neuen Jahrtausends funktionierte House's Hypothese plötzlich nicht mehr. Der Anstieg der Taktfrequenzen war nun nicht mehr proportional zur Steigerung der Zahl der Transistoren pro integriertem Schaltkreis. Aus diversen technischen Gründen, vor allem wegen Stromverbrauch und der erzeugten Abwärme, blieben die Chipgeschwindigkeiten nun gleich. Statt schnellere Unicore-Chips herzustellen, begannen die Entwickler auf Multicore-Chips zu setzen und so weiter Gewinn aus der fortwährenden Verdopplung der Schaltkreisdichte, die Moore vorhergesagt hatte, zu ziehen.
Heute sind Multicore-Chips Standard in Servern, PCs, Laptops, sogar Tablets und Smartphones. Obwohl es einige Beobachter noch nicht bemerkt haben, ähnelt Multicore Multichip unter architektonischem Blickwinkel, was die Chance bietet, durch Parallelverarbeitung einschließlich paralleler I/O die Anwendungsleistung zu verbessern.
Parallele Ein-/Ausgabe verbessert die Leistung
Die meisten Anwendungen sind nicht dafür geschrieben, von Parallelverarbeitung zu profitieren. Sogar die fortschrittlichste Hypervisor-basierende Software, die vielleicht unterschiedliche Rechenkerne nutzt, um spezifische virtuelle Maschinen (VMs) zu hosten, verwendet noch immer jeden logischen Kern als VM und verarbeitet die dort laufenden Applikationen sequentiell. Unterhalb dieser Schicht der Anwendungsverarbeitung jedoch kann die Parallelität genutzt werden, um die Gesamtleistung zu verbessern. Hier kommt die parallele Ein-/Ausgabe ins Spiel.
DataCore hat einige ältere Parallel-I/O-Algorithmen wiederbelebt, an denen Chefwissenschaftler und Mitgründer Ziya Aral zu den Hochzeiten des Multiprocessing gearbeitet hatte, und hat sie auf den logischen Kernen eines Multicore-Chips implementiert. Jeder physische Kern eines Multicore-Prozessors unterstützt die parallele Ausführung mehrerer Verarbeitungsschritte, um die Ausnutzung der Chip-Ressourcen durch Betriebssystem und Hypervisoren zu verbessern. Die Kombination physischer Rechenkerne mit Multithreading bewirkt, dass das System zwei oder mehr logische Kerne pro physischen Kern bereitstellt.
Mit so vielen logischen Prozessoren bleiben viele der Rechenkerne ungenutzt. DataCores Technologie verwendet einige der bislang ungenutzten Kerne für eine Parallelverarbeitungsmaschine, die explizit dazu dient, die Ein-/Ausgabeanfragen abzuarbeiten, die von allen Applikationen auf dem System stammen. Diese Maschine verarbeitet die Ein-/Ausgabeanforderungen vieler Applikationen gleichzeitig, also nicht sequentiell, weshalb sie sehr viel schneller abgewickelt werden. Das bezeichnet man als parallele I/O und das ist genau, was DataCore nun beim Storage Performance Council SPCI-1-Benchmark gezeigt hat.
Für sich genommen erscheint parallele I/O nicht viel mehr zu sein als eine interessante Nuance beim Design des Datenspeicherungs-Stacks. Aber ihre praktischen Implikationen sind bedeutend.
- Massiv wachsender Ein-/Ausgabedurchsatz bei Speichern. Wie der SPC-1-benchmark von Datacore gezeigt hat, produzierte diese einfache Softwareerweiterung eines handelsgängigen Systems 459.000 IOPS. Das System bestand aus einem normalen Lenovo-Server und einigen Standard-Disks und Flash-Festplatten. Es kostete mit Hard- und Software ungefähr 38.400 Dollar. Das Ergebnis war ein System, das zu den günstigsten Hochleistungsspeicherangeboten weltweit gehören würde. Der Preis: weniger als acht Cents pro SPC-1-IOPS. Es gibt ohnehin nur sehr wenige Hardwarespeicherplattformen mit besseren SPC1-Leistungen, aber sie sind weit teurer in Dollars pro IOPS.
- DataCore nutzte SPC-1 als hyperkonvergentes System und erreichte die schnellsten jemals gemessenen Antwortzeiten. Die berichtete Verzögerung war die niedrigste, die jemals beim SPC-1-Benchmark gemessen wurde. Sie war drei- bis hundertmal kürzer als alle anderen vorher veröffentlichten Ergebnisse. Wo andere den Benchmark auf separaten Systemen laufen und die I/O-Lasten durch ihre Speichersysteme abwickeln ließen, verarbeitete bei DataCore die Anwendung auf demselben Serversystem, auf dem auch die Ein-/Ausgabeanforderungen abgearbeitet wurden. Die Speichersysteme waren also direkt angebunden. Die Ergebnisse im hyperkonvergenten Modus beeinflussten auch die Kosten der Erzeugung der Workload. Die Anwendungen liefen auf derselben Plattform, die die schnellste jemals gemessene Antwortzeit hatte. Das macht die Ergebnisse noch eindrucksvoller.
- Schnellere Antwortzeiten der Speicher und mehr Durchsatz führen normalerweise zu mehr Applikationsleistung, einem Vorteil der üblichen virtualisierten Serverumgebungen. Hypervisor-basierendes Server-Computing setzt die traditionelle Computerarchitektur, die aus Uniprozessoren mit seriellen Bussen besteht, unter starken Druck. Denn ganze virtuelle Maschinen – Anwendungen und Betriebssysteme, die als VMs gekapselt sind – stehen im Wettbewerb um den physischen Prozessor und den Bus. Parallele I/O kann die Leistung der VM-I/O erheblich verbessern, so dass der gemeinsam genutzte serielle Bus nicht mehr als Engpass wirkt. Das bedeutet, dass die DataCore-Technologie die VM-Workloadverarbeitung beschleunigt und gleichzeitig mehr VMs auf einem physischen Hypervisor-Host ermöglicht.
Folgen Sie SearchStorage.de auch auf Twitter, Google+ und Facebook!