-
VERWEIS
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft im Allgemeinen das Risikomanagement in Computer-Cluster. Insbesondere betreffen die Aspekte der Erfindung das Enthalten von Descheduling-Risiken der Jobs innerhalb eines gebundenen Ziels durch das Erzeugen von Sicherungsaufgaben für heterogene Aufgaben mit ähnlichen Betriebsmittelanforderungen. Beschreibung des Stands der Technik
-
Die Computerleistung, die von Applikationen benötigt wird, ist enorm gestiegen. Durch das Aggregieren der Leistung von weit verbreiteten Betriebsmitteln, ermöglichen Computer-Cluster es den Unternehmen ihre Verarbeitungsleistung durch verknüpfte Computer und einer Sammlung gemeinsamer Betriebsmittel wie Computerknoten, Prozessoren, Speicher, Datenbanken, Netzwerkbandbreite, I/O-Geräte usw. zu verstärken. Heterogenen Applikationsjobs/-aufgaben werden durch Clustermanagement-Infrastruktur, wie Betriebsmittelmanager und Jobscheduler, Betriebsmittel zugewiesen und geplant serienmäßig oder parallel auf verschiedenen Rechnern zu laufen.
-
In einer verteilten Computerumgebung können Ausführungsfehler der bereits geplanten Jobs oder Aufgaben aus mehreren Gründen auftreten, wie z. B. Netzwerkfehler, Rechnerabsturz, Stromausfall, überladene Betriebsmittelbedingungen, misstraute Sicherheitsvorgaben, konkurrierende Aufgaben oder Jobs oder andere Vorfälle, die zu einer Nicht-Verfügbarkeit von geplanten und/oder benötigten Betriebsmitteln führen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Um solche Ausführungsfehler zu vermeiden, minimisieren die Aspekte der Erfindung die Descheduling-Wahrscheinlichkeiten der geplanten Jobs oder Aufgaben aufgrund der oben genannten Gründe, um ein Risiko-elastisches Cluster mit einer robusten bleibenden Scheduling-Fähigkeit bereitzustellen.
-
Gemäß den Aspekten der Erfindung erzeugt ein System Sicherungsaufgaben für eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen. Jede geplante Aufgabe ist mit einer Zielwahrscheinlichkeit für die Ausführung assoziiert. Jede geplante Aufgabe ist ausführbar durch ein erstes Cluster-Element und ein zweites Cluster-Element. In einem Beispiel umfasst das erste Cluster-Element einen Rechner und das zweite Cluster-Element umfasst ein Rack, das den Rechner beherbergt. Das System klassifiziert die geplanten Aufgaben in unterschiedliche Gruppen anhand der Betriebsmittelanforderungen jeder Aufgabe. Das System kann für jede Gruppe die Anzahl an zu erzeugenden Sicherungsaufgaben anhand der Zielwahrscheinlichkeiten der geplanten Aufgaben in der Gruppe ermitteln. Das System ist so konfiguriert, dass es die Sicherungsaufgaben anhand der Ermittlung erzeugt, wobei alle Sicherungsaufgaben in einer bestimmten Gruppe identisch sind und dazu verwendet werden können, jede geplante Aufgabe der Gruppe zu sichern/ersetzen.
-
Gemäß einer Ausführungsform ist ein Computerimplementiertes Verfahren durch einen Prozessor zur Zuweisung von Sicherungsaufgaben an eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen ausführbar. Das Verfahren umfasst die Klassifikation der Vielzahl an geplanten Aufgaben in Gruppen anhand von einer oder mehrerer Betriebsmittelanforderungen, die mit jeder Aufgabe assoziiert sind, wobei jede Gruppe mindestens eine geplante Aufgabe enthält; die Ermittlung, für mindestens eine der jeweiligen Gruppen, einer Anzahl von notwendigen Sicherungsaufgaben, um zu garantieren, dass die geplanten Aufgaben der jeweiligen Gruppe eine Zielwahrscheinlichkeit für die Ausführung erfüllen; und das Erzeugen, mit dem Prozessor, der Sicherungsaufgaben anhand der Ermittlung, wobei die erzeugten Sicherungsaufgaben identisch sind und jede Sicherungsaufgabe in der jeweiligen Gruppe konfiguriert wird, um jede geplante Aufgabe in der jeweiligen Gruppe zu ersetzen.
-
In einem Beispiel umfasst der Computer-Cluster erste und zweite Cluster-Elemente. Hier umfasst das erste Cluster-Element einen Rechner und das zweite Cluster-Element umfasst ein Rack, das den Rechner beherbergt. Alternativ basiert die Ermittlung der Anzahl von Sicherungsaufgaben auf mindestens einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements oder einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements.
-
In einem weiteren Beispiel ist jede geplante Aufgabe der jeweiligen Gruppe mit einem Job verknüpft und jeder Job ist mit der Zielwahrscheinlichkeit für die Ausführung seiner verknüpften Aufgabe assoziiert. In einem weiteren Beispiel enthält jede Gruppe Aufgaben mit identischen Betriebsmittelanforderungen. In noch einem weiteren Beispiel ist eine der Betriebsmittelanforderungen für eine ausgewählte der geplanten Aufgaben eine Speicherbereichanforderung.
-
Alternativ umfasst der Computer-Cluster eine Vielzahl der ersten Cluster-Elemente und einer Vielzahl der zweiten Cluster-Elemente. Hier umfasst das Verfahren außerdem das Empfangen, von jeder geplanten Aufgabe, einer Bevorzugung für die Ausführung durch ein bestimmtes der Vielzahl an ersten Cluster-Elementen oder ein bestimmtes der Vielzahl an zweiten Cluster-Elementen. In diesem Fall wird die Klassifikation anhand der empfangenen Bevorzugung durchgeführt.
-
Außerdem umfasst das Verfahren alternativ die Ermittlung eines ersten Aufwandes, um die Sicherungsaufgaben für die jweilige Gruppe zu erzeugen; für jede Gruppe die Ermittlung eines zweiten Aufwandes, um zusätzliche Sicherungsaufgaben für eine Kombinationsgruppe, die die jeweilige Gruppe beinhaltet, zu erzeugen, wobei die Ermittlung des zweiten Aufwandes durch Teilen der Vielzahl an geplanten Aufgaben und der jeweiligen Gruppe erhalten wird; den Vergleich des ersten Aufwandes mit dem zweiten Aufwand, das Erzeugen der Sicherungsaufgaben für die jeweilige Gruppe, falls der erste Aufwand geringer ist als der zweite Aufwand; und das Erzeugen zusätzlicher Sicherungsaufgaben für die Kombinationsgruppe, falls der erste Aufwand höher oder gleich dem zweiten Aufwand ist.
-
In einem Beispiel umfasst die Ermittlung der Anzahl von Sicherungsaufgaben das iterative Berechnen einer Wahrscheinlichkeit nicht mehr als alle gegenwärtigen Sicherungsaufgaben zu verlieren in einer bestimmten der Vielzahl an Gruppen; den Vergleich der berechneten Wahrscheinlichkeit mit den Zielwahrscheinlichkeiten für die Ausführung; das Hinzufügen einer Sicherungsaufgabe zu einer Klasse der bestimmten Gruppe, falls die berechnete Wahrscheinlichkeit höher als alle Zielwahrscheinlichkeiten ist; und das Aufhören Sicherungsaufgaben der bestimmten Gruppe hinzuzufügen, falls die berechnete Wahrscheinlichkeit geringer als alle Zielwahrscheinlichkeiten ist. Alternativ basiert das Berechnen der Wahrscheinlichkeit auf mindestens einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im Cluster oder einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements im Cluster und der Anzahl an gegenwärtigen Sicherungsaufgaben in der bestimmten Gruppe.
-
Außerdem umfasst der Cluster alternativ eine Vielzahl an ersten und zweiten Cluster-Elementen und das Berechnen der Wahrscheinlichkeit umfasst außerdem: für jedes zweite Cluster-Element, dass von den geplanten Aufgaben in der bestimmten Gruppe benutzt wird, das Teilen des zweiten Cluster-Elements in Sub-zweite-Elemente. In diesem Fall umfasst jedes der Sub-zweiten-Elemente eines oder mehrere erste Cluster-Elemente. Und jedes der ersten Cluster-Elemente in dem jeweiligen Sub-zweiten-Element führt die gleiche Anzahl an geplanten Aufgaben aus. Für jedes Sub-zweite-Element berechnet das Verfahren eine Wahrscheinlichkeit nicht mehr als alle geplanten Aufgaben darin zu verlieren basierend auf einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im jeweiligen Sub-zweiten-Element, der Anzahl der ersten Cluster-Elemente im jeweiligen Sub-zweiten-Element und der Anzahl von geplanten Aufgaben im jeweiligen Sub-zweiten-Element.
-
In einem anderen Beispiel umfasst das Verfahren außerdem das Überwachen des Aufgabenausführungsstatus und des Cluster-Status; und das Durchführen von Bearbeitung oder Löschen der Sicherungsaufgaben in der jeweiligen Gruppe anhand des Überwachens.
-
In einem weiteren Beispiel umfasst der Computer-Cluster erste und zweite Cluster-Elemente und das Verfahren umfasst außerdem die Abschätzung einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements und einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements. Alternativ basiert die Ermittlung der Anzahl von Sicherungsaufgaben auf einer Fehlerwahrscheinlichkeit eines dritten Cluster-Elements des Computer-Clusters. Hier umfasst das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element.
-
Gemäß einer anderen Ausführungsform wird ein System zum Erzeugen von Sicherungsaufgaben für eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen, bereitgestellt. Das System umfasst einen Speicher und einen Prozessor, der mit dem Speicher verbunden ist. Der Prozessor ist so konfiguriert, dass er eine Reihe von Anweisungen ausführt, die in dem Speicher gelagert sind, zur Klassifikation der Vielzahl an geplanten Aufgaben in Gruppen anhand von einer oder mehreren mit jeder Aufgabe verbundenen Betriebsmittelanforderungen. Jede geplante Aufgabe ist mit einer Zielwahrscheinlichkeit für die Ausführung assoziiert. Jede geplante Aufgabe ist ausführbar durch ein erstes Cluster-Element und ein zweites Cluster-Element. Jede Gruppe enthält mindestens eine der geplanten Aufgaben. Der Prozessor ist auch so konfiguriert, dass er für mindestens eine der jeweiligen Gruppen eine Anzahl von notwendigen Sicherungsaufgaben ermittelt, um zu garantieren, dass die geplanten Aufgaben der jeweiligen Gruppe die Zielwahrscheinlichkeit für die Ausführung erfüllen. Der Prozessor ist außerdem so konfiguriert, dass er die Sicherungsaufgaben anhand der Ermittlung erzeugt. Die erzeugten Sicherungsaufgaben in der jeweiligen Gruppe sind identisch. Und jede Sicherungsaufgabe in der jeweiligen Gruppe ist so konfiguriert, dass sie jede geplante Aufgabe der jeweiligen Gruppe ersetzen kann.
-
In einem Beispiel ist eine der Betriebsmittelanforderungen für eine ausgewählte der geplanten Aufgaben eine Speicherbereichanforderung. In einem anderen Beispiel umfasst das erste Cluster-Element mindestens einen einer Vielzahl an Rechnern und das zweite Cluster-Element umfasst mindestens eines einer Vielzahl an Racks.
-
In einem weiteren Beispiel umfasst das erste Cluster-Element eine Vielzahl der ersten Cluster-Elemente, das zweite Cluster-Element umfasst eine Vielzahl der zweiten Cluster-Elemente und der Prozessor ist außerdem so konfiguriert, dass er von jeder geplanten Aufgabe, eine Bevorzugung für die Ausführung durch ein bestimmtes der Vielzahl an ersten Cluster-Elementen oder ein bestimmtes der Vielzahl an zweiten Cluster-Elementen empfängt. Hier wird die Klassifikation anhand der empfangenen Bevorzugung durchgeführt.
-
In einem anderen Beispiel ist der Prozessor außerdem so konfiguriert, dass er einen ersten Aufwand zur Erzeugung der Sicherungsaufgaben für die jeweilige Gruppe ermittelt. Für jede Gruppe ist der Prozessor so konfiguriert, dass er einen zweiten Aufwand zur Erzeugung zusätzlicher Sicherungsaufgaben für eine Kombinationsgruppe, die die jeweilige Gruppe umfasst, ermittelt. Der ermittelte zweite Aufwand wird durch das Teilen der Vielzahl an geplanten Aufgaben und der jeweiligen Gruppe erhalten. Der Prozessor ist außerdem so konfiguriert, dass er den ersten Aufwand mit dem zweiten Aufwand vergleicht, um die Sicherungsaufgaben für die jeweilige Gruppe zu erzeugen, falls der erste Aufwand geringer ist als der zweite Aufwand; und um zusätzliche Sicherungsaufgaben für die Kombinationsgruppe zu erzeugen, falls der erste Aufwand höher oder gleich dem zweiten Aufwand ist.
-
In einem anderen Beispiel ermittelt der Prozessor die Anzahl von Sicherungsaufgaben durch die iterative Ausführung des Berechnens einer Wahrscheinlichkeit nicht mehr als alle gegenwärtigen Sicherungsaufgaben zu verlieren in einer bestimmten der Vielzahl an Gruppen; vergleicht die berechnete Wahrscheinlichkeit mit den Zielwahrscheinlichkeiten für die Ausführung; fügt eine Sicherungsaufgabe zu einer Klasse der bestimmten Gruppe hinzu, falls die berechnete Wahrscheinlichkeit höher als alle Zielwahrscheinlichkeiten ist; und hört auf Sicherungsaufgaben der bestimmten Gruppe hinzuzufügen, falls die berechnete Wahrscheinlichkeit geringer als alle Zielwahrscheinlichkeiten ist.
-
Alternativ umfasst das erste Cluster-Element eine Vielzahl an ersten Cluster-Elementen und das zweite Cluster-Element umfasst eine Vielzahl an zweiten Cluster-Elementen. Hier ist der Prozessor außerdem so konfiguriert, dass er eine Wahrscheinlichkeit berechnet nicht mehr als alle gegenwärtigen Sicherungsaufgaben in einer bestimmten Gruppe zu verlieren durch: für jedes zweite Cluster-Element, dass von den geplanten Aufgaben in der bestimmten Gruppe benutzt wird, das Teilen des zweiten Cluster-Elements in Sub-zweite-Elemente. Jedes der Sub-zweiten-Elemente umfasst eines oder mehrere erste Cluster-Elemente. Jedes der ersten Cluster-Elemente in dem jeweiligen Sub-zweiten-Element führt die gleiche Anzahl an geplanten Aufgaben aus. Für jedes Sub-zweite-Element berechnet der Prozessor außerdem eine Wahrscheinlichkeit nicht mehr als alle geplanten Aufgaben darin zu verlieren basierend auf einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im jeweiligen Sub-zweiten-Element, der Anzahl der ersten Cluster-Elemente im jeweiligen Sub-zweiten-Element und der Anzahl von geplanten Aufgaben im jeweiligen Sub-zweiten-Element.
-
In einer weiteren Alternative umfasst der Prozessor außerdem das Überwachen des Aufgabenausführungsstatus und des Cluster-Status und das Durchführen von Bearbeitung oder Löschen der Sicherungsaufgaben in der jeweiligen Gruppe anhand des Überwachens. In einem zusätzlichen Beispiel ist der Prozessor außerdem so konfiguriert, dass er eine Fehlerwahrscheinlichkeit des ersten Cluster-Elements und einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements abschätzt. In einem weiteren Beispiel ist der Prozessor außerdem so konfiguriert, dass die Anzahl von Sicherungsaufgaben basierend auf einer Fehlerwahrscheinlichkeit eines dritten Cluster-Elements in dem Computer-Cluster ermittelt. Hier umfasst das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element. Hier umfasst das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Diagramm einer Netzwerkumwelt gemäß den Aspekten der Erfindung.
-
2 ist ein funktionelles Diagramm gemäß den Aspekten des Systems von 1.
-
3 ist ein Hauptflussdiagramm gemäß den Aspekten der Erfindung.
-
4 ist ein beispielhaftes Szenario gemäß den Aspekten der Erfindung.
-
5 ist ein weiteres beispielhaftes Szenario gemäß den Aspekten der Erfindung.
-
6 ist ein Flussdiagramm gemäß den Aspekten Erfindung.
-
7 ist ein weiteres Flussdiagramm gemäß den Aspekten Erfindung.
-
8 ist noch ein weiteres Flussdiagramm gemäß den Aspekten Erfindung.
-
9 ist ein weiteres Flussdiagramm gemäß den Aspekten der Erfindung.
-
10 ist ein weiteres Flussdiagramm gemäß den Aspekten Erfindung.
-
11 ist ein weiteres Flussdiagramm gemäß den Aspekten der Erfindung.
-
12 ist ein weiteres beispielhaftes Szenario gemäß den Aspekten der Erfindung.
-
13 ist ein weiteres beispielhaftes Szenario gemäß den Aspekten der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Aspekte, Merkmale und Vorteile der Erfindung werden geschätzt, wenn sie mit Bezugnahme auf die folgende Beschreibung von Ausführungsbeispielen und beigefügten Figuren betrachtet werden. Dieselben Referenznummern in unterschiedlichen Zeichnungen können dieselben oder ähnliche Elemente identifizieren. Ferner ist die folgende Beschreibung nicht einschränkend; der Umfang der vorliegenden Erfindung wird durch die beigefügten Ansprüche und Äquivalente definiert.
-
Wie in 1 gezeigt, ein Computer-Cluster 100 gemäß den Aspekten der Erfindung umfasst ein oder mehrere Netzwerk-Berechnungselemente 102, 104 und 106 zur Durchführung von Job-/Aufgabenverarbeitung. Der Cluster kann jede Art von verteiltem Computersystem sein. Zum Beispiel kann Cluster 100 ein hochverfügbarer Cluster sein, der redundante Arbeitseinheiten umfasst, um die Verfügbarkeit von Dienstleistungen zu verbessern oder ein lastausgleichender Cluster, der eine oder mehrere lastausgleichende Vorderenden hat, durch welche die gesamte Arbeitslast durchkommt und zu einer Sammlung von Hinterenden-Servern verteilt werden.
-
In anderen Szenarien kann Cluster 100 ein hochverfügbarer Cluster sein, der die rechnerische Aufgabe in Stücke teilt und die Stücke über viele verschiedene Verarbeitungseinheiten in dem Cluster verteilt. In weiteren Beispielen kann Cluster 100 ein Gitter-Cluster sein, der mehrere heterogene Sammlungen trägt. Alternativ kann der Cluster ein engagierter Cluster sein, der paralleles Rechnen über die gesamten Cluster durchführt, oder ein nicht engagierter Cluster, der gewissen Applikationen erlaubt, in freien CPU-Zyklen ausgeführt zu werden.
-
Cluster-Berechnungselemente wie 102, 104 und 106, auch als Verarbeitungseinheiten bekannt, können durch Netzwerk 90 miteinander kommunizieren. Netzwerk 90 kann verschiedene Typen von dazwischenliegenden Knoten umfassen, wie z. B. Router, Gateways, Server, Datenbanken und Bedienungsterminals. Netzwerk 90 kann auch verschiedene Konfigurationen umfassen und verschiedene Protokolle nutzen, einschließlich Weitverkehrsnetzwerke, lokale Netzwerke, drahtlose Netzwerke, persönliche Netzwerke, virtuelle private Netzwerke, private Netzwerke, die Kommunikationsprotokolle nutzen, die Eigentum einer oder mehreren Firmen sind und verschiedene Kombinationen der vorher genannten. Obwohl nur wenige Netzwerkknoten in dargestellt sind in 1, sollte geschätzt werden, dass ein typischer Cluster eine große Zahl verbundener Computer umfassen kann. Eine solche Kommunikation kann von jedem Gerät ermöglicht werden, das in der Lage ist, Daten von und zu anderen Computer zu übertragen, wie Ethernet-Netzwerkschnittstellen, T1-Leitungen, Faseroptikkabel und/oder drahtlose Schnittstellen.
-
Jedes Netzwerk-Computing-Element 102, 104 und 106 kann sich in einem einzigartigen Netzwerkknoten aufhalten und kann verschiedene Typen von Computeranlagen umfassen. Zum Beispiel kann Computing-Element 102 ein unabhängiger Rechner sein, mit seinem eigenen Betriebssystem, Speicher, Prozessor(en), Eingangs-/Ausgangsbus, Netzwerkadapter, usw. In einem anderen Beispiel kann Verarbeitungseinheit 104 ein Rackserver sein, der mindestens einen Rechner umfasst.
-
Jede Verarbeitungseinheit ist mit verschiedenen Hardware- und Softwarebetriebsmitteln assoziiert, so wie Betriebsmittel 108, 110 und 112, jeweils. Diese Hardware- und Softwarebetriebsmittel können Prozessoren, Speicher, CDs, Kassetten, Swaps, Eingangs/-Ausgangsvorrichtungen oder Schnittstellen, Netzwerkbandbreite, Netzwerkverbindungen, Lizenzen oder jedes andere ortsspezifische Betriebsmittel umfassen. Als solcher besitzt Cluster 100 eine Reihe von verteilten und heterogenen Betriebsmitteln, die zentral oder lokal von den eingehenden Applikationsjobs/-aufgaben verwaltet und benutzt werden können. Diese Betriebsmittel können mehreren Jobs oder Aufgaben zugeordnet werden und über sie gemeinsam genutzt werden.
-
Die Jobs 114, 116 und 118 können von einer oder mehreren Benutzerapplikationen kommen. Jeder Job kann eine Reihe von individuellen Aufgaben umfassen. Zum Beispiel kann Job 114 eine oder mehrere Aufgaben 120 umfassen. Job 116 kann eine Reihe von Aufgaben 122 umfassen und Job 118 kann Aufgaben 124 umfassen. Diese Aufgaben können als parallele Aufgaben verknüpft sein oder abhängige oder aufeinanderfolgende Aufgaben sein. Jeder Job kann auf einem Cluster aus Prozessoren durchgeführt werden. Die Aufgaben können diskrete Blöcke von ausführbarem Code oder Funktionen sein, die auf einem oder mehreren Prozessoren in dem Cluster durchgeführt werden können. Die Aufgaben können spezifische Eingangs- oder Ausgangsdaten haben, die zwischen gewissen Aufgaben gemeinsam genutzt werden und die Basis für Beziehungen zwischen Aufgaben sein können.
-
Jeder Job ist vorzugsweise mit einer Reihe von jobbedingter Information assoziiert. Zum Beispiel kann Job 114 mit Information 126 assoziiert sein, Job 116 kann mit Information 128 assoziiert sein und Job 118 kann mit Information 130 assoziiert sein. Die jobbedingte Information kann ein oder mehrere Job-Ziele, Performance-Ziele, Richtlinien, Einschränkungen und/oder Bevorzugungen umfassen. Die Performance-Ziele können eine Zielwahrscheinlichkeit für einen bestimmten Job umfassen, dass dieser geplant bleibt. Zum Beispiel, wenn die Zielwahrscheinlichkeit für Job 114 bei 99,999% liegt, bedeutet das, dass dieser Job eine Garantie mit einer Wahrscheinlichkeit von 99,999% benötigt, dass der Job angesichts erwarteter Nichtverfügbarkeit von Betriebsmitteln aufgrund von Vorfällen wie Rechner-/Rackfehlern geplant bleibt.
-
Die jobbedingte Information kann auch eine Reihe von Betriebsmittelanforderungen für jeden Job umfassen, einschließlich der Mindestanzahl oder maximalen Anzahl an benötigten Betriebsmitteln. Jeder Job kann gesondert definierte Betriebsmittel besitzen, die benötigt werden, um den Job oder die Aufgabe zu implementieren. Daher kann jeder Job oder Aufgabe eine Reihe von gemeinsamen Cluster-Betriebsmitteln 108–112 auf unterschiedlichen Niveaus nutzen. In einem Beispiel kann ein Job oder eine Aufgabe ein einziges Betriebsmittel wie einen einzigen Prozessor oder eine einzige Softwarelizenz benötigen. In einem anderen Beispiel kann ein Job oder eine Aufgabe mehrere Betriebsmittel benötigen. Eine Aufgabe kann so konfiguriert sein, dass sie entweder mit einer Mindestmenge von Speicher oder einer maximalen Menge an Speicher läuft.
-
In anderen Beispielen kann jeder Job oder Aufgabe so konfiguriert sein, dass sie mehrere Betriebsmittel, die sich über verschiedene Betriebsmittelkategorien erstrecken, benutzt. Zum Beispiel kann Aufgabe 120 1.0 CPU, 1 GB RAM, eine spezifische Softwarelizenz und eine gewisse Menge von Netzwerkbandbreite benutzen, während Aufgabe 122 keine spezifische Softwarelizenz oder Netzwerkbandbreite benötigen kann, aber gewisse I/O-Geräte, 2.0 CPU und 0,5 GB RAM. Die jobbedingte Information kann auch Einschränkungs- oder Bevorzugungsinformation umfassen, wie zu meidende oder zu bevorzugende Rechner oder Racks usw.
-
Die jobbedingte Information kann außerdem jeden anderen Typ von Zielen umfassen, die von der Applikation, die den Job versendet, vorbestimmt wurden. Diese Ziele können, zum Beispiel, Job- oder Aufgabeninitiierungsanforderungen, Ziel-Job oder Aufgabenabschlusszeit usw., umfassen. In anderen Beispielen können diese Performance-Ziele auch von einer Verwaltungsinfrastruktur oder einer anderen mit dem Cluster assoziierten Einheit festgelegt werden, wie die Clustermanagement-Infrastruktur 132, die in der 1 dargestellt wird.
-
Die Clustermanagement-Infrastruktur 132 kann mehrere Arten von Clustermanagement-Funktionen durchführen, einschließlich der Verwaltung der Cluster-Betriebsmitten und Planung, dass die Applikationsjobs oder -aufgaben auf der zugewiesenen Hardware- und Softwareplattform laufen. Die Clustermanagement-Infrastruktur 132 kann eine oder mehrere Softwareschichten umfassen, die mehrere Managementmodule oder -funktionen, die auf zentralisierten Servern oder auf verteilten Hostplattformen laufen, beinhalten.
-
Zum Beispiel kann die Management-Infrastruktur ein oder mehrere Module 134 umfassen zur Durchführung von Betriebsmittelmanagement, Jobplanung, Flussmanagement usw. Diese Managementmodule können die eingehenden Jobs und Aufgaben analysieren, um die Mindestmenge und die maximale Menge an notwendigen Betriebsmitteln für jeden Job oder Aufgabe zu ermitteln. Jobs und Aufgaben können geplant werden, wenn die notwenigen Betriebsmittel verfügbar werden. Die Managementmodule können ebenso Planungsgewichte oder Prioritätswerte anhand von vorbestimmten Richtlinien und Jobzielen ermitteln und demgemäß die Jobplanung durchführen. Die pro geplant-bleibendem Job Zielwahrscheinlichkeit kann auch von der Clustermanagement-Infrastruktur 132 ermittelt werden, anhand mehrerer Faktoren (z. B., Kotrollrichtlinien des Clusters, Priorität des Jobs/Aufgabe usw).
-
Der Risikomanager 136 kann als separates Managementmodul zusätzlich zu den anderen Clusterverwaltungsfunktionen implementiert werden, wie in 1 dargestellt wird. Alternativ kann der Risikomanager 136 als Teil eines jeden der anderen funktionellen Module, wie ein Jobplaner, ein Betriebsmittelmanager oder ein Sicherungsaufgabenmanager, implementiert werden. Der Risikomanager 136 ist für die Ermittlung der Anzahl von benötigten Sicherungsaufgaben, um die geplant-bleiben Zielwahrscheinlichkeit zu garantieren, verantwortlich.
-
Insbesondere klassifiziert der Risikomanager 136 die eingehenden Aufgaben über heterogene Jobs anhand deren jeweiligen Betriebsmittelanforderungen. Die Klassifikation der Aufgaben kann so durchgeführt werden, dass die Aufgaben mit ähnlichen Betriebsmittelanforderungen in die gleiche Klasse gruppiert werden. Der Risikomanager kann den vorbestimmten Ähnlichkeitsgrad von den Clustermanagement-Richtlinien erhalten. In weiteren Ausführungen kann der Risikomanager oder die Clustermanagement-Infrastruktur (z. B., in dem Risikomanager) so konfiguriert werden, dass sie den Ähnlichkeitsgrad anhand vorheriger Performance des Systems dynamisch anpassen und verbessern können.
-
Dann schätzt der Risikomanager 136 die Descheduling-Wahrscheinlichkeiten der Aufgaben in jeder Klasse anhand von einer Vielzahl vorbestimmter Annahmen und vorgegebenen Fehlerwahrscheinlichkeiten der Netzwerkelemente ab, die an den Aufgabenausführungen beteiligt sind. Die vorgegebenen Fehlerwahrscheinlichkeiten können Fehlerwahrscheinlichkeiten von Rechnern, Racks, Schaltern oder jedem anderen Typ von Computer-Vorrichtungen umfassen. Diese Fehlerwahrscheinlichkeiten können abgeschätzt werden durch und erhalten werden von anderen Clustermanagement-Einheiten. Alternativ kann die Abschätzung dieser Fehlerwahrscheinlichkeiten von dem Risikomanager 136 durchgeführt werden.
-
Anhand der abgeschätzten Descheduling-Wahrscheinlichkeiten und der geplant-bleiben Zielwahrscheinlichkeit, die mit den Aufgaben in der Klasse assoziiert ist, ermittelt der Risikomanager 136 wie viele Sicherungsaufgaben von einer bestimmten Klasse benötigt werden, um den darin vorhandenen Aufgaben die geplant-bleiben Zielwahrscheinlichkeiten zu garantieren. Der Risikomanager kann dann die Sicherungsaufgaben für jede Klasse demgemäß erzeugen. Alternativ kann der Risikomanager die ermittelte Anzahl von Sicherungsaufgaben an andere Clustermanagement-Einheiten weitergeben (z. B. an einen Sicherungsaufgabenmanager, nicht gezeigt), um für jede Gruppe erzeugte Sicherungsaufgaben zu haben.
-
Eine Sicherungsaufgabe kann durch eine Sammlung von Informationen wie z. B. der Aufgabenname, die Aufgaben, die gesichert werden müssen, der Ort, an dem die Sicherungsaufgaben gespeichert werden, die Betriebsmittelanforderungen und Betriebsmittelorte in dem Cluster und Sicherungsoptionen für die bestimmte Sicherungsaufgabe definiert werden. In System 100 wird vom Risikomanager 136 eine Anzahl von identischen Sicherungsaufgaben 138 für jede Klasse erzeugt. Jede Sicherungsaufgabe 138 ist in der Lage jede Aufgabe einer bestimmten Klasse zu ersetzen. Als solche, ist in einer bestimmten Klasse jede Sicherungsaufgabe 138 mit einer Reihe von Clusterbetriebsmitteln verknüpft, die ausreichend sind, um jede geplante Aufgabe der Klasse zu tragen.
-
In einem Beispiel von System 100 können die geplant-bleiben Zielwahrscheinlichkeiten vom Risikomanager 136 als Teil der Job-/Aufgabenziele empfangen werden, einschließlich der jobbedingten Information 126, 128 und/oder 130. In einem anderen Beispiel kann die geplant-bleiben Zielwahrscheinlichkeit von einem Betriebsmittelmanager oder einem Jobplaner, dem Risikomanager oder von anderen Managementmodulen in der Clustermanagement-Infrastruktur ermittelt werden.
-
Die Betriebsmittelanforderungen können von jedem eingehenden Job/Aufgabe bereitgestellt werden oder vom Risikomanager ermittelt und überwacht werden. Zum Beispiel kann der Risikomanager 136 ein Job-/Aufgabenanalysierungsmodul besitzen, welches die minimalen und maximalen Betriebsmittel anhand der Jobziele und jeglicher relevanten Richtlinien des Clusters ermittelt, die benötigt werden, um einen Job/Aufgabe zu initiieren oder auszuführen.
-
Der Risikomanager 136 kann auch Job-/Augabenüberwachungsfunktionen durchführen, um die Job-/Aufgabenveränderungen und Ausführungsstatus zu überwachen. Der Risikomanager 136 kann auch den Status von Rechnern, Racks oder verschiedenen anderen Computervorrichtungen in dem Cluster überwachen. Alternativ kann der Risikomanager 136 den Job-/Aufgabenausführungsstatus, Rechner- oder Rackstatus oder andere Clusterstatusinformationen von anderen Clustermanagement-Modulen wie einem Betriebsmittelmanager oder einem Jobplaner empfangen. Anhand der überwachten Information kann der Risikomanager 136 die Sicherungsaufgaben in jeder Klasse anpassen oder optimieren durch das Hinzufügen von neuen Sicherungsaufgaben, Löschen oder Verändern von existierenden Sicherungen.
-
2 zeigt ein Systemblockdiagramm 200 gemäß den Aspekten der Erfindung. Wie veranschaulicht kann der Risikomanager 202 (äquivalent zum Risikomanager 136 in 1) auf einem Knoten in dem Cluster 226 liegen. Der Risikomanager 202 kann verschiedene Informationen vom Cluster 226 erhalten und demgemäß Risikomanagementinformation erzeugen. Der Risikomanager 202 kann auch eine Vielzahl an Computer umfassen, die Informationen mit unterschiedlichen Knoten eines Netzwerks austauschen, und zwar zum Zweck des Empfangs, der Bearbeitung, und Übertragung von Daten an andere Rechner oder Bedienungsterminals.
-
Wie gezeigt in 2, kann der Risikomanager 202 ein Computer sein (z. B. ein Server), der einen Prozessor 204, einen Speicher 206 und andere Komponenten enthält, die üblicherweise in einem Mehrzweck-Computer vorhanden sind. Der Prozessor 204 kann jeder herkömmliche Prozessor sein, wie beispielsweise Prozessoren von Intel Corporation oder Advanced Micro Devices. Alternativ kann der Prozessor ein engagiertes Gerät sein, wie beispielsweise ein ASIC oder vielleicht ein ARM Prozessor.
-
Der Speicher 206 enthält Informationen, die durch den Prozessor 204 zugänglich sind, einschließlich Anweisungen 208, die vom Prozessor 204 ausgeführt oder anderweitig benutzt werden können. Er beinhaltet zudem Daten 218, die der Prozessor abrufen, bearbeiten oder speichern kann. Der Speicher kann jeglicher Art sein, solange er in der Lage ist, die vom Prozessor zugänglichen Informationen zu speichern. Hierzu gehören unter anderem computerlesbare Datenträger, oder sonstige Medien, die Daten speichern, die mithilfe eines elektronischen Geräts gelesen werden können. Hierzu gehören unter anderem Festplatten, Speicherkarten, ROM, RAM, DVD, oder sonstige optische Platten, sowie auch sonstige beschreibbare Speicher und Festwertspeicher. Die Systeme und Verfahren können unterschiedliche Kombinationen der vorstehend Genannten beinhalten, wobei unterschiedliche Abschnitte der Anweisungen und Daten auf unterschiedlichen Datenträgerarten gespeichert werden.
-
Anweisungen 208 können jede Art von Anweisungen sein, die vom Prozessor direkt (wie beispielsweise Maschinenbinärcode) oder indirekt (wie beispielsweise Skripte von jeglicher Art von Programmiersprache) ausgeführt werden können. Die Anweisungen können beispielsweise in Form von Computercode auf einem computerlesbaren Datenträger gespeichert werden. Insoweit können die Begriffe „Anweisungen” und „Programme” hierin austauschbar verwendet werden. Die Anweisungen können im Objektcodeformat zur direkten Verarbeitung durch den Prozessor oder in jeder anderen Computersprache einschließlich Scripts und Sammlungen von unabhängigen Sourcecodemodulen gespeichert werden, die auf Anfrage interpretiert oder im Voraus erstellt werden können.
-
Darüberhinaus können Anweisungsverfahren oder -routinen mehrere Programme oder Funktionen gemäß den Aspekten der Erfindung umfassen. Zum Beispiel können die Anweisungen 210 so ausgeführt werden, dass sie von den eingehenden Jobs/Aufgaben in Cluster 226 geplant-bleiben Wahrscheinlichkeiten 230 und Job- oder Aufgabenbetriebsmittelanforderungen 232 empfangen. Anhand der empfangenen Informationen, können die Anweisungen 210 so ausgeführt werden, dass sie Job-/Aufgabenähnlichkeitsabschätzung und Aufgabenklassifikationen durchzuführen.
-
Die Anweisungen können auch Risikoabschätzungsanweisungen 212, um Funktionen wie beispielsweise Descheduling-Wahrscheinlichkeitsberechnungen, und Sicherungsaufgabenerzeugungs/-Optimierungsanweisungen 214 umfassen, wie beispielsweise das Löschen/Bearbeiten der existierenden Sicherungsaufgaben in jeder Klasse, um die Gültigkeit der Sicherungsaufgaben zu gewährleisten und um zu gewährleisten, dass die geplant-bleiben Zielwahrscheinlichkeiten der Aufgaben in jeder bestimmten Klasse garantiert sind.
-
Clusterstatus-Überwachungsanweisungen 216 können so ausgeführt werden, dass sie die Clusterstatusinformationen 228 beobachtet und verarbeitet, um die aktualisierten Betriebsmittelanforderungen der Aufgaben in jeder Klasse anhand von Clusterstatusinformationen zu ermitteln.
-
Die Anweisungen 208 können auch so konfiguriert werden, dass sie die Verteilung der Risikomanagementinformation 234, welche Sicherungsaufgaben umfasst, an andere Clustermanagement-Einheiten durchführen, um Funktionen wie Jobplanung, Flussmanagement oder Betriebsmittelmanagement zu vereinfachen. Die Anweisungen 208 können außerdem Anweisungen zur Abschätzung der Fehlerwahrscheinlichkeiten von Netzwerkelementen in Cluster 226 umfassen, um die Descheduling-Risikoabschätzung zu vereinfachen.
-
Die Daten 218 können vom Prozessor 204 gemäß den Anweisungen 208 abgerufen, gespeichert oder bearbeitet werden. Obwohl das System und das Verfahren beispielsweise nicht von einer bestimmten Datenstruktur begrenzt sind, können die Daten in Computerregistern in einer relationalen Datenbank als eine Tabelle gespeichert werden, die über eine Vielzahl an unterschiedlichen Feldern und Datensätzen, XML Dokumenten oder anderen Formaten verfügt.
-
Wie veranschaulicht, können die Daten 218 Aufgabenklassendaten 220 umfassen, die gemäß den Aufgabenklassifikationsanweisungen und den Sicherungsaufgabenerzeugungs/-optimierungsanweisungen erzeugt wurden. Die Aufgabenklassendaten 220 beschreiben die Eigenschaften jeder Klasse und können Informationen wie beispielsweise Betriebsmittelanforderungen der Aufgaben in der Klasse, so wie die geplant-bleiben Zielwahrscheinlichkeiten jeder Aufgabe umfassen. Außerdem speichern die Klassendaten auch Informationen der Sicherungsaufgaben, die vom Risikomanager für jede Klasse erzeugt wurden.
-
Die Daten 222 speichern Clusterstatusinformationen, die vom Risikomanager benutzt werden können, die Deschedulingwahrscheinlichkeit innerhalb der gewünschten Grenze zu halten. Die Statusinformationen können, zum Beispiel, Jobausführungsstatus und die aktualisierten Betriebsmittelanforderungen, fehlerhafte Rechner/Racks, Ausfälle von mehreren Cluster-Elementen und andere vom Risikomanager überwachte und aufgenommene Informationen umfassen.
-
Die Daten 224 speichern mehrere Typen von empirischen oder abgeschätzen Fehlerwahrscheinlichkeiten für die Nutzung durch die Risikoabschätzung und Sicherungsaufgabenerzeugungsanweisungen. Diese können, zum Beispiel, Fehlerwahrscheinlichkeiten von Netzwerkelementen wie Schaltern, Rechnern oder Racks umfassen oder Job-/Aufgabenfehlerwahrscheinlichkeiten auf einem oder mehreren oder Kombinationen dieser Netzwerkelemente.
-
Die oben genannten Daten können sich in dem Risikomanager 202 aufhalten, wie in 2 gezeigt, oder können auf verteilten Datenbanken in dem mit dem Risikomanager assoziierten Cluster gespeichert werden. Der Prozessor 204 kann die Anweisungen 208 ausführen, um auf diese Datenbanken zuzugreifen und Daten von ihnen abzurufen.
-
Obwohl 2 den Prozessor und den Speicher als im selben Block funktionell veranschaulicht, können der Prozessor und der Speicher eigentlich mehrere Prozessoren und Speicher umfassen, die im gleichen physischen Gehäuse untergebracht sein können oder nicht. Der Speicher 206 kann beispielsweise eine oder mehrere Festplatten oder ein anderes Speichermedium sein, das sich in einer Serverfarm eines Datenzentrums befindet. So können beispielsweise einige der Anweisungen und Daten auf einem herausnehmbaren schreibgeschützten Speicher und andere in einem schreibgeschützten Computerchip gespeichert sein. Einige oder alle der Anweisungen und Daten können an einem Standort gespeichert werden, der physisch vom Prozessor entfernt ist, zu dem der Prozessor aber trotzdem Zugang hat. Desgleichen kann der Prozessor eine Reihe von Prozessoren umfassen, die parallel betrieben werden können oder nicht. Demgemäß werden Bezugnahmen auf einen Prozessor, Computer oder Speicher als Bezugnahmen auf eine Sammlung von Prozessoren, Computer oder Speicher verstanden, die parallel betrieben werden können oder nicht.
-
Der Risikomanager 202 kann an einem Knoten in dem Cluster 226 sein und dazu fähig sein, direkt oder indirekt mit anderen Knoten in dem Cluster zu kommunizieren. Zum Beispiel, anstatt der Überwachung der Clusterinformation oder der Abschätzung der Betriebsmittelanforderungen oder der Zielwahrscheinlichkeiten selbst, kann der Risikomanager die Clusterinformation von anderen Clustermanagement-Modulen, die sich in anderen Knoten in Cluster 226 befinden, erhalten. In diesem Fall kann der Risikomanager an einem von vielen Knoten, die sich in der Clustermanagement-Infrastruktur 132, veranschaulicht in 1, befinden, sein.
-
Obwohl gewisse Vorteile erzielt werden, wenn Informationen wie oben angegeben übertragen oder empfangen werden, sind andere Aspekte des Systems und Verfahrens nicht auf eine besondere Art und Weise der Informationsübertragung eingeschränkt. Zum Beispiel können die Informationen in einigen Aspekten über ein konkretes computerlesbares Medium wie beispielweise eine Platte, Kassette, CD-ROM oder Festspeicher wie beispielsweise ein USB-Stick gesendet werden. In anderen Aspekten können die Informationen in einem nicht-elektronischen Format übertragen und manuell in das System eingegeben werden. Und obwohl manche Funktionen auf einer Vielzahl an Rechnern oder Servern ausgeführt werden, können verschiedene Aspekte der Erfindung mittels eines einzelnen Computers mit einem einzelnen Prozessor implementiert werden.
-
3 veranschaulicht ein Flussdiagramm 300 gemäß den Aspekten der Erfindung, wobei ein Risikomanagementsystem in einem Computer-Cluster Sicherungsaufgaben für eine Vielzahl an geplanten Aufgaben erzeugt, anhand deren Zielwahrscheinlichkeiten geplant zu bleiben, abgeschätzte Descheduling-Wahrscheinlichkeiten und Betriebsmittelanforderungen.
-
Wie gezeigt in 3, startet das Verfahren vorzugsweise in Block 302, mit dem Teilen der geplanten Aufgaben in Klassen anhand der Betriebsmittelanforderungen von jeder Aufgabe durch das Risikomanagementsystem. Die Aufgaben in jeder Klasse können von heterogenen Jobs kommen, haben aber identische oder ähnliche Betriebsmittelanforderungen. Die Aufgabenklassifikation kann auch anhand von zusätzlichen Kriterien durchgeführt werden, wie beispielsweise bevorzugte oder zu meidende Rechner, Racks oder andere Netzwerkcomputereinheiten.
-
Wie in den jeweiligen Blöcken 304 und 306 gezeigt, führt das System dann einen iterativen Prozess durch zur Erzeugung der Sicherungsaufgaben und Ermittlung, ob die exisitierenden Sicherungsaufgaben die Zielwahrscheinlichkeit geplant zu bleiben garantieren können. In Block 304 kann die Anzahl von Sicherungsaufgaben mit jeder Iteration um 1 erhöht werden. Block 306 kann ausgeführt werden, indem die Descheduling-Wahrscheinlichkeit der Aufgaben abgeschätzt wird und die geschätzte Descheduling-Wahrscheinlichkeit mit der geplant-bleiben Zielwahrscheinlichkeit verglichen wird. Falls die Descheduling-Wahrscheinlichkeit höher oder gleich den Zielwahrscheinlichkeiten ist, kehrt der Prozess zurück zu Block 304 und erzeugt mehr Sicherungsaufgaben. Falls die Descheduling-Wahrscheinlichkeit höher als die Zielwahrscheinlichkeiten ist, werden keine Sicherungsaufgaben mehr erzeugt und der Prozess fährt mit Block 308 fort.
-
In einem Szenario startet das System mit keinen Klassen und erzeugt neue Klassen für alle geplanten Aufgaben. Anstatt neue Klassen zu erzeugen kann das Risikomanagementsystem bei später geplanten Aufgaben diese Aufgaben, anhand der Betriebsmittelanforderungen der Aufgaben und der Eigenschaften der existierenden Klassen, geeignetsten Klassen zuordnen. Das System kann die existierende Klasse auch bearbeiten, um die neuen Aufgaben aufzunehmen.
-
In Block 308 führt das Risikomanagementsystem zusätzliche Optimierung der Sicherungsaufgaben durch. Die Optimierung kann vom Risikomanagementsystem durchgeführt werden durch Überwachen oder Empfangen von Mitteilungen von anderen Clustermanagement-Einheiten über die Veränderungen an den Aufgaben, sowie an dem Cluster. Diese Veränderungen können Jobs/Aufgaben umfassen, die den Cluster beenden, verändern oder verlassen. Die Veränderungen können auch den Ausfall von Rechnern, Überlassung eines Netzwerkknotens, Zusammenbruch eines Computerprozesses, das Hinzufügen oder Entfernen von Netzwerkelementen usw. umfassen.
-
Anhand der überwachten Informationen ermittelt das System, ob die existierenden Sicherungsaufgaben in jeder Klasse noch die Anforderungen der Aufgaben in der Klasse erfüllen. Dies kann periodisch durchgeführt werden, nach einer Ansammlung von veränderten Ereignissen oder vielleicht durch ein veränderndes Ereignis ausgelöst werden wie beispielsweise ein Job, der eine Klasse verlässt. Wenn die Sicherungsaufgaben in einer Klasse die Anforderungen einer bestimmten geplanten Aufgabe in der Klasse nicht erfüllen, kann das System festlegen, dass die geplante Aufgabe nicht gesichert ist und Bearbeitungen an den existierenden Sicherungsaufgaben vornehmen oder neue Sicherungsaufgaben zu der Klasse hinzufügen.
-
In einem Beispiel kann das System eine Sicherungsaufgabe, die noch gültig ist, aber aufgrund ihrer Vollendung oder des Verlassens des Clusters (z. B. zur Benutzerapplikation mit den vollendeten Ergebnissen zurückkehren) unnötig geworden ist, entfernen. In einem anderen Beispiel kann das System einige extra Sicherungsaufgaben hinterlassen, um die Wahrscheinlichkeit des nochmaligen Wachsens der Klasse in der nächsten Runde der Klassifikation oder Optimierung der Aufgaben zu vermeiden. Auf diese Weise wird die Effizienz des Systems mit einem reduzierten Anteil an Löschen oder Erzeugung erhöht. In dieser Situation kann die Anzahl oder die Kriterien von extra zu hinterlassenden Sicherungsaufgaben für jede Klasse vorbestimmt werden.
-
Im Optimierungsprozess entfernt das System vorzugsweise jegliche Sicherungsaufgaben, die ungültig geworden sind aufgrund von Ereignissen wie Rechnerfehler. Als solche können unnötige Sicherungsbetriebsmittel rechtzeitig an den Cluster zurückgegeben werden, um die Benutzungseffizienz der Clusterbetriebsmittel zu verbessern.
-
Das System führt auch verschiedene andere Optimierungen durch. Zum Beispiel können Jobs oder Aufgaben ohne erzeugte Sicherungsaufgaben geplant und ausgeführt werden. Diese Opt-out-Option kann von den Jobzielen oder -richtlinien, die mit jedem Job oder Aufgabe assoziiert sind, abhängig sein. In dieser Situation kann das System sich dazu entscheiden die Bearbeitung oder das Wachsen einer existierenden Klasse zu verweigern, wenn Unterbrechungen für die nicht gesicherten Aufgaben währen des Optimierungsprozesses groß sind. Wenn beispielsweise Löschungen für all Sicherungsaufgaben und Wiedererzeugungen benötigt werden, kann Bearbeitung oder Wachsen verweigert werden.
-
In einem weiteren Beispiel kann das System alle reduzierten Sicherungsaufgaben auf dem gleichen Rechner oder Rack oder auf der kleinstmöglichen Anzahl von Netzwerkelementen planen, um jegliche unnötige Berechnungen oder Unterbrechungen zu reduzieren, wenn die Sicherungsaufgaben einer bestimmten Klasse kleiner werden (z. B. aufgrund von vollendeten Jobs oder Verlassen des Clusters) und die Sicherungsaufgaben demgemäß reduziert werden müssen.
-
4 veranschaulicht ein Beispielszenario 400, in dem das Risikomanagementsystem gemäß einem Aspekt der vorliegenden Erfindung arbeitet. In diesem Szenario hat Job 402 10 Aufgaben, Job 404 hat 6 Aufgaben und Job 406 hat 5 Aufgaben, jeweils. Die Aufgaben in jedem Job können unterschiedliche Betriebsmittelanforderungen besitzen und die Aufgaben mit ähnlichen Betriebsmittelanforderungen werden in einer Klasse zusammengefasst. Zum Beispiel können Aufgabe 408 von Job 402, Aufgabe 412 von Job 404 und Aufgabe 418 von Job 406 ähnliche Betriebsmittelanforderungen haben und in „Aufgabenklasse 1” (422) klassifiziert werden. „Aufgabenklasse 2” (424) kann Aufgabe 410 von Job 402 und Aufgabe 414 von Job 404 umfassen. Aufgabe 416 von Job 404 kann ähnliche Betriebsmittelanforderungen wie Aufgabe 420 von Job 406 besitzen und daher werden beide Aufgaben in „Aufgabenklasse 3” (426) gruppiert.
-
Zusätzlich zu den Betriebsmittelanforderungen, kann das Risikomanagementsystem die Aufgaben auch durch Berücksichtigung anderer Kriterien klassifizieren, wie beispielsweise Planungsrichtlinien oder Bevorzugung der Rechner zur Ausführung dieses Jobs/Aufgabe. Diese Kriterien können von anderen Clustermanagement-Einheiten kommen, wie beispielsweise ein Jobplaner oder ein Betriebsmittelmanager wie in 1 veranschaulicht, oder alternativ von den jobbedingten Informationen, die von jedem Job getragen werden. Daher ist jede Klasse eine Reihe von Jobs/Aufgaben, die sich zumindest in den Betriebsmittelanforderungen und anderen Aspekten ähneln.
-
5 veranschaulicht ein weiteres Beispielszenario 500, in welchen Sicherungsaufgaben von dem Risikomanagementsystem gemäß einem Aspekt der vorliegenden Erfindung erzeugt werden. In jeder Klasse sind die Sicherungsaufgaben identisch und können jede geplante Aufgabe in dieser Klasse ersetzen. Als solche, ist jede Sicherungsaufgabe mit einer Reihe von Clusterbetriebsmitteln, die die maximalen Betriebsanforderungen der geplanten Aufgaben erfüllen können, assoziiert. Zum Beispiel, in „Aufgabenklasse 1” (522), kann Aufgabe 508 von Job 502 1 GB RAM und 1.0 CPU benötigen, Aufgabe 512 von Job 504 kann 10 MB RAM und 2.0 CPU benötigen and Aufgabe 518 von Job 506 kann 100 MB RAM und 1.5 CPU benötigen. Daher sollte jede der Sicherungsaufgaben 528 in Aufgabenklasse 1 mindestens 1 GB RAM und 2.0 CPU besitzen, um fähig zu sein entweder Aufgabe 508, Aufgabe 512 oder Aufgabe 518 zu ersetzen. Ähnlich ist Sicherungsaufgabe 530 fähig, die maximalen Betriebsmittelanforderungen der Aufgaben in „Aufgabenklasse 2” (524) aufzunehmen und kann Aufgabe 516 und Aufgabe 520 ersetzen. Sicherungsaufgabe 532 in „Aufgabenklasse 3” (526) sind auch die maximalen benötigten Betriebsmittel für alle Aufgaben in Aufgabenklasse 3 zugewiesen und kann Aufgabe 510 und Aufgabe 514 ersetzen.
-
Operationen gemäß den Aspekten der Erfindung werden jetzt detailgenau beschrieben mit Bezugnahme auf die Prozesse veranschaulicht in 6–11. Die 6–7 veranschaulichen den operativen Zusammenbruch eines detaillierten Prozesses der Teilung von Aufgaben in Klassen (Block 302 in 3). Die 8–11 veranschaulichen den operativen Zusammenbruch eines detaillierten Prozesses der Erzeugung von Sicherheitsaufgaben und der Abschätzung, ob die existierenden Sicherungsaufgaben die geplant-bleiben Zielwahrscheinlichkeiten garantieren können. Es sollte sich verstehen, dass die folgenden Operationen nicht in der nachstehend beschriebenen genauen Reihenfolge durchgeführt werden müssen. Stattdessen können unterschiedliche Operationen in unterschiedlicher Reihenfolge oder simultan durchgeführt werden.
-
6 veranschaulicht einen Aufgabenldassifizierungsprozess 600. In Block 602 teilt das System alle geplanten Aufgaben in Signaturen (vorläufige Gruppen), sodass die Aufgaben in jeder bestimmten Signatur oder vorläufigen Gruppe ähnliche Betriebsmittelanforderungen und Performanceeinschränkungen (z. B. bevorzugte/zu vermeidende Rechner/Racks usw.) oder Planungsrichtlinien haben.
-
In Block 604 ermittelt das System, ob es irgendeine existierende Klasse, der die Aufgaben zugewiesen werden können, gibt. Falls es keine gibt, geht der Prozess zu Block 606 über, um Klassen anhand der geteilten Signaturen oder Gruppen zu erzeugen. Falls es irgendeine existierende Klasse gibt, geht der Prozess zu Block 608 über, um eine passende Klasse auszuwählen und die Klasse bei Bedarf zu bearbeiten.
-
7 veranschaulicht einen Beispielprozess 700 gemäß welchem das System die Operationen in Block 608 durchführt, und zwar, Auswählen einer Klasse und bei Bedarf Bearbeiten der Klasse für jede Signatur oder jede Gruppe von Aufgaben. In Block 702, ermittelt das System einen Aufwand für jede existierende Klasse, Cs+b, um in der jeweiligen Klasse Sicherungsaufgaben für Signatur S zu erzeugen. Dann in Block 704 wählt das System die Klasse mit dem minimalsten Aufwand, min(C(s+b)).
-
In Block 706 ermittelt das System einen Aufwand Cs, um Sicherungsaufgaben für jede Signatur alleine zu erzeugen. Da größere Klassen zu größerer Betriebsmittelbenutzungseffizienz führen, kann der Ermittlung des Aufwandseine Strafe Cs eine Strafe 708 zugeführt werden, um die Erzeugung einzelner Sicherungsaufgaben zu verhindern. In Block 710 vergleicht das System den minimalen Aufwand Sicherungsaufgaben für die Signatur zu erzeugen und die existierende Klasse (min(C(s+b))) mit dem Aufwand Cs. Wenn min(C(s+b)) weniger oder gleich Cs ist, geht der Prozess zu Block 712 über, um eine neue Klasse für die Signatur alleine und neue Sicherungsaufgaben für die neue Klasse zu erzeugen. Wenn min(C(s+b)) größer als Cs ist, geht der Prozess zu Block 714 über, um die Klasse mit dem minimalen Aufwand min(C(s+b)) zu vergrößern durch Hinzufügen der Signatur S zu der Klasse und Erzeugung von extra Sicherungsaufgaben falls nötig.
-
Prozess 700 kann iterativ auch jeder erzeugten Signatur durchgeführt werden. Das System kann die Iteration in unterschiedlichen Reihenfolgen durchführen. Für ein Beispiel kann die Iteration mit der Signatur beginnen, für welche die Zahl an kompatiblen Rechnern, die von den Aufgaben in jeder Signatur benötigt wird, sie geringste oder die höchste ist. Alternativ kann die Iterationsreihenfolge auf anderen Einschränkungen, Bevorzugungen oder Richtlinien basieren, die mit den eingehenden Aufgaben assoziiert sind. In einem weiteren Beispiel kann die Iteration in einer beliebigen Reihenfolge ausgeführt werden.
-
Anstatt eine geeignete Klasse auszuwählen und die Klasse anhand der Aufwände wachsen zu lassen, um Sicherungsaufgaben zu erzeugen, kann das System anhand einer Reihe von Betriebsmittelanforderungen von allen Aufgaben in dem Cluster, eine Anzahl von benötigten Klassen und eine Reihe von Betriebsmittelanforderungen für jede Klasse ermitteln. Daher kann eine bestimmte Signatur exakt in eine Klasse passen.
-
8 veranschaulicht einen iterativen Beispielprozess 800 gemäß welchem das System die Anzahl von benötigten Sicherungsaufgaben für jede Klasse ermittelt und demgemäß Sicherungsaufgaben erzeugt. Der Prozess startet in Block 802, in dem das System die gesamte Wahrscheinlichkeit berechnet, nicht mehr als alle (b) Sicherheitsaufgaben für eine Klasse mit einer Zahl (n) von darin geplanten Aufgaben.
-
Dann in Block 804 ermittelt das System, ob diese gesamte Wahrscheinlichkeit größer ist als die geplant-bleiben Zielwahrscheinlichkeit einer jeden Aufgabe. Wenn der Vergleich zeigt, dass die gesamte Wahrscheinlichkeit die b Sicherungsaufgaben zu verlieren größer ist als die Zielwahrscheinlichkeit, geht der Prozess zu Block 808 über, in dem das Risikomanagementsystem eine Sicherungsaufgabe zu der Klasse hinzufügt. Andernfalls gab es genügend Sicherungsaufgaben in der Klasse um sicherzustellen, dass jede der n Zahl von Aufgaben geplant bleibt. Dann geht der Prozess zu Block 806 über, in dem das System aufhört Sicherungsaufgaben für die Klasse zu erzeugen.
-
9 veranschaulicht einen Beispielprozess 900, in dem das System die Operationen in Block 802 durchführt, und zwar, die Berechnung der gesamten Wahrscheinlichkeit, nicht mehr als alle b Sicherheitsaufgaben in einer bestimmten Klasse zu verlieren. Wie gezeigt, kann das System zuerst das Risiko k Aufgaben für k = 0 ... n + b zu verlieren in Block 902 ermitteln, dann diese Wahrscheinlichkeiten für k = 0 ... b in Block 904 hinzufügen.
-
10 veranschaulicht einen Beispielprozess 1000 wie die Risikoabschätzung k Aufgaben für k = 0 ... n + b zu verlieren vom System durchgeführt werden kann. Das System kann erst in Block 1002 die Wahrscheinlichkeit für jedes Rack (oder eine andere ausgewählte Einheit der verteilten Berechnungselemente in dem Cluster) ermitteln, alle Aufgaben des Racks zu verlieren Dann, in Block 1004, entfernt das System die Annahme, dass sich alle Aufgaben auf einem einzigen Rack befinden, durch die Durchführung der Faltung der pro Rack Wahrscheinlichkeiten für alle Racks, die von k Aufgaben in einem bestimmten Cluster benutzt werden.
-
Um die pro Rack Wahrscheinlichkeit alle Aufgaben zu verlieren zu berechnen, kann das System zuerst eine Reihe von vorgegebenen Annahmen benutzen und dann diese Annahmen eine nach der anderen in späteren Berechnungen entfernen. Wie veranschaulicht in dem Beispielprozess 1100 in 11, kann das System zuerst die Fehlerwahrscheinlichkeiten der Aufgaben auf dem gleichen Rack berechnen. Der Prozess kann von Block 1102 starten, in dem das System eine Wahrscheinlichkeitsdichtefunktion Pr(f = X) (1) berechnet,
dass x de-scheduled Aufgaben auf einem bestimmten Rack r mit einer Annahme, dass nicht mehr als eine Aufgabe auf einem Rechner läuft und sich alle diese Aufgaben auf dem gleichen Rack befinden, d. h. Rack r. Hier wird angenommen, dass Rack r mindestens m Rechner hat und R benutzt werden kann, um die Zahl von Rechnern, die von den sich in Rack r befindenden Aufgaben benutzt werden, zu bestimmen.
-
Pr(f = x) kann von p(r), p(m\~ r) und Rerhalten werden, wobei: p(r) = Wahrscheinlicheit, dass Rack r scheitert (2) p(m\~ r) = Wahrscheinlichkeit, dass der Rechner m scheitert, aber Rack r nicht (3)
-
Die obigen Fehlerwahrscheinlichkeiten p® und p(m\~ r) können vom Risikomanagementsystem ermittelt werden. Alternativ können diese Wahrscheinlichkeiten vorbestimmt werden und erhalten werden von einem empirischen Datenset, wie beispielsweise Daten 224 gezeigt in 2, oder von anderen Clustermanagement-Einheiten.
-
Daher können folgende Berechnungen vom System durchgeführt werden, um Pr(f = x) zu erhalten: Pr(f > R) = 0; (4) Pr(f = R) = p(r) + p(~r).PIr(f = R); (5) Pr(f = x < R) = p(~r).PIr(f = x); (6) PIr(f = x) = binomisch(x, R, p(m l~ r)) (7)
-
Als Nächstes geht der Prozess zu Block 1104 über. An dieser Stelle wird die Annahme von nicht mehr als einer Aufgabe pro Rechner entfernt durch das Teilen des Racks r in Sub-Racks, sodass innerhalb eines jeden Sub-Racks, jeder Rechner darin eine identische Anzahl an Aufgaben ausführt.
-
In Block 1106 ermittelt das System für jedes Sub-Rack die Wahrscheinlichkeit, dass i Aufgaben scheitern. In anderen Worten, das System verändert die obigen Berechnungen der Wahrscheinlichkeitsdichtefunktion PIr(f = x), um die Situation, in der jeder scheiternde Rechner i Aufgaben auf jedem Rechner stürzt, zu beurteilen. Sobald die pro Sub-Rack Wahrscheinlichkeit erhalten wird, können diskrete Faltungen in Block 1108 vorgenommen werden, um alle pro Sub-Rack Wahrscheinlichkeitsdichtefunktionen zusammenzählen zu können.
-
12–13 zeigen Beispielszenarios der obigen Prozesse in den Blöcken 1104 und 1106. 12 veranschaulicht ein Rack 1201, das sechs Rechner beherbergt: 1202, 1204, 1206, 1208, 1210 und 1212. Jeder Rechner hat eine oder mehrere geplante Aufgaben auszuführen und Rechnerbetriebsmittel zu verbrauchen. Zum Beispiel hat Rechner 1202 Aufgabe 1214, Aufgabe 1216 und Aufgabe 1218. Rechner 1204 hat Aufgabe 1220 und 1222, während sich Aufgabe 1224, 1226 und 1228 in Rechner 1206 befinden. Rechner 1208, 1210 und 1212 haben vier, drei und vier darin laufende Aufgaben jeweils.
-
13 zeigt ein Szenario 1300, in dem das Rack 1201 in drei Sub-Racks unterteilt ist: Sub-Rack 1, Sub-Rack 2 und Sub-Rack 3. Jedes Sub-Rack beherbergt vorzugsweise Rechner mit einer identischen Anzahl an darin laufenden Aufgaben. Nach der Teilung beherbergt Sub-Rack 1 den zwei-Aufgaben Rechner 1204, Sub-rack 2 beherbergt die drei-Aufgaben Rechner 1202 und 1210 und Sub-Rack 3 beherbergt die vier-Aufgaben Rechner 1206, 1208 und 1212. Als solche können mögliche Fehlerszenario mit jedem Sub-Rack nur eine ixRsub Anzahl an Aufgaben stürzen. Hier ist i die Anzahl von laufenden Aufgaben auf jedem Rechner in dem Sub-Rack und Rsub ist eine Ganze Zahl von 0 bis zur maximalen Anzahl an Rechner auf jedem Sub-Rack rsub. Insbesondere in Szenario 1300 kann Sub-Rack 1 nur 0 oder 2 Anzahlen an Aufgaben verlieren und Sub-Rack 2 kann nur 0, 3 oder 6 verlieren. Für Sub-Rack 3 ist es möglich 0, 4, 8 oder 12 Aufgaben zu verlieren. Jede dieser Wahrscheinlichkeiten folgt einer binomischen Verteilung.
-
Mit bekannter Fehlerwahrscheinlichkeit von jedem unabhängigen Recher p(ml~ r), kann die Wahrscheinlichkeitsdichtefunktion, die die Wahrscheinlichkeit des Verlustes von x = ixRsub Anzahl an Aufgaben Prsub(f = x) abbildet, (8) leicht erhalten werden durch das Finden der binomischen Verteilung PIrsub(f = x) = binomisch(x, Rsub, p(ml~ rsub)) (9) für jedes Sub-Rack rsub von Sub-Rack 1 bis 3 mit der jeweiligen Rsub Anzahl an Rechnern.
-
Wie in 13 dargestellt, für Sub-Rack 1, wobei i = 2 und Rsub = 1, berechnet das System PIrsubI(f = 0) und PIrsub2(f = 2). Für Sub-Rack 2, wobei i = 3 und Rsub = 2 PIrsub2(f = 0), PIrsub2(f = 3) und PIrsub2(f = 6) werden erhalten. Für Sub-Rack 3, wobei i = 4 und Rsub = 3, PIrsub3(f = 0), PIrsub3(f = 4), PIrsub3(f = 8) und PIrsub3(f = 12) werden berechnet.
-
Sobald die Verteilungswahrscheinlichkeitenauf einer Pro-Sub-Rack Basis gefunden werden, kann die Wahrscheinlichkeitsdichtefunktion Pr1201 (f = x) für Rack 1201 gefunden werden durch Compulterfaltungen aller binomischer Verteilungen für alle Sub-Racks 1–3. Da es nicht möglich ist eine Fraktion einer Aufgabe zu verlieren, sind die Faltungen hier diskrete Faltungen.
-
Während die vorherigen Erläuterungen bezüglich Prozess 1000 in 10 verlaufen, sobald die Pro-Rack pdfs (Wahrscheinlichkeitsdichtefunktionen) erhalten werden, wird die Annahme eines einzelnen Racks durch die Durchführung von Faltungen auf diesen pdfs entfernt, um die Pro-Rack Wahrscheinlichkeitsdichtefunktion in einem bestimmten Cluster zusammenzuzählen.
-
Neben der Wahrscheinlichkeit, dass Rack r scheitert und der Wahrscheinlichkeit, dass Rechner m scheitert, aber Rack r nicht, können jegliche andere Fehlerwahrscheinlichkeiten oder Zusammenhänge zwischen den Descheduling-Risiken der Aufgaben und den Fehlern eines bestimmten Netzwerks oder Cluster-Elements vom System benutzt werden, um die Fehlerwahrscheinlichkeit von x Aufgaben auf einem bestimmten Rack zu erhalten. In dieser Hinsicht können ähnliche Teilungen von geringeren Niveau Cluster-Elementen, die sich in einem höheren Niveau Cluster-Element aufhalten oder mit ihm verbunden sind, so durchgeführt werden, dass die höheren Niveau Cluster-Elemente in Sub-Elemente geteilt werden, wie oben erläutert mit Bezugnahme auf die Szenarien 1200 und 1300. Zum Beispiel, wenn die Fehlerwahrscheinlichkeit eines Schalters in den Berechnungen angewendet werden soll, kann ein Schalter in mehrere Sub-Schalter geteilt werden. In diesem Beispiel ist jeder jeweilige Sub-Schalter mit Racks verbunden, die eine identische Anzahl an Rechnern besitzen, und jedes Rack kann außerdem ähnlich wie in Szenarien 1200 und 1300 geteilt werden. Daher kann die Fehlerwahrscheinlichkeit eines jeden Cluster-Elements in jeder Hierarchieordnung in dem Cluster vom Risikomanagementsystem benutzt werden. Obwohl 12 und 13 eine zwei-Niveau Hierarchie veranschaulichen, die ein Rechner-Niveau und ein Rack-Niveau umfasst, können Systeme und Verfahren gemäß den Aspekten der Erfindung außerdem multi-Niveau Szenarien umfassen. Darüber hinaus sind die Cluster-Elemente nicht auf Rechner und Racks begrenzt.
-
Das System kann auch verfeinert werden, um verschiedene Fehlerwahrscheinlichkeiten für Netzwerk- oder Cluster-Elemente des gleichen Typs zu berücksichtigen. Zum Beispiel können verschiedene Rechner verschiedene Fehlerwahrscheinlichkeiten haben und verschiedene Racks oder Schalter können auch mit verschiedenen Fehlerwahrscheinlichkeiten assoziiert sein.
-
Es wird sich außerdem verstehen, dass die Datenmusterwerte, -typen und -konfigurationen, die beschrieben und in den Figuren gezeigt wurden nur zum Zwecke der Veranschaulischung dienen. In dieser Hinsicht können Systeme und Verfahren gemäß den Aspekten der Erfindung mehrere Arten von Computer-Clustern, Netzwerken, Übertragungsgeräten, Bedienungsterminals, Servern, Datenwerten, Datentypen und Konfigurationen umfassen. Die Daten können zu verschiedenen Zeiten (z. B. über verschiedene Server oder Datenbanken) und von verschiedenen Einheiten (z. B. können manche Werte vorbestimmt oder von verschiedenen Quellen bereitgestellt werden) erhalten und empfangen werden.
-
Alle diese und weitere Variationen und Kombinationen der vorstehend erörterten Merkmale können zur Anwendung kommen, ohne sich von der Erfindung laut Definition in den Ansprüchen zu entfernen; die vorstehende Beschreibung der Ausführungsform dient zur Veranschaulichung und nicht zur Einschränkung der von den Ansprüchen definierten Erfindung. Es versteht sich von selbst, dass das Bereitstellen von Beispielen der Erfindung (sowie auch Klauseln, die mit Begriffen, wie „wie etwa”, „z. B.”, „einschließlich” und dergleichen, formuliert sind) nicht als Begrenzung der Erfindung auf diese spezifischen Beispiele interpretiert werden sollte, da die Beispiele eher dazu dienen, einige der vielen möglichen Aspekte zu illustrieren.
-
Sofern nicht ausdrücklich das Gegenteil angegeben ist, kann jedes Merkmal in einer bestimmten Ausführungsform, Alternative oder einem bestimmten Beispiel in einer beliebigen anderen Ausführungsform, Alternative oder einem anderen Beispiel verwendet werden. Zum Beispiel kann jedes Verfahren zur Ermittlung der pro Job geplant-bleiben Zielwahrscheinlichkeit in jeder anderen Konfiguration dafür angewendet werden. Jede Art von Überwachung oder Erhalten des Job-/Aufgabenausführungsstatus und Clusterstatus kann in jeder Konfiguration dafür angewendet werden. Das Risikomanagementsystem kann mit mehreren Clustermanagement-Einheiten in dem Cluster mit jeder der Konfigurationen dafür kommunizieren. Verschiedene Sicherungsaufgaben-Optimierungsverfahren oder Iterationsreihenfolge, um Aufgabensignaturen zu erzeugen können angewendet werden.
-
INDUSTRIELLE ANWENDBARKEIT
-
Die vorliegende Erfindung genießt weites industrielles Anwendungsvermögen einschließlich, aber nicht darauf begrenzt, Planung, Datenverarbeitung und Management von Jobs oder Aufgaben in einer Computer-Cluster Architektur.