Comment configurer UPS pour redémarrer les serveurs dans le bon ordre?

12

Ici, nous avons quelques serveurs et presque chacun d'eux a un onduleur dédié. Il existe des dépendances entre elles, elles doivent donc être activées dans le bon ordre. En fin de compte, nous rencontrons de graves problèmes d'alimentation, de sorte que les serveurs sont arrêtés puis redémarrés dans un ordre aléatoire lorsque l'alimentation est rétablie. Ce n'est pas un problème si les serveurs ont été éteints pendant une panne de courant, il est important qu'ils fonctionnent correctement sans aucune intervention humaine une fois l'alimentation rétablie.

Nos UPS sont assez bon marché et le seul paramètre de configuration utile pour mon objectif est power the load xx seconds after power is restored. En théorie, en mettant les bons retards sur chaque onduleur, je peux fixer l'ordre de redémarrage du serveur, mais je ne pense pas que l'onduleur se comportera comme prévu.

Est-ce la bonne façon de procéder?
L'onduleur de haut niveau offre-t-il d'autres options pour fixer la séquence de redémarrage?
Une dernière remarque: mes Ups sont dans la plage de 1000 à 2200 VA

Filippo
la source
1
C'est l'une des belles choses offertes par systemd- la possibilité de définir les dépendances appropriées dans le processus de démarrage. Attendez que le service X soit disponible avant d'essayer de démarrer le service Y.
MSalters
1
@MSalters AFAIK La gestion des dépendances systemd ne fonctionne que lorsque les unités sont gérées par la même systemdinstance et non pour des services s'exécutant sur des serveurs complètement différents ...
HBruijn
1
@HBruijn: en quelque sorte, les montages réseau fonctionnent par exemple sur plusieurs serveurs. C'est-à-dire que si server1 monte un système de fichiers hébergé par server2, alors les services serve1 qui dépendent du montage s'arrêteront jusqu'à ce que server2 ait démarré ces services. Et l'IIRC, vous pouvez également demander aux serveurs d'attendre DHCP (ne me demandez pas pourquoi un serveur utilise DHCP, mais cela a été mentionné dans une réponse)
MSalters

Réponses:

25

La réponse standard est "pas du tout". Correction du logiciel pour gérer les redémarrages dans un ordre aléatoire. Si vous avez vraiment besoin de QUELQUES serveurs pour démarrer en premier (exemple: Active Directory) mettez-les sur des USV qui survivent peut-être BEAUCOUP plus longtemps. Un serveur basé sur un atome de faible puissance est assez bon en tant que contrôleur Active Directory et survivra une journée sur un petit USV.

L'onduleur de haut niveau offre-t-il d'autres options pour fixer la séquence de redémarrage?

Non. Je dirais qu'il est généralement admis que les programmeurs sont suffisamment compétents pour contourner correctement le problème.

Ce que vous POUVEZ faire, c'est:

  • Demandez aux serveurs de démarrer "au hasard". À l'exception de DHCP / Active Directory, rien ne demande vraiment une commande qui ne peut pas être corrigée.
  • Demandez à un serveur de contrôle après un certain temps (5 minutes) de démarrer les services sur les différentes machines dans le bon ordre.

Je dirais que ce type de configuration est beaucoup plus courant. J'appellerais tout logiciel nécessitant le démarrage du serveur dans un ordre particulier (en dehors de l'infrastructure pure) comme étant défectueux et impropre à l'entreprise.

Juste comme note: notre propre configuration est un USV 20kva à faible coût (faible coût parce que nous en avons utilisé un) pour les serveurs, avec un USV 2000VA asservi pour une machine servant de "racine" du réseau (et machine de sauvegarde). Asservi signifie que l'USV est derrière le gros - il ne passe donc à la batterie que lorsque le gros (qui dure entre une demi-heure et 8 heures selon la quantité de notre grille de calcul en ligne) entre en arrêt de terminal.

TomTom
la source
2
Je pense que c'est parfois plus facile à dire qu'à faire (AD, comme vous le dites, est un exemple évident) mais je suis d'accord. La bonne solution consiste à éliminer les dépendances pour des choses comme l'ordre de démarrage des serveurs ou des services. Si rien d'autre, il devrait être possible sur une application web, par exemple, d'écrire du code qui dit "Si je ne peux pas me connecter à mon back-end," dormir "et réessayer plus tard plutôt que de planter horriblement".
Rob Moir
Le problème avec AD n'est même pas AD - c'est surtout DHCP IPv4 qui n'est pas préparé pour les ordinateurs en ligne avant le serveur DHCP. Ipv6 gère cela;)
TomTom
C'est vrai. IPv4 est une douleur ... et je reçois toujours des gens ici qui me demandent pourquoi nous devons nous préoccuper de "ces déchets IPv6 de nouvelle génération".
Rob Moir
1
"Il est généralement admis que les programmeurs sont suffisamment compétents pour contourner le problème" - vous ne devez pas faire beaucoup de programmation! Non, très sérieusement, il y a énormément de raisons pour lesquelles un système doit être amené dans un ordre spécifique. Oui, le logiciel devrait "échouer sans problème" et réessayer les connexions qui sont rompues, mais ce n'est pas toujours possible. D'après ce que je me souviens, certaines des belles PDU ont la capacité de démarrer / arrêter des ports individuels, donc peut-être que quelque chose pourrait être fait là-bas.
SnakeDoc
1
J'ai dû rechercher "USV" et j'ai trouvé "Véhicule de surface sans pilote". Je sais que c'est faux, mais je veux que ce soit juste.
Braiam
14

Les unités de distribution d'alimentation gérée (plutôt que l'onduleur) prennent souvent en charge des délais personnalisés pour activer les prises individuelles après la reprise de l'alimentation.

Il s'agit généralement d'empêcher les disjoncteurs de se déclencher lorsqu'une armoire remplie de systèmes se met sous tension en même temps immédiatement après la restauration de l'alimentation, mais cela peut également être utilisé pour préserver l'ordre de démarrage de vos dépendances système.

HBruijn
la source
Ouais, c'est ça. Il s'agit d'une fonctionnalité avancée et il n'est pas supposé que l'USV est réellement connecté aux serveurs - mais il alimente les racks qui utilisent ensuite les PDU pour gérer les détails.
TomTom
6

J'avais ce problème précis. La seule différence étant que nous avons investi dans des unités d'alimentation APC robustes montées en rack (par exemple APC SmartUPS 3000 ). Avec le logiciel d'arrêt de réseau APC PowerChute (logiciel d'arrêt de réseau PowerChute) , je suis capable d'arrêter et de faire monter des serveurs dans un ordre spécifique. Une autre caractéristique pratique du logiciel était de configurer les serveurs pour qu'ils s'arrêtent à la toute dernière minute, c'est-à-dire de calculer la puissance de batterie restante des unités APC et d'arrêter les serveurs avec juste assez de temps pour qu'ils s'arrêtent correctement au lieu de simplement s'éteindre.

Le logiciel n'est ... pas convivial mais ce n'est rien de difficile si vous prenez le temps de le comprendre. Si vous souhaitez investir davantage dans votre infrastructure, c'est certainement la voie à suivre.

Winski Tech
la source
1
Nous avons également Apc Smart Ups, certains d'entre eux sont relativement vieux et ont peut-être des batteries faibles. Il est difficile de faire des tests sur eux car ils sont en production. En plus de cela, il nous manque une charge anormale, je veux dire une charge qui peut supporter une panne soudaine sans problème. Cela dit, chaque fois que je simulais une panne de courant, l'onduleur se comportait différemment de ce qui était attendu, cela pouvait être dû à une mauvaise configuration, mais mon sentiment est que ces onduleurs ne sont pas très fiables.
Filippo
@Filippo certes YMMV mais j'ai un mélange de SmartUPS 3000 et 3000XLM sur plusieurs sites en utilisant le logiciel PowerChute pendant 3 ans et après avoir compris le logiciel, il y a certainement une courbe d'apprentissage et des tests sont nécessaires, c'est assez solide.
Winski Tech
2

Il semble que les onduleurs soient peu coûteux et ne puissent pas être configurés pour un temps d'attente de sortie spécifique après le rétablissement du courant (certaines unités haut de gamme le sont). Pour obtenir les mêmes fonctionnalités, vous devez choisir un hôte spécifique pour qu'il s'allume toujours immédiatement (peut-être le système autorisé à démarrer à tout moment) et laisser tous les autres serveurs hors tension (configurés dans le BIOS pour revenir au pouvoir éteint lorsque le courant alternatif est appliqué, et pour honorer le paquet magique Wake On Lan à la mise sous tension lorsqu'il est invité à le faire). Ensuite, sur l'hôte principal qui démarre, exécutez un script / utilitaire pour chronométrer la transmission du paquet magique WOL à chaque hôte.

Jeff Meden
la source