Administration d un Cluster de bi-opteron/réseau Infiniband sous environnement BProc Didier Gazen Juan Escobar Serge Prieur didier.gazen@aero.obs-mip.fr juan.escobar@aero.obs-mip.fr serge.prieur@aero.obs-mip.fr 13/09/2007, JoSY Gestion des serveurs de calcul Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 1 / 26
Clusters au laboratoire d Aérologie (L.A.) Modélisation atmosphérique (MésoNH)/océanographique côtière (Symphonie) = ressources informatiques Expérience depuis fin 2000 : cluster BeoWulf (12 PC-Linux, éthernet 100Mb/s, logiciels open-source) Rajout cluster 2003 (runs d ensemble POC) et 2004 (remplacement du cluster 2001, éthernet 1Gb/s) Cluster local vs Centres Nationaux Facilité développements (mode intéractif) Runs d ensemble (plusieurs codes sequentiels) Nœuds réservés pour des runs longs (plusieurs jours) Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 2 / 26
Pourquoi avoir choisi BProc? En 2000, solutions libres d administration peu nombreuses : Solution type OSCAR : système sur tous les nœuds Solution type MOSIX : incompatible avec applis MPI Solution BProc : 1 nœud maître configuré Linux, les autres nœuds légers pouvant être diskless Choix BProc Solution libre séduisante car facile d administration qui s est avérée compatible avec l utilisation de nos clusters Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 3 / 26
2007 : Cluster NEC/réseau Infiniband NEC : 2 baies + 40 nœuds bi-opteron AMD 252 16 nœuds 8GB Ram 24 nœuds 4GB Ram Disque 160 GB/nœud Switch 48 ports 1Gb/s Infiniband Mellanox (20Gb/s) 24 cartes, 1 port 4x DDR Switch 24 ports 4x DDR Stockage : silo 20 To raid5 Onduleurs Organisé en 2 clusters IB/Non IB Prix < 160 ke Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 4 / 26
BProc : Beowulf Distributed Process Space BProc est une modification du Noyau Linux offrant : une image unique (SSI) pour le contrôle des processus la migration de processus pour créer les processus sur les nœuds + ensemble de librairies et utilitaires. Développé par Erik Hendriks (LANL 1 ) Commercialisé par SCYLD Computing (D. Becker 1999) / Penguin Computing (www.penguincomputing.com) Projet LANL : distributions (GPL) Clustermatic de 2001 à 2004 (www.clustermatic.org) Sources, Mailing List sur : bproc.sourceforge.net 1 Los Alamos National Laboratory Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 5 / 26
Principe Cluster sous BProc 1 seul nœud maître et plusieurs nœuds esclaves Utilisateurs connectés uniquement sur nœud maître Tous les processus présents sur cluster sont : créés depuis le nœud maître/migrés sur esclaves visibles sur le nœud maître contrôlés du nœud maître Particularités Aucun soft requis sur nœuds esclaves (excepté librairies partagées) Aucune maintenance de soft sur nœuds esclaves Nœuds esclaves peuvent être diskless (rootfs en ramdisk) Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 6 / 26
Migration de Processus Bproc fournit un système de gestion de processus avec migration pour placer les processus sur les nœuds : Migration explicite au lancement du processus BProc gère uniquement les processus : autres appels systèmes traités localement (esclave) BProc n affecte pas les appels systèmes non liés aux processus I/O fichiers et réseau toujours traités localement (esclave) Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 7 / 26
Configuration Cluster BProc 1 Nœud maître Système Linux complet Noyau Linux patché BProc Services réseaux activés Démons bpmaster et beoserv Ensemble de scripts de config du cluster + outils développement Nœuds esclaves Noyau Linux patché BProc Démon bpslave AUCUN service réseau Copie des librairies partagées rootfs en ramdisk + disque dur local (swap + workdir) Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 8 / 26
Installation de BProc Version BProc au L.A. Sources SRPMs dérivés de Clustermatic, phasé avec noyau 2.6.14 disponibles sur : bproc.omner.org (Mailing List BProc) Configuration du nœud maître Installation OpenSuSE 10.0, 64bits Récupération noyau linux standard a 2.6.14 Compilation noyaux 2.6.14+patch BProc (maître/esclave) Genération des RPMs BProc (démons, librairies, outils) à partir des sources SRPMs (correction/adaptation des sources C) a www.kernel.org Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 9 / 26
Configuration du nœud maître (suite) Réseau éthernet configurée sur IP privée Filesystem : raid1 logiciel (mirroring) + ext3 pour système répertoire /home sous ext3 Création image système kernel+initrd (modules noyaux, bpslave) à transférer aux nœuds (script beoboot) Activation des services réseaux DHCP/tftp, (PXElinux a ) et NFS (export de /usr, /bin et /home) Configuration du cluster BProc à l aide de 4 fichiers présents dans répertoire /etc/clustermatic a Projet SYSLinux : syslinux.zytor.com Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 10 / 26
Fichiers configuration BProc dans /etc/clustermatic config.boot (config boot esclaves) : liste modules noyau spéciaux à transférer/activer sur esclave (installés dans initrd par script beoboot) config (config du maître) : interface/port BProc, table adresses MAC/IP des nœuds, librairies partagées à transférer. fstab : liste des filesystems à monter sur nœuds (locaux ou NFS) node_up.conf : liste d opérations (plugins) à exécuter au boot du nœud (recopie certains fichiers (devices), montage des filesystems, mise en place librairies partagées) + 1 script shell node_up permettant de rajouter des commandes au boot d un/plusieurs nœud(s). Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 11 / 26
(Re)Boot du nœud maître Au boot du nœud maître, le script /etc/init.d/clustermatic est lancé et se charge de : Monter les modules noyaux bproc, vmadump, btime_info Préparer la liste des librairies partagées à transférer aux nœuds (bplib d après fichier config) Démarrer 2 démons : beoserv : qui fournit l adresse IP (MAC/IP du fichier config) et lance l initialisation du nœud esclave (node_up.conf) bpmaster : qui communique avec le démon bpslave des nœuds esclaves Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 12 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Boot d un nœud esclave configuré PXE 1 Esclave lance requête DHCP sur interface éthernet 2 Serveur DHCP/tftp maître envoie binaire pxelinux.0 + fichier configuration pxelinux (choix boot : kernel, memtest) 3 Esclave choisit boot kernel par défaut 4 Serveur tftp maître envoie kernel+initrd à l esclave 5 Esclave charge kernel, monte modules, lance init/bpslave puis lance requête RARP 6 Démon beoserv du maître répond par IP et lance programme d initialisation du nœud. 7 Esclave poursuit son initialisation (montage filesystems, copie fichiers spéciaux et lib. partagée) => logs sur maître dans /var/log/clustermatic/node.n) Boot nœud < 2mn Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 13 / 26
Commandes en lignes BProc 5 commandes pour utiliser/administrer un cluster BProc. Les nœuds sont accessibles par leur numéro défini dans la table MAC/IP 2 Utilisation bpsh : lance un processus sur un nœud bpcp : copie un/des fichiers sur un nœud Administration bpstat : affiche l état du cluster bpctl : contrôle l état du cluster/nœud(s) bplib : gère la liste des librairies partagées transférées au boot des nœuds 2 Voir fichier /etc/clustermatic/config Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 14 / 26
Commandes d utilisation du Cluster BProc bpsh migre un processus sur un ou plusieurs nœuds processus lancé sur nœud maître et immédiatement transféré sur le(s) nœud(s) effet identique à rsh mais aucun login ni aucun shell démarré sur le nœud I/O forwarding peut être contrôlé sorties écran avec préfixe du numéro du nœud possible Exemple lancer ps sur tous les nœuds up : > bpsh -ad ps aux Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 15 / 26
bpcp copie des fichiers sur un nœud fichier source provient du maître ou d un esclave Attention si le nœud ne dispose pas d un disque local (saturation ramdisk) Exemple Copie du fichier /etc/hosts du maître vers nœud 0 : > bpcp /etc/hosts 0:/etc/ Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 16 / 26
Commandes d administration du Cluster BProc bpstat affiche le status des nœuds : up, down, boot, error affiche propriétaire/groupe auquel appartient un nœud affiche les permissions d exécution sur les nœuds : x permission pour propriétaire x permission pour groupe x permission pour autres Exemple gazdi@yin:~> bpstat Node(s) Status Mode User Group 23-24 down ---------- root root 0-22 up ---x--x--x root root Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 17 / 26
bpctl nécessite les privilèges root contrôle le status d un nœud reboot/extinction d un nœud fixer le status des nœuds (tout autre statut que up, down, boot et error signifient NON down) fixe ID du propriétaire/groupe d un nœud fixe les permissions d un nœud Exemples Arrêt cluster : > bpctl -S allup -P 10 premiers nœuds pour groupe mesonh : > bpctl -S 0-9 -g mesonh -m 110 Nœud 15 pour utilisateur gazdi : > bpctl -S 15 -u gazdi -m 100 Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 18 / 26
bplib gèrer la liste de librairies partagées à charger au démarrage des nœuds lister les librairies à charger : bplib -l ajouter une librairie à la liste : bplib -a /lib/malib.so.1 supprimer une librarie de la liste : bplib -d /lib/malib.so.1 Les nœuds doivent être redémarrés pour que la modification bplib soit prise en compte Modifier le fichier /etc/clustermatic/config pour que la modification soit permanente (après reboot maître) Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 19 / 26
Limites de BProc Nœud maître : élément sensible du cluster Solution repose sur un patch noyau Nécessite un système homogène (cohabitation impossible MacOSX, Linux...) Intéractivité sur les nœuds est réduite (applications X11 ne fonctionnent pas sur les nœuds) Version publique de BProc n est plus maintenue par LANL (Pressions SCYLD/Penguin?) Néammoins, aujourd hui, la solution fonctionne et convient parfaitement à nos applications Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 20 / 26
Serveur de fichiers Silo 20 To, raid5, SATA/SCSI, rattaché à serveur bi-opteron AMD 250 (8GB Ram), monté NFS par tous les nœuds des 2 clusters Tuning NFS (nfs.sourceforge.net) augmentation du nombre de threads NFS (256) receive/send queue fixé à 4MB (par défaut 128k) serveur de fichiers monté NFS en mode TCP export des zones ext3 en ASYNC sinon serveur s écroule avec kjournald (80% CPU) Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 21 / 26
Réseau Infiniband Matériel Mellanox (17 ke) 1 Switch 24 ports 4x DDR (960Gb/s) 24 cartes (HCA) single port 4x DDR (20Gb/s), PCI-E x8 24 cables Infiniband 4x cuivre Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 22 / 26
Réseau Infiniband Logiciel Paquetage OFED (Open Fabrics Enterprise Distribution) Disponible sur : www.mellanox.com, www.openfabrics.com Drivers bas niveau (RDMA), protocoles niveau supérieur (IPoIB, SDP, SRP) Utilitaires : OpenSM (subnet manager), IBadm (administration IB), outils diagnostiques/performance OSU-MVAPICH Remarques Installation OFED (nœud maître) génère les RPMs OpenSM actif sur le maître (initialise IB) IBadm permet flash Bios de toutes les cartes depuis maître Aucun problème sous BProc Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 23 / 26
Librairie MPI : Open-MPI MVAPICH écarté car pose problèmes avec MésoNH www.open-mpi.org : projet open-source réunissant le meilleur de LAM/MPI 3, LA-MPI 4 et FT-MPI 5 Supporte BProc (pour le lancement des jobs MPI) et Infiniband pour la communication haut débit faible latence. Test ping-pong : latence mesurée = 4µs, débit 1700MB/s Pbs avec BProc résolus en analysant sources Open-MPI pour choix variables environnement Open-MPI + BProc + Intel ifort + MésoNH : Ok! 3 Indiana University 4 Los Alamos National Laboratory 5 University of Tennesse Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 24 / 26
Performances Cluster NEC L.A. vs NEC-SX5 Graphique illustrant l équivalence entre RUN multiprocesseur MésoNH et le même RUN sur 1 processeur NEC-SX5. Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 25 / 26
Bilan Solution actuelle convient à nos codes/chercheurs/ingénieurs Futur... Solution matérielle NEC bi-opteron AMD 252 (TYAN) Réseau Infiniband très performant sur 24 nœuds Stockages et système de fichier standard : Silo Raid5 SATA/SCSI + NFS Linux Solution administration Open-Source basée sur BProc Pas de gestionnaire de batch Hardware : maintenance NEC 3 ans J+1? Extension cluster avec nœuds identiques? Software : Solution libre BProc abandonnée? LANL se concentre sur successeur de BProc : XCPU (www.xcpu.org) basé sur V9FS (sans patch noyau). Didier Gazen (Laboratoire d Aérologie) JoSY 2007: Gestion des serveurs de calcul JoSY 13/09/2007 26 / 26