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.
Antworten:
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:
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.
quelle
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.
quelle
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 .
quelle
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.
quelle
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.
quelle
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. )
quelle
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.
quelle