-
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 A
i(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:
-
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 A
i(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 A
i(t) angewendet ist. Die Zeitreihe A
i(t) ist in
2 nochmals in einem Diagramm D1 zusammen mit der ursprünglich verrauschten Zeitreihe R
i(t) wiedergegeben. Die Zeitreihe wird einer Autokorrelationsanalyse unterzogen, welche durch AUT in
2 wiedergegeben ist. Es wurde dabei folgende Autokorrelationsfunktion r(s) verwendet:
-
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 Δt
future 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 Δt
future, 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:
-
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:
-
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