xCAT offre une gestion complète pour les clusters HPC, RenderFarms, Grids, WebFarms, Online Gaming Infrastructure, Clouds, Datacenters, etc.
xCAT et les HPC
Dans le cadre d’un HPC, xCAT permet de :
- Déployer des clusters
- Installer des nœuds de manière diskful ou diskless
- Contrôler à distance les machines
- Installer et configurer les applications utilisateur
Architecture
Nomenclature
Les termes principaux de xCAT :
- Mgmt Node : Serveur maître sur lequel xCAT est installé
- Service node : En cas de très gros cluster, permettent d’assister le nœud maître
- Compute node : Nœuds de calcul, gérés par xCAT.
- SP = Service Processor : Module pour gestion hardware à distance (IPMI)
- Mgmt network : Réseau administration pour installer et gérer les nœuds.
- Service network : Réseau pour l’administration IPMI
- Application network : Réseau pour les communications des applications (Infiniband, Ethernet 10 Gb)
- IPMI : Intelligent Platform Management Interface (gestion et supervision matérielle)
- ntpd : Network Time Protocol Daemon
- Postscript : langage de description de page
Schémas
Exemple d’architecture :
Concepts de base
Les objets
Les unités que xCAT peut gérer sont les objets. Ils permettent de représenter les entités physiques et logiques du cluster. Chaque objet possède des attributs qui sont stockés dans une base de données.
Principaux objets
Node : objet le plus important
- Toute machine physique, virtuelle ou IPMI est définie comme objet node.
- Contient des attributs comme le groupe, l’adresse MAC, le réseau de déploiement, l’image OS.
- Création node :
mkdef –t node <nodename> <attributes>
Group : objet qui regroupe des nodes
- Pour réaliser des opérations de groupe ou configurer plusieurs nœuds en même temps.
- Les propriétés des nœuds d’un groupe sont partagées.
- Les groupes sont automatiquement créés quand les
attributs group
d’un nœud sont définis
Osimage : représente l’OS qui sera installé par xCAT
- Contient des attributs comme l’architecture système, la distribution, la liste de paquets à installer, ou des fichiers à synchroniser dans l’image
- Plusieurs sont générées par la commande
copycds
(créer les dépôts de paquets à partir du DVD d’install) - Lier une osimage à un nœud :
nodeset <nodename> osimage=<osimage>
Manipuler les objets
Commandes | |
---|---|
Créer un objet | mkdef |
Modifier un objet | chdef |
Lister les objets | lsdef |
Supprimer un objet | rmdef |
Création d’un node | mkdef –t node <nodename> <attributes> |
Lier une osimage à un nœud | nodeset <nodename> osimage=<osimage> |
Autres objets
xCAT peut également découvrir et configurer les éléments suivants :
- PDUs (Power Distribution Units), via SNMP : utilisation électrique, alimentation des machines
- Switchs Ethernet et Infiniband : modifier identifiants, créer/gérer les VLANs
- Drivers Infiniband : installer les cartes IB sur les nœuds, mise à jour des firmwares
- Nvidia GPUs : outils CUDA, mise à jour pilotes
InfiniBand : bus haut-débit
CUDA : technologie de GPGPU, utilisant un processeur graphique (GPU) pour exécuter des calculs généraux à la place du processeur central (CPU).
CUDA pour Compute Unified Device Architecture.
GPGPU pour General Purpose Computing on Graphics Processing Units.
Base de données
Chaque objet possède des attributs qui sont stockés dans une base de données, constituée de tables et de champs. Les administrateurs de xCAT peuvent lire et modifier ces informations.
Tables principales
Tables | |
---|---|
Paramètres globaux du cluster | Site |
Permissions d’accès à xCAT | Policy |
Utilisateurs/MDP | Passwd |
Réseaux du cluster | Networks |
Manipuler les tables
Commandes | |
---|---|
Afficher une table | tabdump |
Editer une table | tabedit |
Configuration globale
Il existe des configurations globales qui contrôlent le comportement de xCAT. Certains objets doivent être obligatoirement renseignés avant d’utiliser xCAT.
La configuration globale de xCAT est stockée dans la table site
. Ses principaux attributs sont :
Définitions | Attributs de la table sites |
---|---|
Réseaux sur lesquels le DHCP doit écouter | Dhcpinterfaces |
Mode de config réseau durant l’installation d’un nœud. Statique ou DHCP | Managedaddressmode |
Nom de domaine DNS utilisé par le cluster | Domain |
Serveurs DNS à l’extérieur du cluster | Forwarders |
Nom d’hôte du serveur maître | Master |
Liste de serveurs DNS que le cluster doit utiliser (souvent le serveur maître) | Nameservers |
Réseaux sur lesquels le DNS doit écouter | Dnsinterfaces |
Répertoire utilisé pour stocker les paquets de déploiement des nœuds | Installdir |
Réseau
Le but de xCAT est de gérer et configurer les nœuds du cluster à partir du nœud maître. Toute la gestion matérielle, la configuration et le déploiement du système, l’installation/configuration des applications sont faites à travers le réseau. Il faut donc bien définir cet aspect pour configurer le cluster.
Réseau d’administration : Utilisé par le serveur maître pour installer et gérer l’OS des nœuds. Les services suivants sont nécessaires :
- DNS : offre des services de nom de domaine pour le cluster
- HTTP : sert de serveur de téléchargement pour les fichiers kernel et initrd, la configuration de l’installateur et les repositories
- DHCP : offre des services de DHCP pour le cluster
- TFTP : sert de serveur de téléchargement pour le bootloader et les fichiers kernel et initrd
- NFS : permet le partage de système de fichiers entre le maître et les nœuds de calcul
- NTP : permet la synchronisation du temps pour le cluster
Réseau de service : utilisé par le maître pour contrôler les nœuds par IPMI (peut-être le même que réseau admin si IPMI en mode partagé)
Réseau application : utilisé par les applications sur les nœuds de calcul, généralement réseau rapide
Réseau public : utilisé pour accéder au maître depuis l’extérieur du cluster
Types d’installation des noeuds
Stateful/diskful
Cluster traditionnel avec OS installé sur chaque disque local des nœuds
- Avantage : approche familière pour les administrateurs
- Inconvénients : gérer chaque copie de l’OS, devoir faire face aux pannes de disque dur
Stateless/diskless
Les nœuds démarrent depuis une image RAMdisk téléchargée depuis le maître.
Chaque nœud peut avoir un disque scratch (pour /swap, /tmp, /var, /log, …) lorsque certaines données à écrire sont très grandes ou si on veut en garder après un redémarrage.
- Avantage : gestion centralisée de l’image OS
- Inconvénient : limité par l’utilisation de la RAM pour stocker l’image
Documentation
http://xcat.org/
https://xcat-docs.readthedocs.io/en/stable/
https://fr.wikipedia.org/wiki/Intelligent_Platform_Management_Interface
https://fr.wikipedia.org/wiki/Compute_Unified_Device_Architecture
https://fr.wikipedia.org/wiki/Bus_InfiniBand
Formation Linux HPC (pdf)