Vor einiger Zeit hatte ich mir mal zwei Infiniband Karten und ein Kabel bei ebay geholt (gab es gerade günstig). Nachdem ich es dann kurz ausprobiert hatte, ist dann alles wieder schnell in einer Kiste verschwunden.

Da ich mich jetzt für FreeBSD interessiere (ich hatte das nur mit Ubuntu ausprobiert) und ich auch tatsächlich mal einen Anwendungsfall für eine hochperformante Verbindung hätte, hab ich beschlossen mir das ganze nochmal anzusehen.

Das Testsetup

Unter FreeBSD 10.2 muss man erstmal den Kernel mit den entsprechenden Treibern neu bauen.

Das funktioniert so:

# cd /usr/src/sys/amd64/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL

Jetzt fügen wir folgendes ans Ende der MYKERNEL config an:

options        OFED            # Infiniband protocol stack and support
options        SDP             # Sockets Direct Protocol for infiniband
options        IPOIB_CM        # Use connect mode ipoib
device         ipoib           # IP over IB devices
device         mlx4ib          # ConnectX Infiniband support
device         mlxen           # ConnectX Ethernet support
device         mthca           # Infinihost cards

Nun noch den Kernel bauen und installieren mit:

# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL

Danach rebooten und die zwei Ports der Karten erscheinen unter ifconfig als ib0 und ib1.

So hier hören meine ersten Erkenntnisse dann auch schon auf. Ich habe noch versucht ib0 und ib1 IPs zuzuweisen, was auch funktioniert hat und die Gegenseite anzupingen, was dann nicht mehr funktioniert hat.

Falls mal kein interessanter 32c3 Talk läuft, werde ich mir der Sache nochmal annehmen.

Achja die Hardware könnte für manche noch interessant sein. Ich verwende zwei Voltaire HCA 400Ex Karten. Die haben jeweils zwei Ports, die jeweils 10Gbit/s können. Die Karten sind wie oben zu sehen direkt verbunden (nur ein Port, ich hab nur ein Kabel).

Hier noch ein Bild der Karte:

Voltaire HCA 400Ex