Wie konfiguriere ich UPS, um die Server in der richtigen Reihenfolge neu zu starten?

12

Hier haben wir einige Server und fast jeder von ihnen hat eine dedizierte USV. Zwischen ihnen bestehen Abhängigkeiten, so dass sie in der richtigen Reihenfolge eingeschaltet werden müssen. Letztendlich treten schwerwiegende Probleme mit der Stromversorgung auf, sodass die Server heruntergefahren und nach Wiederherstellung der Stromversorgung in zufälliger Reihenfolge neu gestartet werden. Es ist kein Problem, wenn die Server während eines Stromausfalls ausgeschaltet wurden. Es ist wichtig, dass sie ohne menschliches Eingreifen ordnungsgemäß funktionieren, sobald die Stromversorgung wiederhergestellt ist.

Unsere USVs sind recht billig und der einzige Konfigurationsparameter, der für mein Ziel nützlich ist, ist power the load xx seconds after power is restored. Theoretisch kann ich die Reihenfolge der Serverneustarts festlegen, aber ich bin nicht sicher, dass sich die USV wie erwartet verhält.

Ist es der richtige Weg?
Gibt die USV auf hoher Ebene andere Optionen zur Behebung der Neustartsequenz an?
Eine letzte Anmerkung: meine Ups liegen im Bereich von 1000 - 2200 VA

Filippo
quelle
1
Dies ist eines der schönen Dinge, die angeboten werden systemd- die Fähigkeit, richtige Abhängigkeiten im Startprozess zu definieren. Warten Sie, bis Service X verfügbar ist, bevor Sie versuchen, Service Y zu starten.
MSalters,
1
@MSalters AFAIK systemd Dependency Management funktioniert nur, wenn die Einheiten von derselben systemdInstanz gehandhabt werden und nicht für Dienste, die auf völlig anderen Servern ausgeführt werden ...
HBruijn
1
@HBruijn: Sozusagen funktionieren Netzwerk-Mounts beispielsweise über mehrere Server hinweg. Das heißt, wenn server1 ein Dateisystem bereitstellt, das von server2 gehostet wird, werden die von der Bereitstellung abhängigen Dienste von serve1 angehalten, bis server2 diese Dienste gestartet hat. Und IIRC Sie können auch Server auf DHCP warten lassen (fragen Sie mich nicht, warum ein Server DHCP verwendet, aber es wurde in einer Antwort erwähnt)
MSalters

Antworten:

25

Die Standardantwort dafür lautet "überhaupt nicht". Korrigieren Sie die Software, um Neustarts in zufälliger Reihenfolge durchzuführen. Wenn Sie wirklich SOME-Server benötigen, um zuerst zu starten (Beispiel: Active Directory), platzieren Sie diese auf USVs, die möglicherweise eine Menge länger überleben. Ein Atom-basierter Server mit geringem Stromverbrauch ist als Active Directory-Controller ausreichend und überlebt einen Tag mit einem kleinen USV.

Gibt die USV auf hoher Ebene andere Optionen zur Behebung der Neustartsequenz an?

Nein. Ich würde sagen, es wird allgemein davon ausgegangen, dass Programmierer kompetent genug sind, um das Problem richtig zu umgehen.

Was Sie tun KÖNNTEN, ist:

  • Lassen Sie Server "zufällig" starten. Mit Ausnahme von DHCP / Active Directory gibt es nichts, das wirklich eine Reihenfolge verlangt, die nicht repariert werden kann.
  • Lassen Sie einen Steuerungsserver nach einiger Zeit (5 Minuten) die Dienste auf den verschiedenen Computern in der richtigen Reihenfolge starten.

Ich würde sagen, dass diese Art der Einrichtung viel häufiger ist. Ich würde jede Software, die von REQUIRES Server in einer bestimmten Reihenfolge gestartet wird (außerhalb der reinen Infrastruktur), als defekt und für das Geschäft nicht geeignet bezeichnen.

Nur als Hinweis: Unser eigenes Setup ist eine kostengünstige 20-kVA-USV (kostengünstig, weil wir eine verwendet haben) für die Server, mit einer untergeordneten 2000-VA-USV für eine Maschine, die als "Root" des Netzwerks (und Backup-Maschine) dient. Slaved bedeutet, dass sich das USV hinter dem großen befindet. Daher wird nur dann auf Batterie umgeschaltet, wenn das große (das zwischen einer halben und acht Stunden dauert, je nachdem, wie viel von unserem Rechennetz online ist) in den Terminal-Shutdown geht.

TomTom
quelle
2
Ich denke, das ist manchmal leichter gesagt als getan (AD ist, wie Sie sagen, ein offensichtliches Beispiel), aber ich stimme dem zu. Die richtige Lösung besteht darin, Abhängigkeiten wie die Startreihenfolge von Servern oder Diensten zu beseitigen. Wenn nichts anderes möglich ist, sollte es zum Beispiel in einer Web-App möglich sein, Code zu schreiben, der besagt: "Wenn ich keine Verbindung zu meinem Back-End herstellen kann," schlafe "und versuche es später erneut, anstatt schrecklich zusammenzustürzen".
Rob Moir
Das Problem mit AD ist nicht einmal AD - es ist meist IPv4-DHCP, das nicht für Computer vorbereitet ist, die vor dem DHCP-Server online sind. IPV6 behandelt dies;)
TomTom
Das ist richtig. IPv4 ist ein Schmerz ... und es werden immer noch Leute gefragt, warum wir uns mit "diesem neumodischen IPv6-Müll" befassen müssen.
Rob Moir
1
"Es wird allgemein angenommen, dass Programmierer kompetent genug sind, um das Problem zu umgehen" - Sie müssen nicht viel programmieren! Nein, im Ernst, es gibt eine Menge Gründe, warum ein System in einer bestimmten Reihenfolge angesprochen werden muss. Ja, Software sollte "ordnungsgemäß fehlschlagen" und unterbrochene Verbindungen erneut versuchen, dies ist jedoch nicht immer möglich. Soweit ich mich erinnere, haben einige der netten PDUs die Möglichkeit, einzelne Ports zu starten / zu stoppen, sodass dort möglicherweise etwas unternommen werden könnte.
SnakeDoc
1
Ich musste nach "USV" suchen und fand "unbemanntes Landfahrzeug". Ich weiß, dass das falsch ist, aber ich möchte, dass es richtig ist.
Braiam
14

Managed Power Distributions Units (statt der USV) unterstützen häufig benutzerdefinierte Verzögerungen bei der Aktivierung einzelner Steckdosen nach Wiederaufnahme der Stromversorgung.

Dies dient in der Regel dazu, das Auslösen von Leistungsschaltern zu verhindern, wenn ein Schrank voller Systeme unmittelbar nach Wiederherstellung der Stromversorgung gleichzeitig eingeschaltet wird. Dies kann jedoch auch verwendet werden, um die Startreihenfolge Ihrer Systemabhängigkeiten beizubehalten.

HBruijn
quelle
Ja, richtig. Dies ist eine erweiterte Funktionalität, und es wird nicht vorausgesetzt, dass das USV tatsächlich mit den Servern verbunden ist. Es werden jedoch Racks mit Strom versorgt, die dann die PDUs verwenden, um die Details zu verarbeiten.
TomTom
6

Ich hatte genau dieses Problem. Der einzige Unterschied besteht darin, dass wir in robuste APC-Netzteile für den Rack- Einbau (zum Beispiel APC SmartUPS 3000 ) investiert haben . Mit der APC PowerChute-Software zum Herunterfahren des Netzwerks ( PowerChute Network Shutdown-Software) kann ich Server in einer bestimmten Reihenfolge herunterfahren und hochfahren . Ein weiteres nützliches Feature der Software bestand darin, die Server in letzter Minute herunterzufahren, dh zu berechnen, wie viel Batteriestrom die APC-Einheiten noch übrig hatten, und die Server mit gerade genügend Zeit herunterzufahren, um sie ordnungsgemäß herunterzufahren, anstatt sie nur auszuschalten.

Die Software ist ... nicht benutzerfreundlich, aber es ist nicht schwierig, wenn Sie sich etwas Zeit nehmen, um es herauszufinden. Wenn Sie mehr in Ihre Infrastruktur investieren möchten, ist dies auf jeden Fall der richtige Weg.

Winski Tech
quelle
1
Wir haben auch Apc Smart Ups, einige von ihnen sind relativ alt und haben vielleicht schwache Batterien. Es ist schwierig, einige Tests mit ihnen durchzuführen, da sie in Produktion sind. Abgesehen davon, dass wir keine ungewöhnliche Last haben, meine ich eine Last, die ein plötzliches Herunterfahren problemlos ertragen kann. Das heißt, jedes Mal, wenn ich einen Stromausfall simulierte, verhielt sich die USV anders als erwartet, könnte dies an einer Fehlkonfiguration liegen, aber ich habe das Gefühl, dass diese USV nicht sehr zuverlässig sind.
Filippo
@Filippo sicherlich YMMV, aber ich habe eine Mischung aus SmartUPS 3000 und 3000XLMs an mehreren Standorten, die die PowerChute-Software für die nächsten 3 Jahre verwenden. Nachdem ich die Software herausgefunden habe, gibt es sicherlich eine Lernkurve und einige Tests sind erforderlich. Es war ziemlich solide.
Winski Tech
2

Es hört sich so an, als wären die USV-Einheiten kostengünstig und könnten nach Wiederherstellung der Stromversorgung nicht für eine bestimmte Wartezeit beim Einschalten des Ausgangs konfiguriert werden (dies gilt für einige Geräte höherer Leistungsklassen). Um die gleiche Funktionalität zu erhalten, müssen Sie einen bestimmten Host auswählen, der immer sofort eingeschaltet wird (möglicherweise kann jedes System jederzeit gestartet werden) und alle anderen Server im ausgeschalteten Zustand belassen (in BIOS konfiguriert, um die Stromversorgung wiederherzustellen) aus, wenn Wechselstrom angelegt wird, und um das Wake-On-Lan-Zauberpaket einzuschalten, wenn Sie dazu aufgefordert werden). Führen Sie dann auf dem Haupthost, der startet, ein Skript / Dienstprogramm aus, um die Übertragung des WOL-Magic-Pakets an jeden Host zeitlich zu steuern.

Jeff Meden
quelle