Wie kann ich Clusterknoten bei geringer Last herunterfahren (ausschalten)?


7

Ich entwickle Software für das Energieberatungsgeschäft und bei der Überwachung des Energieverbrauchs in Rechenzentren habe ich festgestellt, dass das typische "Muster" der elektrischen Last eines Rechenzentrums nur eine flache Linie ist, da alle Geräte rund um die Uhr laufen. Wenn Sie dies mit dem tatsächlichen Nutzungsmuster (Netzwerklast, CPU-Auslastung usw.) vergleichen, das wir durchgeführt haben, haben Sie regelmäßig lange Strecken mit geringer Auslastung, aber der vollen verfügbaren Kapazität.

Diese Muster sind in vielen Fällen sehr vorhersehbar. Um Energie zu sparen, ist es hilfreich, einen Teil der Geräte (Server, Switches, Speicher) regelmäßig oder unter Bedingungen mit geringer Last auszuschalten. Ich kann mir jedoch einige Aspekte vorstellen, die betrachtet werden müssten, einschließlich

  • Umgang mit Spitzenlasten oder plötzlichen Spitzen
  • Datenkonsistenz zwischen Knoten
  • lange Startzeiten (und möglicherweise Synchronisationszeiten) im Vergleich zur durchschnittlichen Betriebszeit eines Knotens

Es gibt wahrscheinlich mehr. Gibt es Software, die ein solches Szenario handhabt, und worauf sollte man sonst noch achten? Ist dies ein praktikabler Vorschlag?

Für meine Zwecke würde ein Cluster nicht unbedingt bedeuten, Computer auf Betriebssystemebene zu clustern. Identische Hosts, die Anforderungen über einen Load Balancer empfangen (dh Clustering auf Anwendungsebene), würden ebenfalls zählen. Ich bin mir nicht sicher, wie MySQL-Cluster oder ähnliches funktionieren, aber ich würde diese wahrscheinlich auch zählen.

Ich suche Rat für jedes Betriebssystem.

Siehe auch meinen Beitrag zur Energieeffizienz bei Stack Overflow, in dem diese Frage aufgeworfen wurde.


Es scheint, dass Ihr Beitrag auf SO gelöscht wurde ...
Steve Schnepp

Was ich sehen möchte, sind praktische Beispiele aus der Praxis, wie eine Neuplanung in verschiedenen Batch-Job-Systemen durchgeführt werden kann, nachdem sich die Anzahl der Serverknoten geändert hat.
Conny

Unterstützen Sie meinen Website-Vorschlag unter area51.stackexchange.com/proposals/15640/… , um eine großartige Website für alle Fragen zur Energieeffizienz zu erstellen.
Hanno Fietz

Antworten:


1

Leistung

Verwenden Sie Switched PDUs, damit Sie Server und Out-of-Band- Geräte ein- und ausschalten können. Dies ist betriebssystem- und geräteunabhängig, was die Konfiguration und Logik zum Ein- und Ausschalten erheblich vereinfacht. Wenn Ihre Server alle über netzwerkfähige IPMI-Schnittstellen verfügen, können Sie diese stattdessen verwenden. Ich würde davon abraten, Dinge mit übergeordneten Dingen wie Wake-on-LAN ein- und auszuschalten.

Einschalt- / Ausschaltlogik

Dies kann viele Formen annehmen. Einige Clustering-Software (wie Moab ) hat eine integrierte Lösung für dieses Problem. Andernfalls können Sie ein Skript mit dem folgenden Pseudocode schreiben:

  1. Überprüfen Sie die Gesamtlast des Clusters
  2. Wenn die Clusterlast> Schwelle1 ist, aktivieren Sie einige Knoten
  3. Wenn die Clusterlast <Schwelle2 ist, deaktivieren Sie einige Knoten

Legen Sie das in cron und lassen Sie es jede halbe Stunde laufen.

Clustering-Software-Stack

Natürlich müssen Sie sicherstellen, dass Ihr Clustering-Software-Stack mit diesen Geräten umgehen kann, die ständig auf und ab gehen. Führen Sie hier viele Tests durch, berücksichtigen Sie unklare Timing-Probleme (das Booten braucht Zeit) und alle Rennbedingungen, die sich in der von Ihnen verwendeten Power-Up / Down-Logik einschleichen.


Ich wollte nur hinzufügen: Sie müssen die Arbeit auf Knoten lenken, die bereits geladen sind, wenn Sie Maschinen überhaupt ausschalten möchten. Stellen Sie sicher, dass Sie die mit der Energieverwaltung verbundene Arbeit erledigt haben, z. B. so, als wäre Ihr Server ein Laptop :)
James

4

VMware

Die neueste Version ihres Unternehmensprodukts, VSphere 4, kann Hosts, die nicht zur Erfüllung der Kapazität benötigt werden, ausschalten und bei Bedarf aktivieren, indem die virtuellen Maschinen in Echtzeit verteilt werden. Kombinieren Sie dies mit den Energie- / Energieeinsparungen, die Sie durch die Konsolidierung Ihrer Hardware auf einer virtualisierten Plattform erzielen, und Sie können erhebliche Energieeinsparungen erzielen.


Wie werden die physischen Maschinen eingeschaltet?
Kedare

@Kedare muss sie nicht ausschalten. Wenn Sie einen VMware-Cluster (oder einen anderen virt tech) Cluster verwenden, können Ihre VMs / Instanzen automatisch auf einen der Knoten / Hosts der Clustermitglieder verschoben werden. Sie können einige Knoten von Clustern oder mit einem Skript manuell (IPMI, WOL, Switched PDUs, ...) ausschalten.
Alex

3

Dies wurde erst heute auf Planet Ubuntu erwähnt. Den Beitrag finden Sie hier . Es geht um die Entwicklung einer praktischen Lösung zum bedarfsgerechten Hoch- und Herunterfahren von Maschinen in einer Cloud mithilfe von PowerNap .


Das sieht gut aus.
Hayalci

2

Diese Frage hat eine Million Antworten und die meisten davon sind nicht richtig für Sie.

Es ist betriebssystemspezifisch, hardwarespezifisch und lastspezifisch.

Wenn diese Lösung reagieren soll, dh. Wenn Sie den Stromverbrauch schnell reduzieren und schnell zurückkehren möchten, sollten Sie sich Hardware mit ACPI-Sleep-Funktionalität ansehen, anstatt sie herunterzufahren. Wie oben erwähnt, funktioniert Wakeonlan nur dann ordnungsgemäß, wenn sich die Hardware im Ruhezustand befindet.

Der zweite Teil dieses Problems ist die Kontrolle. Wann muss ein System in den Ruhezustand versetzt und wann muss es wieder aktiviert werden? Ohne zu wissen, wie Ihr Cluster die Arbeitslast verwaltet, erhalten Sie keine Antwort darauf.

Persönlich betreibe ich eine Webfarm, die einen Load Balancer vor sich hat. Der Datenverkehr wird bis zu einem bestimmten Level an zwei Hosts geleitet und anschließend wird der Rest umgangen. Wenn diese anderen Server eine Stunde lang oder nach 18:00 Uhr keine Aktivität anzeigen, werden sie in einen Ruhezustand versetzt. Wenn die snmp-Skripte anzeigen, dass das Benutzervolumen auf dem Load Balancer hochgefahren wird, wird diesen schlafenden Hosts ein Wakeonlan-Magic-Paket gesendet, und der Cluster wird wieder voll funktionsfähig. Es könnte feinkörniger sein, aber ich kann wirklich nur im Leben experimentieren, also waren es kleine Bewegungen, auf die ich zuversichtlich bin.

Prost M.


0

Nun, für Server kann der Befehl SHUTDOWN.EXE verwendet werden, um eine Windows-Box remote herunterzufahren. Dasselbe könnte unter Unix mit einem Telnet / SSH-Skript leicht gemacht werden.

Das größere Problem wäre, wie man sie wieder hochfährt. Dafür benötigen Sie Wake-on-LAN oder ähnliches.

Das Schwierige dabei ist, zu überprüfen, ob die Maschinen, die Sie herunterfahren, tatsächlich etwas Wichtiges tun. Wie dieser Cron-Job, bei dem niemand wirklich sicher war, wohin er gehen sollte, also haben sie ihn einfach auf einen der Cluster-Webserver gestellt. Jetzt schalten Sie die Maschine aus und der Job läuft nicht mehr so, wie er sollte.

Wenn die Umgebung jedoch streng kontrolliert wird und Sie genau wissen, was jede Maschine tut, ist dies sehr sinnvoll.


0

Das Ein- und Ausschalten von Computern aus der Ferne sollte heute eigentlich kein Problem sein , da praktisch die gesamte Serverhardware IPMI implementiert und der Einstieg in die Tools recht einfach ist .

WoL ist in anderen Anwendungsfällen gut, z. B. wenn Ihr Desktop-Computer in den Ruhezustand versetzt wurde und Sie möchten, dass er aktiviert wird, bevor die Sicherungsjobs ausgeführt werden.

Es gibt keine Standardschnittstelle für "Sleep-on-LAN". IPMI wurde entwickelt, um diese Art von Problemen zu lösen und bietet Ihnen somit mehr Konsistenz und bessere Kontrolle.

( Update : Beachten Sie, dass Sie kann wahrscheinlich WOL verwenden , um aufzuwachen , falls Sie gebrauchte dm-suspendieren . Ein Nickerchen zu machen , statt heruntergefahren zu haben ... Könnte für einen interessanten Kompromiss machen)


(Hinweis für die Suchmaschine: Ich hätte früher von diesem Thread erfahren, wenn er einen Titel wie " Automatisiertes, lastadaptives Aus- und Wiedereinschalten von Clusterknoten " gehabt hätte. )


0

Suns SGE (Sun Grid Engine) ist ein Cluster-Scheduling- / Batch-Queuing-System, das in seiner neuesten Version das Energiesparen unterstützt, indem Knoten ausgeschaltet werden, die derzeit gemäß bestimmten Warteschlangen- / Arbeitslastspezifikationen nicht benötigt werden. Beachten Sie, dass dies ein HPC-artiges Spezialsystem ist. Das Ausschalten bestimmter Teile eines Rechenzentrums kann ein großes Abhängigkeitsproblem sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.