Un supercalculateur au LOLcal xD
%%//%%en.wikipedia.org/wiki/High-performance_computing
Construction d’un supercalculateur à partir de matériel récupéré à l’in2p3
<html><img src=“http://www.mirsal.fr/~mirsal/lolhpc.jpg” alt=“Photo de la baie” /></html>
HPC, Grid computing, clusters
32 noeuds de calcul scientifique NEC récupérés à l’in2p3 (Institut National de Physique Nucléaire et de Physique des Particules) en chassis 1U montés dans une baie 19“
2x Xeon (21 à 2.8GHz et 11 à 3GHz) génération NetBurst (certainement ça Nocona)
4x512Mo DDR ECC reg (et 2 slot libres)
2x120Go sata, lecteur CD
dual lan, 1 port PCIX full size et 1 port PCIX half-size, module IPMI …
alimentation sur 3 arrivées, 1800W/prise
Conso mesurée : - 56W pour les switch - 240W / serveur sans calculs
Conso totale estimée : 7.7kW
Un supercalculateur fonctionnel dans le LOLcal
<HTML><ul></HTML> <HTML><li></HTML><HTML><p></HTML><html><s></html>Déplacer le tout dans la salle du fond:<html></s></html><HTML></p></HTML> <HTML><p></HTML>les deux portes ne font pas la même hauteur, je n’ai mesuré que la première avant de charger la baie ⇒ Fail de 3cm.<HTML></p></HTML> <HTML><p></HTML>→ Une après midi / soirée à 3-4 personnes<HTML></p></HTML> <HTML><p></HTML>Un supercalculateur au milieu du LOLcal, ça fait désordre xD<HTML></p></HTML> <HTML><p></HTML>Tâche effectuée puis annulée pour cause de travaux dans la salle du fond et réaménagement.<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Réaliser l’interconnexion des nœuds:<HTML></p></HTML> <HTML><p></HTML>La baie est câblée mais pas switchée. on a des switchs 100Mbit/s à dispo et suffisement de câbles pour réaliser le brassage. Il manque des serre-flex et des écrous et il faudrait idéalement récupérer deux switchs gigabit 24 ports.<HTML></p></HTML> <HTML><p></HTML>Tâche réalisée, mais à vérifier depuis le déménagement.<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Connecter la baie au reste du réseau du lol<HTML></p></HTML> <HTML><p></HTML>Il faut faire passer des câbles entre les deux salles, créer du vlan et de l’aggrégat.<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Préparer et installer la partie logicielle<HTML></p></HTML> <HTML><p></HTML>On ne va pas utiliser les SL pourries de l’in2p3. Ce qu’on va installer dépendra de ce qu’on va faire avec.<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Déplacer la baie pour stockage pendant les travaux de la salle du fond<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Mettre en place une solution pour le refroidissement et pour l’alimentation électrique.<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Calculeeeeer (ou pas) :)<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Mettre en place une politique iptable<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>VLAN de management + VLAN pour l’interface et Internet<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Mettre un lien entre le switch de la box et les switchs du Supercalculateur<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Mettre en place NAT IPv4 et radv IPv6 sur le routeur<HTML></p></HTML><HTML></li></HTML> <HTML><li></HTML><HTML><p></HTML>Routage du range de management via le routeur<HTML></p></HTML><HTML></li></HTML><HTML></ul></HTML>
Indiquer ci-dessous les idées d’utilisation, avec une estimation des besoins en CPU, RAM, espace disque, et consommation réseau.
CPU | RAM | Espace | Réseau Minage Bitcoin/litecoin |+++|+|+|+ Encodage vidéo (OpenMediaKit) |+++|++|+++|+++ [[http://www.povray.org/|Ray-tracing, rendu 3D |+++|++|+|+ Calcul scientifique (MPI, etc) |++|++|+|+ Cryptage (?) |++|/|/|/ Relais Tor |++|+|/|+++ Compilation distribué |+++|++|+|++ Noeud Boinc (calcul distribué) |+++|++|+|+ ”“”]]
Ce serait cool de proposer un accès à d’autres hackerspaces via dn42. Par contre, ce serait mieux avec une vraie connexion réseau (pas de l’ADSL).
Autre idée : hacker le protocole du KVM
On aimerait avoir les mêmes données (/home) sur chaque noeud : ainsi, on peut se connecter à n’importe quel noeud allumé pour lancer ses calculs.
Deux familles de solutions :
La première solution est à éviter : ça oblige à avoir une machine qui tourne tout le temps, il faut s’assurer de la redondance des données, les perfs seront catastrophiques dès que plusieurs noeuds feront des I/O, et ce serait dommage de ne pas utiliser les disques des noeuds du cluster.
On part plutôt sur la seconde solution (parce qu’en plus, c’est rigolo à faire). Il y a cependant un nouveau problème potentiel : le split brain (wikipedia).
Typiquement, tous les noeuds du cluster ne seront pas allumées en permanence. On aimerait par exemple pouvoir faire la chose suivante :
Il faut une solution de stockage réparti qui permette ça.
Utilisation d’un vrai système de fichier réparti (soit kernelspace, soit userspace)
Ce dernier n’est pas vraiment un système de fichiers : c’est un périphérique bloc distribué, sur lequel on peut mettre n’importe quel système de fichier.
On peut aussi faire le contraire : mettre n’importe quel système de fichier “classique” (ext4) sur chaque noeud, et synchroniser les données par-dessus. Ça paraît beaucoup plus hackish, mais ça peut marcher, et c’est surtout plus simple.
On ne veut pas s’embêter à installer/configurer/gérer les utilisateurs sur chaque noeud.
Plus précisément, on voudrait automatiser :
Il y a plein de solutions pour ça :