Remote Storage I/O - RSIO

Mit Remote Storage I/O (RSIO), stellt OSL ein eigenentwickeltes Storage Protokoll vor, welches ressourcensparend weitere Server mit Storage-Volumes (über Netzwerkkomponenten, z. B. Ethernet) versorgen kann. Der OSL RSIO Server und der OSL RSIO Client sind die Softwarekomponenten, die Block-I/O über Netzwerkschnittstellen bereitstellen. Zudem sind sie in der Lage eine OSL Storage Cluster Installation an über Netzwerk angeschlossene Server zu erweitern.

RSIO - Übersicht

RSIO ist ein von OSL entwickeltes Protokoll, das Block-I/O-Schnittstellen in einer Client-Server-Architektur über Netzwerk bereitstellt. So ist es möglich, sehr einfach und schnell, Speichernetzwerke über Netzwerkkomponenten, z. B. Ethernet, aufzubauen. Zum Einsatz kommt das so genannte Namespace-Konzept. Innerhalb eines Namespaces haben alle Clients und Server Zugriff auf einen gemeinsam genutzten Speicherpool. Dabei kann jeder Client und Server auch mehrere Namespaces nutzen bzw. bedienen. Mit dem Namespace-Konzept können geteilte Speicherinfrastrukturen aufgebaut werden, wie sie beim Betrieb von HV-Clustern, verteilten Datenbanken und virtuellen Maschinen benötigt werden. Zudem ist es mit RSIO möglich ein Gerät über mehrere Pfade oder Server im selben Namespace zu beziehen, ohne dass dies in der Gerätedarstellung auf dem Client erkennbar wird. Multipathing und Multiplexing sind integraler Bestandteil des Protokolls. Es wird keine weitere Software für diese Funktionen benötigt. Das RSIO-Protokoll reduziert den Overhead bei der Übertragung von Block-I/O Requests, da eine aufwendige Umwandlung in ein neutrales Low-Level-Protokoll entfällt. RSIO überträgt die reinen I/O-Requests des Betriebssystems (read, write, ioctl) vom Client zum Server.

RSIO Server

Die RSIO-Server-Implementierung nutzt TCP/IP und ist daher für beliebige Netzwerkschnittstellen verfügbar. Da der Server eng mit der Speichervirtualisierung des OSL Base Package verknüpft ist, können vollständig virtualisierte Volumes an über Netzwerk angebundene Clients bereitgestellt werden. Der Betrieb von mehreren RSIO Servern innerhalb eines Clusters ist problemlos möglich. Die OSL-Implementierung setzt zugleich die Fähigkeiten des RSIO-Protokolls zu Multipathing und Link-Aggregation (Trunking) implizit und unabhängig von anderen Treibern und Mechanismen um, was eine problemlose Nutzung mit verschiedensten Netzwerkkarten, Systemen, Switches etc. garantiert. Ergebnis einer besonders ausgeklügelten Technologie zur Minimierung der Latenz- und Transportzeiten sind die hervorragende Performance und Skalierungseigenschaft des Servers. Messungen mit aktuellen Gigabit-Netzwerkinterfaces zeigten eine nahezu lineare Skalierung des Durchsatzes mit weit über 100 MByte je Sekunde und Interface.

RSIO Client

Mit dem RSIO Client ist der Zugriff auf Block-I/O-Devices, welche über RSIO-Server zur Verfügung gestellt werden, ungewöhnlich einfach und komfortabel. Der Zugriff auf Shared Storage und Volumes wird in Namensräume, so genannten Namespaces, unterteilt. Server in einem Namespace können Zugriff auf denselben Shared Storage und die gleichen Volumes haben. Somit kann ein RSIO Client gleichzeitig mehrere Verbindungen zu Servern innerhalb eines Namespaces aufbauen und so die Verfügbarkeit von Devices erhöhen sowie die Last auf die einzelnen Server verteilen. Der Shared Storage, der innerhalb eines Namespaces allen RSIO Clients zur Verfügung steht, kann von diesen gleichzeitig genutzt werden. Dies vereinfacht den Aufbau von verteilten Datenbanken, Hochverfügbarkeitsclustern und VM-Infrastrukturen. Ein RSIO Client kann mehrere Namensräume gleichzeitig nutzen und auf die Devices der dort vorhandenen Storage-Server zugreifen. Dadurch wird das typische 1:n Verhältnis zwischen Storage Server und Storage Client umgekehrt. Eine solche Storage-Serverfarm erlaubt dem RSIO Client einen besonders hohen I/O-Durchsatz und extreme Skalierungen bei der Speicherkapazität.