Infiniband auf FreeBSD - Teil 1
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.
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: