xCAT - Extreme Cloud Admin. Toolkit

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)

> Partager <