Inhaltsverzeichnis
InfiniBand
Das Equipment wurde 2022 beim Umzug nach U300 verschrottet. Dieser Artikel dient rein archivarischen Zwecken
InfiniBand (IB) ist eine Schnittstelle zur seriellen Datenübertragung, die auf hohe Geschwindigkeit, niedrige Latenz und kurze Verbindungswege ausgerichtet ist. Siehe hierzu die deutsche und englische Seite der Wikipedia sowie https://furneaux.ca/wiki/Infiniband und https://wiki.archlinux.org/index.php/InfiniBand
Aktuell (2020) gibt es 7 Generationen von InfiniBand, die sich in Geschwindigkeit und Kodierung unterscheiden, aber grundsätzlich abwärtskompatibel sind:
Generation | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|---|
Einführung | 2001/2003 | 2005 | 2007 | 2011 | 2011 | 2014 | 2017 | |
Abkürzung | SDR | DDR | QDR | FDR10 | FDR | EDR | HDR | |
Signalisierungsrate (Gbaud/s) | 2.5 | 5 | 10 | 10.3125 | 14.0625 | 25.78125 | 50 | |
effektiver Durchsatz (Gb/s) pro Link | 2 | 4 | 8 | 10 | 13.64 | 25 | 50 | |
effektiver Durchsatz (Gb/s) mit 4 Links | 8 | 16 | 32 | 40 | 54.54 | 100 | 200 |
In der Praxis verwendet man nur Verbindungen mit einem Vielfachen von 4 Links. Es gibt verschiedene Steckverbinder, bei älteren Generationen CX4 alias SFF-8470, bei neueren QSFP(+) alias SFF-8436.
InfiniBand ist auf Hardwareebene immer eine Punkt-zu-Punkt-Verbindung. Der Server hat einen sogenannten Host Channel Adapter (HCA), andere Geräte (z.B. Switches) einen Target Channel Adapter (TCA). Mehr als zwei Hosts können verbunden werden, indem man einen InfiniBand-Switch verwendet oder die HCAs, die meist zwei Ports besitzen, als Daisy Chain von Host zu Host verbindet, dann muss auf diesen jedoch Routing aktiviert sein.
Das Infiniband-Protokoll unterstützt unter anderem RDMA (Remote Direct Memory Access) für schnelle, nicht rechenintensive Datenverbindungen und die Kapselung anderer Protokolle wie IP (IP over Infiniband, IPoIB), FibreChannel (FCoIB) oder iSCSI (iSER), siehe hierzu auch das Linux-iSCSI-Wiki , außerdem unterstützt z.B. NFS RDMA direkt, d.h., man kann bei einer Infiniband-Verbindung den TCP/IP-Overhead sparen.
Im shack geistern einige Infiniband-Karten „Mellanox Technologies MT25208 InfiniHost III Ex (Tavor compatibility mode) (rev a0)“ herum, sie untersützen nur SDR, haben zwei x4 Ports mit CX4-Anschlüssen und PCIe 1.0 oder in einem Fall PCI-X. Des weiteren haben wir einen 24 CX4-Port Infiniband-Switch von Topspin mit Cisco-TCAs. Außerdem hat das BladeCenter einen InfiniBand-Switch eingebaut, an dem jeweils die Blades hängen und außen zwei 4x CX4 und zwei 12x CX4 Ports vorhanden sind. Außerdem haben wir diverse 4x CX4 ↔ 4x CX4 Kabel und zwei 12x CX4 ↔ jew. drei 4x CX4 Kabel. Die Stecker dieser Kabel haben in der Buchse einrastende Klipse auf jeder Seite, um einen zu entfernen, muss man mit der einen Hand den Stecker festhalten und leicht weg von der Buchse ziehen, mit der anderen die Lasche hinten am Stecker ziehen, auf jeden Fall mit Gefühl und Geduld vorgehen.
Da wir diese Technik eh rumliegen haben und schon diese älteste Generation im Prinzip wie 10G-Ethernet ist (It's free real estate!), soll erprobt werden, diese Infrastruktur zur schnellen und flexiblen Anbindung von Storage an die VM-Hosts ibuprofen und phenylbutazon oder die filebitch zu realisieren.
Infiniband benötigt einen sogenannten Subnet-Manager, der als Dienst auf einem der Hosts läuft und die Verbindungen im Netzwerk scannt und automatisch konfiguriert. Der EInfachkeit halber soll nur ein Subnet-Manager verwendet werden.
Derzeit (12.01.2020) ist folgende Konfiguration vorgesehen:
- Anbindung von phenylbutazon, ibuprofen, sufentanil, propofol mit einem 4x-Link an den Switch
- Nutzung von 10.42.69.0/24 als exklusives Subnetz für IPoIB
- Auf sufentanil wird per NFSv4 das Dateisystem auf dem RAID (f2fs) auf dem Infiniband-Interface freigegeben
- Auf ibuprofen läuft
opensm
als Subnet-Manager - Dieses binden die anderen zum testen als /media/inf ein
Belegung InfiniBand-Switch (Ansicht von hinten)
HCA | Bladecenter Slot 3 Port 16 | Bladecenter Slot 3 Port 17 | Bladecenter Slot 3 Port 18 | Bladecenter Slot 4 Port 16 | Bladecenter Slot 4 Port 17 | Bladecenter Slot 4 Port 18 | filebitch Port 1 | propofol Port 1 | ibuprofen Port 1 | buprenorphin Port 1 | sufentanil Port 1 | phenylbutazon Port 1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Port | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
Port | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
HCA |
Weitere Ideen:
- BeeGFS (kann auch InfiniBand-RDMA benutzen) als Cluster-Dateisystem testen mit sufentanil als Host
- Das BladeCenter zum Spaß mit anbinden und darauf auf einem oder mehreren Blades ein halbwegs aktuelles Linux installieren
Einrichtung unter Debian 8/9
siehe hierzu das Debian-Wiki und https://www.triebwerk23.de/joomla/index.php/netzwerk/infiniband/infiniband-unter-debian
Als root oder jew. mit sudo:
stretch-backports
zu/etc/apt/sources.list
hinzufügenapt-get update &&
apt-get -t stretch-backports install rdma-core \
libibverbs1 librdmacm1 libibmad5 libibumad3 \
librdmacm1 ibverbs-providers rdmacm-utils \
infiniband-diags libfabric1 ibverbs-utils- Auf dem Host, der den Subnet-Manager ausführen soll außerdem:
apt-get -t stretch-backports install opensm
Außerdem müssen folgende Module vorhanden und der /etc/modules
hinzugefügt werden:
#InfiniBand foo rdma_ucm ib_uverbs ib_iser rdma_cm ib_umad ib_ipoib ib_cm ib_core ib_srp ib_sdp #Driver for our Mellanox IB card ib_mthca mlx4_ib #for new QDR cards #NFS with IB rdma svcrdma xprtrdma
Test
Sind die Pakete installiert und die Module geladen, kann man die Funktion überprüfen.
(Alle Beispiele auf ibuprofen)
ibstat
zur Information über den HCA:
CA 'mthca0' CA type: MT25208 (MT23108 compat mode) Number of ports: 2 Firmware version: 4.5.0 Hardware version: a0 Node GUID: 0x0005ad0000034910 System image GUID: 0x0005ad0000034913 Port 1: State: Active Physical state: LinkUp Rate: 10 Base lid: 4 LMC: 0 SM lid: 1 Capability mask: 0x00510a68 Port GUID: 0x0005ad0000034911 Link layer: InfiniBand Port 2: State: Down Physical state: Polling Rate: 10 Base lid: 3 LMC: 0 SM lid: 1 Capability mask: 0x00510a68 Port GUID: 0x0005ad0000034912 Link layer: InfiniBand
ibnodes
zur Auflistung der Nodes im Netzwerk:
Ca : 0x0005ad000003776c ports 2 "sufentanil mthca0" Ca : 0x0005ad0000034910 ports 2 "ibuprofen mthca0" Switch : 0x0005ad0000023ea6 ports 24 "Cisco Switch" enhanced port 0 lid 2 lmc 0
iblinkinfo
zur Anzeige der physischen Verbindungen:
CA: sufentanil mthca0: 0x0005ad000003776d 1 1[ ] ==( 4X 2.5 Gbps Active/ LinkUp)==> 2 11[ ] "Cisco Switch" ( ) Switch: 0x0005ad0000023ea6 Cisco Switch: 2 1[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 2[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 3[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 4[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 5[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 6[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 7[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 8[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 9[ ] ==( 4X 2.5 Gbps Active/ LinkUp)==> 4 1[ ] "ibuprofen mthca0" ( ) 2 10[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 11[ ] ==( 4X 2.5 Gbps Active/ LinkUp)==> 1 1[ ] "sufentanil mthca0" ( ) 2 12[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 13[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 14[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 15[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 16[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 17[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 18[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 19[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 20[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 21[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 22[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 23[ ] ==( Down/ Polling)==> [ ] "" ( ) 2 24[ ] ==( Down/ Polling)==> [ ] "" ( ) CA: ibuprofen mthca0: 0x0005ad0000034911 4 1[ ] ==( 4X 2.5 Gbps Active/ LinkUp)==> 2 9[ ] "Cisco Switch" ( )
Zum Test einer Verbindung bringt man auf dem Ziel-HCA mit ibstat
die gewünschte GUID des verbundenen Ports in Erfahrung, in diesem Fall auf sufentanil Port 1
ibstat mthca0 1 | grep GUID | awk '{print $NF}
':
0x0005ad000003776d
Nun kann startet man den Infiniband-Ping-Server mit ibping -S
und führt auf dem anderen HCA den ping aus:
ibping -c 4 -G 0x0005ad000003776d
Pong from sufentanil.(none) (Lid 1): time 0.302 ms Pong from sufentanil.(none) (Lid 1): time 0.374 ms Pong from sufentanil.(none) (Lid 1): time 0.379 ms Pong from sufentanil.(none) (Lid 1): time 0.849 ms --- sufentanil.(none) (Lid 1) ibping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 4002 ms rtt min/avg/max = 0.302/0.476/0.849 ms
Einrichtung IPoIB
siehe hierzu auch https://furneaux.ca/wiki/IPoIB
Das IPv4-Subnetz lautet 10.42.69.0/24, die IPs werden fest nach Portnummer am zentralen Topsin-IB-Switch vergeben, da die Blades im Bladecenter nicht direkt, sondern über einen eigenen Switch mit mehreren Links mit dem zentralen Switch verbunden sind, werden ihre IPs 10.42.69.32+Nummer des Blade-Slots vergeben.
Für jeden Port eines HCAs taucht unter Linux ein neues Netzwerkinterface mit dem Namen ib*
(Debian ⇐9) oder ibs*<d*>
(Debian >=10) auf diesem auf, Beispiel (noch unkonfiguriert) ibuprofen:
ip link | grep ib
37: ib0: <BROADCAST,MULTICAST> mtu 2044 qdisc noop state DOWN mode DEFAULT group default qlen 256 link/infiniband 80:00:00:84:fe:80:00:00:00:00:00:00:00:05:ad:00:00:03:49:11 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff 38: ib1: <BROADCAST,MULTICAST> mtu 2044 qdisc noop state DOWN mode DEFAULT group default qlen 256 link/infiniband 80:00:00:85:fe:80:00:00:00:00:00:00:00:05:ad:00:00:03:49:12 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
Nun muss folgendes zur /etc/network/interfaces
hinzugefügt werden:
auto ib0 iface ib0 inet static address 10.42.69.9 netmask 255.255.255.0 broadcast 10.42.69.255 post-up echo connected > /sys/class/net/ib0/mode post-up /sbin/ip link set dev $IFACE mtu 65520 post-up /sbin/ip link set dev $IFACE txqueuelen 10000
Nun wird der Port mit ifup ib0
aktiviert und man kann sofort andere Hosts pingen:
ping -c 4 10.42.69.11
PING 10.42.69.11 (10.42.69.11) 56(84) bytes of data. 64 bytes from 10.42.69.11: icmp_seq=1 ttl=64 time=0.244 ms 64 bytes from 10.42.69.11: icmp_seq=2 ttl=64 time=0.553 ms 64 bytes from 10.42.69.11: icmp_seq=3 ttl=64 time=0.319 ms 64 bytes from 10.42.69.11: icmp_seq=4 ttl=64 time=0.331 ms --- 10.42.69.11 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3067ms rtt min/avg/max/mdev = 0.244/0.361/0.553/0.117 ms
Achtung! ibping
pingt auf Ebene des InfiniBand-Protkolls, ping
auf der darin gekapselten IP-Ebene.
Nun kann man noch testen, ob die Hosts sich unter Nutzung der libibverbs
erreichen können, dafür startet man auf dem Ziel-HCA (im Beispiel sufentanil) ibv_rc_pingpong
aus und auf dem anderen HCA ibv_rc_pingpong 10.42.69.11
:
local address: LID 0x0004, QPN 0x0a0086, PSN 0xb25cf5, GID :: remote address: LID 0x0001, QPN 0x050088, PSN 0x110899, GID :: 8192000 bytes in 0.04 seconds = 1747.77 Mbit/sec 1000 iters in 0.04 seconds = 37.50 usec/iter
Zum abschließenden Test der TCP/IP-Performance startet installiert man auf beiden Hosts iperf3
und startet es im Servermode auf dem Ziel mit iperf3 -s
, auf dem anderen HCA mit iperf3 -c 10.42.69.11
:
Connecting to host 10.42.69.11, port 5201 [ 4] local 10.42.69.9 port 51744 connected to 10.42.69.11 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 768 MBytes 6.43 Gbits/sec 0 3.12 MBytes [ 4] 1.00-2.00 sec 769 MBytes 6.46 Gbits/sec 0 3.12 MBytes [ 4] 2.00-3.00 sec 762 MBytes 6.39 Gbits/sec 0 3.12 MBytes [ 4] 3.00-4.00 sec 762 MBytes 6.39 Gbits/sec 0 3.12 MBytes [ 4] 4.00-5.00 sec 762 MBytes 6.39 Gbits/sec 0 3.12 MBytes [ 4] 5.00-6.00 sec 766 MBytes 6.43 Gbits/sec 0 3.12 MBytes [ 4] 6.00-7.00 sec 772 MBytes 6.48 Gbits/sec 0 3.12 MBytes [ 4] 7.00-8.00 sec 760 MBytes 6.37 Gbits/sec 0 3.12 MBytes [ 4] 8.00-9.00 sec 766 MBytes 6.43 Gbits/sec 0 3.12 MBytes [ 4] 9.00-10.00 sec 758 MBytes 6.36 Gbits/sec 0 3.12 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 7.47 GBytes 6.41 Gbits/sec 0 sender [ 4] 0.00-10.00 sec 7.47 GBytes 6.41 Gbits/sec receiver iperf Done.
Nicht ganz 10G Ethernet, aber allemal besser als 1G Ethernet und obendrein frei Haus!
Einrichtung NFSv4
siehe hierzu https://furneaux.ca/wiki/NFS_over_InfiniBand und https://www.kernel.org/doc/Documentation/filesystems/nfs/nfs-rdma.txt
Da die derzeit verwendeten HCAs einige dafür benötigte RDMA-Befehle nicht unterstützen, ist NFSoRDMA derzeit deaktiviert auf allen Teilnehmern.
Zunächst muss auf dem Server (im Beispiel sufentanil) zur /etc/rc.local
folgendes hinzugefügt werden:
#NFS port for IB rdma echo rdma 20049 > /proc/fs/nfsd/portlist
Zusätzlich müssen natürlich die NFS-exports in /etc/exports
konfiguriert werden:
#Infiniband NFSv4 exports /srv/nfs 10.42.69.1/24(rw,async,fsid=0,crossmnt,insecure,no_subtree_check) /srv/nfs/test 10.42.69.1/24(rw,async,insecure,no_subtree_check)
Nun kann der export auf dem Client (im Beispiel ibuprofen) zur /etc/fstab
hinzugefügt werden:
#NFS with IB rdma 10.42.69.11:/srv/nfs/test /media/inf nfs4 _netdev,auto,proto=rdma,port=20049,hard,intr,rsize=65536,wsize=65536,noatime 0 0
und mit mount /media/inf
eingehangen werden (der Mountpoint muss natürlich angelegt sein).
Weitergehende Optimierungsmöglichkeiten (vielleicht)
Es könnte sein, dass wir oberhalb 10Gbit selbst Hand an die Optimierungen legen müssen. Siehe diese Seite hier.
Da gibt es diese Liste an Parametern, die ein Offloading steuern:
Features for ibo1: rx-checksumming: on tx-checksumming: off tx-checksum-ipv4: off [requested on] tx-checksum-ip-generic: off [fixed] tx-checksum-ipv6: off [fixed] tx-checksum-fcoe-crc: off [fixed] tx-checksum-sctp: off [fixed] scatter-gather: off tx-scatter-gather: off [fixed] tx-scatter-gather-fraglist: off [fixed] tcp-segmentation-offload: off tx-tcp-segmentation: off [requested on] tx-tcp-ecn-segmentation: off [fixed] tx-tcp-mangleid-segmentation: off tx-tcp6-segmentation: off [fixed] udp-fragmentation-offload: off generic-segmentation-offload: off [requested on] generic-receive-offload: on large-receive-offload: off [fixed] rx-vlan-offload: off [fixed] tx-vlan-offload: off [fixed] ntuple-filters: off [fixed] receive-hashing: off [fixed] highdma: on [fixed] rx-vlan-filter: off [fixed] vlan-challenged: on [fixed] tx-lockless: off [fixed] netns-local: off [fixed] tx-gso-robust: off [fixed] tx-fcoe-segmentation: off [fixed] tx-gre-segmentation: off [fixed] tx-gre-csum-segmentation: off [fixed] tx-ipxip4-segmentation: off [fixed] tx-ipxip6-segmentation: off [fixed] tx-udp_tnl-segmentation: off [fixed] tx-udp_tnl-csum-segmentation: off [fixed] tx-gso-partial: off [fixed] tx-sctp-segmentation: off [fixed] tx-esp-segmentation: off [fixed] tx-udp-segmentation: off [fixed] fcoe-mtu: off [fixed] tx-nocache-copy: off loopback: off [fixed] rx-fcs: off [fixed] rx-all: off [fixed] tx-vlan-stag-hw-insert: off [fixed] rx-vlan-stag-hw-parse: off [fixed] rx-vlan-stag-filter: off [fixed] l2-fwd-offload: off [fixed] hw-tc-offload: off [fixed] esp-hw-offload: off [fixed] esp-tx-csum-hw-offload: off [fixed] rx-udp_tunnel-port-offload: off [fixed] tls-hw-tx-offload: off [fixed] tls-hw-rx-offload: off [fixed] rx-gro-hw: off [fixed] tls-hw-record: off [fixed]
Installation unter Windows
InfiniHost(TM) III Ex
Achtung! Diese Karte wird nur von Windows Server 2003/Server 2008/Server 2008/7 unterstützt!
- wenn nicht schon geschehen, Firmware auf neueste Updaten
- Mellanox OFED (WinOF) Version 2.1.2 (Diese und nur diese läuft auf Win 7 und unterstützt die alten InfiniHost-Karten!) besorgen von https://web.archive.org/web/20110919195222/http://www.mellanox.com/content/pages.php?pg=products_dyn&product_family=32&menu_section=34#tab-three, unter „Windows Server 2008 R2“ / „MLNX WinOF VPI MSI v2.1.2 for x64 Platforms“ (Dateiname:
MLNX_WinOF_VPI_2_1_2_win7_x64.msi
) - Installation von WinOF von einer Eingabeaufforderung/Powershell mit Adminrechten:
msiexec /i MLNX_WinOF_VPI_2_1_2_win7_x64.msi
Firmware Update
InfiniHost(TM) III Ex
Da die Karte so alt ist, am einfachsten unter Windows, da die dazu nötigen alten Mellanox Firmware Tools (MFT) meist nur für SuSE und RHEL vorgesehen sind.
Adaptiert von dieser praktischen Anleitung: https://web.archive.org/web/20111028003820/http://mellanox.com/content/pages.php?pg=firmware_HCA_FW_update
- MFT 2.6.0 von 2011 schnappen und installieren:
- Release Notes: mft_windows_release_notes_2_6_0.pdf
- Eingabeaufforderung/Powershell mit Adminrechten öffnen
- Ins Verzeichnis der MFT wechseln (z.B.
C:\Program Files\Mellanox\WinMFT
) - mst starten:
mst start
- wenn alles klappt, werden nun erkannte Geräte aufgelistet:
mst status
, im Beispiel:
MST devices: ------------ mt25208_pciconf0 mt25208_pci_cr0
- mit flint die PSID abfragen:
flint -d mt25208_pci_cr0 query
, im Beispiel:
Image type: Failsafe I.S. Version: 1 Chip Revision: A0 Description: Node Port1 Port2 Sys image GUIDs: 0008f104039949f4 0008f104039949f5 0008f104039949f6 0008f1040399 49f7 Board ID: VLT-EXPD (VLT0040010001) VSD: VLT-EXPD PSID: VLT0040010001
- Richtige Firmware für Karte identifizieren:
- Für Mellanox-Karten (PSID MT_xxxxx…) siehe https://web.archive.org/web/20111021072037/http://mellanox.com/content/pages.php?pg=firmware_table_IH3Ex
- Für Voltaire-Karten (PSID VLT_xxxx…) siehe https://web.archive.org/web/20110926072224/http://www.voltaire.com/SupportAndServices/FirmwareDownload
- Im Beispiel:
VLT0040010001
→MHGA28-1TC
→fw-25208-4_8_200-MHGA28-1TC_A1-A3.bin.zip
, Firmware Version 4.8.200, Release Notes: fw-25208-4_8_200-release_notes.pdf
- Firmware entpacken falls nötig
- Firmware brennen mit flint:
flint -d mt25208_pci_cr0 -i fw-25208-4_8_200-MHGA28-1TC_A1-A3.bin burn
, im Beispiel:
Current FW version on flash: N/A New FW version: N/A Read and verify Invariant Sector - OK Read and verify PPS/SPS on flash - OK Burning second FW image without signatures - OK Restoring second signature - OK
- nochmal die Karte mit flint abfragen:
flint -d mt25208_pci_cr0 query
, im Beispiel:
Image type: Failsafe I.S. Version: 1 Chip Revision: A0 Description: Node Port1 Port2 Sys image GUIDs: 0008f104039949f4 0008f104039949f5 0008f104039949f6 0008f1040399 49f7 Board ID: VLT-EXPD (MT_02F0110002) VSD: VLT-EXPD PSID: MT_02F0110002
Da hier eine Mellanox-FW auf eine Voltaire-OEM karte geflasht wurde, weißt sie nun auch den richtigen Mellanox-Typ (MT_02F0110002) aus statt dem Voltaire-OEM-Typ (VLT0040010001)
- fertig!