DE112015004564B4 - Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung - Google Patents

Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung Download PDF

Info

Publication number
DE112015004564B4
DE112015004564B4 DE112015004564.3T DE112015004564T DE112015004564B4 DE 112015004564 B4 DE112015004564 B4 DE 112015004564B4 DE 112015004564 T DE112015004564 T DE 112015004564T DE 112015004564 B4 DE112015004564 B4 DE 112015004564B4
Authority
DE
Germany
Prior art keywords
data processing
logically partitioned
partitioned data
processor
pool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112015004564.3T
Other languages
English (en)
Other versions
DE112015004564T5 (de
Inventor
Curtis Shannon Eide
Kevin Wendzel
Aditya Kumar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112015004564T5 publication Critical patent/DE112015004564T5/de
Application granted granted Critical
Publication of DE112015004564B4 publication Critical patent/DE112015004564B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

Ein Verfahren, System und Programmprodukt verwenden eine ereignisgesteuerte Reoptimierung zum Neuzuordnen von einer oder mehreren logischen Partitionen in einem Pool von logisch partitionierten Datenverarbeitungssystemen in einer logisch partitionierten Datenverarbeitungsumgebung in Reaktion auf ein Erkennen eines Systemereignisses, das die kollektiven Ressourcenanforderungen von logischen Partitionen wahrscheinlich erhöht oder verringert, die sich in einer logisch partitionierten Datenverarbeitungsumgebung befinden. Die Reoptimierung kann zum Konsolidieren von logischen Partitionen auf weniger Prozessorknoten verwendet werden, um das Potenzial für ein Herunterfahren von Hardware-Ressourcen zu verbessern und damit den Energieverbrauch zu verringern.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft allgemein Computer und Computer-Software und insbesondere logisch partitionierte Datenverarbeitungsumgebungen.
  • HINTERGRUND DER ERFINDUNG
  • Die Datenverarbeitungstechnologie hat sich in bemerkenswerter Geschwindigkeit weiterentwickelt, wobei jede nachfolgende Generation von Datenverarbeitungssystemen eine bessere Leistung, Funktionalität und Speicherkapazität aufwies, oft zu geringeren Kosten. Außerdem ist Energieverwaltung in Rechenzentren in den letzten Jahren immer wichtiger geworden, wie an den Energy Star-Richtlinien und dem Konzept von ‚grünen‘ Computersystemen und Rechenzentren deutlich sichtbar wird. Energiekosten und Umweltaspekte sind wichtige Themen, vor allem für Unternehmen mit großen Rechenzentren. Somit können Computer- und Software-Hersteller, die energieeffiziente Systeme und Lösungen produzieren, sich auf dem Markt einen deutlichen Vorteil verschaffen.
  • Techniken zur Energieverwaltung sind oft mit der Überwachung von Arbeitslasten und Umweltfaktoren und dem Verschieben von Arbeitslasten zwischen Datenverarbeitungsressourcen in einem System oder einem Pool von Systemen verbunden, um auf diese Weise einen Vorteil in Bezug auf den Energieverbrauch zu erzielen. Dieser Vorteil kann durch Herunterfahren (entweder durch Einstellen eines geringeren Energiezustands oder komplettes Abschalten) eines Systems oder einer Komponente in einem System oder durch Vermeiden von Leistungsengpässen in dem Rechenzentrum oder durch Vermeiden von Bereichen oder Zeiten mit hohen Energiekosten erzielt werden. Die verlagerten Arbeitslasten sind typischerweise entweder Zuteilungseinheiten, wenn Arbeitslast zwischen Prozessorkernen verschoben wird, um eine Umsetzung durch Prozessor und Arbeitsspeicher zu erleichtern, oder Anwendungen/Jobs, wenn Arbeitslast zwischen Systemen in einem Rechenzentrum verschoben wird.
  • Viele Rechenzentren verwenden eine logische Partitionierung, die es ermöglicht, dass ein Computer zum gleichzeitigen Ausführen von mehreren Betriebsumgebungen oder Betriebssystemen verwendet wird. In einer typischen Ausführungsform kann ein einzelner logisch partitionierter Computer oder ein logisch partitioniertes Datenverarbeitungssystem eine Mehrzahl von Betriebssystemen in einer entsprechenden Mehrzahl von logischen Partitionen (LPARs) ausführen, die auch als virtuelle Maschinen (VMs) bezeichnet werden. Jedes Betriebssystem befindet sich in seiner eigenen logischen Partition, wobei jeder logischen Partition ein Teil eines physischen Prozessors, ein ganzer physischer Prozessor oder mehrere physische Prozessoren von dem Computer zugeordnet wird. Außerdem wird jeder logischen Partition ein Teil des Arbeitsspeichers des Computers zugeordnet. Ein zugrunde liegender Partitionsmanager, der oft als Hypervisor oder als virtueller Maschinen-Monitor (VMM) bezeichnet wird, verwaltet und steuert die logischen Partitionen. Der Hypervisor ist typischerweise ein Teil der System-Firmware und verwaltet die Zuordnung von Ressourcen zu den Betriebssystemen und logischen Partitionen. Daher kann ein logisch partitionierter Computer eine oder mehrere logische Partitionen ausführen und somit die zugrunde liegenden Hardware-Ressourcen virtualisieren, die von den Anwendungen, Betriebssystemen und sonstigem Programm-Code verwendet werden, der für den Betrieb in diesen logischen Partitionen konfiguriert ist.
  • In einem großen Rechenzentrum ist im Allgemeinen eine ausreichende Verarbeitungskapazität vorhanden, um zu ermöglichen, dass logische Partitionen so platziert werden, dass die gesamte Arbeitslast des Rechenzentrums sich nur auf einer Untergruppe der verfügbaren Hardware-Ressourcen in dem Rechenzentrum befindet, wodurch ermöglicht wird, dass einige der Hardware-Ressourcen zum Verringern des Energiegesamtverbrauchs heruntergefahren werden. In Anbetracht der dynamischen Natur vieler Arbeitslasten kann sich die optimale Zuordnung von logischen Partitionen zu verschiedenen Hardware-Ressourcen in einem Rechenzentrum jedoch im Lauf der Zeit ändern und in einigen Fällen ein Eingreifen des Administrators in Bezug auf nicht optimale logische Partitionszuordnungen erfordern. In einigen Fällen ist eine nicht optimale Zuordnung möglicherweise nicht einmal problemlos zu erkennen, was zu einem übermäßigen Energieverbrauch in dem Rechenzentrum und/oder einer geringeren Leistung führt.
  • Die US 8 402 259 B2 beschreibt ein Verfahren zum Beschleunigen einer Aufwachzeit eines Systems, welches ein Bereinigen und Bereitstellen einer Mindestspeichermenge zum Zuweisen, eines Ausführen eines Startvorgangs eines auf dem System gespeicherten Betriebssystems sowie das Bereinigen und Bereitstellen einer zusätzlichen Speichermenge zum Zuweisen parallel zum und nach dem Start-Betrieb des Betriebssystems. Das System kann einen oder mehrere Knoten umfassen, wobei jedem der Knoten eine minimale Knotenressourcenkonfiguration zugeordnet ist, die einer minimalen Anzahl von Prozessoren entspricht, die in einem Knoten enthalten sind und aktiviert werden müssen, um den Knoten zu aktivieren. Das System kann ferner eine oder mehrere Partitionen enthalten, wobei jede Partition mindestens einen Knoten umfasst. Jeder Partition kann eine Priorität in Bezug auf andere Partitionen zugewiesen werden, und die Partitionen können basierend auf den zugewiesenen Prioritäten nacheinander aktiviert werden.
  • Die US 8 745 237 B2 beschreibt ein Verfahren und ein System zum Verwalten mehrerer Warteschlangen eines Netzwerkgeräts, welches einer Hostmaschine in einem virtuellen Maschinensystem zugeordnet ist. Das Netzwerkgerät enthält mehrere dedizierte Warteschlangen und gemeinsam genutzte Warteschlangen, die von mehreren Gästen des virtuellen Maschinensystems für eine Übertragung und/oder einen Empfang von Paketen in einer Datenkommunikation verwendet werden. Ein Hypervisor des virtuellen Maschinensystems verwaltet die Zuordnung der mehreren Warteschlangen zu den mehreren Gästen durch dynamisches Abbilden von Adressen der virtuellen Maschinen auf der Grundlage der Ermittlung einer Belastung der Warteschlangen.
  • Die US 2010 / 0 070 784 A1 beschreibt ein Verfahren zum Reduzieren eines Energieverbrauchs eines Serverclusters von Hostsystemen mit virtuellen Maschinen, die auf den Hostsystemen ausgeführt werden. Das Verfahren umfasst ein Empfehlen, ein Hostsystem einzuschalten, wenn ein Hostsystem vorhanden ist, dessen Auslastung über einer Zielauslastung liegt, und ein Empfehlen, ein Hostsystem auszuschalten, wenn ein Hostsystem vorhanden ist, dessen Auslastung unter der Zielauslastung liegt. Das Empfehlen zum Einschalten des Hostsystems umfasst ein Berechnen einer Auswirkung des Einschaltens auf ein Standby-Hostsystem im Hinblick auf die Reduzierung der Anzahl stark ausgelasteter Hostsysteme im Servercluster. Die Auswirkung des Einschaltens wird berechnet, indem ein Verschieben von virtuellen Maschinen von stark ausgelasteten Hostsystemen auf das Standby-Hostsystem simuliert wird, dessen Einschalten empfohlen wird. Das Empfehlen zum Ausschalten des Hostsystems umfasst ein Berechnen einer Auswirkung des Ausschaltens eines Hostsystems im Hinblick auf die Verringerung der Anzahl weniger ausgelasteten Hostsysteme im Servercluster. Die Auswirkung des Ausschaltens wird berechnet, indem ein Verschieben aller virtuellen Maschinen vom Hostsystem, dessen Ausschalten empfohlen wird, auf weniger ausgelastete Hostsysteme simuliert wird.
  • Die US 2014 / 0 007 124 A1 beschreibt automatisierte Techniken, welche sicherstellen, dass die Leistung einer zentralen Verarbeitungseinheit („CPU“) zu keinem Engpass führt, wenn logische Partitionen von einem System auf ein anderes System oder andere Systeme migriert werden. Die CPU-Ressourcen, die erforderlich sind, um die verfügbare Bandbreite während der Migration vollständig auszunutzen, werden berechnet. Die CPU-Ressourcen des Systems werden dann für die Migration angepasst, was ein Verringern von CPU-Ressourcen, die für die ausgeführten Partitionen garantiert sind, und/oder ein Anpassen von relativen Partitionsvariablengewichte umfassen kann, um die Menge an überschüssiger Kapazität zu begrenzen, die einer Partition zugewiesen werden kann.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren zum Verwalten von Energieverbrauch in einer logisch partitionierten Datenverarbeitungsumgebung mit einer Sammlung von Prozessorknoten, die in einem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet sind, bereitzustellen.
  • Die der Erfindung zugrunde liegende Aufgabe wird jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • Das Verfahren nach Anspruch 1 und das entsprechende System und Computerprogramm wie beansprucht verwenden eine ereignisgesteuerte Reoptimierung zum Neuzuordnen von einer oder mehreren logischen Partitionen in einem Pool von logisch partitionierten Datenverarbeitungssystemen in Reaktion auf ein Erkennen eines Systemereignisses verwenden, das die kollektiven Ressourcenanforderungen von logischen Partitionen wahrscheinlich erhöht oder verringert, die sich in einer logisch partitionierten Datenverarbeitungsumgebung befinden. In einigen Beispielen kann die Reoptimierung beispielsweise zum Konsolidieren von logischen Partitionen auf weniger Prozessorknoten verwendet werden, um das Potenzial für ein Herunterfahren von Hardware-Ressourcen zu verbessern und damit den Energieverbrauch zu verringern.
  • Daher kann der Energieverbrauch konsistent mit einem Aspekt der Erfindung in einer logisch partitionierten Datenverarbeitungsumgebung mit einer Sammlung von Prozessorknoten verwaltet werden, die in einem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet sind. Der Energieverbrauch kann durch Zuordnen einer Mehrzahl von logischen Partitionen zu dem Pool von logisch partitionierten Datenverarbeitungssystemen verwaltet werden, um den Energieverbrauch in der logisch partitionierten Datenverarbeitungsumgebung zu optimieren, nachdem die Mehrzahl von logischen Partitionen zugeordnet wurde, der Pool von logisch partitionierten Datenverarbeitungssystemen autonom auf Systemereignisse überwacht wurde, die Ressourcenanforderungen von logischen Partitionen ändern, die dem Pool von logisch partitionierten Datenverarbeitungssystemen zugeordnet sind, wobei ein erstes Systemereignis erkannt wird, das die Ressourcenanforderungen von logischen Partitionen, die dem Pool von logisch partitionierten Datenverarbeitungssystemen zugeordnet sind, auf Grundlage des Überwachens des Pools von logisch partitionierten Datenverarbeitungssystemen ändert, und in Reaktion auf das Erkennen des ersten Systemereignisses den Energieverbrauch in der logisch partitionierten Datenverarbeitungsumgebung durch ein dynamisches Neuzuordnen von mindestens einer Untergruppe der Mehrzahl von logischen Partitionen zu der Sammlung von Prozessorknoten reoptimiert und einen Energiezustand von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten, die in dem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet sind, dynamisch modifiziert.
  • Diese und weitere Vorteile und Funktionen, die die Erfindung kennzeichnen, werden in den Ansprüchen im Anhang hierzu erläutert und bilden einen weiteren Bestandteil. Für ein besseres Verständnis der Erfindung und der Vorteile und Ziele, die durch ihre Verwendung erreicht werden, sollte auf die Zeichnungen und die begleitende Beschreibung Bezug genommen werden, in der beispielhafte Ausführungsformen der Erfindung beschrieben werden.
  • Figurenliste
    • 1A und 1B sind Blockschaubilder einer beispielhaften Hardware- (1A) und Software- (1B) Umgebung, die zum Umsetzen einer mit der Erfindung konsistenten logisch partitionierten Datenverarbeitungsumgebung geeignet ist.
    • 2 ist ein Blockschaubild eines Modells, das zum Ausführen einer ereignisgesteuerten Reoptimierung in einer mit der Erfindung konsistenten Ausführung verwendet wird.
    • 3A bis 3B zeigen einen Ablaufplan, der eine beispielhafte Reoptimierungsroutine veranschaulicht, die durch die Orchestrator-Komponente von 1A ausgeführt werden kann, um den Energieverbrauch durch eine logisch partitionierte Datenverarbeitungsumgebung in Reaktion auf ein Systemereignis zur Verringerung von benutzungsberechtigter Kapazität zu reoptimieren.
    • 4A bis 4D zeigen einen Ablaufplan, der eine beispielhafte Reoptimierungsroutine veranschaulicht, die durch die Orchestrator-Komponente von 1A ausgeführt werden kann, um den Energieverbrauch durch eine logisch partitionierte Datenverarbeitungsumgebung in Reaktion auf ein Systemereignis zur Erhöhung von benutzungsberechtigter Kapazität zu reoptimieren.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Mit der Erfindung konsistente Ausführungsformen verwenden eine ereignisgesteuerte Reoptimierung zum Neuzuordnen von einer oder mehreren logischen Partitionen in einem Pool von logisch partitionierten Datenverarbeitungssystemen in einer logisch partitionierten Datenverarbeitungsumgebung in Reaktion auf ein Erkennen eines Systemereignisses, das die kollektiven Ressourcenanforderungen von logischen Partitionen wahrscheinlich erhöht oder verringert, die sich in einer logisch partitionierten Datenverarbeitungsumgebung befinden. In einigen Fällen kann die Reoptimierung beispielsweise zum Konsolidieren von logischen Partitionen auf weniger Prozessorknoten verwendet werden, um das Potenzial zum Herunterfahren von Hardware-Ressourcen zu verbessern und damit den Energieverbrauch zu verringern.
  • Eine logisch partitionierte Datenverarbeitungsumgebung kann in diesem Zusammenhang so betrachtet werden, dass sie ein oder mehrere Datenverarbeitungssysteme enthält, die logisches Partitionieren (oder Virtualisierung) unterstützen, wobei mindestens einige der Datenverarbeitungssysteme eine Mehrzahl von Prozessorknoten enthalten, die Hardware-Ressourcen darstellen, die fähig sind, eine oder mehrere logische Partitionen zu hosten. Eine mit der Erfindung konsistente logisch partitionierte Datenverarbeitungsumgebung unterstützt im Allgemeinen das Konzept einer Partitionsmobilität (auf die unter anderen Bezeichnungen als Partitionsmobilität verwiesen werden kann), wobei eine logische Partition, die auf einem logisch partitionierten Datenverarbeitungssystem gehostet wird, während der Laufzeit auf ein anderes logisch partitioniertes Datenverarbeitungssystem verschoben werden kann, in einigen Fällen mit wenig oder keiner Betriebsunterbrechung.
  • Ein Prozessorknoten kann in diesem Zusammenhang so betrachtet werden, dass er eine beliebige Untergruppe der verfügbaren Hardware-Ressourcen in einem Datenverarbeitungssystem enthält und im Allgemeinen, aber nicht notwendigerweise, einen oder mehrere Prozessoren, eine oder mehrere Arbeitsspeichereinheiten und in einigen Fällen zusätzliche Hardware-Ressourcen, wie beispielsweise Eingabe/Ausgabe- (E/A) Ressourcen, Netzwerkressourcen oder andere Typen von Ressourcen enthält, die einer logischen Partition zugeordnet werden können. Prozessorknoten können in einigen Ausführungsformen als Multichip-Module, Schaltungsplatinen oder -karten, Bücher, Einschübe, Rahmen, Steckplätze, Gehäuse oder sogar Kombinationen davon umgesetzt werden. Prozessorknoten können in einigen Ausführungsformen auch eigenständige Computersysteme sein. In Ausführungsformen, in denen eine ereignisgesteuerte Reoptimierung zum Optimieren des Energieverbrauchs verwendet wird, können Prozessorknoten auch auf Grundlage von Gruppierungen von Hardware-Ressourcen definiert werden, die separat hochgefahren, abgeschaltet oder anderweitig gesteuert werden können, um den Energieverbrauch zu erhöhen oder zu verringern. Somit enthält ein Prozessorkern aus der Perspektive der hierin beschriebenen Ausführungsformen mindestens eine Sammlung von Prozessoren und Arbeitsspeicher, die getrennt von anderen Prozessorknoten heruntergefahren oder komplett abgeschaltet werden können.
  • In einigen Ausführungsformen der Erfindung kann der Energieverbrauch in einer logisch partitionierten Datenverarbeitungsumgebung mit einer Sammlung von Prozessorknoten verwaltet werden, die in einem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet sind. Der Energieverbrauch kann durch Zuordnen einer Mehrzahl von logischen Partitionen zu dem Pool von logisch partitionierten Datenverarbeitungssystemen verwaltet werden, um den Energieverbrauch in der logisch partitionierten Datenverarbeitungsumgebung zu optimieren, nachdem die Mehrzahl von logischen Partitionen zugeordnet wurde, der Pool von logisch partitionierten Datenverarbeitungssystemen autonom auf Systemereignisse überwacht wurde, die Ressourcenanforderungen von logischen Partitionen ändern, die dem Pool von logisch partitionierten Datenverarbeitungssystemen zugeordnet sind, wobei ein erstes Systemereignis erkannt wird, das die Ressourcenanforderungen von logischen Partitionen, die dem Pool von logisch partitionierten Datenverarbeitungssystemen zugeordnet sind, auf Grundlage des Überwachens des Pools von logisch partitionierten Datenverarbeitungssystemen ändert, und in Reaktion auf das Erkennen des ersten Systemereignisses den Energieverbrauch in der logisch partitionierten Datenverarbeitungsumgebung durch ein dynamisches Neuzuordnen von mindestens einer Untergruppe der Mehrzahl von logischen Partitionen zu der Sammlung von Prozessorknoten reoptimiert und einen Energiezustand von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten, die in dem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet sind, dynamisch modifiziert.
  • In einigen Ausführungsformen enthält die Sammlung von Prozessorknoten einen ersten Prozessorknoten, der in einem ersten logisch partitionierten Datenverarbeitungssystem in dem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet ist, wobei das erste Systemereignis Ressourcenanforderungen verringert und ein Reoptimieren des Energieverbrauchs in der logisch partitionierten Datenverarbeitungsumgebung ein Herunterfahren des Energiezustands des ersten Prozessorknotens in der Sammlung von Prozessorknoten enthält und ein Verschieben von mindestens einer logischen Partition, die vorher dem ersten Prozessorknoten zugeordnet war, zu einem oder mehreren verschiedenen Prozessorknoten in dem ersten logisch partitionierten Datenverarbeitungssystem oder einem anderen logisch partitionierten Datenverarbeitungssystem in dem Pool von logisch partitionierten Datenverarbeitungssystemen. In einigen Ausführungsformen ist das erste Systemereignis ein Ereignis zum Abschalten einer logischen Partition, ein Ereignis zum Aussetzen einer Hibernation einer logischen Partition, ein Ereignis zur Migration einer aktiven logischen Partition aus dem Pool, ein Ereignis zum dynamischen Entfernen von Prozessorkapazität aus einer logischen Partition oder ein Ereignis zum dynamischen Entfernen von Arbeitsspeicherkapazität aus einer logischen Partition.
  • In einigen Ausführungsformen enthält die Sammlung von Prozessorknoten einen ersten Prozessorknoten, der in einem ersten logisch partitionierten Datenverarbeitungssystem in dem Pool von logisch partitionierten Datenverarbeitungssystemen angeordnet ist, wobei das erste Systemereignis Ressourcenanforderungen erhöht, und ein Reoptimieren des Energieverbrauchs in der logisch partitionierten Datenverarbeitungsumgebung ein Erhöhen des Energiezustands des ersten Prozessorknotens und ein Verwenden der Kapazität enthält, die durch das Erhöhen des Energieniveaus des Prozessorknotens erhalten wurde, um höheren Ressourcenanforderungen zu begegnen. In einigen Ausführungsformen ist das erste Systemereignis ein Ereignis zum Hochfahren einer logischen Partition, ein Ereignis zum Wiederaufnehmen einer Hibernation einer logischen Partition, ein Ereignis zur Migration einer aktiven logischen Partition in den Pool, ein Ereignis zum dynamischen Hinzufügen von Prozessorkapazität zu einer logischen Partition oder ein Ereignis zum dynamischen Hinzufügen von Arbeitsspeicherkapazität zu einer logischen Partition.
  • In einigen Ausführungsformen enthält ein erstes logisch partitioniertes Datenverarbeitungssystem in dem Pool von logisch partitionierten Datenverarbeitungssystemen erste und zweite Prozessorknoten aus der Sammlung von Prozessorknoten, und ein dynamisches Modifizieren des Energiezustands von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten enthält ein Herunterfahren oder Hochfahren des ersten Prozessorknotens, wobei der Energiezustand des zweiten Prozessorknotens beibehalten wird. In einigen Ausführungsformen enthält ein erstes logisch partitioniertes Datenverarbeitungssystem in dem Pool von logisch partitionierten Datenverarbeitungssystemen mehrere Prozessorknoten aus der Sammlung von Prozessorknoten, ein zweites logisch partitioniertes Datenverarbeitungssystem in dem Pool von logisch partitionierten Datenverarbeitungssystemen enthält einen einzelnen Prozessorknoten aus der Sammlung von Prozessorknoten, und ein dynamisches Modifizieren des Energiezustands von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten enthält ein Herunterfahren oder Hochfahren des zweiten logisch partitionierten Datenverarbeitungssystems, wobei ein Energiezustand von jedem der mehreren Prozessorknoten in dem ersten logisch partitionierten Datenverarbeitungssystem beibehalten wird.
  • Zahlreiche Variationen und Modifizierungen sind für einen Fachmann offenkundig, wie aus der folgenden Beschreibung ersichtlich wird. Die Erfindung ist daher nicht auf die hierin erläuterten spezifischen Umsetzungen beschränkt.
  • HARDWARE- UND SOFTWARE-UMGEBUNG
  • Unter Bezugnahme auf die Zeichnungen, in denen gleiche Teile in mehreren Ansichten mit gleichen Bezugszeichen angegeben werden, veranschaulichen 1A bis 1B die wichtigsten Hardware- und Software-Komponenten in einer mit der Erfindung konsistenten logisch partitionierten Datenverarbeitungsumgebung oder Vorrichtung 10. Wie in 1A gezeigt, kann die Vorrichtung 10 als Mehrknotensystem konfiguriert sein, in dem die physische Hardware auf einer Mehrzahl von physischen Prozessorknoten 14 verteilt ist, die in einer Mehrzahl von Computer- oder Datenverarbeitungssystemen 16 angeordnet sind, wobei die Datenverarbeitungssysteme 16 in einem oder mehreren Pools 18 angeordnet sind. Jeder Prozessorknoten 14 enthält einen oder mehrere Prozessoren 20, eine oder mehrere Arbeitsspeichereinheiten 22 und in einigen Ausführungsformen zusätzliche Hardware wie beispielsweise Eingabe/Ausgabe- (E/A) Hardware 24 (z.B. einen oder mehrere Eingabe/Ausgabe- (E/A) Adapter) und/oder Netzwerk-Hardware. Eine entsprechende Netzwerkfunktionalität (nicht gezeigt) kann ebenfalls verwendet werden, um einen Datenaustausch zwischen den verschiedenen Prozessorknoten 14 und Systemen 16 sowie anderen externen Systemen bereitzustellen.
  • Die Vorrichtung 10 kann unter Verwendung einer Anzahl verschiedener Architekturen umgesetzt werden, die für eine Umsetzung einer logisch partitionierten Umgebung geeignet sind. Zum Beispiel kann in einer Ausführungsform die Vorrichtung 10 als ein Power-System 770, 780 oder 795 von International Business Machines Corporation umgesetzt werden, dessen Konfiguration für einen Fachmann offenkundig ist, der die aktuellen Offenbarung nutzen kann. Es sollte jedoch klar sein, dass andere Architekturen, die zum Ausführen von logisch partitionierten Umgebungen geeignet sind, in anderen Ausführungsformen der Erfindung verwendet werden können, sodass die Erfindung nicht auf die besondere, hierin offenbarte Architektur beschränkt ist.
  • Jeder Prozessor 20 kann als Einzel- oder Multithread-Prozessor und/oder als Einzel- oder Mehrkernprozessor umgesetzt werden, wobei jeder Arbeitsspeicher 22 so betrachtet werden kann, dass er eine oder mehrere Ebenen von Arbeitsspeichereinheiten enthält, z.B. einen Hauptspeicher auf DRAM-Grundlage, sowie eine oder mehrere Ebenen von Daten, Anweisungen und/oder Kombinations-Cachespeichern, wobei bestimmte Cachespeicher entweder einzelne Prozessoren oder mehrere Prozessoren bedienen, wie nach dem Stand der Technik bekannt.
  • Außerdem kann der Arbeitsspeicher der Vorrichtung 10 so betrachtet werden, dass er einen physisch an anderer Stelle in der Vorrichtung 10 befindlichen Arbeitsspeicher enthält, z.B. jeden Cache-Speicher in einem Prozessor sowie jede Speicherkapazität, die als virtueller Arbeitsspeicher verwendet wird, z.B. wie bei Speicherung auf einer Massenspeichereinheit oder auf einem anderen Computer, der mit der Vorrichtung 10 verbunden ist.
  • Die Vorrichtung 10 arbeitet unter der Steuerung von einem oder mehreren Kerneln, Hypervisoren, Betriebssystemen usw. und führt verschiedene Computersoftware-Anwendungen aus bzw. baut anderweitig auf verschiedenen Computersoftware-Anwendungen, Komponenten, Programmen, Objekten, Modulen, Datenstrukturen usw. auf, wie im Folgenden ausführlicher beschrieben wird. Des Weiteren können verschiedene Anwendungen, Komponenten, Programme, Objekte, Module usw. auch auf einem oder mehreren Prozessoren in einem anderen Computer ausgeführt werden, der mit der Vorrichtung 10 über ein Netzwerk verbunden ist, z.B. in einer verteilten oder Client-Server-Datenverarbeitungsumgebung, wodurch die zum Umsetzen der Funktionen eines Computerprogramms erforderliche Verarbeitung mehreren Computern über ein Netzwerk zugeordnet werden kann.
  • Zum Beispiel veranschaulicht 1B verschiedene Software-Komponenten 28 bis 42, die sich in einem System 16 in der Vorrichtung 10 befinden können. Ein Hypervisor 28 kann eine oder mehrere logische Partitionen (LPARs) 30 hosten und jeder logischen Partition 30 einen Teil der physischen Hardware-Ressourcen des Systems 16 zuordnen (z.B. Prozessor, Arbeitsspeicher und/oder E/A-Ressourcen, die einem oder mehreren Prozessorknoten 14 zugehörig sind), hier durch einen oder mehrere virtuelle Prozessoren (VPs) 32, einen virtuellen Arbeitsspeicher 34 und virtuelle Eingabe/Ausgabe- (VEA) Ressourcen 36 dargestellt. Jede logische Partition 30 kann wiederum ein Betriebssystem 38 und optional Middleware 40 sowie einen oder mehrere Jobs und/oder Anwendungen 42 hosten. Es sollte klar sein, dass jede logische Partition 30, die auch als virtuelle Maschine oder virtueller Computer bezeichnet werden kann, auf eine Weise arbeiten kann, die einen separaten physischen Computer emuliert und daher praktisch alle Software-Komponenten hosten kann, die geeignet, sind, von einem Computer gehostet zu werden.
  • Weitere Hardware- und/oder Software-Komponenten können sich ebenfalls in der Vorrichtung 10 befinden, z.B. Massenspeicher-Hardware, externe Eingabe/Ausgabe-Einheiten wie Drucker oder Bildschirme und Verwaltungs-Hardware und/oder - Software, z.B. eine Hardware-Verwaltungskonsole (HMC), über die die Hardware- und/oder Software-Konfiguration der Vorrichtung durch einen Administrator verwaltet werden kann. Logisch partitionierte Umgebungen können in zahlloser Art und Weise umgesetzt werden und können zahllose Hardware- und/oder Software-Variationen enthalten, und daher ist die Erfindung nicht auf die besondere hierin offenbarte Umsetzung beschränkt.
  • Es sollte klar sein, dass die vorliegende Erfindung ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein kann. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Speichermedien) mit einem computerlesbaren Programmcode darauf enthalten, um einen oder mehrere Prozessoren zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Das computerlesbare Speichermedium kann eine konkrete Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit beibehalten und speichern kann. Ein computerlesbares Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen für das computerlesbare Speichermedium enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Arbeitsspeicher (SRAM), einen tragbaren CD-ROM, ein DVD-Laufwerk (DVD), einen Speicherstick, eine Diskette, eine mechanisch verschlüsselte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen und jede geeignete Kombination des Vorgenannten. Ein computerlesbares Speichermedium, wie hierin verwendet, muss nicht als transitorische Signale per se ausgelegt sein, wie beispielsweise Funkwellen oder andere sich frei verbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien verbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch einen Draht übertragen werden.
  • Hierin beschriebene computerlesbare Programmanweisungen können auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten von einem computerlesbaren Speichermedium oder auf einen externen Computer oder eine externe Speichereinheit über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk heruntergeladen werden. Das Netzwerk kann Kupferübertragungsleitungen, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder Netzwerk-Schnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen von dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium in der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Computerlesbare Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung können Assembler-Anweisungen, Anweisungssatzarchitektur- (Instruction Set Architecture) (ISA) Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Zustandseinstellungsdaten oder entweder Quellcode oder Objektcode sein, die in jeder Kombination von einer oder mehreren Programmiersprachen, einschließlich Java, Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen geschrieben sind. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, einschließlich zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmanweisungen unter Verwendung von Zustandsinformationen der computerlesbaren Programmanweisungen zum Personalisieren der elektronischen Schaltung ausführen, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern durch computerlesbare Programmanweisungen umgesetzt werden können.
  • Diese computerlesbaren Programmanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass das computerlesbare Speichermedium mit den darin gespeicherten Anweisungen einen Fertigungsartikel aufweist, einschließlich Anweisungen, welche die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder eine andere Einheit geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt werden, die Funktionen /Handlungen umsetzen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Die Ablaufpläne und Blockschaubilder in den Zeichnungen veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen außerhalb der Reihenfolge auftreten, die in den Figuren angegeben ist. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf Grundlage von Hardware umgesetzt werden können, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von spezieller Hardware und Computeranweisungen ausführen.
  • Außerdem können computerlesbare Programmanweisungen, von denen eine oder mehrere kollektiv hierin als „Programmcode“ bezeichnet werden können, hierin auf Grundlage der Anwendung identifiziert werden, in der solche Anweisungen in einer spezifischen Ausführungsform der Erfindung umgesetzt werden. Er sollte jedoch klar sein, dass jede nachstehende spezielle Programm-Nomenklatur nur aus praktischen Gründen verwendet wird, und die Erfindung somit nicht darauf beschränkt sein soll, allein in einer bestimmten Anwendung verwendet zu werden, die durch derartige Nomenklatur identifiziert und/oder impliziert wird. Ferner sollte in Anbetracht der typischerweise endlosen Anzahl von Möglichkeiten klar sein, in denen Computerprogramme in Routinen, Prozeduren, Verfahren, Modulen, Objekten und dergleichen organisiert werden können, sowie hinsichtlich der verschiedenen Möglichkeiten, in denen Programmfunktionalität verschiedenen Software-Schichten zugeordnet werden kann, die sich in einem typischen Computer befinden (z.B. Betriebssysteme, Bibliotheken, APIs, Anwendungen, Applets usw.), dass die Erfindung nicht auf die hierin beschriebene spezielle Organisation und Zuordnung von Programmfunktionalität beschränkt ist.
  • Der Fachmann wird erkennen, dass die in 1A bis 1B veranschaulichte Beispielumgebung nicht dazu gedacht ist, die vorliegende Erfindung einzuschränken. Tatsächlich wird der Fachmann erkennen, dass weitere alternative Hardware- und/oder Software-Umgebungen verwendet werden können, ohne von dem Schutzumfang der Erfindung abzuweichen.
  • EREIGNISGESTEUERTE REOPTIMIERUNG EINER LOGISCH PARTITIONIERTEN UMGEBUNG ZUR ENERGIEVERWALTUNG
  • Energieverwaltung im Rechenzentrum ist in den letzten Jahren immer wichtiger geworden, wie an den Energy Star-Richtlinien und dem Konzept von ‚grünen‘ Computersystemen und Rechenzentren deutlich sichtbar wird. Energiekosten und Umweltaspekte sind wichtige Themen für Unternehmen mit großen Rechenzentren. Somit können Computer- und Software-Hersteller, die energieeffiziente Systeme und Lösungen produzieren, sich auf dem Markt einen deutlichen Vorteil verschaffen.
  • Techniken zur Energieverwaltung sind herkömmlicherweise mit der Überwachung von Arbeitslasten und Umweltfaktoren und dem Verschieben von Arbeitslasten zwischen Datenverarbeitungsressourcen in einem System oder einem Pool von Systemen auf eine Weise verbunden, mit der sich ein Vorteil in Bezug auf den Energieverbrauch erzielen lässt. Dieser Vorteil kann durch Herunterfahren (entweder durch Einstellen eines geringeren Energiezustands oder komplettes Abschalten) eines Systems oder einer Komponente in einem System oder durch Vermeiden von Leistungsengpässen in dem Rechenzentrum oder durch Vermeiden von Bereichen oder Zeiten mit hohen Energiekosten erlangt werden. Die verlagerten Arbeitslasten sind typischerweise entweder Zuteilungseinheiten, wenn Arbeitslast zwischen Prozessorkernen verschoben wird, um eine Umsetzung durch Prozessor und Arbeitsspeicher zu erleichtern, oder Anwendungen/Jobs, wenn Arbeitslast zwischen Systemen in einem Rechenzentrum verschoben wird.
  • Mit der Erfindung konsistente Ausführungsformen begünstigen die Energieverwaltung, z.B. in einem Rechenzentrum, durch Verwendung eines Gerüsts zum dynamischen Platzieren von logischen Partitionen über ein einzelnes modulares Systems oder einen Pool von Systemen auf eine Weise, mit der das Potenzial zur Energieeinsparung durch Partitionskonsolidierung und Abschalten von Systemen in dem Pool oder von Komponenten von Systemen in dem Pool, die nicht verwendet werden, optimiert wird. Die logischen Partitionen können auf Grundlage von Systemereignissen dynamisch verschoben werden, die entweder Verarbeitungskapazität freigeben, wodurch mehre Hardware-Ressourcen heruntergefahren werden können, oder den Bedarf von Verarbeitungskapazität erhöhen, wodurch ein potenzielles Hochfahren von Hardware-Ressourcen erforderlich wird.
  • In den veranschaulichten Ausführungsformen kann eine dynamische und autonome Überwachung von Systemereignissen zum Erkennen von Systemereignissen verwendet werden, die die benutzungsberechtigte Verarbeitungskapazität der logischen Partitionen erhöhen oder verringern, die in einem Pool von Systemen ausgeführt werden. In Reaktion auf derartige Systemereignisse kann die Platzierung von logischen Partitionen anschließend zum Konsolidieren in dem Pool von Systemen angepasst und das Potenzial zum Herunterfahren von Hardware-Ressourcen optimiert werden. In einigen Ausführungsformen kann die benutzungsberechtigte Verarbeitungs- und/oder Arbeitsspeicherkapazität der logischen Partitionen, die in einem Pool von Systemen ausgeführt werden, als die Ressourcenanforderungen der logischen Partitionen bezeichnet werden. Daher kann ein Systemereignis, das eine benutzungsberechtigte Kapazität erhöht, so betrachtet werden, dass sie Ressourcenanforderungen von logischen Partitionen erhöht, die in einem Pool ausgeführt werden, während ein Systemereignis, das eine benutzungsberechtigte Kapazität verringert, so betrachtet werden kann, dass sie Ressourcenanforderungen von logischen Partitionen verringert, die in einem Pool ausgeführt werden
  • Ein Vorteil eines derartigen Ansatzes gegenüber einem Verschieben von Arbeitslast auf Zuteilungsebene besteht darin, dass das Potenzial für Energieeinsparungen im Allgemeinen größer sein kann. Die Prozessorumsetzung kann ermöglichen, dass einzelne Prozessorkerne und Chips, und in einigen Fällen der dazugehörige Arbeitsspeicher, auf einen niedrigeren Energiezustand gesetzt werden, was in einigen Fällen dazu führen kann, dass auch die Geschwindigkeit des Systemlüfters herabgesetzt wird. Bei einem Ansatz zur Prozessorumsetzung verhindern die Anforderungen an die Latenz beim Hochfahren jedoch im Allgemeinen, dass Ressourcen komplett abgeschaltet werden. Ein Ansatz auf Grundlage einer logischen Partition, wie hierin beschrieben, ermöglicht jedoch eine Prozessorumsetzung sowie eine komplette Abschaltung von Systemen in einem Pool oder ein teilweises Herunterfahren von Systemen, die separat mit Energie versorgbare Prozessor- und Arbeitsspeicherbereiche enthalten (d.h. Prozessorknoten), wie beispielsweise Prozessorbücher oder Prozessoreinschübe. Bei einem Ansatz auf Grundlage einer logischen Partition, wie hierin beschrieben, besteht auch die Möglichkeit, die benutzungsberechtigte Kapazität nicht aufzugeben, und daher können die Anforderungen an die Latenz beim Hochfahren im Allgemeinen weniger strikt sein und ein tieferes Herunterfahren ist im Allgemeinen möglich.
  • Ein Vorteil eines derartigen Ansatzes gegenüber einem Verschieben der Arbeitslast auf Anwendungs-/Job-Ebene besteht darin, dass die Anwendung im Allgemeinen Komplexität von Betriebssystem und Anwendung vermeidet, die durch Clusterbildung und Hochverfügbarkeits- (HV) Konfigurationen gesteuert wird, die bei einer Verschiebung auf Anwendungs-/Job-Ebene im Allgemeinen erforderlich wird. Der hierin beschriebene Ansatz kann Fähigkeiten der logischen Partitionsmobilität (LPM) unterstützten, die bereits für andere Zwecke eingesetzt werden, wie beispielsweise Hardware- und/oder Software-Wartung. Eine Erweiterung der logischen Partitionsmobilität auf Energieverwaltung als solches benötigt daher in einigen Fällen keine zusätzliche Investition in Clusterbildung oder HV-Fähigkeiten.
  • Der hierin beschriebene Ansatz kann sich auch in modularen Systemen der Unternehmensklasse vorteilhaft erweisen, wie beispielsweise bei den vorgenannten Power-Systemen 770, 780 und 795, die mehrere Knoten enthalten (z.B. Prozessorbücher für die Power-Systeme 795, oder CEC-Einschübe für die Power 770 und Power 780-Systeme), die jeweils unabhängig vom Rest abgeschaltet und hochgefahren werden können. Die Energieverwaltung auf Knotenebene ist im Allgemeinen für Systeme der Unternehmensklasse aufgrund der großen Anzahl von logischen Partitionen, die sie unterstützen können, und der Schwierigkeit wichtig, die durch die Suche nach genügend nicht genutzter Kapazität an anderer Stelle in dem Pool entsteht, um alle Partitionen im System in andere Systeme auszulagern, damit das System heruntergefahren werden kann. Die hierin beschriebenen Algorithmen zur System- und Kapazitätsmodellierung sowie logischen Partitionsplatzierung können daher ein Hoch-/Herunterfahren ganzer Systeme sowie von einzelnen Knoten unterstützen, wie sie in derartigen modularen Systemen verwendet werden, wogegen andere Ansätze im Allgemeinen auf ein Herunter-/Hochfahren auf Systemebene beschränkt sind.
  • In einer Ausführungsform der Erfindung kann zum Beispiel eine ereignisgesteuerte Reoptimierung für einen Pool von Computersystemen ausgeführt werden, zwischen denen logische Partitionen verschoben werden können, um ausreichende Kapazität auf einem oder mehreren der Computersysteme in dem Pool freizugeben, damit entweder einer oder mehrere Knoten in einem Mehrknoten-Computersystem oder ein ganzes Computersystem heruntergefahren werden können, z.B. in einen niedrigeren Energiezustand überführt werden können. Für die Zwecke dieser Ausführungsform wird die Gruppe bzw. der Pool von Computersystemen als Energieverwaltungs-Pool bezeichnet.
  • Ebenfalls in dieser Ausführungsform können die Computersysteme in dem Energieverwaltungs-Pool als Systeme der Unternehmensklasse mit mehreren Prozessorknoten, die einzeln hoch- und heruntergefahren werden können (z.B. die vorgenannten Power-Systeme 770, 780 und 795) und/oder Low-End-Systeme umgesetzt werden, die nicht mehrere, separat mit Energie versorgbare Prozessorknoten haben.
  • Zum Beispiel veranschaulicht 1A mehrere Pools 18, wobei jeder Pool 18 in mancher Beziehung als Energieverwaltungs-Pool betrachtet werden kann, der ein oder mehrere Computersysteme 16 enthält, die jeweils einen oder mehrere Prozessorknoten 14 enthalten. Für die Zwecke dieser Ausführungsform kann jeder Prozessorknoten 14 separat mit Energie versorgbar sein, obwohl die Erfindung in anderen Ausführungsformen nicht so eingeschränkt ist.
  • Zum Umsetzen einer ereignisgesteuerten Reoptimierung kann eine Orchestrator-Komponente 44, die z.B. auf einer Systemverwaltungseinrichtung 46 ausgeführt wird, in einigen Ausführungsformen verwendet werden. In einer Ausführungsform kann die Orchestrator-Komponente zum Beispiel ein Energieverwaltungs-Dienstprogramm enthalten, das in Verbindung mit einem Partitionsplatzierungs-Dienstprogramm arbeitet. Eine geeignete Umsetzung verwendet zum Beispiel eine Systems Director-Verwaltungseinrichtung, die ein Dienstprogramm „Active Energy Manager“ zur Energieverwaltung und ein Dienstprogramm „VMControl“ zur Partitionsplatzierung ausführt (alle von International Business Machines Corporation erhältlich), um die Funktionalität der Orchestrator-Komponente umzusetzen. Es sollte klar sein, dass eine Systemverwaltungseinrichtung einen oder mehrere Prozessoren, einen Arbeitsspeicher und andere Computerkomponenten enthalten kann, um Programmcode auszuführen, der hierin beschriebene Funktionalität umsetzt, und dass in einigen Ausführungsformen auf weiteren Programmcode und/oder Hardware-Komponenten, die sich in dem Datenverarbeitungssystem 10 befinden, durch eine Systemverwaltungseinrichtung in Verbindung mit der hierin beschriebenen ereignisgesteuerten Reoptimierung zugegriffen werden kann. Ferner kann sich in einigen Ausführungsformen die Funktionalität einer Orchestrator-Komponente vollständig in einem oder mehreren Systemen 16 der Vorrichtung 10 befinden, z.B. in einer logischen Partition, in einem Hypervisor, in Middleware, in einem Betriebssystem, in System-Firmware, in einer Hardware-Verwaltungskonsole usw. Es sollte daher klar sein, dass die Erfindung nicht auf die spezielle Umsetzung einer ereignisgesteuerten Reoptimierung vorwiegend in einer Systemverwaltungseinrichtung beschränkt ist, wie im Folgenden für die veranschaulichte Ausführungsform beschrieben.
  • Die Systemverwaltungseinrichtung 46 in der veranschaulichten Ausführungsform überwacht autonom auf Systemereignisse, die Systemen 16 in einem Energieverwaltungs-Pool 18 zugehörig sind, die eine benutzungsberechtigte Kapazität der logischen Partitionen ändern können. Diesbezüglich kann das autonome Überwachen als ein Überwachen außerhalb der Leitung eines Administrator betrachtet werden (obwohl ein Aktivieren und Deaktivieren der Überwachung in einigen Ausführungsformen unterstützt werden kann). Die Systemverwaltungseinrichtung 46 verschiebt außerdem logische Partitionen dynamisch von einem System 16 in ein oder mehrere andere Systeme 16 in dem Bemühen, logische Partitionen in einer energieoptimierten Weise so anzuordnen, dass die Verwendung von einem oder mehreren Systemen 16 ausreichend verringert wird, um einen oder mehrere Prozessorknoten oder ganze Systeme herunterzufahren. Wenn ein Prozessorknoten heruntergefahren wird, kann der Hypervisor 28 auf dem Host-System 16 alle logischen Partitionen 30 auslagern, die auf diesem Prozessorknoten ausgeführt werden, um Kapazität in anderen Prozessorknoten 14 auf demselben System 16 verfügbar zu machen. Ferner kann die Systemverwaltungseinrichtung 46 Ereignisse überwachen, die erfordern, dass Kapazität wieder hochgefahren wird, und fährt solche Kapazität im Bedarfsfall wieder hoch. Es sollte klar sein, dass eine Systemverwaltungseinrichtung in anderen Ausführungsformen fähig sein kann, die Platzierung von logischen Partitionen auf Prozessorknoten direkt zu verwalten.
  • 2 veranschaulicht als Nächstes ein Beispiel-Datenmodell 50 eines Energieverwaltungs-Pools 52, Systeme 54, Knoten 56 und logische Partitionen (LPARs) 58 zur Verwendung in einer Ausführungsform der Erfindung, die zeigt, dass der Pool 52 ein oder mehrere Systeme 54 enthalten kann und jedes System 54 einen oder mehrere Prozessorknoten 56 enthalten kann und ihm eine oder mehrere LPARs 58 zu einem bestimmten Zeitpunkt zugeordnet sein können. Das Modell 50 kann zum Beispiel von einem Orchestrator und/oder einer Systemverwaltungseinrichtung verwendet werden, um eine ereignisgesteuerte Reoptimierung auf eine Weise auszuführen, die mit der Erfindung konsistent ist.
  • Die Tabellen I bis IV stellen Beispielattribute für jeweils Pool 52, System 54, Knoten 56 und LPAR 58 bereit, die im Modell 50 definiert werden können: Tabelle I: Pool-Attribute
    Attribut Beschreibung
    numSystems Anzahl von Systemen
    systemArray Array von Systemkennungen
    Tabelle II: Systemattribute
    Attribut Beschreibung
    numNodes Anzahl von Prozessorknoten in dem System
    nodeArray Array von Knotenkennungen
    numLps Anzahl von konfigurierten Partitionen in dem System
    partitionArray Array von Partitionskennungen
    installedProc Im System installierte gesamte Verarbeitungskapazität
    installedMem Im System installierte gesamte Arbeitsspeicherkapazität
    activeProc Gesamte hochgefahrene (aktive) Verarbeitungskapazität im System
    activeMem Gesamte hochgefahrene (aktive) Arbeitsspeicherkapazität im System
    entitledProc Gesamte benutzungsberechtigte Verarbeitungskapazität im System (garantiert für aktive Partitionen)
    entitledMem Gesamte benutzungsberechtigte Arbeitsspeicherkapazität im System (garantiert für aktive Partitionen)
    utilizationLimitProc Bruchteil einer aktiven Prozessorkapazität, um den entitledProc nicht überschritten werden sollte (z.B. 0,95)
    utilizationLimitMem Bruchteil einer aktiven Arbeitsspeicherkapazität, um den entitledMem nicht überschritten werden sollte (z.B. 0,95)
    poweredOn Wahr = System hochgefahren (aktiv); Falsch = System heruntergefahren (inaktiv)
    Tabelle III: Knotenattribute
    Attribut Beschreibung
    installedProc Im Knoten installierte gesamte Verarbeitungskapazität
    installedMem Im Knoten installierte gesamte Arbeitsspeicherkapazität
    poweredOn Wahr = Knoten hochgefahren (aktiv); Falsch = Knoten heruntergefahren (inaktiv)
    powerRating Numerischer Wert, der relative Energieanforderungen des Knotens darstellt
    Tabelle IV: Partitionsattribute
    Attribut Beschreibung
    entitledProc Benutzungsberechtigte Verarbeitungskapazität der Partition (garantiert)
    entitledMem Benutzungsberechtigte Arbeitsspeicherkapazität der Partition (garantiert)
    desiredProc Verarbeitungskapazität, die die Partition zum Booten benötigt
    desiredMem Arbeitsspeicherkapazität, die die Partition zum Booten benötigt
    poweredOn Wahr = Partition hochgefahren (aktiv); Falsch = Partition heruntergefahren (inaktiv)
  • In der veranschaulichten Ausführungsform können die folgenden Systemereignisse autonom überwacht und von einer Systemverwaltungseinrichtung an eine Orchestrator-Komponente zum Zweck einer Initiierung der Reoptimierung von logischen Partitionen und des Energieverbrauchs in einem Energieverwaltungs-Pool signalisiert werden:
    • - logische Partition herunterfahren (*)
    • - logische Partition hochfahren
    • - Hibernation der logischen Partition aussetzen (*)
    • - Hibernation der logischen Partition wieder aufnehmen
    • - Migration einer aktiven logischen Partition aus dem Pool (*)
    • - Migration einer aktiven logischen Partition in den Pool
    • - dynamisches Entfernen von Prozessor (DLPAR) (*)
    • - dynamisches Hinzufügen von Prozessor (DLPAR)
    • - dynamisches Entfernen von Arbeitsspeicher (DLPAR) (*)
    • - dynamisches Hinzufügen von Arbeitsspeicher (DLPAR)
  • Die oben mit (*) gekennzeichneten Ereignisse können als Systemereignisse zur Verringerung von benutzungsberechtigter Kapazität bezeichnet werden, die im Allgemeinen verursachen, dass Prozessor- und/oder Arbeitsspeicherkapazität aufgrund einer Verringerung der benutzungsberechtigten Kapazität einer Partition freigegeben werden, was potenziell eine Konsolidierung von Partitionen und ein Herunterfahren (d.h. eine Deaktivierung) von Prozessorknoten und/oder Systemen ermöglicht. In der veranschaulichten Ausführungsform können diese Systemereignisse zur Verringerung von benutzungsberechtigter Kapazität nach ihrem Auftreten an die Orchestrator-Komponente signalisiert werden. Es sollte klar sein, dass Ereignisse zum dynamischen Entfernen von Prozessor/Arbeitsspeicher aus einer in Betrieb befindlichen logischen Partition Prozessor-/ArbeitsspeicherKapazität entfernen.
  • Die oben nicht mit (*) gekennzeichneten Ereignisse können als Systemereignisse zum Erhöhen von benutzungsberechtigter Kapazität bezeichnet werden, die im Allgemeinen verursachen, dass zusätzliche Prozessor- und/oder Arbeitsspeicherkapazität aufgrund einer Erhöhung der benutzungsberechtigten Kapazität einer Partition verbraucht wird. Wenn Prozessorknoten und/oder Systeme als Energiesparmaßnahme heruntergefahren werden, kann es wünschenswert oder notwendig sein, einige oder alle wieder hochzufahren (Aktivierung), um die Anforderungen von zusätzlicher Prozessor- und/oder Arbeitsspeicherkapazität zu erfüllen. In der veranschaulichten Ausführungsform können diese Systemereignisse zur Erhöhung von benutzungsberechtigter Kapazität im Allgemeinen vor ihrem Auftreten an die Orchestrator-Komponente signalisiert werden. Es sollte klar sein, dass Ereignisse zum dynamischen Hinzufügen von Prozessor/Arbeitsspeicher zu einer in Betrieb befindlichen logischen Partition Prozessor-/Arbeitsspeicher-Kapazität hinzufügen.
  • In den hierin erläuterten Ausführungsformen kann ein Energiezustand von mindestens einem Knoten und/oder einem System in Reaktion auf ein Systemereignis zum Verringern einer benutzungsberechtigten Kapazität oder Erhöhen einer benutzungsberechtigten Kapazität geändert werden. Eine Änderung des Energiezustands kann im Allgemeinen ein Erhöhen oder Verringern des Energiezustands enthalten. Ein Erhöhen des Energiezustands kann zum Beispiel ein Hochfahren eines Knotens und/oder eines Systems aus einem heruntergefahrenen Zustand enthalten, ein Umschalten von einem niedrigeren Energiemodus auf einen höheren Energiemodus oder jede andere Änderung, die den Energieverbrauch des Knotens oder Systems erhöht, der im Allgemeinen mit einem Erhöhen der Verarbeitungskapazität des Knotens oder Systems zusammenfällt. Umgekehrt kann ein Verringern des Energiezustands zum Beispiel ein Herunterfahren eines Knotens und/oder eines Systems aus einem hochgefahrenen Zustand enthalten, ein Umschalten von einem höheren Energiemodus auf einen niedrigeren Energiemodus oder jede andere Änderung, die den Energieverbrauch des Knotens oder Systems verringert, der im Allgemeinen mit einem Verringern der Verarbeitungskapazität des Knotens oder Systems zusammenfällt.
  • Außerdem können in Reaktion auf ein Systemereignis zum Verringern einer benutzungsberechtigten Kapazität oder Erhöhen einer benutzungsberechtigten Kapazität und allgemein in Verbindung mit einer Änderung des Energiezustands eines Knotens oder Systems eine oder mehrere logische Partitionen zwischen Knoten und/oder Systemen verschoben werden (z.B. aus der Perspektive der Energieverwaltung), um die Zuordnung von logischen Partitionen zwischen den Knoten und/oder Systemen in dem Energieverwaltungs-Pool effektiv zu reoptimieren. Es sollte klar sein, dass jede Optimierung einer Zuordnung von logischen Partitionen in einem Pool in Reaktion auf ein Systemereignis als eine Reoptimierung einer früheren Optimierung einer Zuordnung von logischen Partitionen betrachtet werden kann. Es sollte ebenfalls klar sein, dass in einigen Ausführungsformen eine Optimierung einer Zuordnung von logischen Partitionen in der hierin erörterten Art und Weise manuell oder automatisch ausgeführt werden kann, aber nicht speziell in Reaktion auf eines der vorher genannten Systemereignisse, z.B. nach einem ersten System-Setup oder zu einem anderen Zeitpunkt, der von einem Administrator als nützlich erachtet wird.
  • 3A bis 3B veranschaulichen eine Beispiel-Reoptimierungsroutine 100, die die Verarbeitung wiedergibt, die in der Orchestrator-Komponente auftreten kann, wenn ein Systemereignis zur Verringerung einer benutzungsberechtigten Kapazität signalisiert wird und, wie oben angemerkt, im Allgemeinen nachdem die dem Ereignis zugehörigen Operationen (z.B. ein Herunterfahren der Partition, Aussetzen der Hibernation der Partition, eine Migration einer aktiven logischen Partition aus dem Pool, eine Operation zum dynamischen Entfernen eines Prozessors oder dynamischen Entfernen eines Arbeitsspeichers) ausgeführt worden sind. In einigen Ausführungsformen kann die Routine 100 auch manuell durch einen Administrator initiiert werden, um die Partitionsplatzierung zu optimieren und möglicherweise Prozessorknoten und/oder Systeme herunterzufahren.
  • Die Routine 100 kann als Eingabe das vorher genannte Modell für den Energieverwaltungs-Pool empfangen und beginnt am Block 102 mit der Einstellung eines Kennzeichens „targetFound“ auf „Wahr“. Block 104 initiiert eine WHILE-Schleife, die ausgeführt wird bis „targetFound“ „Falsch“ ist. Block 104 übergibt die Steuerung an Block 106, um zu bestimmen, ob ein System in dem Pool die Kriterien für ein Herunterfahren erfüllt, z.B. durch Bestimmen für jedes System in dem Pool, ob das System hochgefahren ist und die für dieses System benutzungsberechtigte Prozessor- und Arbeitsspeicherkapazität (entitledProc und entitledMem) beide Null sind. In diesem Fall kann das System heruntergefahren werden.
  • Als Nächsten wird im Block 108 „targetFound“ auf „Falsch“ gesetzt, und Block 110 initiiert eine FOR-Schleife, um jedes hochgefahrene System in dem Pool (heruntergefahrene Systeme können in einigen Ausführungsformen übersprungen werden) zu verarbeiten. Für jedes derartige System initialisiert Block 112 jede einer LPAR-Anordnung, einer Systemanordnung, einer Zielknotenvariablen und einer Zielsystemvariablen auf Null, und Block 114 initiiert eine FOR-Schleife, um jeden hochgefahrenen Knoten in dem System (heruntergefahrene Knoten können in einigen Ausführungsformen übersprungen werden) zu verarbeiten.
  • Unter Bezugnahme auf 3B bestimmt Block 116 für jeden hochgefahrenen Knoten in dem aktuellen System, wie viel benutzungsberechtigte Prozessor- und Arbeitsspeicherkapazität verringert werden muss, um den aktuellen Knoten herunterzufahren, und bestimmt eine Gruppe von Partitionen (LPARs) zur Migration aus dem aktuellen System, damit der aktuelle Knoten heruntergefahren werden kann. In einer Ausführungsform kann die benutzungsberechtigte Prozessor- und Arbeitsspeicherkapazität, die zum Herunterfahren des aktuellen Knotens (N) auf dem aktuellen System (S) verringert werden muss, wie folgt berechnet werden: requiredReductionInEntitledCapProc = N .installedProc ( ( S .activeProc* S .utilizationLimitProc ) S .entitledProc )
    Figure DE112015004564B4_0001
    requiredReductionInEntitledCapMem = N .installedMem ( ( S .activeMem* S .utilizationLimitMem ) S .entitledMem )
    Figure DE112015004564B4_0002
  • Außerdem kann jeder dieser Werte in einigen Ausführungsformen auf Null gesetzt werden, wenn das berechnete Ergebnis kleiner als Null ist.
  • In einer Ausführungsform kann zum Bestimmen der Gruppe von Partitionen für die Migration aus dem aktuellen System eine Suche ausgeführt werden, um eine Gruppe von Partitionen zu bestimmen, deren Summe von benutzungsberechtigten Kapazitäten der erforderlichen Verringerung am nächsten kommt, aber immer noch größer als diese ist oder dieser entspricht. Die Eingaben in eine derartige Bestimmung können das System, für das die zu verschiebende Gruppe von Partitionen berechnet werden soll, die erforderliche Verringerung der benutzungsberechtigten Prozessorkapazität und die erforderliche Verringerung der benutzungsberechtigten Arbeitsspeicherkapazität enthalten, wobei die Ausgabe eine Anordnung von einer oder mehreren logischen Partitionen für die Migration aus dem aktuellen System ist.
  • Als Nächstes bestimmt Block 118, ob irgendwelche geeigneten logischen Partitionen gefunden wurden, und falls dies zutrifft, bestimmt Block 120 eine Gruppe von Zielsystemen, in die die logischen Partitionen migriert werden sollen. In einer Ausführungsform kann die Bestimmung als Eingabe zum Beispiel eine LPAR-Anordnung empfangen und kann nach anderen Systemen in dem Pool suchen, die ausreichende überschüssige benutzungsberechtigte Kapazität haben, um die migrierenden logischen Partitionen aufzunehmen, und kann dann die Ergebnisse als eine Gruppe von Zielsystemen ausgeben. In einer Ausführungsform kann ein Zielsystem für jede logische Partition in der LPAR-Anordnung ausgewählt werden, obwohl in einigen Ausführungsformen mehrere logische Partitionen in bestimmte Systeme verschoben werden können. Eine Bestimmung, ob ein potenzielles Zielsystem ausreichende Kapazität hat, kann auf den Attributen installedProc, installedMem, activeProc, activeMem, entitledProc, entitledMem, utilizationLimitProc, und/oder utilizationLimitMem für das System beruhen, wobei z.B. Systeme mit ausreichenden überschüssigen aktiven Kapazitäten gegenüber Systemen mit ausreichenden überschüssigen installierten Kapazitäten begünstigt und eingerichtete Nutzungsgrenzen für das System berücksichtigt werden.
  • Als Nächstes bestimmt Block 122, ob irgendeine geeignete Gruppe von Zielsystemen gefunden wurde, und übergibt, sofern dies zutrifft, die Steuerung an Block 124, um zu bestimmen, ob der aktuelle Knoten eine „bessere“ Auswahl zum Herunterfahren als irgendein vorher identifizierter Knoten ist, der in der Zielknotenvariablen gespeichert ist. Außerdem kann eine Prüfung vorgenommen werden, um festzustellen, ob bisher kein anderer Knoten in der Zielknotenvariablen gespeichert worden ist, wodurch der aktuelle Knoten durch die Zielknotenvariable identifiziert würde. Diesbezüglich kann in einer Ausführungsform eine bessere Auswahl angegeben werden, wenn der aktuelle Knoten höhere Energieanforderungen (powerRating) als der durch die Zielknotenvariable identifizierte Knoten hat, da potenziell größere Energieeinsparungen durch Herunterfahren des aktuellen Knotens statt des Zielknotens erreicht werden können. In anderen Ausführungsformen können andere Kriterien verwendet werden, um zu bestimmen, ob ein Knoten eine bessere Auswahl als ein anderer ist, z.B. auf Grundlage einer erwarteten Herunterfahrzeit oder einer Kombination von Faktoren.
  • Wenn der aktuelle Knoten als bessere Auswahl betrachtet wird, übergibt Block 124 die Steuerung an Block 126, um die Zielknotenvariable zum Identifizieren des aktuellen Knotens einzurichten, die Zielsystemvariable zum Identifizieren des aktuellen Systems einzurichten, die LPAR-Anordnung auf die in Block 116 bestimmte Gruppe von LPARs einzurichten, die Systemanordnung auf die in Block 120 identifizierte Gruppe von Systemen einzurichten und „targetFound“ auf „Wahr“ zu setzen, um anzugeben, dass ein geeigneter Knoten zum Herunterfahren gefunden worden ist. Nach Beendigung von Block 126 oder in Reaktion auf eine negative Bestimmung in einem der Blöcke 118, 122 oder 124 kehrt die Steuerung zum Block 114 (3A) zurück, um den Zyklus durch die Knoten in dem aktuellen System fortzusetzen. Wenn alle Knoten in dem aktuellen System verarbeitet sind, gibt Block 114 die Steuerung an Block 110 zurück, um den Zyklus durch die anderen Systeme in dem Pool fortzusetzen.
  • Wenn alle Systeme verarbeitet sind, übergibt Block 110 die Steuerung an Block 128, um zu bestimmen, ob „targetFound“ auf „Wahr“ gesetzt worden ist. Wenn dies zutrifft, geht die Steuerung auf Block 130 über, um die logischen Partitionen in der LPAR-Anordnung in die Systeme in der System-Anordnung zu migrieren und den Knoten herunterzufahren, der durch den Zielknoten und die Zielsystemvariablen identifiziert worden ist. Nach Beendigung von Block 130, oder wenn in Block 128 bestimmt wurde, dass „targetFound“ „Falsch“ ist, kehrt die Steuerung zu Block 104 zurück, um eine weitere Wiederholung auszuführen, wenn die letzte Wiederholung einen geeigneten Zielknoten für ein Herunterfahren identifiziert hat („targetFound“ ist „Wahr“). Wenn keine weiteren Möglichkeiten zum Herunterfahren mehr identifiziert werden, beendet Block 104 die Routine 100.
  • 4A bis 4D veranschaulichen als Nächstes eine Beispiel-Reoptimierungsroutine 150, die die Verarbeitung wiedergibt, die in der Orchestrator-Komponente auftreten kann, wenn ein Systemereignis zum Erhöhen von benutzungsberechtigter Kapazität signalisiert wird. In einigen Ausführungsformen kann die Routine 150 durch einen Administrator auch manuell initiiert werden.
  • Die Routine 150 kann allgemein aufgerufen werden, bevor die dem Ereignis zugehörigen Operationen (z.B. Partition hochfahren, Partitions-Hibernation wieder aufnehmen, Migration einer aktiven Partition in den Pool, dynamisches Hinzufügen von Prozessor- oder dynamische Hinzufüge-Operation von Arbeitsspeicher) ausgeführt worden sind. Die Routine 150 kann als Eingabe das Modell des Energieverwaltungs-Pools und die Prozessor- und Arbeitsspeicherkapazität erhalten, die zum Bearbeiten des Erhöhungsereignisses benötigt werden. In einigen Ausführungsformen kann statt des Prozessor- und Arbeitsspeicher-Kapazitätsbedarfs eine Identifizierung einer Partition bereitgestellt werden, die hochgefahren/wieder aufgenommen/migriert werden soll, sodass die benötigte Prozessor- und Arbeitsspeicherkapazität aus dem Modell erhalten werden kann.
  • Die Routine 150 beginnt in Block 152, indem eine Zielsystemvariable auf Null gesetzt wird. Diese Variable wird als Ergebnis der Routine zurückgegeben, um das System anzugeben, auf dem die angeforderte Kapazität verwendet werden kann. Als Nächstes initiiert Block 154 eine FOR-Schleife, um zu bestimmen, ob die angeforderte Kapazität aus Ressourcen, die bereits hochgefahren sind, und ohne Partitionen zu verschieben gedeckt werden kann. Für jedes hochgefahrene System in dem Pool und bei einer Zielsystemvariablen gleich Null bestimmt Block 156 die erforderliche Prozessor- und Arbeitsspeicherkapazität. Zum Beispiel können die erforderlichen Kapazitäten in einer Ausführungsform für ein aktuelles System (S) wie folgt bestimmt werden: requiredActiveProc = ( S .entitledProc + requestedProcCapacity ) / S .utilizationLimitProc;
    Figure DE112015004564B4_0003
    requiredActiveMem = ( S .entitledMem + requestedMemCapacity ) / S .utilizationLimitMem
    Figure DE112015004564B4_0004
  • Block 158 bestimmt als Nächstes, ob das aktuelle System (S) ausreichende aktive Prozessor- und Arbeitsspeicherkapazität hat (z.B. wobei S.activeProc >= requiredActiveProc und S.activeMem >= requiredActiveMem). Falls dies zutrifft, wird das Zielsystem auf das aktuelle System gesetzt, und die Steuerung kehrt zu Block 154 zurück, wobei von Block 154 die Steuerung an Block 162 übergeben wird, da das Zielsystem nicht mehr Null ist. Wenn Block 158 desgleichen bestimmt, dass das aktuelle System keine ausreichende aktive Kapazität hat, übergibt Block 158 die Steuerung an Block 154, um weitere hochgefahrene Systeme in dem Pool zu verarbeiten.
  • Als nächstes bestimmt Block 162, ob die Zielsystemvariable immer noch Null ist, (somit ist die angeforderte Kapazität noch nicht bearbeitet worden), und übergibt, falls dies zutrifft, die Steuerung an Block 164, um eine weitere FOR-Schleife zu initiieren, um jedes hochgefahrene System in dem Pool zu verarbeiten, um zu bestimmen, ob die angeforderte Kapazität von bereits hochgefahrenen Ressourcen durch Verschieben von einer oder mehreren logischen Partitionen bearbeitet werden kann. Für jedes hochgefahrene System übergibt Block 164 die Steuerung an Block 166 (4B). um LPAR- und Systemanforderungen anfänglich auf Null zu setzen
  • Als Nächstes bestimmt Block 168, wie viel benutzungsberechtigte Prozessor- und Arbeitsspeicherkapazität auf dem aktuellen System verringert werden muss, um die angeforderte Kapazität aufzunehmen, und bestimmt eine Gruppe von Partitionen zur Migration aus dem aktuellen System, um die erforderlichen Kapazitätsverringerungen zu erreichen. Die bestimmte Gruppe von Partitionen wird dann in der LPAR-Anordnung gespeichert. In einer Ausführungsform kann die benutzungsberechtigte Prozessor- und Arbeitsspeicherkapazität, die verringert werden muss, zum Beispiel unter Verwendung von requestedProcCapacity und requestedMemCapacity wie folgt berechnet werden: requiredReductionInEntitledCapProc = requestedProcCapacity ( ( S .activeProc* S .utilizationLimitProc ) S .entitledProc )
    Figure DE112015004564B4_0005
    requiredReductionInEntitledCapMem = requestedMemCapacity ( ( S .activeMem* S .utilizationLimitMem ) S .entitledMem )
    Figure DE112015004564B4_0006
  • In einer Ausführungsform kann zum Bestimmen der Gruppe von Partitionen für die Migration aus dem aktuellen System eine Suche ausgeführt werden, um eine Gruppe von Partitionen zu bestimmen, deren Summe von benutzungsberechtigten Kapazitäten den erforderlichen Kapazitätsverringerungen am nächsten kommt, aber immer noch größer als diese ist oder diesen entspricht. Die Eingaben in eine derartige Bestimmung können das System, für das die zu verschiebende Gruppe von Partitionen berechnet werden soll, die erforderliche Verringerung der benutzungsberechtigten Prozessorkapazität und die erforderliche Verringerung der benutzungsberechtigten Arbeitsspeicherkapazität enthalten, wobei die Ausgabe eine Anordnung von einer oder mehreren logischen Partitionen für die Migration aus dem aktuellen System ist.
  • Als Nächstes bestimmt Block 170, ob irgendwelche geeigneten logischen Partitionen gefunden wurden (d.h. die LPAR-Anordnung ist nicht Null), und falls dies zutrifft, bestimmt Block 172 eine Gruppe von Zielsystemen, in die die logischen Partitionen in der LPAR-Anordnung migrieren sollen, wobei die Ergebnisse in der Systemanordnung gespeichert werden. In einer Ausführungsform kann die Bestimmung zum Beispiel auf eine ähnliche Art und Weise ausgeführt werden wie oben für Block 120 von 3B beschrieben.
  • Als Nächstes bestimmt Block 174, ob irgendeine geeignete Gruppe von Zielsystemen gefunden wurde (d.h. die Systemanordnung ist nicht Null), und übergibt, falls dies zutrifft, die Steuerung an Block 176, um die Partitionen in der LPAR-Anordnung in die Systeme in der Systemanordnung zu migrieren und das Zielsystem auf das aktuelle System zu setzen.
  • Nach Beendigung von Block 176 oder in Reaktion auf eine negative Bestimmung in einem der Blöcke 170 oder 174 kehrt die Steuerung zum Block 164 (3A) zurück, um den Zyklus durch die Systeme in dem Pool fortzusetzen. Wenn alle Systeme verarbeitet sind, übergibt Block 164 die Steuerung an Block 178, um zu bestimmen, ob die Zielsystemvariable immer noch Null ist (somit ist die angeforderte Kapazität noch nicht bearbeitet worden).
  • Falls dies zutrifft, geht die Steuerung zu Block 180 über und versucht herauszufinden, ob die angeforderte Kapazität durch Hochfahren eines Knotens auf einem hochgefahrenen System in dem Pool bearbeitet werden kann. Insbesondere setzt Block 180 ein optimales Knoten-Array und eine optimale Systemvariable auf Null. Das optimale Knoten-Array speichert einen oder mehrere Knoten, die als zum Hochfahren geeignet bestimmt wurden, um die angeforderte Kapazität zu bearbeiten. Die optimale Systemvariable gibt das System an, in dem sich die Knoten in dem optimalen Knoten-Array befinden.
  • Als Nächstes initiiert Block 182 eine FOR-Schleife, um jedes hochgefahrene System in dem Pool zu verarbeiten. Für jedes derartige System übergibt Block 182 die Steuerung an Block 184 (4C), um die erforderliche Erhöhung einer aktiven Prozessor- und Arbeitsspeichererhöhung zu bestimmen und die Gruppe von heruntergefahrenen Knoten zu bestimmen, die hochzufahren sind, um die erforderliche Erhöhung zu bearbeiten. In einer Ausführungsform können zum Beispiel die folgenden Werte berechnet werden, um die erforderliche Erhöhung einer aktiven Prozessor- und Arbeitsspeicherkapazität für ein System (S) zu bestimmen: requiredActiveProc = ( S .entitledProc + requestedProcCapacity ) / S .utilizationLimitProc;
    Figure DE112015004564B4_0007
    requiredIncreaseInActiveCapacityProc = requiredActiveProc S .activeProc;
    Figure DE112015004564B4_0008
    requiredActiveMem = ( S .entitledMem + requestedMemCapacity ) / S .utilizationLimitMem;
    Figure DE112015004564B4_0009
    requiredIncreaseInActiveCapacityMem = requiredActiveMem S .activeMem;
    Figure DE112015004564B4_0010
  • Ein Bestimmen der Gruppe von heruntergefahrenen Knoten zum Hochfahren kann Knoten-Nennleistungen berücksichtigen, sodass die ausgewählte Gruppe einen Mindestbetrag an Energie von allen wählbaren Gruppen verwendet.
  • Als Nächstes bestimmt Block 186, ob eine Gruppe von heruntergefahrenen Knoten zum Hochfahren gefunden wurde, und falls dies zutrifft, ob diese Gruppe „besser“ als die Gruppe ist, die in dem aktuellen optimalen Knoten-Array (sofern vorhanden) gespeichert ist. Zum Beispiel kann ein Vergleich zwischen den aggregierten Nennleistungen der bestimmten Gruppe und dem optimalen Knoten-Array ausgeführt werden, und wenn die bestimmte Gruppe eine niedrigere aggregierte Nennleistung hat, geht die Steuerung auf Block 188 über, um das optimale Knoten-Array auf die bestimmte Gruppe zu setzen und das optimale System auf das aktuelle System zu setzen, in dem sich die bestimmte Gruppe von Knoten befindet.
  • Nach Beendigung von Block 188, oder wenn Block 186 bestimmt, dass das optimale Knoten-Array immer noch optimal ist, kehrt die Steuerung zu Block 182 (4A) zurück, um die übrigen hochgefahrenen Systeme in dem Pool zu verarbeiten. Wenn alle Systeme verarbeitet worden sind, übergibt Block 182 die Steuerung an Block 190 (4D), um zu bestimmen, ob eine Gruppe von optimalen Knoten gefunden wurde (d.h. das optimale Knoten-Array ist nicht Null). Falls dies zutrifft, geht die Steuerung auf Block 192 über, um jeden Knoten in dem optimalen Knoten-Array hochzufahren und das Zielsystem auf das bestimmte optimale System zu setzen.
  • Nach Beendigung von Block 192 oder wenn in Block 190 keine optimalen Knoten gefunden wurden, geht die Steuerung auf Block 194 über, um wiederum zu bestimmen, ob die Zielsystemvariable immer noch Null ist (somit ist die angeforderte Kapazität noch nicht bearbeitet worden). Falls dies zutrifft, geht die Steuerung auf Block 196 über, um einen Prozess zum Bestimmen zu initiieren, ob die angeforderte Kapazität durch Hochfahren eines gesamten Systems bearbeitet werden kann. Insbesondere setzt Block 196 eine temporäre Zielsystemvariable auf Null, und Block 198 initiiert eine FOR-Schleife, um jedes heruntergefahrene System in dem Pool zu verarbeiten. Für jedes derartige System bestimmt Block 200 erforderliche aktive Kapazitäten für das System, z.B. durch Teilen der angeforderten Kapazitäten durch die Nutzungsgrenzen für das System (z.B. utilizationLimitProc und utilizationLimitMem).
  • Block 202 bestimmt anschließend, ob die installierten Kapazitäten für das System (z.B. installedProc und installedMem) die erforderlichen aktiven Kapazitäten erfüllen (z.B. größer sind oder diesen entsprechen). Falls dies zutrifft, bestimmt Block 202 auch, ob die installierten Kapazitäten des aktuellen Systems kleiner sind als diejenigen des Systems, das durch die temporäre Zielsystemvariable (sofern vorhanden) identifiziert wurde. Falls dies zutrifft, geht die Steuerung auf Block 204 über, um die temporäre Zielsystemvariable auf das aktuelle System zu setzen. Nach Beendigung von Block 204, oder wenn Block 202 nicht bestimmt, dass das aktuelle System geeignet ist, kehrt die Steuerung zu Block 198 zurück, um die übrigen hochgefahrenen Systeme in dem Pool zu verarbeiten.
  • Wenn alle heruntergefahrenen Systeme verarbeitet sind, übergibt Block 198 die Steuerung an Block 206, um zu bestimmen, ob die Zielsystemvariable nicht Null ist (d.h. identifiziert ein zum Hochfahren geeignetes System). Falls dies zutrifft, geht die Steuerung auf Block 208 über, um jedes durch die temporäre Zielsystemvariable identifizierte System hochzufahren und die Zielsystemvariable auf das hochgefahrene System zu setzen. Danach geht die Steuerung auf Block 210 über, um die Zielsystemvariable zurückzugeben und die Routine zu beenden.
  • Wenn Block 206 bestimmt, dass die temporäre Zielsystemvariable Null ist, wird Block 208 umgangen und die Steuerung fährt mit Block 210 fort, um die Routine zu beenden. Außerdem sollte klar sein, dass jeder der Blöcke 162, 178 und 194 die Steuerung effektiv an Block 210 übergibt, sobald die Zielsystemvariable auf einen Nicht-Null-Wert gesetzt wird, wodurch angegeben wird, dass die angeforderte Kapazität bearbeitet worden ist.

Claims (9)

  1. Verfahren zum Verwalten von Energieverbrauch in einer logisch partitionierten Datenverarbeitungsumgebung (10) mit einer Sammlung von Prozessorknoten (14; 56), die in einem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) angeordnet sind, wobei jeder der Prozessorknoten (14; 56) einen oder mehrere Prozessoren (20) und eine oder mehrere Arbeitsspeichereinheiten (22) enthält, die fähig sind, eine oder mehrere logische Partitionen (30; 58) zu hosten, wobei das Verfahren aufweist: Zuordnen einer Mehrzahl von logischen Partitionen (30; 58) zu dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54), um den Energieverbrauch in der logisch partitionierten Datenverarbeitungsumgebung (10) zu optimieren; nach dem Zuordnen der Mehrzahl von logischen Partitionen (30; 58) autonomes Überwachen des Pools (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) für Systemereignisse, die in Reaktion auf Operationen signalisiert werden, die Ressourcenanforderungen von logischen Partitionen (30; 58) ändern, die dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) zugeordnet sind; Erkennen eines ersten Systemereignisses, das die Ressourcenanforderungen von logischen Partitionen, die dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) zugeordnet sind, auf Grundlage eines Überwachens des Pools (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) ändert; und in Reaktion auf ein Erkennen des ersten Systemereignisses, das von einer Systemverwaltungseinrichtung (46) signalisiert wird, Benachrichtigen einer Orchestrator-Komponente (44) den Energieverbrauch in der logisch partitionierten Datenverarbeitungsumgebung (10) durch ein dynamisches Neuzuordnen von mindestens einer Untergruppe der Mehrzahl von logischen Partitionen (30; 58) zu der Sammlung von Prozessorknoten (14; 56) und dynamisches Modifizieren eines Energiezustands von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten (14; 56), die in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) angeordnet sind, zu reoptimieren, wobei das dynamische Neuzuordnen der mindestens einen Untergruppe der Mehrzahl von logischen Partitionen (30; 58) zu der Sammlung von Prozessorknoten (14; 56) ein Verschieben zumindest einer logischen Partition zwischen Prozessorknoten der Sammlung von Prozessorknoten (14; 56) umfasst.
  2. Verfahren nach Anspruch 1, wobei die Sammlung von Prozessorknoten (14; 56) einen ersten Prozessorknoten enthält, der in einem ersten logisch partitionierten Datenverarbeitungssystem in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) angeordnet ist, wobei das erste Systemereignis Ressourcenanforderungen verringert, und wobei ein Reoptimieren des Energieverbrauchs in der logisch partitionierten Datenverarbeitungsumgebung (10) ein Herunterfahren des Energiezustands des ersten Prozessorknotens in der Sammlung von Prozessorknoten (14; 56) und Verschieben von mindestens einer logischen Partition, die vorher dem ersten Prozessorknoten zugeordnet war, zu einem oder mehreren verschiedenen Prozessorknoten in dem ersten logisch partitionierten Datenverarbeitungssystem oder einem anderen logisch partitionierten Datenverarbeitungssystem in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) enthält.
  3. Verfahren nach Anspruch 2, wobei das erste Systemereignis ein Ereignis zum Abschalten einer logischen Partition.
  4. Verfahren nach Anspruch 1, wobei die Sammlung von Prozessorknoten (14; 56) einen ersten Prozessorknoten enthält, der in einem ersten logisch partitionierten Datenverarbeitungssystem in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) angeordnet ist, wobei das erste Systemereignis Ressourcenanforderungen erhöht, und wobei ein Reoptimieren des Energieverbrauchs in der logisch partitionierten Datenverarbeitungsumgebung (10) ein Hochfahren des Energiezustands des ersten Prozessorknotens und ein Verwenden der Kapazität enthält, die durch das Erhöhen des Energieniveaus des Prozessorknotens erhalten wurde, um höhere Ressourcenanforderungen zu erfüllen.
  5. Verfahren nach Anspruch 4, wobei das erste Systemereignis ein Ereignis zum Hochfahren einer logischen Partition.
  6. Verfahren nach Anspruch 1, wobei ein erstes logisch partitioniertes Datenverarbeitungssystem in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) erste und zweite Prozessorknoten aus der Sammlung von Prozessorknoten (14; 56) enthält, und wobei ein dynamisches Modifizieren des Energiezustands von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten (14; 56) ein Herunterfahren oder Hochfahren des ersten Prozessorknotens enthält, wobei der Energiezustand des zweiten Prozessorknoten beibehalten wird.
  7. Verfahren nach Anspruch 1, wobei ein erstes logisch partitioniertes Datenverarbeitungssystem in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) mehrere Prozessorknoten aus der Sammlung von Prozessorknoten (14; 56) enthält, wobei ein zweites logisch partitioniertes Datenverarbeitungssystem in dem Pool (18; 52) von logisch partitionierten Datenverarbeitungssystemen (16; 54) einen einzelnen Prozessorknoten aus der Sammlung von Prozessorknoten (14; 56) enthält, und wobei ein dynamisches Modifizieren des Energiezustands von mindestens einem der Prozessorknoten in der Sammlung von Prozessorknoten (14; 56) ein Herunterfahren oder Hochfahren des zweiten logisch partitionierten Datenverarbeitungssystems enthält, wobei ein Energiezustand von jedem der mehreren Prozessorknoten in dem ersten logisch partitionierten Datenverarbeitungssystem beibehalten wird.
  8. System, das Mittel aufweist, die für ein Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch angepasst sind.
  9. Computerprogramm, das Anweisungen zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch aufweist, wobei das Computerprogramm auf einem Computersystem ausgeführt wird.
DE112015004564.3T 2014-12-19 2015-12-02 Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung Active DE112015004564B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/576,370 2014-12-19
US14/576,370 US9886083B2 (en) 2014-12-19 2014-12-19 Event-driven reoptimization of logically-partitioned environment for power management
PCT/IB2015/059280 WO2016097913A1 (en) 2014-12-19 2015-12-02 Event-driven reoptimization of logically-partitioned environment for power management

Publications (2)

Publication Number Publication Date
DE112015004564T5 DE112015004564T5 (de) 2017-06-22
DE112015004564B4 true DE112015004564B4 (de) 2020-04-02

Family

ID=56126024

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004564.3T Active DE112015004564B4 (de) 2014-12-19 2015-12-02 Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung

Country Status (6)

Country Link
US (3) US9886083B2 (de)
JP (1) JP6679146B2 (de)
CN (1) CN107003713B (de)
DE (1) DE112015004564B4 (de)
GB (1) GB2549230B (de)
WO (1) WO2016097913A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983652B2 (en) * 2015-12-04 2018-05-29 Advanced Micro Devices, Inc. Balancing computation and communication power in power constrained clusters
US10445009B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Systems and methods of controlling memory footprint
US10824215B2 (en) 2018-07-31 2020-11-03 Nutanix, Inc. Managing power budget of multiple computing node clusters in a computing rack system
CN109708086A (zh) * 2018-12-05 2019-05-03 新奥数能科技有限公司 一种优化泛能站中燃气锅炉调度的方法和装置
JP7280476B2 (ja) * 2019-01-30 2023-05-24 日本電信電話株式会社 クラスタリングシステムおよびクラスタリング方法
CN111861551B (zh) * 2020-07-08 2023-12-05 海宁同兴智慧园区管理有限公司 一种园区用电智慧监测管理系统
US11972304B1 (en) * 2021-05-25 2024-04-30 United Services Automobile Association (Usaa) Systems and methods for automatic detection of an event and providing resources customized based on the event

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070784A1 (en) * 2008-09-15 2010-03-18 Vmware, Inc. Reducing Power Consumption in a Server Cluster
US8402259B2 (en) * 2009-11-30 2013-03-19 International Business Machines Corporation Accelerating wake-up time of a system
US20140007124A1 (en) * 2012-06-27 2014-01-02 International Business Machines Corporation Computing Processor Resources for Logical Partition Migration
US8745237B2 (en) * 2011-10-21 2014-06-03 Red Hat Israel, Ltd. Mapping of queues for virtual machines

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167821B2 (en) * 2000-06-06 2007-01-23 Microsoft Corporation Evaluating hardware models having resource contention
US7523454B2 (en) 2001-03-06 2009-04-21 Hewlett-Packard Development Company, L.P. Apparatus and method for routing a transaction to a partitioned server
JP4119239B2 (ja) 2002-12-20 2008-07-16 株式会社日立製作所 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US20140067771A2 (en) 2004-07-09 2014-03-06 International Business Machines Corporation Management of a Scalable Computer System
JP4895266B2 (ja) * 2005-12-28 2012-03-14 富士通株式会社 管理システム、管理プログラムおよび管理方法
US8146089B2 (en) 2006-06-14 2012-03-27 Intel Corporation Sharing resources of a partitioned system
CN101470634B (zh) 2007-12-24 2012-05-09 联想(北京)有限公司 Cpu资源调度方法及cpu资源调度装置
JP4488072B2 (ja) * 2008-01-18 2010-06-23 日本電気株式会社 サーバシステム、及びサーバシステムの電力削減方法
US7650488B2 (en) 2008-06-18 2010-01-19 Intel Corporation Communication between processor core partitions with exclusive read or write to descriptor queues for shared memory space
JP4922255B2 (ja) * 2008-06-30 2012-04-25 株式会社日立製作所 情報処理システムおよびそのシステムにおける省電力制御方法
US8910169B2 (en) 2008-09-30 2014-12-09 Intel Corporation Methods and systems to perform a computer task in a reduced power consumption state
US8117613B2 (en) * 2009-04-08 2012-02-14 Microsoft Corporation Optimized virtual machine migration mechanism
JP5471080B2 (ja) * 2009-06-30 2014-04-16 日本電気株式会社 情報システム、制御装置、そのデータ処理方法およびプログラム
JP5531465B2 (ja) * 2009-06-30 2014-06-25 日本電気株式会社 情報システム、制御装置、そのデータ処理方法およびプログラム
US8291430B2 (en) 2009-07-10 2012-10-16 International Business Machines Corporation Optimizing system performance using spare cores in a virtualized environment
JP5435399B2 (ja) * 2009-10-07 2014-03-05 日本電気株式会社 省電力化システム、省電力化方法、及び省電力化用プログラム
JP5378946B2 (ja) * 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
US8627123B2 (en) * 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
JP5097263B2 (ja) * 2010-12-17 2012-12-12 株式会社日立製作所 計算機システム、その消費電力低減方法、及びそのプログラム
JP5664339B2 (ja) * 2011-03-01 2015-02-04 富士通株式会社 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム
US8819691B2 (en) 2011-05-04 2014-08-26 International Business Machines Corporation Logical partition defragmentation within a data processing system
JP5576827B2 (ja) * 2011-06-03 2014-08-20 日本電信電話株式会社 サーバ管理システム、サーバ管理装置、サーバ管理方法、及びサーバ管理プログラム
US8909785B2 (en) 2011-08-08 2014-12-09 International Business Machines Corporation Smart cloud workload balancer
US9047087B2 (en) * 2012-02-01 2015-06-02 Vmware, Inc. Power management and virtual machine migration between logical storage units based on quantity of shared physical storage units
EP2839373A4 (de) 2012-04-16 2015-12-09 Hewlett Packard Development Co Instrumentierung virtueller computerressourcen
WO2014045549A1 (ja) * 2012-09-19 2014-03-27 日本電気株式会社 マシン配置計画を生成する情報処理装置及びマシン配置計画生成方法
US20140237475A1 (en) * 2013-02-15 2014-08-21 Apple Inc. Sleep/wake with suppression and donated importance
JP6032089B2 (ja) * 2013-03-26 2016-11-24 富士通株式会社 管理プログラム、装置及び方法
US9189410B2 (en) 2013-05-17 2015-11-17 Vmware, Inc. Hypervisor-based flash cache space management in a multi-VM environment
US9262799B2 (en) 2013-11-08 2016-02-16 Silicon Graphics International Corp. Shared memory eigensolver
US10397131B2 (en) 2014-09-09 2019-08-27 Vmware, Inc. Method and system for determining bandwidth demand

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070784A1 (en) * 2008-09-15 2010-03-18 Vmware, Inc. Reducing Power Consumption in a Server Cluster
US8402259B2 (en) * 2009-11-30 2013-03-19 International Business Machines Corporation Accelerating wake-up time of a system
US8745237B2 (en) * 2011-10-21 2014-06-03 Red Hat Israel, Ltd. Mapping of queues for virtual machines
US20140007124A1 (en) * 2012-06-27 2014-01-02 International Business Machines Corporation Computing Processor Resources for Logical Partition Migration

Also Published As

Publication number Publication date
JP2018504665A (ja) 2018-02-15
GB2549230B (en) 2019-05-29
CN107003713B (zh) 2020-03-24
DE112015004564T5 (de) 2017-06-22
JP6679146B2 (ja) 2020-04-15
US10664040B2 (en) 2020-05-26
US20160179185A1 (en) 2016-06-23
CN107003713A (zh) 2017-08-01
GB201711272D0 (en) 2017-08-30
US9772677B2 (en) 2017-09-26
US20160179583A1 (en) 2016-06-23
US20180081423A1 (en) 2018-03-22
WO2016097913A1 (en) 2016-06-23
US9886083B2 (en) 2018-02-06
GB2549230A (en) 2017-10-11

Similar Documents

Publication Publication Date Title
DE112015004564B4 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE112011102115B4 (de) Transparente Steigerung von Energieeinsparungen in einer Energieverbrauchs-Steuerungsumgebung
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112011100392B4 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE112011102183B4 (de) Beschleuniger für die Migration virtueller Maschinen
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
US9389900B2 (en) Method and system for supporting a change in state within a cluster of host computers that run virtual machines
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
US20090276783A1 (en) Expansion and Contraction of Logical Partitions on Virtualized Hardware
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
US9424063B2 (en) Method and system for generating remediation options within a cluster of host computers that run virtual machines
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE112011103829T5 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE112012005030T5 (de) Dynamisch konfigurierbare Platzierungs-Engine
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112016007336B4 (de) Informationsverarbeitungsvorrichtung, Vorrichtungszuweisungsverfahren undVorrichtungszuweisungsprogramm
DE112011101019T5 (de) Verarbeitung von Befehlen mit mehreren Prioritäten zwischen Back-End-Prozessoren
DE102021127324A1 (de) Planung von aufträgen auf grafischen verarbeitungseinheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final