DE102010029209B4 - Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern - Google Patents

Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern Download PDF

Info

Publication number
DE102010029209B4
DE102010029209B4 DE102010029209.5A DE102010029209A DE102010029209B4 DE 102010029209 B4 DE102010029209 B4 DE 102010029209B4 DE 102010029209 A DE102010029209 A DE 102010029209A DE 102010029209 B4 DE102010029209 B4 DE 102010029209B4
Authority
DE
Germany
Prior art keywords
services
resource
time
computer
service
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.)
Expired - Fee Related
Application number
DE102010029209.5A
Other languages
English (en)
Other versions
DE102010029209A1 (de
Inventor
Marko HOYER
Daniel Schlitt
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.)
OFFIS eV
Original Assignee
OFFIS eV
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 OFFIS eV filed Critical OFFIS eV
Priority to DE102010029209.5A priority Critical patent/DE102010029209B4/de
Priority to US13/112,702 priority patent/US8949642B2/en
Publication of DE102010029209A1 publication Critical patent/DE102010029209A1/de
Application granted granted Critical
Publication of DE102010029209B4 publication Critical patent/DE102010029209B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten (1, 2, ..., 7) in einem Netz aus einer Vielzahl von Rechnern (S1, S2, ..., S4), bei dem: a) aus einem vergangenen zeitlichen Verlauf des Ressourcenbedarfs (Ri(t)) eines jeweiligen Dienstes (1, 2, ..., 7) in einem vorbestimmten Zeitintervall (ΔtAi) ein vergangener zeitlicher Verlauf einer für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) zur Erfüllung einer vorgegebenen Diensteanforderung abgeleitet wird, indem zur Ermittlung der Ressourcenkapazität (Ai(t)) zu einem Zeitpunkt in dem vorbestimmten Zeitintervall der zeitliche Verlauf des Ressourcenbedarfs (Ri(t)) in einem Teilintervall des vorbestimmten Zeitintervalls, welches den Zeitpunkt enthält oder benachbart zu diesem Zeitpunkt liegt, statistisch ausgewertet wird und aus der statistischen Auswertung des Ressourcenbedarfs (Ri(t)) eine Ressourcenkapazität (Ai(t)) ermittelt wird, welche die vorgegebene Diensteanforderung in dem Teilintervall erfüllt; b) aus dem vergangenen zeitlichen Verlauf der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) ein zeitlicher Verlauf der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)), welche die vorgegebene Diensteanforderung erfüllt, vorhergesagt wird; c) die auf den Rechnern (S1, S2, ..., S4) ausgeführten Dienste (1, 2, ..., 7) basierend auf einem oder mehreren Optimierungskriterien verteilt werden, wobei das oder die Optimierungskriterien das Kriterium umfassen, dass die jeweiligen Rechner (S1, S2, ..., S4) eine ausreichende Ressourcemenge für die auf den jeweiligen Rechnern (S1, S2, ..., S4) ausgeführten Dienste (1, 2, ..., 7) basierend auf den vorhergesagten zeitlichen Verläufen der für die jeweiligen Dienste (1, 2,..., 7) erforderlichen Ressourcenkapazitäten (Ai(t)) bereitstellen.

Description

  • Die Erfindung betrifft ein Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern sowie ein entsprechendes Rechnernetz.
  • In Rechnernetzen, wie sie beispielsweise in Rechenzentren zum Einsatz kommen, wird eine Vielzahl von Rechenprozessen parallel auf mehreren Rechnern durchgeführt. Verschiedene Rechenprozesse werden dabei in der Form von Diensten, beispielsweise in der Form sog. virtueller Maschinen, auf den Ressourcen der jeweiligen Rechner ausgeführt. Diese Ressourcen umfassen z. B. die CPU-Zeit, den I/O-Durchsatz (I/O = Input/Output), die RAM-Auslastung und dergleichen. Um sicherzustellen, dass für die Dienste, die in dem Rechnernetz zur Ausführung kommen, ausreichend Ressourcen zu deren Ausführung vorhanden sind, werden oftmals entsprechende Diensteanforderungen festgelegt, welche häufig auch als QoS-Anforderungen (QoS = Quality of Service) bezeichnet werden. Die Verteilung der Dienste muss dabei so gewählt sein, dass die Dienste gemäß den QoS-Anforderungen ausgeführt werden können.
  • Zur Erfüllung von Diensteanforderungen in Rechnernetzen sind aus dem Stand der Technik verschiedene Verfahren zur dynamischen Last- und Energieverwaltung bekannt, welche die Dienste geeignet auf die Rechner verteilen, so dass möglichst immer eine ausreichende Ressourcenmenge zur Ausführung der auf den jeweiligen Rechnern laufenden Dienste bereitgestellt wird. Bekannte Verfahren führen dabei die Urnverteilung der Dienste häufig nur basierend auf dem aktuell beobachteten Bedarfsverhalten der Dienste aus und können somit oftmals nicht rechtzeitig auf ein sich veränderndes Bedarfsverhalten reagieren, so dass es zu zeitweise auftretenden Ressourcenengpässen kommen kann, die zu unkontrollierbaren Einbrüchen bei der Ausführung von Diensten führen.
  • Aus dem Stand der Technik sind ferner prädiktive Ansätze bekannt, welche basierend auf vergangenen Auslastungsdaten der Rechner in einem Rechnernetz den zukünftigen Ressourcenbedarf vorherzusagen versuchen (siehe beispielsweise Druckschrift [1]). Die in den bekannten Verfahren durchgeführten Vorhersagen können jedoch nicht garantieren, dass die Diensteanforderungen der jeweiligen Dienste auch tatsächlich eingehalten werden.
  • Die Druckschrift [5] offenbart ein Verfahren, bei dem der Ressourcenbedarf für Dienste in einem Computersystem basierend auf historischen Daten prognostiziert wird.
  • Das Dokument [6] beschreibt ein Verfahren zur Verwaltung von Ressourcen, um den zukünftigen Ressourcenbedarf von virtuellen Maschinen vorherzusagen.
  • In der Druckschrift [7] wird ein System beschrieben, bei dem aus der Anzahl von in der Vergangenheit durchgeführten Transaktionen ein zukünftiger Ressourcenbedarf vorhergesagt wird.
  • In der Druckschrift [8] wird eine adaptive Vorhersagemethode für die Last in einem Computersystem für kurze Zeitintervalle in der Zukunft beschrieben.
  • Die Druckschrift [9] offenbart die Verwaltung von Ressourcen in einem Computersystem unter Verwendung einer vorhersagten Last, die basierend auf Daten im Computersystem ermittelt wird.
  • Aufgabe der Erfindung ist es, ein Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Rechnernetz zu schaffen, welches zuverlässig die Diensteanforderungen der jeweiligen Dienste einhalten kann.
  • Diese Aufgabe wird durch das Verfahren gemäß Patentanspruch 1 bzw. das Rechnernetz gemäß Patentanspruch 18 gelöst. Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen definiert.
  • Das erfindungsgemäße Verfahren dient zur dynamischen Verteilung von einem oder mehreren Diensten zu deren Ausführung in einem Netz aus einer Vielzahl von Rechnern. In dem Verfahren wird in einem Schritt a) für jeden Dienst aus einem vergangenen zeitlichen Verlauf des Ressourcenbedarfs des jeweiligen Dienstes in einem vorbestimmten Zeitintervall ein vergangener zeitlicher Verlauf einer für den jeweiligen Dienst erforderlichen Ressourcenkapazität gemäß einer vorgegebenen, für den jeweiligen Dienst zu erfüllenden Diensteanforderung abgeleitet. Die Ermittlung der Ressourcenkapazität zu einem Zeitpunkt in dem vorbestimmten Zeitintervall erfolgt dabei derart, dass der zeitliche Verlauf des Ressourcenbedarfs in einem Teilintervall des vorbestimmten Zeitintervalls statistisch ausgewertet wird, wobei das Teilintervall den Zeitpunkt enthält oder benachbart zu diesem Zeitpunkt liegt. Der Ausdruck „benachbart zu diesem Zeitpunkt” ist dabei derart zu verstehen, dass im Einzelfall das Teilintervall auch geringfügig zu dem gerade betrachteten Zeitpunkt versetzt sein kann, wobei jedoch im Regelfall der Zeitpunkt im Teilintervall enthalten sein sollte. Insbesondere kann dieser Zeitpunkt den Anfang bzw. auch das Ende des Teilintervalls bilden. Basierend auf der durchgeführten statistischen Auswertung wird dann eine Ressourcenkapazität ermittelt, welche die Diensteanforderung in dem Teilintervall erfüllt. Diese Ressourcenkapazität ist dann die für den jeweiligen Dienst erforderliche Ressourcenkapazität zu dem Zeitpunkt in dem vorbestimmten Zeitintervall. Der Begriff der statistischen Auswertung ist hierbei weit zu verstehen und umfasst jede Art der Auswertung, bei der aus der Vielzahl von Ressourcenbedarfswerten in dem Teilintervall statistische Größen, wie z. B. Maximalwert, Minimalwert, Häufigkeitsverteilung und dergleichen, abgeleitet werden.
  • Aus dem vergangenen zeitlichen Verlauf der für den jeweiligen Dienst erforderlichen Ressourcenkapazität wird erfindungsgemäß in einem Schritt b) ein zeitlicher Verlauf der für den jeweiligen Dienst erforderlichen Ressourcenkapazität vorhergesagt. Es ergibt sich somit ein vorhergesagter zeitlicher Verlauf einer erforderlichen Ressourcenkapazität für jeden im Rechnernetz ausgeführten Dienst. Die auf dem Rechner ausgeführten Dienste werden dann in einem Schritt c) basierend auf einem oder mehreren Optimierungskriterien verteilt, wobei das oder die Optimierungskriterien das Kriterium umfassen, dass die jeweiligen Rechner eine ausreichende Ressourcenmenge für die auf den jeweiligen Rechnern ausgeführten Dienste basierend auf den vorhergesagten zeitlichen Verläufen der für die jeweiligen Dienste erforderlichen Ressourcenkapazitäten bereitstellen.
  • Das erfindungsgemäße Verfahren zeichnet sich durch eine geeignete Modellierung eines in der Vergangenheit aufgetretenen Ressourcenbedarfs der Dienste unter Berücksichtigung der entsprechenden Diensteanforderungen aus. Auf diese Weise wird es ermöglicht, dass in die Vorhersage der Dienste in geeigneter Weise auch die entsprechenden Diensteanforderungen einfließen, so dass die Dienste derart auf die Rechner verteilt werden können, dass die Diensteanforderungen im Betrieb des Verfahrens immer erfüllt bleiben.
  • Das oder die Optimierungskriterien umfassen in einer besonders bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens ferner das Kriterium einer möglichst geringen Anzahl von zur Ausführung der Dienste verwendeten Rechner, wobei Rechner, auf denen keine Dienste ausgeführt werden, in einen Energiesparmodus versetzt werden. Der Begriff des Energiesparmodus ist dabei weit zu verstehen und umfasst insbesondere auch das Abschalten des entsprechenden Rechners. Mit der soeben beschriebenen Variante des Verfahrens können nicht nur Diensteanforderungen erfüllt werden, sondern ferner auch der Energieverbrauch im Rechnernetz stark reduziert werden.
  • In einer weiteren bevorzugten Variante der Erfindung erfolgt die im Verfahren durchgeführte statistische Auswertung derart, dass aus dem vergangenen zeitlichen Verlauf des Ressourcenbedarfs in dem Teilintervall ein Histogramm ermittelt wird und aus dem Histogramm die Ressourcenkapazität abgeleitet wird, welche die vorgegebene Diensteanforderung in dem Teilintervall erfüllt. Die Diensteanforderung legt dabei insbesondere fest, mit welcher Häufigkeit der Ressourcenbedarf kleiner oder kleiner gleich der auf dem jeweiligen Rechner verfügbaren Ressourcenkapazität sein muss. Dabei entspricht die Ressourcenkapazität, welche die Diensteanforderung in dem Teilintervall erfüllt, dem Ressourcenbedarf im Histogramm an dem kumulierten Wert der Häufigkeit gemäß der vorgegebenen Diensteanforderung. Gegebenfalls kann die vorgegebene Diensteanforderung auch festlegen, dass der Ressourcenbedarf die auf dem jeweiligen Rechner verfügbare Ressourcenkapazität nicht überschreiten darf, wobei in diesem Fall die Ressourcenkapazität, welche die Diensteanforderung in dem Teilintervall erfüllt, dem maximalen Ressourcenbedarf im Teilintervall entspricht.
  • Zur Vorhersage des zeitlichen Verlaufs der für einen jeweiligen Dienst erforderlichen Ressourcenkapazität wird in einer besonders bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens aus dem vergangenen zeitlichen Verlauf der für den jeweiligen Dienst erforderlichen Ressourcenkapazität eine prädominante bzw. dominante Periode ermittelt. Anschließend wird das vorbestimmte Zeitintervall in Teilintervalle mit der Länge der prädominanten Periode eingeteilt, wobei der vorhergesagte zeitliche Verlauf der für den jeweiligen Dienst erforderlichen Ressourcenkapazität für ein zukünftiges Zeitintervall mit der Länge der prädominanten Periode derart bestimmt wird, dass aus den Ressourcenkapazitäten zu den gleichen Relativzeitpunkten in jedem Teilintervall die maximale Ressourcenkapazität ausgewählt wird, wobei die ausgewählte Ressourcenkapazität der Ressourcenkapazität einem Relativzeitpunkt in dem zukünftigen Zeitintervall entspricht. Gemäß dieser Ausführungsform wird der Tatsache Rechnung getragen, dass der Ressourcenbedarf in Rechnernetzen in der Regel einer vorbestimmten jedoch häufig unbekannten Periodizität, beispielsweise basierend auf einem Tag, einer Woche oder auch beliebigen anderen Zeitraumen, unterliegt, welche durch die Extraktion der prädominanten Periode bestimmt wird. Sollten sich gegebenenfalls mehrere dominante Perioden ergeben, so ist die prädominante Periode vorzugsweise diejenige, welche basierend auf einer entsprechenden Analyse die größte Dominanz (z. B. in der Form eines entsprechenden Peaks) aufweist. In einer besonders bevorzugten Variante wird die prädominante Periode dabei über eine Autokorrelationsanalyse des vergangenen zeitlichen Verlaufs der für den jeweiligen Dienst erforderlichen Ressourcenkapazität bestimmt. Verfahren zur Autokorrelationsanalyse sind dabei hinlänglich aus dem Stand der Technik bekannt und werden deshalb an dieser Stelle nicht im Detail erläutert. Über diese Verfahren können vorhandene periodische Wiederholungen in Zeitreihen basierend auf der Bestimmung einer Autokorrelationsfunktion ermittelt werden, wobei in der Autokorrelationsfunktion entsprechende Peaks auftreten und der Peak mit dem größten Ausschlag der prädominanten Periode entspricht.
  • In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens wird zu einem aktuellen Zeitpunkt die Ressourcenkapazität zu einem vergangenen Zeitpunkt mittels einer statistischen Auswertung des Ressourcenbedarfs in dem Teilintervall, welches an dem aktuellen Zeitpunkt endet, ermittelt und mit der vorhergesagten Ressourcenkapazität zu dem vergangenen Zeitpunkt verglichen. Die statistische Auswertung entspricht dabei der statistischen Auswertung gemäß Schritt a). Schließlich wird die zukünftige Vorhersage des zeitlichen Verlaufs an den vergangenen zeitlichen Verlauf der Ressourcenkapazität derart angepasst, dass Ressourcenkapazitäten in dem vergangenen zeitlichen Verlauf, welche größer sind als die entsprechenden Ressourcenkapazitäten in dem vorhergesagten zeitlichen Verlauf, die Ressourcenkapazitäten in der zukünftigen Vorhersage ersetzen. Auf diese Weise wird in dem Verfahren auch ein sich unerwartet verändernder Ressourcenbedarf in geeigneter Weise berücksichtigt. In einer besonders bevorzugten Variante werden dabei sowohl der Schritt a) als auch der Schritt b) wiederholt, wenn die Anzahl an Ressourcenkapazitäten in dem vergangenen zeitlichen Verlauf, welche kleiner sind als die entsprechenden Ressourcenkapazitäten im vorhergesagten zeitlichen Verlauf, ein vorgegebenes Maß überschreiten. Hierdurch wird sichergestellt, dass bei einer länger andauernden Abweichung zwischen tatsächlichem und vorhergesagtem Ressourcenbedarf das Vorhersagemodell entsprechend angepasst wird.
  • In einer weiteren Variante des erfindungsgemäßen Verfahrens kann ferner auch der Langzeittrend des zeitlichen Verlaufs der für den jeweiligen Dienst erforderlichen Ressourcenkapazität mit an sich bekannten Verfahren (wie z. B. Regressionsverfahren) ermittelt werden. In diesem Fall wird dann der zeitliche Verlauf der für den jeweiligen Dienst erforderlichen Ressourcenkapazität aus dem vergangenen zeitlichen Verlauf, der um den Langzeittrend bereinigt ist, vorhergesagt. Auf diese Weise wird immer eine gute Vorhersage der zukünftigen erforderlichen Ressourcenkapazität gewährleistet.
  • In einer weiteren Variante des erfindungsgemäßen Verfahrens erfolgt die Verteilung der Dienste in Schritt c) derart, dass für einen jeweiligen laufenden Rechner unter Berücksichtigung der vorhergesagten zeitlichen Verläufe der für die jeweiligen Dienste erforderlichen Ressourcenkapazitäten und der im Netz verfügbaren Ressourcenmengen versucht wird, die Dienste auf dem jeweiligen laufenden Rechner auf andere laufende Rechner zu verschieben, um anschließend den Rechner in einen Energiesparmodus zu versetzen, und dass bei einem Ressourcenengpass, der sich aus den vorhergesagten zeitlichen Verläufen der für die jeweiligen Dienste erforderlichen Ressourcenkapazitäten ergibt, versucht wird, die Dienste zur Behebung des Ressourcenengpasses derart zu verschieben, dass Rechner, die sich gerade im Energiesparmodus befinden, nicht aktiviert werden. Auf diese Weise wird ein besonders energieeffizienter Betrieb des Rechnernetzes erreicht.
  • In einer weiteren Ausführungsform der Erfindung wird das Verfahren mit einer sicheren Verteilung der Dienste auf den Rechnern initialisiert, wobei die sichere Verteilung derart ausgestaltet ist, dass sie garantiert, dass der Ressourcenbedarf der Dienste, welche gemäß der sicheren Verteilung auf einem jeweiligen Rechner laufen, nie zu einem Überschreiten der durch den jeweiligen Rechner bereitgestellten Ressourcenmenge führt, wobei die Dienste auf einem Rechner gemäß der sicheren Verteilung sichere Dienste darstellen und die Dienste, welche aufgrund einer Umverteilung auf einem anderen Rechner migriert wurden, unsichere Dienste darstellen. In einer besonders bevorzugten Ausführungsform wird dabei eine Umverteilung von Diensten nur dann vorgenommen, wenn eine Rückkehr aus der Umverteilung in die sichere Verteilung garantiert werden kann. Gemäß dieser Variante wird sichergestellt, dass im Rechnernetz im schlimmsten Fall immer wieder zu einer Diensteverteilung zurückgegangen werden kann, bei der die sichere Ausführung der Dienste gewährleistet ist.
  • In einer weiteren Variante des erfindungsgemäßen Verfahrens wird ein unsicherer Dienst durch eine gerichtete Kante beschrieben, welche sich von dem Rechner, auf dem sich dieser Dienst aktuell befindet, zu dem Rechner erstreckt, auf dem sich dieser Dienst gemäß der sicheren Verteilung befunden hat. Hierdurch wird eine gerichtete Graphstruktur geschaffen, in der die einzelnen Rechner Knoten darstellen, welche gegebenenfalls durch gerichtete Kanten miteinander verbunden sind. Bei Vorlegen einer sicheren Verteilung besteht die Graphstruktur dabei nur aus Knoten ohne dazwischen liegende Kanten.
  • Basierend auf der soeben beschriebenen Graphstruktur kann in geeigneter Weise eine Rückkehr aus einer Umverteilung in eine sichere Verteilung dadurch garantiert werden, dass ein Dienst nur dann von einem Rechner auf einen anderen migriert wird, wenn durch seine Migration keine Zyklen in der gerichteten Graphstruktur auftreten. In der speziellen Beschreibung wird dabei näher erläutert, wie durch eine geeignete Auswertung der gerichteten Graphstruktur Zyklen bei der Dienstemigration verhindert werden.
  • Um bei Auftreten eines Ressourcenengpasses eine rechtzeitige Rückkehr in die sichere Verteilung zu gewährleisten, werden in einer besonders bevorzugten Ausführungsform für eine durchzuführende Umverteilung von Diensten die vorhergesagten zeitlichen Verläufe der für die jeweiligen Dienste erforderlichen Ressourcenkapazitäten in einem zukünftigen Zeitintervall berücksichtigt, welches die benötigte Zeit für die Umverteilung der Dienste und die benötigte Zeit für die Rückkehr zu der sicheren Verteilung aus der Umverteilung umfasst. Vorzugsweise enthält dieses zukünftige Zeitintervall im Falle, dass nach der durchzuführenden Umverteilung ein Rechner in einen Energiesparmodus gesetzt werden kann (d. h. im Falle, dass der Rechner nach der Umverteilung keine Dienste mehr ausführt), eine Mindestperiode für den Energiesparmodus. Auf diese Weise wird der Tatsache Rechnung getragen, dass das Setzen eines Rechners in einen Energiesparmodus und insbesondere das Ausschalten eines Rechners nur dann zu einer Energieersparnis führt, wenn der Rechner eine Mindestzeit im Energiesparmodus bzw. abgeschaltet bleibt.
  • In einer weiteren Variante des erfindungsgemäßen Verfahrens werden für eine Verteilung von Diensten, welche nicht der sicheren Verteilung entspricht, die vorhergesagten zeitlichen Verläufe der für die jeweiligen Dienste erforderlichen Ressourcenkapazitäten für ein zukünftiges Zeitintervall überwacht, welches der Zeitperiode entspricht, die für die Rückkehr zu der sicheren Verteilung aus der Verteilung benötigt wird. Auf diese Weise wird sichergestellt, dass bei einem drohenden Ressourcenengpass auf jeden Fall immer noch rechtzeitig in die sichere Verteilung zurückgegangen werden kann.
  • Neben dem oben beschriebenen Verfahren betrifft die Erfindung ferner ein Rechnernetz aus einer Vielzahl von Rechnern, wobei das Netz eine oder mehrere Verarbeitungsmittel umfasst, welche derart ausgestaltet sind, dass das erfindungsgemäße Verfahren und insbesondere eine oder mehrere Varianten des erfindungsgemäßen Verfahrens in dem Netz durchführbar sind. Das oder die Verarbeitungsmittel sind dabei in der Regel auf einem Rechner in dem Rechnernetz hinterlegt bzw. auf mehrere Rechner in dem Rechnernetz verteilt.
  • Ausführungsbeispiele der Erfindung werden nachfolgend anhand der beigefügten Figuren detailliert beschrieben.
  • Es zeigen:
  • 1 ein Diagramm, welches die erfindungsgemäße Ermittlung des zeitlichen Verlaufs einer in der Vergangenheit erforderlichen Ressourcenkapazität aus dem zeitlichen Verlauf des vergangenen Ressourcenbedarfs eines Dienstes verdeutlicht;
  • 2 eine schematische Darstellung, welche die Prädiktion einer zukünftigen erforderlichen Ressourcenkapazität für einen Dienst in Abhängigkeit von dem in 1 bestimmten vergangenen zeitlichen Verlauf der Ressourcenkapazität verdeutlicht;
  • 3 eine schematische Darstellung, welche beispielhaft ein Szenario der Umverteilung von Diensten in einem Netz aus mehreren Rechnern wiedergibt;
  • 4 eine auf dem Szenario der 3 beruhende Darstellung, welche eine Ausführungsform einer Umverteilung von Diensten basierend auf einer Erreichbarkeitsmatrix wiedergibt; und
  • 5 eine schematische Darstellung, welche eine Ausführungsform einer Umverteilung von Diensten basierend auf vorgegebenen erlaubten Operationen wiedergibt.
  • Die nachfolgend beschriebenen Ausführungsformen der Erfindung ermöglichen in einem Netz aus einer Vielzahl von Rechnern bzw. Servern, wie es üblicherweise in Rechenzentren zum Einsatz kommt, eine dynamische Umverteilung der auf den Rechnern ausgeführten Dienste, wobei ein Dienst immer auf einem einzelnen Rechner ausgeführt wird. Diese Dienste werden z. B. als sog. virtuelle Maschinen realisiert, die auf jeweiligen Rechnern in dem Rechenzentrum laufen und gegebenenfalls auf andere Rechner verlagert werden können. Um die Ausführung eines Dienstes auf einem Rechner sicherzustellen bzw. durch das Rechenzentrum garantierte QoS-Kritierien im Hinblick auf den Dienst zu erfüllen, ist sicherzustellen, dass der Ressourcenbedarf eines Dienstes an die Ressourcenkapazität des den Dienst ausführenden Rechner angepasst ist. Eine Ressource repräsentiert dabei allgemein die zur Durchführung von Rechenvorgängen bereitgestellte Hardware und Software und wird üblicherweise als ein Vektor aus verschiedenen Ressourcentypen, wie z. B. RAM, Festplattenspeicher, CPU-Zyklen in einem Zeitintervall, I/O-Durchsatz (I/O = Input/Output) und dergleichen, wiedergegeben. Im Folgenden wird ein Ressourcenbedarf bzw. eine Ressourcenkapazität für einen Dienst durch einen prozentualen Wert repräsentiert, der die Auslastung der im Rechnernetz vorhandenen Ressourcen durch den Dienst wiedergibt. Ferner wird im Folgenden ohne Beschränkung der Allgemeinheit ein einzelner Ressourcentyp betrachtet, wobei die Erfindung auf eine Vielzahl von Ressourcentypen ohne Weiteres übertragbar ist.
  • Jeder, im Rechnernetz laufende Dienst i weist einen zeitabhängigen Ressourcenbedarf auf, der im Folgenden durch die Funktion Ri(t) beschrieben wird. Die Rechner in dem Netz stellen dabei entsprechende Ressourcenkapazitäten für den Ressourcenbedarf eines jeweiligen Dienstes bereit. Die Ressourcenkapazität eines Rechners ist zeitunabhängig, jedoch können unterschiedliche Rechner in dem Netz unterschiedliche Ressourcenkapazitäten aufweisen. Die Ressourcenkapazität eines Rechners k wird im Folgenden auch als Ck bezeichnet.
  • Erfindungsgemäß wird aus einem vergangenen zeitlichen Verlauf eines Ressourcenbedarfs Ri(t) eines Dienstes i eine für diesen Dienst erforderliche Ressourcenkapazität Ai(t) ermittelt, welche für die Vergangenheit die Menge an Ressourcen angibt, welche für den Dienst gemäß dem vergangenen Ressourcenbedarf bereitzustellen gewesen wären, um eine vorgegebene Diensteanforderung in der Form von QoS-Kriterien zu einem Zeitpunkt t zu erfüllen. Ein wesentlicher Aspekt der Erfindung ist das Verfahren zur Bestimmung der erforderlichen Ressourcenkapazität Ai(t), gemäß der eine Diensteanforderung in der Vergangenheit garantiert wird. Basierend auf einem erfindungsgemäß ermittelten zeitlichen Verlauf dieser vergangenen Ressourcenkapazität Ai(t) wird dann mit einem geeigneten Vorhersageverfahren eine zukünftige, für den Dienst erforderliche Ressourcenkapazität prädiziert, so dass die QoS-Kriterien auch in der Zukunft gültig sind.
  • Basierend auf der vorhergesagten erforderlichen Ressourcenkapazität Ai(t) wird schließlich eine Umverteilung der Dienste in dem Netz aus Rechnern derart vorgenommen, dass die Anzahl an Rechnern, die zur Ausführung der Dienste verwendet werden, möglichst gering ist. Dies erfordert eine geeignete Zuordnung der jeweiligen Dienste i zu ausführenden Rechnern k, wobei sich die Zuordnung gemäß den Ressourcenanforderungen verändern kann. Die Zuordnung kann durch die Funktion B(i, t):i → k(t) ausgedrückt werden. Verschiedene Dienste können auf dem gleichen Rechner ausgeführt werden, solange folgende Gleichung erfüllt ist:
    Figure DE102010029209B4_0002
  • Um dies zu erreichen, können verschiedene Operationen durchgeführt werden. Insbesondere können Dienste zwischen den Rechnern verschoben, d. h. von einem Rechner auf einen anderen migriert werden, die Rechner können abgeschaltet werden und sie können im Falle eines steigenden Ressourcenbedarfs auch wieder reaktiviert werden. Diese Operationen sind immer mit Zeitverzögerungen verbunden, welche mit Δt mig / i für die Migration eines Dienstes, mit Δt down / k für das Herunterfahren eines Rechners und mit Δt up / k für das Hochfahren eines Rechners bezeichnet werden. Bei der Verteilung der Dienste wird erfindungsgemäß sichergestellt, dass die obige Gleichung (1) zu jedem Zeitpunkt t erfüllt ist.
  • Zusammenfassend wird gemäß der nachfolgend beschriebenen Ausführungsform der Erfindung zunächst eine für einen Dienst i erforderliche, vergangene Ressourcenkapazität Ai(t) aus einem vergangenen Ressourcenbedarf Ri(t) abgeleitet. Aus der abgeleiteten Ressourcenkapazität Ai(t) wird dann für eine zukünftige Zeitperiode die für den Dienst erforderliche Ressourcenkapazität vorhergesagt. Die dabei verwendete Vorhersagemethodik kann den erwarteten Ressourcenbedarf in der Zukunft basierend auf einem periodischen Verhalten des Ressourcenbedarfs sicher überabschätzen. Schließlich wird eine effiziente dynamische Umverteilung der Dienste gemäß dem erwarteten Ressourcenbedarf durchgeführt, wobei diese Umverteilung garantiert, dass immer zu einer sog. sicheren Verteilung der Dienste zurückgekehrt werden kann. Eine sichere Verteilung der Dienste zeichnet sich dadurch aus, dass auch bei maximalem Ressourcenbedarf der jeweiligen Dienste auf einem Rechner ausreichend Ressourcenkapazität durch den Rechner bereitgestellt wird, d. h. die Ressourcenkapazität liegt immer oberhalb des maximalen Ressourcenbedarfs der Dienste auf dem Rechner. Diese sichere Verteilung stellt in der hier beschriebenen Ausführungsform des erfindungsgemäßen Verfahrens die initiale Verteilung der Dienste zu Beginn des Verfahrens dar. Im Folgenden werden die Dienste, welche basierend auf der sicheren Verteilung auf einem Rechner laufen, als sichere Dienste bezeichnet. Eine Verteilung, welche von der sicheren Verteilung abweicht, wird im Folgenden auch als unsichere Verteilung bezeichnet. Analog wird ein Dienst, der auf einem anderen Rechner als dem gemäß der sicheren Verteilung spezifizierten Rechner läuft, als unsicherer Dienst bezeichnet.
  • In der hier beschriebenen Ausführungsform der Erfindung wird ferner ein Planungszeitraum berechnet, gemäß dem festgelegt wird, wie lange eine durch eine Umverteilung erzeugte unsichere Verteilung der Dienste den Bedarf an Ressourcen von allen Diensten erfüllen muss. Dieser Planungszeitraum muss dynamisch in Abhängigkeit von der Anzahl erforderlicher Migrationen bzw. erforderlicher Vorgänge zum Herunterfahren bzw. Hochfahren von Rechnern bestimmt werden. Der Planungszeitraum ist erforderlich, um zu entscheiden, ob eine unsichere Verteilung, welche gemäß einer Umverteilung erreicht werden soll, auch einen zukünftigen Ressourcenbedarf abdeckt. Nur wenn dies der Fall ist, werden die Dienste in die unsichere Verteilung überführt.
  • Im Folgenden wird zunächst anhand von 1 beschrieben, wie aus einem in der Vergangenheit erfassten Ressourcenbedarf Ri(t) eines entsprechenden Dienstes i eine für die Vergangenheit erforderliche Ressourcenkapazität Ai(t) für den Dienst basierend auf einer vorgegebenen Diensteanforderung abgeleitet werden kann. 1 zeigt dabei ein Diagramm, welches entlang der Abszisse die Zeit t und entlang der Ordinate eine prozentuale Ressourcenmenge in dem Rechnernetz wiedergibt. Die Linie L1 zeigt den geeignet erfassten vergangenen Ressourcenbedarf Ri(t) eines Dienstes i. Man erkennt, dass dieser Ressourcenbedarf stark verrauscht ist. Das Rauschen ist dabei aus Sicht der Datenreihe zufällig und daher schwer für eine Vorhersage eines zukünftigen Ressourcenbedarfs modellierbar. Erfindungsgemäß wird nunmehr die beobachtete vergangene Zeitreihe Ri(t) statistisch geglättet, wobei die Glättung derart erfolgt, dass die geglättete Zeitreihe Ai(t) immer den tatsächlichen Ressourcenbedarf basierend auf der entsprechend vorgegebenen Diensteanforderung sicher überabschätzt. Das heißt, die geglättete Zeitreihe Ai(t) stellt die im Rechnernetz bereitzustellende Ressourcenkapazität für den Dienst dar, so dass gemäß dem vergangenen Ressourcenbedarf die entsprechende Diensteanforderung garantiert ist. Die geglättete Zeitreihe Ai(t) wird anschließend weiter verarbeitet, um den Trend der Zeitreihe in der Zukunft vorherzusagen.
  • In der hier beschriebenen Ausführungsform wird ein Wert Ai(t) bestimmt, der angibt, welche Ressourcen für den Dienst zum Zeitpunkt t reserviert werden müssen, um in einem nachfolgenden Zeitintervall dem Ressourcenbedarf Ri(t) gerecht zu werden. Es wird dabei folgende Formel zur Berechnung der Zeitreihe Ai(t) aus der Zeitreihe Ri(t) für in der Vergangenheit liegende Zeitpunkte t verwendet: Ai(t) = af(Ri([t,t + Δtavg ])) (2).
  • af stellt dabei eine Mittelungsfunktion dar, welche davon abhängt, auf welche Weise die benötigten Ressourcen aus dem entsprechenden Zeitfenster Δtavg des beobachteten Bedarfs ermittelt werden sollen. Die Mittelungsfunktion af hängt insbesondere davon ab, wie die entsprechende, zu erfüllende Diensteanforderung in der Form einer QoS-Anforderung definiert ist. In 1 ist die berechnete Ressourcenkapazität Ai(t) zum einen für eine pessimistisch festgelegte Diensteanforderung durch Linie L2 dargestellt. Zum anderen ist Ai(t) für eine weitere, aus dem Stand der Technik bekannte QoS-Anforderung gemäß Linie L3 wiedergegeben. Alle Verfahren zur Ermittlung der Ressourcenkapazität in einem entsprechenden Zeitintervall Δtavg beruhen darauf, dass die Zeitreihe Ri(t) in dem Zeitintervall statistisch ausgewertet wird und über diese Auswertung ein Wert für Ai(t) abgeleitet wird. Zur Berechnung von Ai(t) für die pessimistische QoS-Anforderung gemäß der Linie L2 beruht die statistische Auswertung darauf, dass der maximale Ressourcenbedarf max (Ri([t, t + Δtavg])) in dem entsprechenden Zeitintervall Δtavg ermittelt wird und dieser maximale Ressourcenbedarf den Wert von Ai(t) darstellt. Ai(t) erfüllt somit die QoS-Anforderung, dass die vorhandene Ressourcenkapazität immer auch den Ressourcenbedarf deckt.
  • Wie bereits erwähnt, kann die statistische Auswertung auch basierend auf anderen QoS-Anforderungen durchgeführt werden. In der Regel erfolgt dabei die statistische Auswertung derart, dass aus der Zeitreihe Ri(t) in dem Intervall Δtavg ein Histogramm erstellt wird, welches die Häufigkeiten der aufgetretenen Werte des Ressourcenbedarfs wiedergibt. Aus diesem Histogramm kann dann beispielsweise eine QoS-Anforderung abgeleitet werden, wonach der Ressourcenbedarf für einen gewissen Prozentsatz an Fällen die im Rechner aktuell verfügbare Ressourcenkapazität überschreiten darf. Durch Kumulieren der Werte des Histogramms bis zu dem Prozentsatz, mit dem der Ressourcenbedarf auf jeden Fall unterhalb der Kapazität liegen muss, kann durch Ablesen des Ressourcenwerts für den kumulierten Häufigkeitswert der Wert von Ai(t) ermittelt werden. Erfindungsgemäß können aus einer statistischen Auswertung beliebige QoS-Spezifikationen realisiert werden. Insbesondere kann gemäß der statistischen Auswertung die in den Druckschriften [2] bzw. [3] beschriebene QoS-Spezifikation abgeleitet werden, welche eine Menge an erforderlichen Ressourcen aus einer Verteilung durch ein vorgegebenes Quantil bestimmt. Ebenso kann mittels der statistischen Auswertung die in der Druckschrift [4] beschriebene QoS-Spezifikation abgeleitet werden, welche einen Kompromiss zwischen der Menge an bereitgestellten Ressourcen und der Performanz in feingranularer Weise festlegt. Zur Verwendung der QoS-Spezifikation aus den Druckschriften [2],[3] und [4] wird diese Spezifikation nunmehr nicht auf die gesamte Zeitreihe der beobachteten Daten angewendet, sondern lediglich auf entsprechende Zeitintervalle Δtavg, um auf diese Weise die Zeitreihe Ai(t) für die erforderliche Kapazität gemäß der obigen Gleichung (2) abzuleiten.
  • In einem nächsten Schritt wird nunmehr aus der vom Rauschen befreiten Zeitreihe Ai(t) aus der Vergangenheit ein Modell zur Vorhersage dieser Zeitreihe für die Zukunft abgeleitet, wie nachfolgend anhand von 2 beschrieben wird. Zur Ableitung des Modells wird eine an sich bekannte Autokorrelationsanalyse eingesetzt, welche auf die in der Vergangenheit ermittelte Zeitreihe Ai(t) angewendet ist. Die Zeitreihe Ai(t) ist in 2 nochmals in einem Diagramm D1 zusammen mit der ursprünglich verrauschten Zeitreihe Ri(t) wiedergegeben. Die Zeitreihe wird einer Autokorrelationsanalyse unterzogen, welche durch AUT in 2 wiedergegeben ist. Es wurde dabei folgende Autokorrelationsfunktion r(s) verwendet:
    Figure DE102010029209B4_0003
  • Diese Funktion beschreibt die Kovarianz des überlappenden Teils der Zeitreihe Ai(t) und der gleichen Zeitreihe, welche um einen Zeitabstand s verschoben ist, und zwar für jeden Zeitabstand s zwischen Null und der Länge der gesamtem Zeitreihe, welche mit ΔtAi bezeichnet ist. Ai ist dabei der Mittelwert von Ai(t) im Intervall ΔtAi. Das Ergebnis der Autokorrelationsanalyse ist in 2 in dem Diagramm D2 wiedergegeben, welches die Kovarianz r(s) in Abhängigkeit von der Zeitverschiebung s wiedergibt. Man erkennt, dass die Autokorrelationsfunktion r(s) eine Vielzahl von Peaks aufweist, welche mit zunehmendem Zeitabstand s immer kleiner werden. Die Peaks in dem dargestellten Korrelogramm zeigen dabei das periodische Verhalten des Ressourcenbedarfs an. Man macht sich hierbei die Erkenntnis zunutze, dass ein Ressourcenbedarf in einem Rechenzentrum häufig vorbestimmten Periodizitäten unterliegt, insbesondere ergeben sich ähnliche zeitliche Verläufe des Ressourcenbedarfs für Zeiträume von Tagen bzw. gegebenenfalls auch von einer Woche oder jeder beliebigen anderen Länge, je nachdem, für welche Zwecke das Rechenzentrum genutzt wird. In der hier beschriebenen Ausführungsform der Erfindung wird die sog. kleinste prädominante Periode weiterverwendet, welche den Zeitabstand zwischen der Verschiebung s = 0 und der Zeitverschiebung s beim Auftreten des höchsten Peaks repräsentiert. Diese kleinste prädominante Periode ist in 2 mit pAi bezeichnet. Ist diese prädominante Periode beispielsweise der Zeitraum von einem Tag, so treten Peaks nicht nur bei einer Zeitverschiebung von einem Tag, sondern auch bei einer Zeitverschiebung von zwei, drei und mehr Tagen auf. Da jedoch der Überlapp gemäß der Autokorrelationsfunktion bei größerer Verschiebung immer kleiner wird, ist der Peak für eine Zeitverschiebung von einem Tag der dominierende.
  • In einem nächsten Schritt, der in 2 durch das Diagramm D3 wiedergegeben ist, wird nunmehr die Zeitreihe Ai(t) in einzelne Intervalle mit der Länge der prädominanten Periode pAi unterteilt. Jedes dieser Intervalle repräsentiert damit eine Instanz dieser Periode (z. B. einen Tag). Das Vorhersagemodell wird nunmehr aus allen Instanzen dadurch abgeleitet, dass für jeden Zeitpunkt t in jeder Instanz der Maximalwert von Ai(t) bestimmt wird, wobei dieser Maximalwert dann für ein vorhergesagtes Zeitintervall gemäß der Länge der prädominanten Periode den vorhergesagten Wert von Ai(t) darstellt. Dieses Vorgehen ist in 2 im unteren Teil angedeutet. Dabei werden alle Abschnitte Ai(t) mit der Länge der prädominanten Periode zu jedem Zeitpunkt innerhalb der Periode miteinander verglichen, was beispielhaft durch zwei untereinander angeordnete Diagramme D4 und D5 wiedergegeben ist, welche jeweilige Teile von Ai(t) aus dem Diagramm D3 darstellen. Zu jedem Zeitpunkt wird dann aus den Teilen von Ai(t) der Maximalwert ermittelt, was durch die Bezeichnung „max” in 2 angedeutet ist. Der Maximalwert für jeden Zeitpunkt wird schließlich in einem neuen Diagramm aufgetragen, welches in 2 mit D6 bezeichnet ist. Dieses Diagramm stellt das Vorhersagemodell für den Zeitraum einer Periode pAi dar, wobei davon ausgegangen wird, dass sich die Periode auch für weitere zukünftige Werte mit dem gleichen Verlauf des Diagramms D6 fortsetzt, so dass für beliebige Zeitpunkte in der Zukunft die erforderliche Ressourcenkapazität Ai(t) bestimmt werden kann.
  • In Abhängigkeit von der Länge der prädominanten Periode und der Abtastrate, mit welcher der ursprüngliche zeitliche Verlauf des Ressourcenbedarfs Ri(t) ermittelt wurde, kann die vorhergesagte Zeitreihe gemäß Diagramm D6 eine große Anzahl von Werten enthalten. Aufgrund der durchgeführten Mittelung bei der Bestimmung von Ai(t) weisen Abschnitte der abgetasteten Werte fast die gleichen Werte auf. Durch eine Diskretisierung der Zeitreihe in Kombination mit einer Lauflängencodierung kann gegebenenfalls die Speicherkomplexität des Modells sowie die Rechenkomplexität stark vermindert werden, wenn das Modell zur Vorhersage des Verhaltens des Ressourcenbedarfs in der Zukunft eingesetzt wird.
  • Das gerade hergeleitete Vorhersagemodell einer zukünftigen, für einen Dienst erforderlichen Ressourcenkapazität geht davon aus, dass sich keine Änderungen im Trendverhalten des Ressourcenbedarfs sowie im Rauschverhalten des Ressourcenbedarfs ergeben. Diese Annahme ist in bestimmten Fällen jedoch nicht gegeben. Beispielsweise kann ein unerwartetes Verhalten des Ressourcenbedarfs in einer Instanz der prädominanten Periode auftreten, z. B. an einem Feiertag innerhalb einer Werktagswoche, wobei dieses Verhalten in der vergangenen Zeitreihe noch nicht beobachtet wurde. Dies ist unproblematisch, wenn das Vorhersagemodell den tatsächlichen Bedarf in diesem Fall überabschätzt. Wird der tatsächliche Bedarf jedoch unterabgeschätzt, können Performanzprobleme aufgrund möglicher Ressourcenengpässe auftreten. Das Vorhersagemodell muss in diesem Fall aktualisiert werden, um auch diesem unerwarteten Szenario Rechnung zu tragen.
  • In einer speziellen Variante des erfindungsgemäßen Verfahrens wird ein unerwarteter Bedarf an Ressourcen dadurch berücksichtigt, dass das Verhalten des Ressourcenbedarfs während der Laufzeit des Verfahrens beobachtet wird. Zu jedem Zeitpunkt t + ΔtAi wird die erforderliche Ressourcenkapazität für den Zeitraum zwischen t und t + ΔtAi gemäß der obigen Gleichung (2) ermittelt und mit der entsprechenden Vorhersage Ai(t) zum Zeitpunkt t aus dem Diagramm D6 der 2 verglichen. Falls die ermittelte Ressourcenkapazität höher ist als die vorhergesagte, wird das Modell zum Zeitpunkt t aktualisiert, und zwar indem der Wert des ermittelten Ressourcenbedarfs den entsprechenden Wert des vorhergesagten Ressourcenbedarfs ersetzt.
  • Es ist auch denkbar, dass sich der Ressourcenbedarf nicht unerwartet verändert, sondern in dem Rechnernetz ein kontinuierlicher Anstieg des Ressourcenbedarfs auftritt, der beispielsweise durch eine zunehmende Anzahl an die entsprechende Dienste nutzenden Clients hervorgerufen sein kann. Auch diese Fehler können in gleicher Weise wie oben beschriebenen durch Vergleich eines ermittelten Ressourcenbedarfs mit dem vorhergesagten Ressourcenbedarf detektiert werden. Aufgrund des kontinuierlichen Trends treten die Vorhersagefehler jedoch immer wieder auf. Um dieses Verhalten zu vermeiden, wird in einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens der Langzeittrend individuell mit bekannten Methoden modelliert, beispielsweise mit linearen Modellen, welche über Regression angepasst werden. Das Vorhersagemodell wird dann auf die vergangenen Daten, bereinigt um den Langzeittrend, angewendet.
  • Unter Umständen kann sich die prädominante Periode bzw. das Trendverhalten auch signifikant verändern. Wie oben beschrieben, wird auch in einem solchen Fall nur eine zu niedrig abgeschätzte Ressourcenkapazität korrigiert, wohingegen überabgeschätzte Ressourcenkapazitäten ignoriert werden. In Abhängigkeit von der Größe der Veränderungen kann somit der Fall auftreten, dass das Modell ständig in Richtung nach oben angepasst wird, was dazu führt, dass das Modell nur noch den maximalen Ressourcenbedarf eines Dienstes zu jedem Zeitpunkt statistisch vorhersagt. Solche Modelle führen nicht zu einem Betrieb, bei dem Energie durch Abschalten von Rechnern in dem Netz gespart wird. Demzufolge wird in einer weiteren Variante des erfindungsgemäßen Verfahrens auch erfasst, wenn der vorhergesagte Ressourcenbedarf größer als der tatsächliche ist. Treten solche Fälle häufig auf, wird das gesamte Vorhersagemodell, wie anhand von 1 und 2 beschrieben, basierend auf neuen Daten generiert, wobei die neuen Daten Beobachtungen in dem zeitlich unmittelbar zurückliegenden Zeitintervall betreffen.
  • Im Folgenden werden Ausführungsformen der Erfindung beschrieben, gemäß denen eine geeignete Umsortierung bzw. Umverteilung von Diensten auf den Rechnern des Rechnernetzes vorgenommen werden kann, so dass zum einen Rechner abgeschaltet werden können, um Energie zu sparen, und zum anderen möglicherweise drohende Ressourcenengpässe abgewendet werden können. Dabei ist insbesondere sicherzustellen, dass die Umsortierung vor dem Beginn des drohenden Engpasses bereits abgeschlossen ist.
  • Das Verfahren der Umsortierung geht zunächst von der bereits oben erwähnten sicheren Verteilung der Dienste auf den Rechnern aus. Eine sichere Verteilung zeichnet sich dadurch aus, dass zu jedem Zeitpunkt jeder Dienst genug Ressourcen zur Verfügung hat, um auch im Fall maximaler Anfragelast seine vorgegebene Antwortgeschwindigkeit einzuhalten. Eine sichere Verteilung der Dienste kann dabei mit an sich bekannten statischen Planungsverfahren hergestellt werden, welche den maximalen Ressourcenbedarf eines Dienstes im Falle maximal zu erwartender Anfragelast durch Lasttests ermitteln und damit eine Zuordnung der Dienste zu entsprechenden Rechnern planen.
  • Ein Ziel des im Folgenden beschriebenen dynamischen Umsortierverfahrens besteht darin, ausgehend von der sicheren Verteilung in Zeiten geringerer Last zu einer neuen Verteilung zu wechseln, bei der weniger Rechner benötigt werden, welche dann in einem Energiesparmodus gesetzt werden können bzw. abgeschaltet werden können, so dass Energie gespart wird. Das Umsortierverfahren stellt dabei sicher, dass es jederzeit einen Rückweg von einer umsortierten Verteilung zu der sicheren Verteilung gibt und dass dieser Rückweg, falls notwendig, auch rechtzeitig gegangen werden kann, bevor Ressourcenengpässe auftreten. Erfindungsgemäß wird somit eine Umsortierung nur dann vorgenommen, wenn für die Umsortierung der Dienste garantiert werden kann, dass zu der sicheren Verteilung rechtzeitig zurückgekehrt werden kann, und wenn auf den Rechnern, zu denen die Dienste verschoben werden, auch ausreichend Ressourcen für die vorhergesagte Ressourcenkapazität Ai(t) vorhanden sind.
  • Im Folgenden wird zunächst beschrieben, wie der Umsortieralgorithmus bei einer Umverteilung der Dienste einen garantierten Weg zurück zur sicheren Verteilung gewährleisten kann. Anschließend wird die Festlegung von geeigneten Planungsperioden beschrieben, gemäß denen das Abschalten von Rechnern durch Umverteilung von Diensten und das Beibehalten von unsicheren Verteilungen geplant wird, um dabei sicherzustellen, dass auch immer rechtzeitig in die sichere Verteilung zurückgekehrt werden kann.
  • Um immer einen sicheren Weg aus einer unsicheren Verteilung zu der sicheren Verteilung zu gewährleisten, wird ein gerichteter Graph G = (N, E) definiert, der den „Sicherheitszustand” einer Verteilung der Dienste auf die Rechner beschreibt. Die Knoten N stellen dabei die Rechner dar und die Kanten E repräsentieren den Weg von dem Rechner, auf dem sich ein migrierter unsicherer Dienst befindet, zu dem Rechner, auf den der Dienst zu verschieben ist, so dass dieser wieder ein sicherer Dienst wird. In 3 ist im rechten Teil beispielhaft für ein Netz aus vier Rechnern S1, S2, S3 und S4 ein gerichteter Graph G für eine unsichere Verteilung wiedergegeben, welche durch entsprechende Kanten E zwischen den Knoten der Rechner wiedergegeben ist. Die dem Graphen zu Grunde liegende unsichere Verteilung ist dabei im linken Teil der 3 wiedergegeben und mit UV bezeichnet. Die einzelnen, auf den Rechnern verteilten Dienste sind durch Bezugszeichen 1, 2, ..., 7 angedeutet. Man erkennt, dass sich auf dem Rechner S1 die Dienste 1, 2 und 6, auf dem Rechner S2 die Dienste 4, 5 und 7, auf dem Rechner S3 kein Dienst und auf dem Rechner S4 die Dienste 8 und 3 befinden. Dabei ist der Dienst 6 auf dem Rechner S1 ein unsicherer Dienst, der gemäß der sicheren Verteilung zu dem Rechner S3 gehört. Ebenso ist der Dienst 7 auf dem Rechner S2 ein unsicherer Dienst, der gemäß der sicheren Verteilung zu dem Rechner S3 gehört. Auch der Dienst 3 auf dem Rechner S4 ist ein unsicherer Dienst, der basierend auf der sicheren Verteilung zu dem Rechner S1 gehört. Alle restlichen Dienste sind sichere Dienste. Die unsicheren Dienste werden in 3 durch entsprechende Blitze verdeutlicht. Werden nunmehr alle Dienste gemäß den Kanten E der 3 in die sichere Verteilung überführt, wird hierdurch ein Graph erhalten, der nur noch die Knoten S1 bis S4 ohne gerichtete Kanten enthält.
  • Die soeben dargelegte Beschreibung von unsicheren Verteilungen basierend auf gerichteten Graphen wird nachfolgend dazu genutzt, um abzuleiten, ob aus einer unsicheren Verteilung auch immer auf die sichere Verteilung zurückgegangen werden kann. Es kann dabei nachgewiesen werden, dass, falls ein gerichteter Graph einer unsicheren Verteilung keine Zyklen enthält, immer ein Weg zurück zu der sicheren Verteilung existiert. Diese Erkenntnis macht man sich zunutze, um sicherzustellen, dass keine Migrationen von Diensten in unsichere Verteilungen ohne garantierte Rückkehr in die sichere Verteilung vorgenommen werden.
  • Betrachtet man in 3 die Knoten ohne herausgehende Kanten, wie z. B. Knoten S3, so repräsentieren diese Knoten Rechner, welche nur sichere Dienste enthalten. Somit können unsichere Dienste, welche auf diesen Rechnern sicher sind, zu jeder Zeit zu diesen Rechnern zurückbewegt werden. In diesem Fall wird die entsprechende eingehende Kante entfernt. Ein azyklischer Graph enthält keine geschlossenen Schleifen von gerichteten Kanten. Er zeichnet sich somit dadurch aus, dass alle von einem Knoten ausgehenden Pfade beliebiger Länge (d. h. auch Pfade aus mehreren Kanten, die sich über mehrere Knoten erstrecken) immer in Knoten enden, welche keine herausgehenden Kanten mehr umfassen. Ein solcher Pfad ist beispielsweise der Pfad von S4 nach S3 in dem Graphen G der 3. Ausgehend von dem Ende des Pfads können alle hineingehenden Kanten von Knoten entfernt werden, indem die entsprechenden Dienste zu dem entsprechenden Knoten zurückmigriert werden. Dies führt wiederum zu anderen Knoten entlang des Pfads, welche keine herausgehenden Kanten mehr aufweisen, so dass deren hineingehende Kanten auch entfernt werden können. Schließlich können alle Kanten von allen Knoten durch das rekursive Entfernen der Kanten aus den Pfaden entfernt werden. In dem Graph G der 3 wird dies für den Pfad von S4 nach S3 dadurch erreicht, dass zunächst der Dienst 6 nach S3 und anschließend der Dienst 3 nach S1 migriert wird, so dass die Kanten zwischen S1 und S3 bzw. S4 und S1 entfernt werden.
  • Die soeben beschriebene rekursive Migration der Dienste zurück in die sichere Verteilung ist nur im schlimmsten Fall erforderlich. Gegebenenfalls können auch nur wenige Dienste verschoben werden, um beispielsweise auftretende Ressourcenengpasse zu beheben. Es muss jedoch vor der Bewegung von Diensten immer sichergestellt werden, dass nach deren Bewegung der Graph weiterhin azyklisch ist, so dass im schlimmsten Fall auch wieder die vollständige sichere Verteilung der Dienste hergestellt werden kann.
  • Im Folgenden wird zunächst eine Variante der Erfindung beschrieben, gemäß der bei einer Migration von Diensten das Kriterium der Azyklizität des gerichteten Graphs mittels einer Erreichbarkeitsmatrix überprüft wird. Falls aufgrund der Migration eines Dienstes eine neue Kante zwischen zwei Rechnern hinzugefügt wird, entsteht genau dann ein Zyklus, wenn bereits ein Pfad (beliebiger Länge) in entgegengesetzter Richtung zu der neuen Kante zwischen den beiden Rechnern vorhanden ist. Existiert ein solcher Weg nicht, darf die neue Kante hinzugefügt bzw. der Dienst entsprechend migriert werden. Um nunmehr zu ermitteln, ob eine Kante basierend auf dem genannten Kriterium eingefügt werden kann, wird ein gerichteter Graph durch eine sog. Erreichbarkeitsmatrix repräsentiert. Dies ist in 4 angedeutet, welche den gleichen Graphen G wie 3 betrifft. Im rechten Teil der 4 ist dabei die zu dem Graph G gehörende Erreichbarkeitsmatrix EM wiedergegeben. Die Matrix besitzt für jeden der Rechner S1 bis S4 eine Zeile und eine Spalte. Die Zeilen repräsentieren dabei den Startpunkt eines (beliebig langen) Pfads in dem Graphen und die Spalten stehen für das Ende des Pfads. Jedes Element eij der Matrix gibt die Anzahl der Pfade von einem Rechner Si zu einem Rechner Sj an. Wie sich aus der Erreichbarkeitsmatrix ergibt, existiert ein Pfad zwischen den Rechnern S4 und S1. Ferner existiert jeweils ein Pfad zwischen den Rechnern S1 und S3, S2 und S3 sowie S4 und S3.
  • Soll nunmehr eine neue gerichtete Kante zwischen dem Rechner Si und dem Rechner Sj eingefügt werden (was der Migration des auf dem Rechner Sj sicheren Dienstes zu dem Rechner Si entspricht), wird anhand des Matrixelements eji ermittelt, ob ein Pfad in entgegengesetzter Richtung bereits existiert oder nicht. Weist dieses Element den Wert Null auf, existiert dieser Pfad nicht. Die neue Kante darf hinzugefügt werden, sofern sie nicht bereits existiert. Nach dem Hinzufügen einer Kante muss schließlich noch die Erreichbarkeitsmatrix in geeigneter Weise an die neue Verteilung der Dienste angepasst werden. Diese Anpassung wird im Folgenden beschrieben. Wird eine Kante mit Startknoten Si und Endknoten Sj hinzugefügt, sind alle Knoten, die von j erreichbar sind, auch von i über j erreichbar. Es müssen demzufolge auf alle Matrixelemente der Zeile i die Elemente der Zeile j addiert werden. Zusätzlich können auch auf allen Pfaden zu Knoten Si alle Knoten erreicht werden, die durch Knoten Sj erreichbar sind. Es muss daher auf alle Zeilen k, die in der Spalte i eine Zahl ungleich Null haben, die Zeile j aufaddiert werden. Zusätzlich muss die neue Kante selbst noch in die Matrix eingetragen werden. Hierzu wird das Element eij um eins erhöht. Soll eine existierende Kante zwischen Knoten Si und Sj gelöscht werden, muss entsprechend umgekehrt verfahren werden. Vom Element eij wird eins abgezogen. Von allen Zeilen k, die in der Spalte i eine Zahl ungleich Null haben, müssen alle Elemente der Zeile j abgezogen werden. Ebenso müssen von allen Elementen der Zeilen i die Elemente der Zeile j abgezogen werden.
  • Im Rahmen einer dynamischen Umsortierung von Diensten kann der obige, auf einer Erreichbarkeitsmatrix basierende Algorithmus nunmehr dazu verwendet werden, um mögliche Operationen zu bestimmen, um Dienste auf wenige Rechner zu konsolidieren und die ungenutzten Rechner (d. h. Rechner, welche keine Dienste ausführen) abzuschalten. Wie bereits erwähnt, werden dabei im Rahmen der Verschiebung von Diensten nur solche Operationen zugelassen, welche nicht zu Zyklen führen und damit gewährleisten, dass immer ein Rückweg zu der sicheren Verteilung garantiert ist. Im Falle eines drohenden Ressourcenengpasses, der über das oben beschriebene Vorhersagemodell der Ressourcenkapazität detektiert wird, kann zunächst anhand der Erreichbarkeitsmatrix versucht werden, den Konflikt ohne die Reaktivierung zusätzlicher Rechner zu beheben. Gelingt dies nicht, müssen die Rechner reaktiviert werden, was der Matrix die Möglichkeit zusätzlicher Operationen einräumt. Im schlimmsten Fall werden alle Rechner reaktiviert und Dienste entsprechend der Pfade im Graphen rekursiv zurücksortiert. Eine Realisierung, in welcher Art und Weise der Planungsalgorithmus Operationen zur Umsortierung von Diensten über die Erreichbarkeitsmatrix abprüft, liegen im Rahmen von fachmännischem Handeln, beispielsweise können geeignete Heuristiken verwendet werden, gemäß denen verschiedene Operationen zum Abschalten von Rechnern bzw. zur Umsortierung von Diensten bei Ressourcenengpässen durchgeführt werden.
  • Nachfolgend wird eine zweite Variante beschrieben, mit der Zyklen in dem gerichteten Graphen auch ohne Verwendung der oben beschriebenen Erreichbarkeitsmatrix vermieden werden. Diese Variante ist weniger rechenzeitintensiv als die Variante gemäß der Erreichbarkeitsmatrix und beruht darauf, dass nur ein bestimmter Satz an Operationen zur Verschiebung von Diensten zugelassen wird, um auf diese Weise sicherzustellen, dass ein azyklischer Graph nach der Durchführung der Operationen garantiert ist.
  • Man betrachtet zunächst Dienste, deren ursprünglicher Rechner gemäß der sicheren Verteilung ausgeschaltet ist. Keine Dienste können auf Rechner ausgelagert werden, welche ausgeschaltet sind, so dass für einen solchen Rechner nur hineingehende Kanten existieren. Diese Kanten gehören zu Diensten, welche auf diesem (ausgeschalteten) Rechner sicher sind und von diesem entfernt wurden, damit der Rechner ausgeschaltet werden kann. Solange der Rechner ausgeschaltet bleibt, können diese Dienste in dem Netz irgendwohin verschoben werden. Dies ist in 5 in dem Szenario A angedeutet. 5 zeigt wiederum ein Netz aus vier Rechnern S1 bis S4. In dem Szenario A ist der Server S3 abgeschaltet, was durch ein Kreuz angedeutet ist. Der Dienst 6, der gemäß der sicheren Verteilung zu dem Rechner S3 gehört, ist auf den Rechner S1 ausgelagert, wie durch die gerichtete Kante mit der durchgezogenen Line angedeutet ist. Der Dienst 6 kann jedoch auch auf den Rechner S2 oder den Rechner S4 ausgelagert werden, wodurch die entsprechend dargestellten gestrichelten Kanten generiert werden. Da der Knoten des Rechners S3 keine herausgehenden Kanten aufweist, kann dies nicht zu Zyklen in Graphen führen.
  • Im Falle von Diensten, welche auf andere Rechner ausgelagert sind, deren ursprünglicher Rechner gemäß der sicheren Verteilung jedoch noch läuft, sind einige Einschränkungen zu beachten. Eine sichere Operation, welche eine Rückkehr in die sichere Verteilung garantiert, ist auf jeden Fall die Verschiebung von unsicheren Diensten zurück zu den ursprünglichen Rechnern gemäß der sicheren Verteilung, wie in dem Szenario B der 5 angedeutet ist. In diesem Szenario ist der Dienst 6, der gemäß der sicheren Verteilung zu dem Rechner S3 gehört, wiederum auf den Rechner S1 ausgelagert. Eine Verschiebung des Dienstes 6 zurück zu dem Rechner S3 führt dabei zum Entfernen der entsprechenden Kante zwischen S1 und S3, so dass diese Operation in keinem Fall eine Schleife im Graphen verursachen kann. Eine weitere Möglichkeit einer Diensteverschiebung, welche nicht zu einem zyklischen Graphen führt, besteht darin, einen ausgelagerten unsicheren Dienst auf einen Rechner zu verschieben, der bereits andere unsichere Dienste enthält, welche zu dem gleichen ursprünglichen Rechner gemäß der sicheren Verteilung gehören wie der Dienst, der verschoben wird. Dies ist in dem Szenario C der 5 angedeutet, wonach der unsichere Dienst 6 auf dem Rechner S2 zu dem ursprünglichen Rechner S3 und der unsichere Dienst 7 auf dem Rechner S1 ebenfalls zu dem ursprünglichen Rechner S3 gehört. Durch eine Verschiebung des Dienstes 6 von S2 nach S1 wird die Kante zwischen S2 und S3 entfernt. Da zwischen S1 und S3 wegen der Auslagerung des Dienstes 7 bereits eine Kante existiert, hat die Verschiebung des Dienstes 6 kein Hinzufügen einer Kante zur Folge. Demzufolge werden keine zusätzlichen Kanten generiert, so dass auch bei dieser Operation keine Zyklen auftreten können.
  • Zusammenfassend werden in der soeben beschriebenen zweiten Variante azyklische Graphen dadurch vermieden, dass nur die im Vorangegangenen beschriebenen drei Operationen bei der Verschiebung von Diensten zugelassen werden, wobei für diese Operationen garantiert werden kann, dass kein azyklischer Graph auftritt, so dass die daraus hervorgehenden unsicheren Verteilungen wieder garantiert in eine sichere Verteilung überführt werden können.
  • Im Folgenden wird eine spezielle Variante eines dynamischen Umverteilalgorithmus basierend auf den oben beschriebenen erlaubten drei Operationen dargelegt. Ziel ist es dabei, im Rahmen der Diensteausführung möglichst wenig Rechner einzusetzen, so dass die unbenutzten Rechner heruntergefahren werden können, um hierdurch Energie zu sparen. Um die Anzahl an unnötigen Migrationen gering zu halten, werden in der hier beschriebenen Variante Dienste nur dann bewegt, wenn entweder wenigstens ein Rechner abgeschaltet werden kann oder wenn eine Umverteilung der Dienste zwangsläufig aufgrund eines zunehmenden Ressourcenbedarfs erforderlich ist. Um einen Rechner abzuschalten, müssen alle Dienste, welche momentan auf dem Rechner laufen, auf andere Rechner verschoben werden. Alle sicheren Dienste, d. h. diejenigen Dienste, welche gemäß der sicheren Verteilung zu dem abzuschaltenden Rechner gehören, können basierend auf der oben beschriebenen Operation gemäß Szenario A irgendwo hin bewegt werden, da der Rechner abgeschaltet wird, nachdem alle Dienste entfernt worden sind. Alle unsicheren Dienste, deren ursprünglicher Rechner gemäß der sicheren Verteilung momentan ausgeschaltet ist, können in gleicher Weise behandelt werden. Nur die Verschiebung von Diensten, deren ursprünglicher Rechner gemäß der sicheren Verteilung noch läuft, unterliegen Beschränkungen. Sie können nur verschoben werden, indem entweder die oben beschriebene Operation gemäß Szenario B oder die oben beschriebene Operation gemäß Szenario C ausgeführt wird. Falls ein solcher Dienst zu verschiedenen Rechnern verschoben werden kann, können herkömmliche Verfahren, wie klassische First-Fit- oder Best-Fit-Heuristiken, die aus Bin-Packing-Algorithmen bekannt sind, dazu verwendet werden, um den am Besten geeigneten Rechner zur Auslagerung des Dienstes zu bestimmen.
  • Das Entfernen von Diensten von einem Rechner aufgrund eines steigenden Ressourcenbedarfs kann im Wesentlichen analog durchgeführt werden. Unsichere Dienste, deren ursprünglicher Rechner gemäß der sicheren Verteilung ausgeschaltet ist, können auf beliebige Rechner bewegt werden. Unsichere Dienste, deren ursprünglicher Rechner gemäß der sicheren Verteilung noch läuft, können basierend auf den Operationen gemäß Szenarien B und C migriert werden. Um zu entscheiden, welcher der Dienste bewegt wird, um einem auftretenden Ressourcenengpass entgegenzuwirken, können wiederum verschiedene Heuristiken verwendet werden, wobei im Folgenden ein Beispiel einer solchen Heuristik beschrieben wird.
  • Falls ein oder mehrere Dienste auf einem Rechner aufgrund eines steigenden Ressourcenbedarfs (ermittelt über das oben beschriebenen Vorhersagemodell) entfernt werden müssen, wird zunächst versucht, Dienste auf andere Rechner zu migrieren, ohne einen zusätzlichen Rechner zu reaktivieren. Dienste, welche bereits unsicher sind, sollten bevorzugt werden, da die Bewegung von Diensten von einer sicheren zu einer unsicheren Position den Weg zur Rückkehr zu einer sicheren Verteilung um einen Schritt erhöht. Falls keine Migration von Diensten ohne Reaktivierung von einem Rechner gefunden werden kann, sollten unsichere Dienste, deren ursprünglicher Rechner gemäß der sicheren Verteilung abgeschaltet ist, für die Migration ausgewählt werden. Nach der Reaktivierung des Rechners dieser Dienste können diese direkt auf den Rechner bewegt werden, ohne dass es erforderlich ist, zuvor andere Dienste zu verschieben. Falls es unsichere Dienste mit abgeschalteten Rechnern nicht gibt, muss ein unsicherer Dienst, dessen ursprünglicher Rechner läuft, auf diesen Rechner migriert werden. Deshalb müssen andere Dienste, die auf diesem Rechner ausgelagert sind, zunächst wegbewegt werden, und zwar mit der gleichen, gerade beschriebenen Heuristik. Im schlimmsten Fall führt dies zu einer kompletten Rückverteilung in die ursprüngliche sichere Verteilung, bei der jeder Rechner keine unsicheren Dienste enthält.
  • Im Vorangegangenen wurden diejenigen Maßnahmen beschrieben, die sicherstellen, dass zu jedem Zeitpunkt genug Ressourcen zur Verfügung stehen, um eine unsichere Verteilung in eine sichere Verteilung zurückzuführen. In der hier beschriebenen Ausführungsform werden jedoch auch zeitliche Aspekte berücksichtigt, welche sicherstellen, dass auch rechtzeitig in eine sichere Verteilung zurückgekehrt werden kann, bevor ein Ressourcenengpass auftritt. Hierzu wird eine Planungszeit eingeführt, welche als Δtfuture bezeichnet wird. Diese Planungszeit deckt den Zeitraum ab, der erforderlich ist, um von einer unsicheren Verteilung in die sichere Verteilung zurückzukommen, wobei die erforderlichen Reaktivierungen von Rechnern im Energiesparmodus sowie Migrationen von Diensten in Betracht gezogen werden. Innerhalb der Zeitperiode Δtfuture muss eine unsichere Verteilung von Diensten gültig sein, d. h. es dürfen basierend auf den vorhergesagten Ressourcenkapazitäten Ai(t) keine Ressourcenengpässe innerhalb dieser Zeitperiode auftreten.
  • Ausgehend von einer sicheren Verteilung ist Δtfuture zunächst Null, da keine Zeit zur Rückkehr in die sichere Verteilung benötigt wird. Soll ein Rechner deaktiviert werden, um Energie zu sparen, müssen zunächst alle Dienste verschoben werden. Anschließend wird der Rechner deaktiviert (d. h. abgeschaltet bzw. in einen Energiesparmodus versetzt), woraufhin dann eine Phase folgt, in welcher der Rechner deaktiviert bleiben muss, damit überhaupt Energie gespart wird. Ist die Deaktivierungszeit zu kurz, ist nämlich die zum Abschalten und Hochfahren des Rechners benötigte Energie größer als die durch das Abschalten des Rechners eingesparte Energie. Im Falle eines steigenden Ressourcenbedarfs muss gegebenenfalls der Rechner wieder reaktiviert werden und im schlimmsten Fall alle Dienste zurück zum Rechner verschoben werden. Hierdurch ergibt sich folgender Planungszeitraum Δtfuture, für den eine unsichere, durch Abschalten des Rechners k generierte Verteilung basierend auf der zeitlichen Vorhersage der Ressourcenkapazität der jeweiligen Dienste gültig sein muss:
    Figure DE102010029209B4_0004
  • Die Zeit Δt mig / t ist dabei die Verschiebezeit des Dienstes i. Die Zeiten Δt down / k und Δt up / k sind die Deaktivierungs- bzw. Reaktivierungszeiten des Rechners k. Die Zeit ΔtBE ist der Zeitraum, der nötig ist, damit überhaupt Energie gespart wird.
  • Nach dem Wechsel in eine unsichere Verteilung muss der erwartete Ressourcenbedarf in der Zukunft weiterhin überwacht werden, um rechtzeitig auf Änderungen reagieren zu können. Ausgehend von einer beliebigen unsicheren Verteilung der Dienste auf die Rechner muss folgender Zeitraum in der Zukunft überwacht bleiben:
    Figure DE102010029209B4_0005
  • Alle deaktivierten Rechner müssen gegebenenfalls sequentiell wieder reaktiviert werden, was zu einer gesamten Reaktivierungszeit führt, welche der Summe aller einzelnen Reaktivierungszeiten entspricht. Ferner müssen alle unsicheren Dienste zurück auf ihren ursprünglichen Rechner gemäß der sicheren Verteilung bewegt werden, damit diese Dienste wieder sichere Dienste werden. Unter Verwendung des oben beschriebenen azyklischen Graphen, der für die unsichere Verteilung hergeleitet wurde, kann ein Weg zurück zu der sicheren Verteilung immer bestimmt werden, so dass jeder Dienst i, der unsicher ist, nur genau einmal verschoben werden muss. Die gesamte Migrationszeit ist somit die Summe der Migrationszeiten aller unsicheren Dienste. In bestimmten Szenarien kann die gesamte Migrationszeit auch kürzer sein. Dies ist dann der Fall, wenn Migrationen parallel ablaufen, was beispielsweise in einem Rechnernetz mit unterschiedlichen Rechnergruppen auftreten kann. In Abhängigkeit von der Infrastruktur des Rechnernetzes kann somit auch eine kürzere Migrationszeit angenommen werden. Da die Gültigkeit einer aktuellen Verteilung während des Planungszeitraums sichergestellt ist, müssen für alle Dienste die vorhergesagten Ressourcenkapazitäten, welche direkt nach der Planungsperiode Δtfuture auftreten, beobachtet werden . Wenn der Ressourcenbedarf abnimmt, können weitere Rechner in dem Netz abgeschaltet werden. In diesem Fall muss die aktuelle Planungsperiode um die Zeitperiode erweitert werden, welche sich aus der obigen Gleichung (4) ergibt.
  • Beim Auftreten von Ressourcenengpässen ist nicht immer die vollkommene Herstellung der sicheren Verteilung erforderlich. In vielen Fällen müssen nur einige Dienste auf andere Rechner mit dem erfindungsgemäßen Umverteilverfahren verschoben werden. In Abhängigkeit davon, ob der Dienst in einer sicheren Position ist oder nicht oder ob der Dienst in eine sichere Position verschoben wird oder nicht, ändert sich die Planungsperiode, für welche die neue Verteilung der Dienste gültig sein muss, in unterschiedlicher Art und Weise. Im Falle, dass unsichere Dienste auf den ursprünglichen Rechner gemäß der sicheren Verteilung bewegt werden, muss die Planungsperiode nicht verlängert werden, da die Zeit zur Durchführung dieser Operationen bereits für die aktuelle Verteilung eingeplant wurde. Um einen unsicheren Dienst auf einen Rechner zu bewegen, auf dem der Dienst weiterhin unsicher ist, muss die neue Verteilung der Dienste für die aktuelle Planungsperiode, verlängert um die für den Dienst benötigte Migrationszeit, überprüft werden. Dies ist erforderlich, da dann, wenn eine Migration gestartet wurde, diese nicht mehr gestoppt werden kann, bis sie komplett abgeschlossen ist. Das Gleiche gilt für Dienste, welche von einer sicheren zu einer unsicheren Position bewegt werden. Auch in diesem Fall muss die Planungsperiode um die Migrationszeit des Dienstes verlängert werden, da nach der Migration ein weiterer unsicherer Dienst existiert, der im schlimmsten Fall rechtzeitig vor dem Auftreten eines Ressourcenengpasses zurückbewegt werden muss.
  • Die im Vorangegangenen beschriebenen Ausführungsformen der Erfindung weisen eine Reihe von Vorteilen auf. Es wird ein Verfahren zur dynamischen Verteilung von Diensten in einem Netz aus einer Vielzahl von Rechnern geschaffen, das aufbauend auf einer neuartigen Vorhersagemethodik garantieren kann, dass jedem Dienst jederzeit genügend Ressourcen gemäß einer vorgegebenen Diensteanforderung zur Verfügung stehen. Der in der Erfindung verwendete Vorhersagemechanismus basiert – vergleichbar zu bisherigen Ansätzen – auf der Annahme eines gleichbleibenden Rausch- und Trendverhaltens, aus dem sich der zu erwartende Ressourcenbedarf von Diensten beliebig weit in die Zukunft vorhersagen lässt. Hierbei wird jedoch im Unterschied zu bisherigen Verfahren garantiert, dass die Vorhersage den tatsächlichen Bedarf gemäß der Diensteanforderung nicht unterschreitet, was für die Zusicherung von Ressourcengarantien entscheidend ist. Für den Fall, dass die Voraussetzung des gleichbleibenden Trend- und Rauschverhaltens verletzt wird, bietet eine spezielle Variante des erfindungsgemäßen Verfahrens eine Möglichkeit der Fehlerkorrektur.
  • Das Verfahren umfasst ferner einen neuartigen Umsortieralgorithmus, der sicherstellt, dass Umverteilungen von Diensten ausgehend von einer sicheren Verteilung nur dann durchgeführt werden, wenn auf jeden Fall rechtzeitig zur sicheren Verteilung zurückgekehrt werden kann, bevor ein aufkommender Bedarf zu Ressourcenengpässen führt. Ferner kann mit dem Umsortieralgorithmus erreicht werden, dass auf einigen Rechnern keine Dienste mehr laufen, so dass diese Rechner abgeschaltet werden können. Nach Schätzungen der Erfinder können hierdurch zwischen 20 und 40% der in einem Rechenzentrum benötigten Energie eingespart werden.
  • Der Umsortierungsalgorithmus zeichnet sich dadurch aus, dass er bei der Umsortierung darauf achtet, dass jederzeit genügend Ressourcen für eine Wiederherstellung der sicheren Verteilung existieren. Definierte Rückwege von einer unsicheren Verteilung sind bekannt, bevor die sichere Verteilung verlassen wird, so dass anhand der nötigen Operationen entlang des Rückwegs bereits dessen Dauer abgeschätzt werden kann. Die Abschätzung ist wichtig, um unter Verwendung des Vorhersagemechanismus der Erfindung sicherzustellen, dass der Rückweg auch rechtzeitig durchgeführt werden kann.
  • Literaturverzeichnis
    • [1] US 2006/0184287 A1
    • [2] B. Urgaonkar et al.: „Resource Overbooking and Application Profiling in Shared Hosting Platforms”, Proceedings of the 5th symposium an Operating systems design and implementation (OSDI), Vol. 36, 2002, Seiten 239 bis 254.
    • [3] J. Shahabuddin et al.: „Stream Packing: Resource Allocation in Web Server Farms with a QoS Guarantee”, Lecture Notes in Computer Science (LNCS), Januar 2001, Seiten 182 bis 191.
    • [4] M. Hoyer et al.: „Statistical static capacity management in virtualized data centers supporting fine grained QoS specification”, Proceedings of the International Conference on Energy-Efficient Computing and Networking (e-Energy), 2010.
    • [5] US 2008/0295096 A1
    • [6] US 2010/0100877 A1
    • [7] EP 1 469 387 A1
    • [8] US 7,039,559 B2
    • [9] US 7,350,186 B2

Claims (18)

  1. Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten (1, 2, ..., 7) in einem Netz aus einer Vielzahl von Rechnern (S1, S2, ..., S4), bei dem: a) aus einem vergangenen zeitlichen Verlauf des Ressourcenbedarfs (Ri(t)) eines jeweiligen Dienstes (1, 2, ..., 7) in einem vorbestimmten Zeitintervall (ΔtAi) ein vergangener zeitlicher Verlauf einer für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) zur Erfüllung einer vorgegebenen Diensteanforderung abgeleitet wird, indem zur Ermittlung der Ressourcenkapazität (Ai(t)) zu einem Zeitpunkt in dem vorbestimmten Zeitintervall der zeitliche Verlauf des Ressourcenbedarfs (Ri(t)) in einem Teilintervall des vorbestimmten Zeitintervalls, welches den Zeitpunkt enthält oder benachbart zu diesem Zeitpunkt liegt, statistisch ausgewertet wird und aus der statistischen Auswertung des Ressourcenbedarfs (Ri(t)) eine Ressourcenkapazität (Ai(t)) ermittelt wird, welche die vorgegebene Diensteanforderung in dem Teilintervall erfüllt; b) aus dem vergangenen zeitlichen Verlauf der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) ein zeitlicher Verlauf der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)), welche die vorgegebene Diensteanforderung erfüllt, vorhergesagt wird; c) die auf den Rechnern (S1, S2, ..., S4) ausgeführten Dienste (1, 2, ..., 7) basierend auf einem oder mehreren Optimierungskriterien verteilt werden, wobei das oder die Optimierungskriterien das Kriterium umfassen, dass die jeweiligen Rechner (S1, S2, ..., S4) eine ausreichende Ressourcemenge für die auf den jeweiligen Rechnern (S1, S2, ..., S4) ausgeführten Dienste (1, 2, ..., 7) basierend auf den vorhergesagten zeitlichen Verläufen der für die jeweiligen Dienste (1, 2,..., 7) erforderlichen Ressourcenkapazitäten (Ai(t)) bereitstellen.
  2. Verfahren nach Anspruch 1, bei dem das oder die Optimierungskriterien ferner das Kriterium einer möglichst geringen Anzahl von zur Ausführung der Dienste (1, 2, ..., 7) verwendeten Rechnern (S1, S2, ...,S4) umfassen, wobei Rechner (S1, S2, ..., S4), auf denen keine Dienste (1, 2, ..., 7) ausgeführt werden, in einen Energiesparmodus versetzt werden.
  3. Verfahren nach Anspruch 1 oder 2, bei dem die statistische Auswertung in Schritt a) derart erfolgt, dass aus dem vergangenen zeitlichen Verlauf des Ressourcenbedarfs (Ri(t)) in dem Teilintervall ein Histogramm ermittelt wird und aus dem Histogramm die Ressourcenkapazität (Ai(t)) abgeleitet wird, welche die vorgegebene Diensteanforderung in dem Teilintervall erfüllt.
  4. Verfahren nach Anspruch 3, bei dem die vorgegebene Diensteanforderung festlegt, mit welcher Häufigkeit der Ressourcenbedarf (Ri(t)) kleiner oder kleiner gleich der auf dem jeweiligen Rechner (S1, S2, ..., S4) verfügbare Ressourcenkapazität sein muss, wobei die Ressourcenkapazität (Ai(t)), welche die vorgegebene Diensteanforderung in dem Teilintervall erfüllt, dem Ressourcenbedarf (Ri(t)) im Histogramm am kumulierten Wert der Häufigkeit gemäß der vorgegebenen Diensteanforderung entspricht.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die vorgegebene Diensteanforderung festlegt, dass der Ressourcenbedarf (Ri(t)) die auf dem jeweiligen Rechner (S1, S2, ..., S4) verfügbare Ressourcenkapazität nicht überschreiten darf, wobei die Ressourcenkapazität (Ai(t)), welche die Diensteanforderung in dem Teilintervall erfüllt, dem maximalen Ressourcenbedarf (Ri(t)) im Teilintervall entspricht.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem zur Vorhersage des zeitlichen Verlaufs der für einen jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) eine prädominante Periode (pAi) aus dem vergangenen zeitlichen Verlauf der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) ermittelt wird und anschließend das vorbestimmte Zeitintervall (ΔtAi) in Teilintervalle mit der Länge der prädominanten Periode (pAi) eingeteilt wird, wobei der vorhergesagte zeitliche Verlauf für ein zukünftiges Intervall mit der Länge der prädominanten Periode (pAi) derart bestimmt wird, dass aus den Ressourcenkapazitäten (Ai(t)) zu den gleichen Relativzeitpunkten in jedem Teilintervall die maximale Ressourcenkapazität ausgewählt wird, wobei die ausgewählte Ressourcenkapazität der Ressourcenkapazität an dem Relativzeitpunkt in dem zukünftigen Intervall entspricht.
  7. Verfahren nach Anspruch 6, bei dem die prädominante Periode (pAi) über eine Autokorrelationsanalyse des vergangenen zeitlichen Verlaufs der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) bestimmt wird.
  8. Verfahren nach einem der vorhergehende Ansprüche, bei dem zu einem aktuellen Zeitpunkt die Ressourcenkapazität (Ai(t)) zu einem vergangenen Zeitpunkt mittels einer statistischen Auswertung des Ressourcenbedarfs (Ri(t)) in dem Teilintervall, welches an dem aktuellen Zeitpunkt endet; ermittelt wird und mit der vorhergesagten Ressourcenkapazität (Ai(t)) zu dem vergangenen Zeitpunkt verglichen wird, wobei die statistische Auswertung der statistischen Auswertung gemäß Schritt a) entspricht und die zukünftige Vorhersage des zeitlichen Verlaufs an den vergangenen zeitlichen Verlauf der Ressourcenkapazität (Ai(t)) derart angepasst wird, dass Ressourcenkapazitäten (Ai(t)) in dem vergangenen zeitlichen Verlauf, welche größer sind als die entsprechenden Ressourcenkapazitäten (Ai(t)) in dem vorhergesagten zeitlichen Verlauf, die Ressourcenkapazitäten in der zukünftigen Vorhersage ersetzen, wobei die Schritte a) und b) vorzugsweise dann wiederholt werden, wenn die Anzahl an Ressourcenkapazitäten (Ai(t)) in dem vergangenen zeitlichen Verlauf, welche kleiner sind als die entsprechenden Ressourcenkapazitäten (Ai(t)) in dem vorhergesagten zeitlichen Verlauf, ein vorgegebenes Maß überschreiten.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Langzeittrend des zeitlichen Verlaufs der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) ermittelt wird, wobei der zeitliche Verlauf der für den jeweiligen Dienst (1, 2, ..., 7) erforderlichen Ressourcenkapazität (Ai(t)) aus dem vergangenen zeitlichen Verlauf, der um den Langzeittrend bereinigt ist, vorhergesagt wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Verteilung der Dienste (1, 2, ..., 7) derart erfolgt, dass für einen jeweiligen laufenden Rechner (S1, S2, ..., S4) unter Berücksichtigung der vorhergesagten zeitlichen Verläufe der für die jeweiligen Dienste (1, 2, ..., 7) erforderlichen Ressourcenkapazitäten (Ai(t)) und der im Netz verfügbaren Ressourcenmengen versucht wird, die Dienste (S1, S2, ..., S4) auf dem jeweiligen laufenden Rechner (S1, S2, ..., S4) auf andere laufende Rechner (S1, S2, ..., S4) zu verschieben, um anschließend den Rechner (S1, S2, ..., S4) in einen Energiesparmodus zu versetzen, und dass bei einem Ressourcenengpass, der sich aus den vorhergesagten zeitlichen Verläufen der für die jeweiligen Dienste (1, 2, ..., 7) erforderlichen Ressourcenkapazitäten (Ai(t)) ergibt, versucht wird, die Dienste (S1, S2, ..., S4) zur Behebung des Ressourcenengpasses derart zu verschieben, dass Rechner (S1, S2, ..., S4) im Energiesparmodus nicht aktiviert werden.
  11. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Verfahren mit einer sicheren Verteilung der Dienste (1, 2, ..., 7) auf den Rechnern (S1, S2, ..., S4) initialisiert wird, wobei die sichere Verteilung derart ausgestaltet ist, dass sie garantiert, dass der Ressourcenbedarf (Ri(t)) der Dienste (1, 2, ..., 7), welche gemäß der sicheren Verteilung auf einem jeweiligen Rechner (S1, S2, ..., S4) laufen, nie zu einem Überschreiten der durch den jeweiligen Rechner (S1, S2, ..., S4) bereitgestellten Ressourcenmenge führt, wobei die Dienste (1, 2, ..., 7) auf einem jeweiligen Rechner (S1, S2, ..., S4) gemäß der sicheren Verteilung sichere Dienste (1, 2, ..., 7) darstellen und die Dienste (1, 2 ..., 7), welche aufgrund einer Umverteilung auf einen anderen Rechner migriert wurden, unsichere Dienste (1, 2, ..., 7) darstellen.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass eine Umverteilung von Diensten (1, 2, ..., 7) nur dann vorgenommen wird, wenn eine Rückkehr aus der Umverteilung in die sichere Verteilung garantiert werden kann.
  13. Verfahren nach Anspruch 11 oder 12, bei dem ein unsicherer Dienst (1, 2, ..., 7) durch eine gerichtete Kante (E) beschrieben wird, welche sich von dem Rechner (S1, S2, ..., S4), auf dem sich dieser Dienst (1, 2, ..., 7) aktuell befindet, zu dem Rechner (S1, S2, ..., S4) erstreckt, auf dem sich dieser Dienst (1, 2, ..., 7) gemäß der sicheren Verteilung befunden hat, wodurch eine gerichtete Graphstruktur (G) gebildet wird.
  14. Verfahren nach Anspruch 12 und 13, bei dem eine Rückkehr aus einer Umverteilung in die sichere Verteilung dadurch garantiert wird, dass ein Dienst (1, 2, ..., 7) nur dann von einem Rechner (S1, S2, ..., S4) auf einen anderen Rechner (S1, S2, ..., S4) migriert wird, wenn durch seine Migration keine Zyklen in der gerichteten Graphstruktur (G) auftreten.
  15. Verfahren nach einem der Ansprüche 11 bis 14, bei dem für eine durchzuführende Umverteilung von Diensten (1, 2, ..., 7) die vorhergesagten zeitlichen Verläufe der für die jeweiligen Dienste (1, 2, ..., 7) erforderlichen Ressourcenkapazitäten (Ai(t)) in einem zukünftigen Zeitintervall berücksichtigt werden, welches die benötigte Zeit für die Umverteilung der Dienste (1, 2, ..., 7) und die benötigte Zeit für die Rückkehr zu der sicheren Verteilung aus der Umverteilung umfasst.
  16. Verfahren nach Anspruch 15, bei dem das zukünftige Zeitintervall im Falle, dass nach der durchzuführenden Umverteilung ein Rechner (S1, S2, ..., S4) in einen Energiesparmodus gesetzt werden kann, eine Mindestperiode für den Energiesparmodus umfasst.
  17. Verfahren nach einem der Ansprüche 11 bis 16, bei dem für eine Verteilung von Diensten (S1, S2, ..., S4), welche nicht der sicheren Verteilung entspricht, die vorhergesagten zeitlichen Verläufe der für die jeweiligen Dienste (1, 2, ..., 7) erforderlichen Ressourcenkapazitäten (Ai(t)) für ein zukünftiges Zeitintervall überwacht werden, welches der Zeitperiode entspricht, die für die Rückkehr zu der sicheren Verteilung aus der Verteilung benötigt wird.
  18. Rechnernetz aus einer Vielzahl von Rechnern (S1, S2, ..., S4), wobei das Netz ein oder mehrere Verarbeitungsmittel umfasst, welche derart ausgestaltet sind, dass ein Verfahren nach einem der vorhergehenden Ansprüche 1 bis 17 in dem Netz durchführbar ist.
DE102010029209.5A 2010-05-21 2010-05-21 Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern Expired - Fee Related DE102010029209B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102010029209.5A DE102010029209B4 (de) 2010-05-21 2010-05-21 Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern
US13/112,702 US8949642B2 (en) 2010-05-21 2011-05-20 Method for dynamically distributing one or more services in a network comprising of a plurality of computers by deriving a resource capacity required based on a past chronological progression of a resource demand

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010029209.5A DE102010029209B4 (de) 2010-05-21 2010-05-21 Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern

Publications (2)

Publication Number Publication Date
DE102010029209A1 DE102010029209A1 (de) 2011-11-24
DE102010029209B4 true DE102010029209B4 (de) 2014-06-18

Family

ID=44900552

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010029209.5A Expired - Fee Related DE102010029209B4 (de) 2010-05-21 2010-05-21 Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern

Country Status (2)

Country Link
US (1) US8949642B2 (de)
DE (1) DE102010029209B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202016101711U1 (de) 2016-03-31 2017-07-03 Dextradata Gmbh Kapazitätsplanungswerkzeug, insbesondere einer Informationstechnologie-Infrastruktur

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615579B1 (en) 2010-12-28 2013-12-24 Amazon Technologies, Inc. Managing virtual machine migration
US9098214B1 (en) 2010-12-28 2015-08-04 Amazon Technologies, Inc. Managing virtual machine migration
US9250863B1 (en) * 2010-12-28 2016-02-02 Amazon Technologies, Inc. Managing virtual machine migration
US9928107B1 (en) 2012-03-30 2018-03-27 Amazon Technologies, Inc. Fast IP migration in a hybrid network environment
US20140013321A1 (en) * 2012-07-05 2014-01-09 Telefonica, S.A. Method for providing cloud computing resources
US9946564B2 (en) * 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
US10469616B2 (en) 2017-06-09 2019-11-05 Red Hat, Inc. Data driven bin packing implementation for data centers with variable node capabilities
US10956230B2 (en) * 2018-10-01 2021-03-23 Vmware, Inc. Workload placement with forecast
US11550635B1 (en) * 2019-03-28 2023-01-10 Amazon Technologies, Inc. Using delayed autocorrelation to improve the predictive scaling of computing resources
US10972768B2 (en) * 2019-06-27 2021-04-06 Intel Corporation Dynamic rebalancing of edge resources for multi-camera video streaming
US20230367641A1 (en) * 2022-05-16 2023-11-16 Google Llc Centralized Control For Computing Resource Management
CN116738246B (zh) * 2023-06-12 2023-12-26 烟台大学 一种面向服务需求变化的组合服务动态重构方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1469387A2 (de) * 2003-04-16 2004-10-20 Fujitsu Limited Verfahren und System zur Zuweisung von Ressourcen eines Computers
US7039559B2 (en) * 2003-03-10 2006-05-02 International Business Machines Corporation Methods and apparatus for performing adaptive and robust prediction
US7350186B2 (en) * 2003-03-10 2008-03-25 International Business Machines Corporation Methods and apparatus for managing computing deployment in presence of variable workload
US20080295096A1 (en) * 2007-05-21 2008-11-27 International Business Machines Corporation DYNAMIC PLACEMENT OF VIRTUAL MACHINES FOR MANAGING VIOLATIONS OF SERVICE LEVEL AGREEMENTS (SLAs)
US20100100877A1 (en) * 2008-10-16 2010-04-22 Palo Alto Research Center Incorporated Statistical packing of resource requirements in data centers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306841B2 (en) * 2001-04-17 2012-11-06 4Sight Technologies, Inc. Enterprise project management system and method therefor
US7171668B2 (en) * 2001-12-17 2007-01-30 International Business Machines Corporation Automatic data interpretation and implementation using performance capacity management framework over many servers
EP1476834A1 (de) * 2002-02-07 2004-11-17 Thinkdynamics Inc. Verfahren und system zur verwaltung von betriebsmitteln in einer datenzentrale
US7783759B2 (en) * 2002-12-10 2010-08-24 International Business Machines Corporation Methods and apparatus for dynamic allocation of servers to a plurality of customers to maximize the revenue of a server farm
JP4066932B2 (ja) * 2003-11-10 2008-03-26 株式会社日立製作所 予測に基づいた計算機リソース配分方法
US7953843B2 (en) * 2004-06-14 2011-05-31 Hewlett-Packard Development Company, L.P. System and method for evaluating a heterogeneous cluster for supporting expected workload in compliance with at least one service parameter
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7925757B1 (en) * 2006-07-25 2011-04-12 Hewlett-Packard Development Company, L.P. Determining a portion of required capacity attributed to applications in multiple classes of service
US8046765B2 (en) * 2006-07-25 2011-10-25 Hewlett-Packard Development Company, L.P. System and method for determining allocation of resource access demands to different classes of service based at least in part on permitted degraded performance
US8046767B2 (en) * 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads
US8271818B2 (en) * 2009-04-30 2012-09-18 Hewlett-Packard Development Company, L.P. Managing under-utilized resources in a computer
US8234236B2 (en) * 2009-06-01 2012-07-31 International Business Machines Corporation System and method for efficient allocation of resources in virtualized desktop environments
US9037717B2 (en) * 2009-09-21 2015-05-19 International Business Machines Corporation Virtual machine demand estimation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039559B2 (en) * 2003-03-10 2006-05-02 International Business Machines Corporation Methods and apparatus for performing adaptive and robust prediction
US7350186B2 (en) * 2003-03-10 2008-03-25 International Business Machines Corporation Methods and apparatus for managing computing deployment in presence of variable workload
EP1469387A2 (de) * 2003-04-16 2004-10-20 Fujitsu Limited Verfahren und System zur Zuweisung von Ressourcen eines Computers
US20080295096A1 (en) * 2007-05-21 2008-11-27 International Business Machines Corporation DYNAMIC PLACEMENT OF VIRTUAL MACHINES FOR MANAGING VIOLATIONS OF SERVICE LEVEL AGREEMENTS (SLAs)
US20100100877A1 (en) * 2008-10-16 2010-04-22 Palo Alto Research Center Incorporated Statistical packing of resource requirements in data centers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202016101711U1 (de) 2016-03-31 2017-07-03 Dextradata Gmbh Kapazitätsplanungswerkzeug, insbesondere einer Informationstechnologie-Infrastruktur
EP3226186A1 (de) 2016-03-31 2017-10-04 DextraData GmbH Kapazitätsanalyse- und -planungswerkzeug, insbesondere für eine informationstechnologie(-infrastruktur)

Also Published As

Publication number Publication date
DE102010029209A1 (de) 2011-11-24
US20110289333A1 (en) 2011-11-24
US8949642B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
DE102010029209B4 (de) Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern
DE60226176T2 (de) Verfahren und programme zur einstellung von prioritätsstufen in einem datenverarbeitungssystem mit multiprogrammierung und priorisierte warteschlangenbildung
DE60224432T2 (de) Dynamische und automatische speicherverwaltung
DE3854935T2 (de) Verfahren und Gerät zur Simulation von begrenzten verteilten diskreten Ereignissen
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE112011103291B4 (de) Datenumwandlungsverfahren und Datenumwandler
DE102012217202A1 (de) Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
EP0010570B1 (de) Verfahren und Einrichtung zur selbstadaptiven Zuordnung der Arbeitslast einer Datenverarbeitungsanlage
WO2005111807A2 (de) Verfahren zur prüfung der echtzeitfähigkeit eines systems
DE102007016060A1 (de) Computerarbeitslastneuverteilung
DE112010003027T5 (de) System und Verfahren zur Jobsteuerung in einem verteilten Datenverarbeitungssystem mitKennzeichnung der optimalen Netztopologie
DE102017128711A1 (de) Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
DE60222259T2 (de) Scheduling-verfahren und -system zur steuerung der ausführung von prozessen
DE112017005371T5 (de) Energiesparen eines Prozessors während Warteereignissen
EP2386949A1 (de) Verfahren und Vorrichtung zum zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur
EP0799441A1 (de) Verfahren zur steuerung von technischen vorgängen
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
DE102009025572A1 (de) Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen
DE102004011201A1 (de) Verfahren zum Management und zur Überwachung des Betriebs mehrerer in wenigstens ein Kommunikationsnetz eingebundener verteilter Hard- und/oder Softwaresysteme sowie System zur Durchführung des Verfahrens
EP1054528B1 (de) Verfahren zum Ausführen einer Anforderung einer Netzwerkverwaltungseinrichtung
DE102019219260A1 (de) Verfahren zum Betreiben einer Recheneinheit
DE102019213562A1 (de) Verfahren zur Berechnung einer Funktion für ein Fahrzeug
DE102015213370B4 (de) Datenverarbeitungsvorrichtung
DE102013114451A1 (de) Verfahren zum Verteilen einer Prozessorlast auf Echtzeit-Prozessorthreads
DE102019128206B4 (de) Verfahren und Vorrichtung zur statischen Speicherverwaltungsoptimierung bei integrierten Mehrkernprozessoren

Legal Events

Date Code Title Description
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20150319

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee