# InfiniBand

InfiniBand ist eine Spezifikation einer Hardwareschnittstelle zur seriellen Hochgeschwindigkeitsübertragung auf kurzen Distanzen mit geringer Latenz. Sie wird bevorzugt in Rechenzentren verwendet, beispielsweise für die Verbindungen der Server in Computerclustern untereinander und zur Verbindung zwischen Servern und benachbarten Massenspeichersystemen wie Storage Area Networks (SAN).
Die Schnittstelle ist das Resultat der Vereinigung zweier konkurrierender Systeme: Future I/O von Compaq, IBM und Hewlett-Packard und Next Generation I/O (ngio), welches von Intel, Microsoft und Sun Microsystems entwickelt wurde. Kurze Zeit, bevor der neue Name gewählt wurde, war InfiniBand bekannt als System I/O. Mit Stand 2016 werden von den Firmen Mellanox und Intel Host-Bus-Adapter für InfiniBand angeboten. Diese Hardwareschnittstellen werden unter anderem von Betriebssystemen wie Solaris, verschiedenen Linux-Distributionen wie Debian oder Red Hat Enterprise Linux, HP-UX, FreeBSD und VMware vSphere unterstützt.

## Aufbau

InfiniBand benutzt bidirektionale Punkt-zu-Punkt-Verbindungen zur latenzarmen Datenübertragung mit Verzögerungszeiten unter 2 µs und erreicht theoretische Datenübertragungsraten pro Kanal zwischen 2,5 Gbit/s (SDR) und 50 Gbit/s (HDR) in beide Richtungen. Bei InfiniBand können mehrere Kanäle zur Skalierung in einem Kabel transparent gebündelt werden. Üblich sind vier Kanäle, für Verbindung mit höheren Anforderungen an den Durchsatz wie bei Switched Fabric sind auch Kanalbündelungen von beispielsweise zwölf Kanälen und mehr üblich.
Normalerweise wird InfiniBand über Kupferkabel übertragen, wie sie auch für 10-Gigabit-Ethernet verwendet werden. Damit sind Übertragungsstrecken bis zu 15 m möglich. Müssen längere Strecken überbrückt werden, kann auf faseroptische Medienkonverter zurückgegriffen werden, welche die InfiniBand-Kanäle auf einzelne Faserpaare umsetzen. Hierbei kommen optische Flachbandkabel mit MPO-Steckern zum Einsatz.

## Einsatzbereiche

Die Einsatzgebiete von InfiniBand reichen von Bussystemen bis zu Netzwerkverbindungen. Ähnlich wie HyperTransport konnte es sich allerdings nur schwer als Bussystem durchsetzen und wird daher zurzeit meist nur als Cluster-Verbindungstechnik benutzt. Eine Ausnahme sind hier IBM-Mainframe-Systeme System z ab der Modellreihe z10, welche zum Beispiel über 24 InfiniBand-Host-Bus-Kanäle mit jeweils 6 GB/s verfügen. Der große Vorteil von InfiniBand gegenüber gebräuchlichen Techniken wie TCP/IP-Ethernet liegt dabei in der Minimierung der Latenzzeit durch Auslagern des Protokollstacks in die Netzwerk-Hardware.
Verschiedene Rechenknoten werden dabei durch InfiniBand-Kabel und spezielle Switches verbunden; als Netzwerkkarten kommen sogenannte HCAs (Host Channel Adapter) zum Einsatz. Es stehen unterschiedliche Verbindungsmodi zur Verfügung, unter anderem RDMA Write/RDMA Read sowie einfache Send-/Receive-Operationen.
Um zeitaufwendige Wechsel zwischen Betriebssystem- und Benutzerkontext zu vermeiden, wie dies beispielsweise bei Sockets der Fall ist, werden zunächst die für die Benutzung vorgesehenen Speicherbereiche bei der Karte registriert. Dies ermöglicht der Karte, die Übersetzung von virtuellen Adressen in physische Adressen selbst vorzunehmen. Beim Senden von Daten wird durch die Zuordnung („mapping“) verschiedener Kontrollregister des HCAs in den Speicher des Prozesses (Doorbell-Mechanismus) die Sendeoperation ohne Umweg über den Betriebssystemkern vorgenommen – der HCA holt sich die Daten aus dem Hauptspeicher durch Ansteuerung des DMA-Controllers. Das (wahlweise verlässliche oder nicht verlässliche) Versenden der so auf dem HCA vorhandenen Daten wird durch den Protokollstack der Karte übernommen. Die Karte verwaltet hierzu eine Übersetzungstabelle, auf die mit dem Benutzer beim Registrieren eines Speicherbereiches zurückgegebenen Indizes zugegriffen wird.
Um die Latenzzeiten weiterhin zu minimieren, stellt InfiniBand zwei Verbindungsmodi zur Verfügung, die Daten in den Hauptspeicher eines anderen Knotens übertragen oder von dort lesen, ohne das Betriebssystem oder den Prozess auf der Gegenseite zu involvieren. Diese beiden Operationen werden als RDMA Write/RDMA Read (Remote DMA) bezeichnet. Zudem stellt InfiniBand zwei Modi für die Realisierung von Sperrmechanismen zur Verfügung: Atomic Compare&Swap sowie Atomic Fetch&Add. Mit diesen können beispielsweise Semaphore implementiert werden; sie finden unter anderem in verteilten Datenbanken Anwendung.
Im Börsenhandel werden zumeist mittels InfiniBand die Börsencomputer untereinander verbunden, deren Anbindung an die Rechner der Händler (Hochfrequenzhändler) in Co-Location, erfolgt mittels LWL (vorzugsweise Multimode-GF als AON).