Présentation de la technologie IPMI


Pour gérer à distance l'état de la plate-forme serveur, les administrateurs système et les ingénieurs utilisent la technologie IPMI, ce qui simplifie considérablement leur vie. Désormais, vous n'avez plus besoin de courir chaque fois sur le serveur pour appuyer sur le bouton de réinitialisation - vous pouvez répondre aux problèmes critiques en temps opportun tout en étant assis à la maison dans un fauteuil confortable. Cet article couvrira les composants de base d'IPMI et les détails du fonctionnement de la technologie.

Qu'est-ce que l'IPMI?


L'acronyme IPMI signifie Intelligent Platform Management Interface. Grâce à IPMI, vous pouvez vous connecter à distance au serveur et gérer son fonctionnement:

  • Surveillez l'état physique de l'équipement, par exemple, vérifiez la température des composants individuels du système, les niveaux de tension, la vitesse du ventilateur
  • Restaurer le serveur en mode automatique ou manuel (redémarrage à distance du système, mise sous / hors tension, chargement d'images ISO et mise à jour du logiciel)
  • Gérer les périphériques
  • Gardez un journal des événements
  • Stocker des informations sur l'équipement utilisé

Supposons qu'un ingénieur reconfigure le réseau sur le serveur, fasse une erreur de configuration et perd l'accès via SSH. Comment "atteindre" le serveur maintenant? Vous pouvez vous connecter via IPMI et modifier les paramètres.

IPMI est bon car les fonctions ci-dessus sont disponibles indépendamment du processeur, du BIOS ou du système d'exploitation (OS) de la plate-forme gérée. Par exemple, vous pouvez redémarrer le serveur à distance si le système d'exploitation se bloque ou rechercher la raison de l'échec du processeur dans le journal des événements système. Vous pouvez même gérer un serveur hors tension - il suffit que le serveur soit connecté au réseau électrique.

Une fois le serveur monté et connecté au réseau, les ingénieurs de Selectel configurent le BIOS et IPMI. Vous pouvez ensuite quitter la salle des serveurs bruyante et continuer à configurer l'équipement à distance. Une fois la configuration initiale terminée, les clients Selectel peuvent gérer des serveurs de configuration dédiés et arbitraires via IPMI.

Contexte historique


La première version de la spécification IPMI v1.0 a été développée conjointement par Intel, Dell, NEC et Hewlett-Packard en 1998. Dans la pratique, des vulnérabilités et des faiblesses ont été découvertes qui ont été corrigées dans les versions ultérieures d'IPMI v1.5 et v2.0.

La spécification IPMI standardise l'interface de communication, et non une implémentation spécifique dans le matériel, donc IPMI ne nécessite pas l'utilisation de dispositifs brevetés spéciaux et de certains microcontrôleurs. Les constructeurs, respectant le cahier des charges, développent leur propre équipement IPMI embarqué dans des plateformes serveurs:
ConstructeurTechnologie basée sur IPMI
CiscoCisco IMC (contrôleur de gestion intégré)
DelliDRAC (carte d'accès à distance Dell intégrée)
HPiLO (Integrated Lights-Out)
IbmIMM (Module de gestion intégrée)
LenovoIMM (Module de gestion intégrée)
SupermicroSIM (Supermicro Intelligent Management)
Les entreprises fixent leurs prix pour la technologie fournie. Si le coût de la mise en œuvre d'IPMI augmente, le prix de location du serveur augmente, car il dépend directement du coût des consommables.

Les solutions des fabricants diffèrent entre elles:

  • Visibilité des informations sur l'état de l'équipement
  • Un ensemble unique d'applications pour restaurer la santé du serveur en cas de défaillance d'un composant
  • La possibilité de collecter des statistiques sur tous les composants du serveur, y compris ceux connectés via des cartes d'extension PCI, NVM, etc.
  • Utilisation de la technologie non seulement dans le matériel du serveur, mais aussi avec des ordinateurs ordinaires via des cartes d'extension PCI-Express

En fait, pour un travail confortable avec la console distante et une notification rapide des problèmes, la fonctionnalité IPMI de base est suffisante.

Bien que les fabricants fournissent un IPMI modifié et révisé, la mise en œuvre de son architecture reste similaire. Voyons en quoi consiste la technologie, basée sur les spécifications officielles d'Intel.

Les composants de base de tout IPMI


Contrôleurs


Au centre de l'architecture se trouve le «cerveau» d'IPMI, le microcontrôleur BMC (Baseboard Management Controller). Grâce à elle, le contrôle du serveur à distance a lieu. En fait, BMC est un ordinateur séparé avec son logiciel et son interface réseau, qui est soudé à la carte mère ou connecté en tant que carte d'extension via le bus de gestion PCI.


Le BMC est alimenté par la tension de veille de la carte mère, c'est-à-dire qu'il fonctionne toujours, quel que soit l'état du serveur.

Vous pouvez connecter des contrôleurs de gestion (MC) supplémentaires au contrôleur BMC pour étendre les capacités de gestion de base. Par exemple, alors que le système principal est contrôlé par des fonctions BMC, les MC sont connectés pour surveiller divers sous-systèmes: alimentations redondantes, disques RAID, périphériques.

Les MC sont livrés avec des cartes autonomes distinctes du BMC central, c'est pourquoi ils sont également appelés contrôleurs satellites. Il peut y avoir plusieurs contrôleurs supplémentaires, mais le BMC central en est un.

Les contrôleurs sont connectés au BMC via l'interface IPMB (Intelligent Platform Management Bus - Intelligent Platform Management Bus). IPMB est un bus basé sur I2C (Inter-Integrated Circuit), à travers lequel le BMC redirige les commandes de contrôle vers différentes parties de l'architecture:

  • Communique avec des contrôleurs supplémentaires (MC)
  • Lit les données des capteurs (Capteurs)
  • Accède au stockage non volatile

L'architecture IPMI est implémentée de manière à ce que l'administrateur distant n'ait pas d'accès direct aux composants du système. Par exemple, pour recevoir des données de capteurs, l'administrateur distant envoie une commande au contrôleur BMC, et le contrôleur BMC, à son tour, fait référence aux capteurs.

Outre l'envoi de commandes au contrôleur BMC, vous pouvez configurer l'exécution automatique des actions par le contrôleur à l'aide des mécanismes suivants:
PEF (Platform Event Filtering)Le BMC stocke une table d'événements avec des informations sur les événements auxquels répondre et les actions à entreprendre. Lorsque le contrôleur BMC reçoit un message d'événement, il compare les données avec la table et choisit la façon de répondre à l'événement.
La réaction comprend des actions telles que l'arrêt, le redémarrage du système, la génération d'une alerte
Minuterie de surveillanceLe temporisateur est configuré pour exécuter une action après une période de temps spécifiée. Les actions incluent l'arrêt, le redémarrage du serveur, l'interruption des processus. Si vous définissez la valeur du délai d'expiration sur 0, l'action sera exécutée immédiatement.
Selon l'implémentation, Watchdog peut interroger le système sur l'état une fois dans un intervalle de temps donné. Si le système ne répond pas (par exemple, lorsqu'il se bloque), une action est déclenchée
Pare-feu du firmwareCertaines actions BMC implémentées dans un serveur autonome peuvent perturber le fonctionnement des plates-formes modulaires (par exemple, un serveur lame). Pour éviter d'éventuels problèmes, le pare-feu permet au contrôleur BMC de bloquer les paramètres, les commandes IPMI et les opérations d'écriture via l'interface système.
Le pare-feu contient également un ensemble de commandes grâce auxquelles vous pouvez découvrir quelles commandes et fonctions de gestion sont disponibles pour une plate-forme particulière

Stockage non volatile


Le stockage non volatile reste disponible même si la CPU du serveur tombe en panne, par exemple via un réseau local; se compose de trois domaines:

  • Journal des événements système (SEL) - Journal des événements système
  • Référentiel d'enregistrement de données de capteur (SDR) - un référentiel qui stocke les données de capteur
  • Informations sur les unités remplaçables sur site (FRU) - informations d'inventaire sur les modules du système

Les modules système génèrent (générateur d'événements) ou reçoivent (récepteur d'événements) des événements. Les MC agissent comme des générateurs d'événements et les BMC d'une architecture peuvent jouer les deux rôles. Le BMC reçoit des messages d'événement via l'interface système et IPMB, puis les enregistre dans le journal des événements système (SEL).

Il existe des exigences obligatoires pour la mise en œuvre du SEL:

  • SEL stocke au moins 16 événements en mémoire
  • Les informations stockées dans SEL sont accessibles indépendamment de l'accès BMC et de l'état de la plate-forme gérée

Les commandes IPMI lisent et suppriment SEL. La mémoire SEL étant limitée, le journal doit périodiquement être vérifié et nettoyé pour que de nouveaux événements soient enregistrés. Dans les paramètres BMC, vous pouvez configurer le nettoyage automatique SEL. Le nettoyage automatique sur différentes plates-formes se déroule de différentes manières: effacer les anciens enregistrements pour en remplir de nouveaux ou effacer toute l'histoire.

Le message d'événement contient des informations provenant des zones Référentiel SDR et Info FRU.

Les enregistrements SDR sont des données sur les types et le nombre de capteurs, leur capacité à générer des événements et les types de lectures. Les SDR contiennent également des enregistrements du nombre et des types d'appareils connectés à IPMB. Les enregistrements SDR sont stockés dans une zone de mémoire appelée SDR Repository (Sensor Data Records Repository).

Les enregistrements FRU contiennent des informations sur les numéros de série et les modèles de pièce des différents modules du système - processeur, carte mémoire, carte d'E / S, contrôleurs.

Les informations sur les FRU peuvent être fournies via MC (commandes IPMI) ou via l'accès à des puces de mémoire non volatiles SEEPROM (Serial Electrically Erasable Programmable Read Only Memory) connectées via le bus de gestion privé. Les contrôleurs communiquent via ce bus via des commandes I2C de bas niveau avec des périphériques qui ne prennent pas en charge les commandes IPMI.

Application pratique


Supposons qu'un client se plaint de gels de serveur, mais tout est en ordre dans les journaux du système d'exploitation. Nous regardons SEL - nous voyons des erreurs sur l'un des emplacements RAM indiquant les informations sur l'emplacement dans lequel il se trouve. Changement - le serveur commence à fonctionner comme une horloge.


Ci-dessus, nous avons examiné les modules de base de l'architecture IPMI. Examinons maintenant la structure des commandes transmises et voyons quelles interfaces sont utilisées pour la connexion à distance.

Structure de commande IPMI


IPMI envoie des messages de demande-réponse. Les demandes sont des commandes. Les commandes lancent des actions et définissent des valeurs. Le format requête-réponse permet la communication simultanée de plusieurs contrôleurs sur le même bus.

Les messages IPMI contiennent un ensemble de champs de base communs à toutes les commandes:

  • La fonction réseau (NetFn) attribue à la commande la valeur du cluster auquel appartient la commande (commandes de châssis, événements, stockage, etc.)
  • Le champ Identifiant de demande / réponse est nécessaire pour distinguer les demandes des réponses
  • ID du demandeur - informations sur la source du message. Par exemple, pour IPMB, ces informations contiennent le LUN (numéro d'unité logique) du périphérique
  • L'ID du répondant adresse la demande au répondant souhaité
  • Commande - unique au sein de l'équipe des fonctions réseau
  • Données - paramètres supplémentaires (par exemple, données renvoyées dans la réponse)

De plus, la réponse transmet toujours le code d'achèvement, qui rapporte le résultat de la commande. Si une erreur se produit lors de l'exécution de la demande, un code différent de zéro correspondant à l'événement sera envoyé.

Les canaux par lesquels les messages sont transmis peuvent être divisés en trois catégories avec les interfaces correspondantes:

  • BMC - MC, capteurs, stockage (IPMB)
  • BMC - Plateforme gérée (interface système)
  • BMC - Administrateur distant (LAN, interface série)

Dans ce modèle, BMC peut être considéré comme un commutateur qui interconnecte les interfaces système (dans la terminologie de la spécification - Pontage):

  • Série ↔ IPMB
  • Interface système série ↔
  • LAN ↔ IPMB
  • LAN Interface Interface système
  • Série Bus Bus de gestion PCI
  • LAN Bus Bus de gestion PCI
  • Autres combinaisons, y compris Serial ↔ LAN

Lorsqu'il est délivré via diverses interfaces d'architecture, l'ensemble de base des champs est complété par des numéros de canal et des trames. Par exemple, le protocole IPMB ajoute des champs d'adresse et des champs pour vérifier l'intégrité des données transmises, et le LAN encapsule les commandes IPMI dans des paquets UDP / IP.

Interfaces d'accès à distance


Dans la version initiale d'IPMI, la console distante était connectée au module BMC via une interface série (interface série). La spécification IPMI v2.0 est basée sur l'utilisation d'une interface réseau (interface LAN).

L'interface LAN est fournie via un port réseau BMC dédié avec son adresse IP. Lors de la transmission de messages IPMI via LAN, il y a plusieurs étapes d'encapsulation:

  • Les messages IPMI sont générés dans des paquets de session IPMI (plus loin dans l'article, nous examinerons de plus près la formation de la session IPMI)
  • Les paquets de session IPMI sont encapsulés à l'aide de RMCP (Remote Management Control Protocol)
  • Les paquets RMCP se forment dans les datagrammes UDP
  • Des trames Ethernet sont ajoutées


L'interface série pour connecter une console distante à BMC n'est plus utilisée, mais elle est nécessaire pour implémenter deux fonctions:

  • Partage de port série
  • Série sur LAN (SoL)

Le partage de port série est la possibilité d'utiliser un connecteur série commun entre les BMC série et un système géré. En général, le partage de port série est utilisé pour implémenter la redirection de console du BIOS, c'est-à-dire la redirection de la console du BIOS vers le module BMC.

La connexion série sur LAN est nécessaire pour interagir avec les composants du système qui ne comprennent qu'une interface de communication série. Vous pouvez également envoyer des commandes de la console du serveur directement aux périphériques du serveur (puces, cartes, disques, etc.). SoL est implémenté pour fonctionner en conjonction avec la fonction de partage de port série.

Session et authentification


Pour le LAN et l'interface série, le début de la transmission des messages IPMI est précédé de l'établissement d'une session au cours de laquelle des paquets de données de session IPMI sont générés.

L'établissement de session est l'authentification d'un utilisateur spécifique. La session doit être activée avant d'envoyer des messages IPMI selon l'algorithme suivant:


  1. La console distante demande des données d'authentification à BMC
  2. Le BMC envoie une réponse sur les types d'authentification pris en charge (aucun, mot de passe, algorithmes MD2 et MD5, etc.)
  3. La console distante envoie une commande sur le type d'authentification sélectionné et envoie la connexion utilisateur
  4. Si l'utilisateur dispose de privilèges d'accès au canal, le contrôleur BMC envoie une réponse contenant l'ID de session. Grâce à l'attribution d'ID, plusieurs sessions peuvent fonctionner simultanément sur un canal (selon les exigences du cahier des charges - au moins quatre sessions simultanées)
  5. La console distante envoie une demande d'activation de session. La demande contient un ID de session et des informations d'authentification (nom d'utilisateur, mot de passe, clés - dépend du type d'authentification sélectionné)
  6. BMC vérifie les informations utilisateur, approuve l'ID de session et envoie une réponse d'activation

Les sessions sont automatiquement interrompues si aucune action n'est effectuée pendant l'intervalle spécifié ou si la connexion est déconnectée.

L'accès au contrôleur BMC peut être bloqué en envoyant plusieurs demandes d'activation de session en même temps, puis toutes les ressources seront utilisées pour suivre les sessions qui nécessitent une activation. Pour éviter une éventuelle attaque, il est recommandé d'utiliser l'algorithme LRU (Last récemment utilisé) dans l'implémentation BMC. L'algorithme affirme un ID de session pour la demande d'activation de session la plus ancienne. Par exemple, une console distante est lancée via un navigateur dans une session noVNC. Si vous ouvrez plusieurs onglets avec des sessions en cours, la saisie de texte sera disponible dans le premier onglet ouvert.

Lorsque IPMI devient indisponible


IPMI aide à restaurer la santé du serveur en cas de panne. Cependant, il peut arriver que le système de télécommande devienne indisponible. Les dysfonctionnements IPMI peuvent être divisés en quatre catégories:

  • Au niveau du réseau. Ports cassés, équipement non fonctionnel, défaut de câble, paire torsadée mal sertie
  • Au niveau logiciel. Bogue système, blocage du module BMC, besoin de mettre à jour le micrologiciel du module
  • Au niveau matériel. Surchauffe, défaillance des composants critiques (mémoire, processeur), défauts d'architecture système
  • Au niveau nutritionnel. Panne de courant du BMC ou problèmes d'alimentation du serveur

Ces facteurs affectent à la fois le fonctionnement d'IPMI et le serveur lui-même. Le module BMC est une puce indépendante du serveur, et une défaillance de ce microcontrôleur indique une défaillance du serveur dans 90% des cas.

IPMI en pratique


Vous pouvez gérer le serveur via IPMI via un navigateur Web, des utilitaires fournis par les fabricants et des utilitaires open source.

Chaque implémentation IPMI possède une interface Web, mais le principe d'accès reste le même:

  1. Saisissez l'adresse IP du port BMC dans la barre d'adresse
  2. Saisissez le nom d'utilisateur et le mot de passe. Parfois, ces informations sont indiquées directement sur l'équipement.

Chez Selectel, nous travaillons avec des modules IPMI d'Intel, Asus et Supermicro. À titre d'exemple, regardez l'interface Web de Supermicro:


Les fonctionnalités de l'interface Web sont également implémentées dans l'utilitaire graphique Supermicro IPMIView:


Pour gérer l'équipement via la console Linux, l'utilitaire correspondant est installé (par exemple, Ipmitool pour la gestion locale et à distance ou IPMICFG pour local). Ensuite, à l'aide des commandes de la console, un périphérique IPMI est ajouté et le contrôleur BMC est configuré.


Les clients Selectel ont IPMI disponible pour les configurations de serveur dédiées et personnalisées . IPMI est implémenté comme une console KVM, qui s'exécute dans une session noVNC via le panneau de commande . Pour ce faire, dans la carte contenant les informations sur le serveur, cliquez sur l'icône de la console dans le coin supérieur droit:


La console s'ouvre dans le navigateur et s'adapte à la taille de l'écran. Si vous le souhaitez, la console peut être utilisée même via un téléphone ou une tablette.

La session est interrompue si vous quittez le panneau.


Conclusion


IPMI est un composant entièrement autonome de la plate-forme serveur, qui ne dépend pas du système d'exploitation, du BIOS ou du processeur du serveur.

Grâce à IPMI, le coût de maintenance des systèmes serveurs est réduit et la vie des administrateurs système devient plus simple. Une présence permanente à proximité de l'équipement n'est pas nécessaire - son travail est contrôlé à distance sur le réseau.

Dans cet article, nous avons couvert les composants de base d'IPMI. Cependant, les détails de la technologie sont vastes. Les développeurs talentueux, s'appuyant sur la spécification, peuvent créer leur équipement IPMI et leurs outils open source, éliminant simultanément les lacunes de la spécification actuelle et ouvrant de nouvelles possibilités de contrôle à distance.

Matériaux utilisés dans l'article:

Spécification IPMI v2.0
Livres blancs Supermicro

Source: https://habr.com/ru/post/fr439834/


All Articles