- lun. 15 septembre 2014
- HPC
- #Infiniband
Faut mettre à jour le firmware des switchs infiniband sur le cluster...
C'est facile qu'ils disent, c'est tout dans la doc, qu'ils disent...
C'est pas faux... Mais c'est incomplet.
Postulat de base, il faut une machine avec un OS à jour (ami lecteur, imprègne-toi de cette notion toute relative qu'est le "à jour" en HPC, un jour, tu en riras aussi) au sein du cluster. Les miens faisant tourner SIDUS (http://www.cbp.ens-lyon.fr/doku.php?id=developpement:productions:sidus), c'est pas si simple.
Isolation d'un noeud, montage d'un disque et installation d'une Debian Jessie minimale.
C'est là le noeud du problème : Les seuls outils capable de (brûler) mettre à jour un switch Mellanox sont ceux de Mellanox, et ils nécessitent une version particulière de la librairie libibumad (libibumad5 1.3.x, pour être précis), fourni par OpenFabric (façade OpenSource de Mellanox). Et forcément, la version dans Debian Stable est trop ancienne (1.2.x)...
Installation d'un environnement de build + infiniband (l'un des programmes vient en dkms) :
1 2 3 4 5 6 | apt-get install build-essential initramfs-tools tmux wget ibutils ibverbs-utils libibdm1 libibcm1 libibmad5 libibumad3 libibverbs1 libmlx4-1 libmthca1 librdmacm1 opensm rdmacm-utils srptools infiniband-diags libibmad-dev zlib1g-dev cpp-4.8 dkms gcc-4.8 gcc-4.8-base libasan0 libgcc-4.8-dev linux-compiler-gcc-4.8-x86 linux-headers-3.14-2-amd64 linux-headers-3.14-2-common linux-headers-amd64 linux-kbuild-3.14 menu tcl |
modifications de /etc/modules (ajout) :
1 2 3 4 5 6 7 | mlx4_en mlx4_ib ib_ipoib ib_uverbs ib_umad ib_ucm rdma_ucm |
reload (ou reboot)
ibv_devices et ibv_devinfo montrent un device infiniband.
Récupérer les outils Mellanox (en partant de là : http://www.mellanox.com/page/firmware_download ) :
1 2 3 4 5 6 7 | mft-3.6.0-24.amd64.deb kernel-mft-dkms_3.6.0_all.deb dpkg -i mft-3.6.0-24.amd64.deb (lui, ça va tout seul) dpkg --force-depends -i kernel-mft-dkms_3.6.0_all.deb (lui, moins, dépendance sur linux-headers qui n'existe plus) |
modifier /var/lib/dpkg/status pour ce paquet, forcer la dépendance sur "linux-headers-amd64" pour éviter sa désinstallation permanente, et ajouter un Hold (ceinture, bretelles)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | mst start mst ib add (il trouve du monde, 216 nodes et switchs) mst status /dev/mst/SW_MT51000* # voilà les switchs flint -d /dev/mst/SW_MT51000_0x2c903008049a0_lid-0x000C -qq q Image type: FS2 FW Version: 9.1.5000 Device ID: 51000 Description: Node Sys image GUIDs: 0002c903008049a0 0002c903008049a0 Description: Base Switch MACs: 0002c98049a0 0002c9804a00 VSD: n/a PSID: MT_1010210021 |
Le modèle de switch précis, c'est PSID, donc MT_1010210021, le firmware correspondant "à jour" : fw-sx-9_2_8000-MSX6025F_Bx.bin.zip
1 | flint -d /dev/mst/SW_MT51000_0x2c90300803ba0_lid-0x00E1 -i fw-SX-rel-9_2_8000-MSX6025F_Bx.bin -qq b |
30 secondes de reboot du switch, et hop, switch "à jour". Plus que 11...