DE112019000421B4 - Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster - Google Patents

Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster Download PDF

Info

Publication number
DE112019000421B4
DE112019000421B4 DE112019000421.2T DE112019000421T DE112019000421B4 DE 112019000421 B4 DE112019000421 B4 DE 112019000421B4 DE 112019000421 T DE112019000421 T DE 112019000421T DE 112019000421 B4 DE112019000421 B4 DE 112019000421B4
Authority
DE
Germany
Prior art keywords
data
cluster
hosts
workload
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112019000421.2T
Other languages
English (en)
Other versions
DE112019000421T5 (de
Inventor
Lior Aronovich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019000421T5 publication Critical patent/DE112019000421T5/de
Application granted granted Critical
Publication of DE112019000421B4 publication Critical patent/DE112019000421B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

Verfahren (900) zur Arbeitslastverwaltung mit Datenzugriffserkennung in einem Datenverarbeitungscluster durch einen Prozessor (64, 70), das aufweist:Konfigurieren (904) eines Arbeitslastmanagers (502) innerhalb des Datenverarbeitungsclusters dergestalt, dass er ein Datenanforderungsauswertungsmodul (506) und ein Terminierungsmodul (510) enthält; undals Reaktion (906) auf das Empfangen einer Eingabe-Arbeitslast zur Terminierung durch den Arbeitslastmanager (502):Abrufen, durch das Datenanforderungsauswertungsmodul (506), eines Satzes von Eingaben (504) aus einem Speichersystem (20), wobei jede der Eingaben (504) enthält:eine Angabe, ob die Eingabe-Arbeitslast bei der Eingabe/Ausgabe (E/A) von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist,Datenlokalitätsproportionen für einen Satz von Dateien, der zu der Eingabe-Arbeitslast gehört, wobei die Datenlokalitätsproportionen einen Anteil an Gesamtdaten des Satzes von Dateien angibt, der jeweils auf einem jeden einer Vielzahl von Cluster-Hosts (22) des Datenverarbeitungsclusters gespeichert ist, undfür jedes Paar der Vielzahl von Cluser-Hosts (22) in dem Datenverarbeitungscluster angegebene Datenzugriffskosten, wobei die Datenzugriffskosten für einen jeden der Vielzahl von Cluster-Hosts (22) Kosten für den Zugriff auf Daten angibt, die auf einem beliebigen anderen der Vielzahl von Cluster-Hosts (22) in dem Datenverarbeitungscluster gespeichert sind, wobei die Datenzugriffskosten auf der Grundlage von Netzwerklatenzzeiten zwischen der Vielzahl von Cluster-Hosts (22) und Speichereinheit-Zugriffslatenzzeiten innerhalb eines jeden der Vielzahl von Cluster-Hosts (22) berechnet werden;Erzeugen (908), durch das Datenanforderungsauswertungsmodul (506), einer Liste (508) der Vielzahl von Cluster-Hosts (22), die zur Durchführung der Eingabe-Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind;Bereitstellen (910) der nach der Rangfolge geordneten Liste (508) von Cluster-Hosts (22) für das Terminierungsmodul (510); undErzeugen (912), durch das Terminierungsmodul (510), einer Terminierung (512) der Eingabe-Arbeitslast an bestimmte Hosts (22), die in der nach der Rangfolge geordneten Liste (508) von Cluster-Hosts (22) angegeben sind, innerhalb des Datenverarbeitungsclusters, wobei die erzeugte Terminierung (512) mit dem Satz von Eingaben (504) optimiert ist.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft im Allgemeinen Datenverarbeitungssysteme und insbesondere verschiedene Ausführungsformen zur Verwaltung und Terminierung von Arbeitslasten innerhalb von und/oder zwischen verteilten Datenverarbeitungskomponenten.
  • HINTERGRUND
  • In der heutigen Gesellschaft sind Computersysteme etwas ganz Alltägliches. Computersysteme sind mitunter am Arbeitsplatz, zuhause oder in der Schule anzutreffen. Da man immer mehr auf Computersysteme angewiesen ist, sie komfortabler und mobiler werden, ist das Internet exponentiell gewachsen. Nunmehr sind Einzelpersonen und Unternehmen mehr als je zuvor auf verteilte Systeme (die gemeinhin als „die Cloud“ bezeichnet werden) angewiesen, um Datenverarbeitungsdienste bereitzustellen sowie Informationen und Daten zu speichern. Da große Fortschritte bei der technologischen Entwicklung in Bezug auf Datenverarbeitungseinheiten gemacht wurden, besteht eine stetig wachsende Forderung nach Wachstum und Entwicklung innerhalb der Backend-Unterstützungssysteme, die Datenverarbeitungsdienste bereitstellen und Dateninhalt speichern.
  • Die US 2017 / 0 185 452 A1 offenbart ein Verfahren und eine Vorrichtung zur Datenverarbeitung. Die Vorrichtung umfasst: eine Aufteilungseinheit, die so konfiguriert ist, dass sie auf der Grundlage einer vorbestimmten Richtlinie eine Rechenarbeitslast für Daten in einem Speicherknoten in mindestens eine Unterarbeitslast aufteilt; und eine Abfertigungseinheit, die so konfiguriert ist, dass sie die mindestens eine Unterarbeitslast an den Speicherknoten und/oder einen Rechenknoten sendet, der physisch von dem Speicherknoten getrennt ist, um die mindestens eine Unterarbeitslast mit Rechenressourcen in dem Speicherknoten und/oder dem Rechenknoten auszuführen.
  • Die WO 2017 / 105 376 A1 offenbart Verfahren, Systeme und computerlesbare Medien zum Optimieren einer Systemkonfiguration. In einigen Beispielen umfasst ein Verfahren ein Bestimmen, ob eine Systemkonfiguration zum Ausführen einer Arbeitslast unter Verwendung eines verteilten Computersystems optimierbar ist, und als Reaktion auf das Bestimmen, dass die Systemkonfiguration optimierbar ist, ein Modifizieren der Systemkonfiguration, so dass sich mindestens eine Speicherressource zum Speichern von Arbeitslastdaten an einem Serverknoten befindet, der die Arbeitslast in dem verteilten Computersystem ausführt.
  • Die US 2012 / 0 246 158 A1 offenbart ein Co-Range-Partitionierungsschema, das mehrere statische oder dynamisch erzeugte Datensätze unter Verwendung eines gemeinsamen Satzes automatisch berechneter Bereichsschlüssel in ausgewogene Partitionen unterteilt. Ein Co-Range-Partitionsmanager minimiert die Anzahl der Datenpartitionierungsoperationen für einen Multi-Source-Operator (z. B. Join), indem er eine Co-Range-Partition auf ein Paar seiner Vorgängerknoten so früh wie möglich im Ausführungsplangraphen anwendet. Dadurch wird die Menge der zu übertragenden Daten reduziert. Durch die Verwendung der automatischen Bereichs- und Co-Range-Partitionierung für Datenpartitionierungsaufgaben wird eine Programmier-API ermöglicht, die die explizite Datenpartitionierung von den Benutzern abstrahiert, um ein sequentielles Programmiermodell für die datenparallele Programmierung in einem Computer-Cluster bereitzustellen.
  • Die US 2012 / 0 185 867 A1 offenbart ein Verfahren zur Optimierung des Einsatzes einer Arbeitslast auf einem verteilten Verarbeitungssystem, wobei das verteilte Verarbeitungssystem eine Vielzahl von Knoten aufweist, wobei jeder Knoten eine Vielzahl von Attributen aufweist. Das Verfahren umfasst: Erstellen eines Profils der Attribute der Knoten des verteilten Verarbeitungssystems während Operationen auf dem verteilten Verarbeitungssystem; Auswählen einer Arbeitslast zum Einsatz auf einer Teilmenge der Knoten des verteilten Verarbeitungssystems; Bestimmen spezifischer Ressourcenanforderungen für die einzusetzende Arbeitslast; Bestimmen einer erforderlichen Geometrie der Knoten zum Ausführen der Arbeitslast; Auswählen eines Satzes von Knoten mit Attributen, die die spezifischen Ressourcenanforderungen erfüllen und so angeordnet sind, dass sie die erforderliche Geometrie erfüllen; Einsetzen der Arbeitslast auf den ausgewählten Knoten.
  • Die US 2013 / 0 290 957 A1 offenbart ein Verfahren, das sich auf eine gemeinsam genutzte Gruppe von Ressourcen und eine effiziente Verarbeitung von einem oder mehreren Aufträgen in der gemeinsam genutzten Gruppe von Ressourcen bezieht. In der gemeinsam genutzten Ressourcengruppe werden Werkzeuge bereitgestellt, um eine Topologie der gemeinsam genutzten Ressourcen, einschließlich physischer und virtueller Maschinen sowie Speichergeräte, zu bewerten und zu organisieren. Die Topologie wird an einem bekannten Ort gespeichert und für die effiziente Zuweisung von einem oder mehreren Aufträgen entsprechend der Hierarchie verwendet.
  • KURZDARSTELLUNG
  • Die der Erfindung zugrundeliegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • Ein Datenverarbeitungscluster, kurz Cluster genannt, ist eine Art von Computersystem, das Datenverarbeitungsjobs mit Hilfe von mehreren zusammenarbeitenden Computern (die auch als Datenverarbeitungsressourcen, wie beispielsweise Software- und/oder Hardwareressourcen, bezeichnet werden), die miteinander verbunden sind, ausführt. Diese Datenverarbeitungsressourcen, die sich in derselben Verwaltungsdomäne befinden, verfügen über eine einheitliche Verwaltungsrichtlinie und stellen Benutzern als Ganzes Dienste bereit. Ein einzelner Computer in einem Clustersystem wird gewöhnlich als Host oder als Datenverarbeitungsknoten bezeichnet.
  • Das Clustersystem hat viele Vorteile. Zum Beispiel kann das Clustersystem, wenn es in einer Weise arbeitet, die einen Lastausgleich durchführt, eine höhere Effizienz dadurch erreichen, dass dieselbe Arbeit von mehreren Computern verrichtet wird. Das Clustersystem kann auch in einer Weise mit hoher Verfügbarkeit arbeiten. Sobald ein Server, der die Funktion eines Master-Servers einer Gruppe von Servern hat, ausfällt, kann ein anderer Server der Gruppe von Servern die Rolle des Master-Servers übernehmen und Dienste ersatzweise für den Master-Server bereitstellen und dabei eine hohe Fehlertoleranz aufweisen.
  • Bei der Terminierung eines Jobs werden dem zu verarbeitenden Job entsprechende Datenverarbeitungsressourcen zugeordnet. Dieser Prozess wird als Jobterminierung in einer Clusterumgebung bezeichnet. Bei der Jobterminierung handelt es sich eigentlich um einen Prozess, um entsprechenden Ressourcen Jobs zur Ausführung auf der Grundlage von Eigenschaften der Jobs und Ressourcen gemäß Terminierungsrichtlinien zuzuordnen.
  • In einer Clusterdatenverarbeitung hängt die Effizienz dieser Jobs (d.h. Arbeitslasten), die auf Daten zugreifen und Daten verarbeiten, in hohem Maße von der Entfernung, im Hinblick auf Datenzugriff und Netzwerklatenzzeiten, zwischen den Cluster-Hosts, die die Arbeitslasten verarbeiten, und den Cluster-Hosts, die die Daten speichern, auf die von den Arbeitslasten zugegriffen wird und die von den Arbeitslasten verarbeitet werden, ab. Je geringer die Entfernung (in Bezug auf geringeren Datenzugriff und geringere Netzwerklatenzzeiten) für den Zugriff auf Daten ist, desto höher ist die Effizienz der Arbeitslasten.
  • Das Ziel der vorliegenden Offenbarung besteht darin, die Latenzzeit des Zugriffs auf Daten durch Arbeitslasten zu verringern, indem Arbeitslasten nah an ihren Daten platziert werden. Genauer gesagt, die Herausforderung, mit der sich die aktuelle Offenbarung befasst, besteht darin, festzustellen, wie arbeitslastbezogenes Wissen (das üblicherweise aus Arbeitslastverwaltungssystemen stammt) mit datenspeicherbezogenem Wissen (das üblicherweise aus Speichersystemen stammt) effizient und automatisch verknüpft werden kann, um Arbeitslasten nah an ihren zugrunde liegenden Daten zu platzieren und somit die Effizienz der Arbeitslasten und des Datenverarbeitungssystems als Ganzes zu erhöhen.
  • Folglich, und um den Stand der Technik zu verbessern, werden hierin verschiedene Ausführungsformen zur Arbeitslastverwaltung mit Datenzugriffserkennung durch einen Prozessor in einem Datenverarbeitungscluster offenbart. In einer einzelnen Ausführungsform weist ein Verfahren lediglich beispielhalber das Konfigurieren eines Arbeitslastmanagers innerhalb des Datenverarbeitungsclusters dergestalt auf, dass er ein Datenanforderungsauswertungsmodul und ein Terminierungsmodul enthält; und als Reaktion auf das Empfangen einer Eingabe-Arbeitslast zur Terminierung durch den Arbeitslastmanager: (a) das Abrufen, durch das Datenanforderungsauswertungsmodul, eines Satzes von Eingaben aus einem Speichersystem, wobei jede der Eingaben enthält: (i) eine Angabe, ob die Eingabe-Arbeitslast bei der Eingabe/Ausgabe (E/A) von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist, und/oder (ii) Datenlokalitätsproportionen für einen Satz von Dateien, der zu der Eingabe-Arbeitslast gehört, und/oder (iii) für jedes Paar von Hosts in dem Datenverarbeitungscluster angegebene Datenzugriffskosten; (b) Erzeugen, durch das Datenanforderungsauswertungsmodul, einer Liste von Cluster-Hosts, die zur Durchführung der Eingabe-Arbeitslast gemäß Datenzugriffsüberlegungen nach einer Rangfolge geordnet sind; c) Bereitstellen der nach einer Rangfolge geordneten Liste von Cluster-Hosts für das Terminierungsmodul; und (d) Erzeugen, durch das Terminierungsmodul, einer Terminierung der Eingabe-Arbeitslast an bestimmte Hosts innerhalb des Datenverarbeitungsclusters, wo die erzeugte Terminierung mit den Datenzugriffsüberlegungen optimiert wird.
  • Zusätzlich zu der vorstehend erwähnten beispielhaften Ausführungsform werden verschiedene andere Ausführungsformen von Systemen und Computerprogrammprodukten bereitgestellt, die damit verbundene Vorteile liefern. Die vorstehend erwähnte Zusammenfassung wurde bereitgestellt, um eine Auswahl an Konzepten in vereinfachter Form vorzustellen, die nachstehend in der Ausführlichen Beschreibung näher beschrieben sind. Diese Zusammenfassung ist nicht dazu gedacht, wichtige Merkmale oder wesentliche Merkmale des beanspruchten Gegenstands zu erkennen, noch ist sie dazu gedacht, als Hilfe bei der Feststellung des Umfangs des beanspruchten Gegenstands verwendet zu werden.
  • Figurenliste
  • Damit sich die Vorteile der Erfindung ohne Weiteres verstehen lassen, folgt eine detailliertere Beschreibung der vorstehend kurz beschriebenen Erfindung, indem auf spezielle Ausführungsformen Bezug genommen wird, die in den beigefügten Zeichnungen veranschaulicht sind. In dem Verständnis, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung abbilden und deshalb nicht als Einschränkung ihres Umfangs zu betrachten sind, wird die Erfindung durch die Verwendung der beigefügten Zeichnungen mit zusätzlicher Spezifität und Detailliertheit beschrieben und erklärt, bei denen:
    • 1 ein Blockschaubild einer Computerspeicherumgebung veranschaulicht, in der Aspekte der vorliegenden Erfindung realisiert werden können;
    • 2 ein Blockschaubild einer Hardware-Struktur eines Datenspeichersystems veranschaulicht, in der Aspekte der vorliegenden Erfindung realisiert werden können;
    • 3 ein Blockschaubild einer beispielhaften Cloud-Computing-Umgebung gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 4 ein Blockschaubild veranschaulicht, das Abstraktionsmodellschichten gemäß Ausführungsformen der vorliegenden Erfindung darstellt;
    • 5 ein Blockschaubild einer Architektur zur Jobterminierung und Arbeitslastverwaltung in einem Datenverarbeitungscluster gemäß Aspekten der vorliegenden Erfindung veranschaulicht;
    • 6 einen Ablaufplan veranschaulicht, der ein beispielhaftes Verfahren zur Auswertung von Datenanforderungen von Arbeitslasten in dem Datenverarbeitungscluster gemäß Aspekten der vorliegenden Erfindung veranschaulicht;
    • 7 ein Blockschaubild von Datenlokalitätsproportionen für einen gegebenen Satz von Dateien einer Arbeitslast innerhalb des Datenverarbeitungsclusters gemäß Aspekten der vorliegenden Erfindung veranschaulicht;
    • 8 einen Ablaufplan veranschaulicht, der ein beispielhaftes Verfahren eines Algorithmus zur Berechnung von Datenlokalitätsinformationen, die zu der gegebenen Arbeitslast in dem Datenverarbeitungscluster gehören, gemäß Aspekten der vorliegenden Erfindung veranschaulicht; und
    • 9 einen zusätzlichen Ablaufplan veranschaulicht, der ein beispielhaftes Verfahren zur Arbeitslastverwaltung mit Datenzugriffserkennung in dem Datenverarbeitungscluster veranschaulicht, durch das Aspekte der vorliegenden Erfindung umgesetzt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie zuvor erwähnt wurde, hängt in einer Clusterdatenverarbeitung die Effizienz von Arbeitslasten, die auf Daten zugreifen und Daten verarbeiten, in hohem Maße von der Entfernung, im Hinblick auf Datenzugriff und Netzwerklatenzzeiten, zwischen den Cluster-Hosts, die die Arbeitslasten verarbeiten, und den Cluster-Hosts, die die Daten speichern, auf die von den Arbeitslasten zugegriffen wird und die von den Arbeitslasten verarbeitet werden, ab. Je geringer die Entfernung (in Bezug auf geringeren Datenzugriff und geringere Netzwerklatenzzeiten) für den Zugriff auf Daten ist, desto höher ist die Effizienz der Arbeitslasten.
  • Das Ziel der vorliegenden Offenbarung besteht darin, die Latenzzeit des Zugriffs auf Daten durch Arbeitslasten zu verringern, indem Arbeitslasten nah an ihren Daten platziert werden. Genauer gesagt, die Herausforderung, mit der sich die aktuelle Offenbarung befasst, besteht darin, festzustellen, wie arbeitslastbezogenes Wissen (das üblicherweise aus Arbeitslastverwaltungssystemen stammt) mit datenspeicherbezogenem Wissen (das üblicherweise aus Speichersystemen stammt) effizient und automatisch verknüpft werden kann, um Arbeitslasten nah an ihren zugrunde liegenden Daten zu platzieren und somit die Effizienz der Arbeitslasten und des Datenverarbeitungssystems als Ganzes zu erhöhen.
  • Es gibt einige bekannte Terminierungstechniken, die auf einfache Weise versuchen, einige dieser Herausforderungen anzugehen. Zum Beispiel gibt es nach dem aktuellen Stand der Technik einen racksensitiven Terminierungsmechanismus für MapReduce-Arbeitslasten mit dem Ziel, Zuordnungsaufgaben an oder nahe bei Hosts zu terminieren, welche die benötigten Eingabedaten für die Aufgaben speichern. Im Rahmen dieses Mechanismus wird die Topologie des Netzwerks unter Verwendung eines benutzerdefinierten Topologieskripts übergeben, das die Zuordnung zwischen Hosts in dem Cluster und Netzwerkgruppen darstellt. Die Topologie wird als Baum dargestellt, wobei Hosts in Racks und Racks in Rechenzentren gruppiert werden. Unter Verwendung dieser Topologie werden Netzwerkentfernungen (Latenzzeit) zwischen Hosts ermittelt. Folglich wird bei der Terminierung einer Arbeitslast versucht, Ressourcen von Hosts zuzuordnen, die sich am nächsten an den für die gegebene Arbeitslast benötigten Eingabedaten befinden.
  • Ebenfalls vorhanden ist ein datensensitiver Terminierungsmechanismus, der Schnittstellen für Dienstinstanzen und ein externes Plug-in verwendet. Bei Verwendung dieses Mechanismus werden benutzerdefinierte Ausdrücke dargestellt, die Datenattribute enthalten, und Logik wird vom Benutzer eingegeben, um einen Kostenwert des Zugriffs auf eine Datei für eine Dienstinstanz zuzuweisen. Bei diesem Mechanismus werden die Kostenwerte wiederum von Logik berechnet, die vom Benutzer definiert und ausgeführt wird, sie verwenden Dateigranularität und stellen keine Spezifikation darüber bereit, wie Datenlokalität, Datenverteilung, Datenattribute und Netzwerkkosten in der Berechnung verwendet werden sollen. Anders ausgedrückt, die gesamte Logik im Rahmen dieses Mechanismus hängt von einer unspezifizierten Benutzerumsetzung ab.
  • Die Herausforderung bei vorhandenen Verfahren besteht darin, dass sich diese Mechanismen auf eine von einem Benutzer ausgeführte Logik und Prozeduren stützen, um Datenzugriffskosten bereitzustellen. Zu Beispielen hierfür gehören das Netzwerktopologie-Skript bei der racksensitiven Terminierung und die Logik zur Erzeugung von Dateizugriffskosten je Dienstinstanz bei der datensensitiven Terminierung. Überdies verwenden diese Verfahren Datenzugriffskosten auf Dateigranularität, und es bleibt der Benutzerlogik überlassen, festzustellen, wie diese Dateigranularität zu Arbeitslastgranularität aggregiert werden soll. Die Datenzugriffskosten werden auch als statisch betrachtet, da sie vom Benutzer eingegeben werden, und Verfahren wie beispielsweise die racksensitive Terminierung verwenden eine qualitative Messung der Zugriffskosten. Darüber hinaus unterstützen vorhandene Verfahren in der Regel spezielle Arten von Arbeitslasten und spezielle Arten von E/A-Mustern für Arbeitslasten und sind nicht generisch, um das breite Spektrum an möglichen Arbeitslasttypen und E/A-Mustern zu unterstützen.
  • Folglich überwinden die hier in Betracht gezogenen Techniken und Algorithmen die Beschränkungen von vorhandenen Verfahren und stellen eine effizientere und generische Lösung in Bezug auf die Arbeitslastterminierung und Datenlokalität in der Clusterdatenverarbeitung bereit. Zu diesen Techniken gehört das Verknüpfen von arbeitslastbezogenem Wissen, das aus einem Arbeitslastverwaltungssystem abgerufen wird, mit datenspeicherbezogenem Wissen, das aus einem Datenspeicherverwaltungssystem abgerufen wird, um eine optimierte Platzierung von Arbeitslasten nahe an ihren Daten zu erzeugen. In einigen Ausführungsformen können zu dem relevanten arbeitslastbezogenen Wissen (a) Daten, auf die von den Arbeitslasten zugegriffen werden soll; (b) Hosts mit verfügbaren Rechenressourcen in dem Cluster; und (c) Netzwerkkosten zwischen Hosts in dem Cluster gehören. Entsprechend kann das relevante datenspeicherbezogene Wissen aufweisen, (a) an welcher physischen Speicherposition die Daten, auf die von den Arbeitslasten zugegriffen wird, in dem Cluster gespeichert sind; (b) Hosts mit verfügbaren Speicherressourcen in dem Cluster; und (c) Datenzugriffskosten innerhalb von Hosts in dem Cluster sowie hostübergreifende Datenzugriffskosten in dem Cluster.
  • Die in Betracht gezogene Architektur weist ein Cluster von Hosts auf, das aus einem oder einer Mehrzahl von Hosts besteht, die mit einem Netzwerk verbunden und so koordiniert sind, dass sie zusammenarbeiten. Die Koordinierung zwischen den Cluster-Hosts wird von mindestens (a) einem Arbeitslastverwaltungssystem, das Arbeitslasten, die auf Hosts in dem Cluster ausgeführt werden, terminiert, steuert und überwacht; und (b) einem Datenspeicherverwaltungssystem, das Daten von Hosts in dem Cluster speichert und Zugriff darauf bereitstellt, verwaltet.
  • In einigen Ausführungsformen innerhalb der in Betracht gezogenen Architektur kann das Datenspeicherverwaltungssystem Daten unter Verwendung von mindestens einem der folgenden Verfahren speichern: (a) Daten können auf lokalen Speichereinheiten gespeichert werden, wobei jede lokale Speichereinheit an einen der Mehrzahl der Hosts in dem Cluster angeschlossen ist; (b) Daten können auf einer gemeinsam genutzten Speichereinheit gespeichert werden, auf die die Hosts in dem Cluster zugreifen können; und (c) Daten können auf einer Kombination aus lokalen und gemeinsam genutzten Speichereinheiten gespeichert werden. Überdies können Daten, auf die von einer gegebenen Arbeitslast zugegriffen werden soll, als eine Liste von Datendateien oder als Datenobjekte angegeben werden, die zu der gegebenen Arbeitslast gehört bzw. gehören und auf die von der gegebenen Arbeitslast voraussichtlich zugegriffen wird. In verschiedenen Ausführungsformen können Speicherpositionen in dem Cluster von Daten, auf die von den Arbeitslasten zugegriffen wird, sowohl für lokalen Speicher als auch gemeinsam genutzten Speicher angegeben werden, wobei: (a) gemeinsam genutzte Speichereinheiten einen entsprechenden Hostnamen haben; (b) lokale Speichereinheiten an Hosts angeschlossen sind, denen Hostnamen zugeordnet sind; und (c) innerhalb einer gemeinsam genutzten oder lokalen Speichereinheit eine Speicherposition unter Verwendung einer Speicherkennung (ID) angegeben wird. Auf dieser Grundlage stellt die Kombination aus Hostname und Speicher-ID folglich einen globalen Speicherort in einem Cluster für beide Arten von Speichereinheiten bereit.
  • Datenzugriffskosten innerhalb von Hosts in dem Cluster sowie hostübergreifend in dem Cluster werden auf der Grundlage einer Kombination aus Netzwerklatenzzeiten zwischen Hosts und Speichereinheit-Zugriffslatenzzeiten innerhalb eines jeden Hosts berechnet. Zum Beispiel offenbaren die erfindungsgemäßen Konzepte hierin mehrere neue effiziente Algorithmen, darunter: (a) einen Algorithmus zur Terminierung von Arbeitslasten mit Datenzugriffserkennung in einem Cluster von Hosts, wobei der Algorithmus verschiedene E/A-Muster von Arbeitslasten berücksichtigt, um eine optimierte Terminierung zu berechnen; (b) einen Algorithmus, um eine geordnete Liste von bevorzugten Hosts zur Terminierung von Arbeitslasten mit Datenzugriffserkennung in dem Cluster von Hosts auf der Grundlage von Datenlokalitätsinformationen und Datenzugriffskosten zu berechnen; und (c) einen Algorithmus, um Lokalitätsinformationen für einen großen Satz von Dateien in dem Cluster von Hosts zu aggregieren, indem ein effizienter Teilsatz von Dateien zur Berechnung von Näherungswerten der Lokalitätsaggregationen ausgewählt und effiziente Trigger für die Aktualisierung der Näherungswerte der Lokalitätsaggregationen definiert werden.
  • Bei Verwendung der neuartigen, hierin in Betracht gezogenen Algorithmen werden Beschränkungen der vorstehend erwähnten vorhandenen Verfahren überwunden, während eine effizientere und generische Lösung bereitgestellt wird, da (a) alle benötigten Elemente automatisch berechnet werden, ohne eine von einem Benutzer ausgeführte Logik erforderlich zu machen, wobei die automatischen Berechnungen Datenlokalität, Netzwerkkosten, die gesamten Datenzugriffskosten sowie Informationen über eine optimale Arbeitslastplatzierung einschließen; (b) Datenzugriffskosten je Arbeitslast automatisch berechnet und über das Cluster hinweg verwendet werden; (c) diese Datenzugriffskosten automatisch und dynamisch aktualisiert werden, wenn Änderungen in dem Cluster und in den Arbeitslasten auftreten; (d) eine quantitative (anstatt einer qualitativen) Messung der Datenzugriffskosten verwendet wird; (e) verschiedene Arten von Arbeitslasten berücksichtigt und unterstützt werden; und (f) verschiedene Arten von E/A-Mustern für Arbeitslasten berücksichtigt und unterstützt werden (d.h. E/A von vorhandenen Daten, E/A von neuen Daten und Arbeitslasten, die nicht E/A-intensiv sind). Diese Konzepte werden im Folgenden weiter ausführlich beschrieben.
  • Wenden wir uns nun 1 zu, in der eine schematische bildliche Darstellung eines Datenverarbeitungs-Speichersystems 20 gemäß einer offenbarten Ausführungsform der Erfindung gezeigt ist. Das in 1 gezeigte bestimmte System ist dargestellt, damit sich die Erfindung einfacher erklären lässt. Wie der Fachmann jedoch verstehen wird, kann die Erfindung unter Verwendung anderer Datenverarbeitungsumgebungen wie beispielsweise anderer Speichersysteme mit diversen Architekturen und Leistungsmerkmalen in die Praxis umgesetzt werden.
  • Das Speichersystem 20 empfängt von einem oder mehreren Host-Computern 22 Eingabe-/Ausgabe-(E/A-)Anforderungen, bei denen es sich um Befehle zum Lesen oder Schreiben von Daten an logische(n) Adressen auf logischen Datenträgern handelt. Eine beliebige Anzahl von Host-Computern 22 ist mit dem Speichersystem 20 durch ein beliebiges, in der Technik bekanntes Mittel verbunden, zum Beispiel mittels eines Netzwerks. Hierin wird beispielhalber davon ausgegangen, dass die Host-Computer 22 und das Speichersystem 20 durch ein Storage Area Network (SAN) 26 verbunden sind, das Datenverbindungen 24 und Hostbusadapter (HBAs) 28 umfasst. Die logischen Adressen geben einen Bereich von Datenblöcken innerhalb eines logischen Datenträgers an, wobei hierin beispielhalber davon ausgegangen wird, dass jeder Block 512 Byte enthält. Zum Beispiel würde ein in einer Datenverarbeitungsanwendung auf einem gegebenen Host-Computer 22 verwendeter 10-KB-Datensatz 20 Blöcke benötigen, die der gegebene Host-Computer als an einer logischen Adresse gespeichert angeben könnte, die die Blöcke 1000 bis 1019 eines logischen Datenträgers aufweist. Das Speichersystem 20 kann in einem oder als ein SAN-System betrieben werden.
  • Das Speichersystem 20 weist einen Clusterspeichercontroller 34 auf, der zwischen dem SAN 26 und einem privaten Netzwerk 46 unter Verwendung von Datenverbindungen 30 bzw. 44 angeschlossen ist und die Adapter 32 bzw. 42 umfasst. In einigen Konfigurationen können die Adapter 32 und 42 Host-SAN-Adapter (HSAs) aufweisen. Der Clusterspeichercontroller 34 führt Cluster von Speichermodulen 36 aus, von denen jedes eine Schnittstelle 38 (die zwischen den Adaptern 32 und 42 Daten austauscht) und einen Cache 40 enthält. Jedes Speichermodul 36 ist über eine Datenverbindung 48 für mehrere Speichereinheiten 50 zuständig, wie gezeigt ist.
  • Wie zuvor beschrieben wurde, weist jedes Speichermodul 36 des Weiteren einen gegebenen Cache 40 auf. Es dürfte jedoch klar sein, dass die Zahl der Caches 40, die in dem Speichersystem 20 und in Verbindung mit dem Clusterspeichercontroller 34 verwendet werden, eine beliebige geeignete Zahl sein kann. Zwar können alle Caches 40 in dem Speichersystem 20 im Wesentlichen auf die gleiche Weise arbeiten und im Wesentlichen ähnliche Elemente aufweisen, jedoch ist dies keine Voraussetzung. Jeder der Caches 40 kann ungefähr gleich groß sein und es wird davon ausgegangen, dass er beispielhalber in einer Eins-zu-eins-Entsprechung mit einem Satz von physischen Speichereinheiten 50, die Platten aufweisen können, verbunden ist. In einer einzelnen Ausführungsform können physische Speichereinheiten solche Platten aufweisen. Der Fachmann wird in der Lage sein, die Beschreibung hierin auf Caches unterschiedlicher Größen anzupassen.
  • Jeder Satz von Speichereinheiten 50 weist mehrere Massenspeichereinheiten mit langsamer und/oder schneller Zugriffszeit auf, wobei nachstehend davon ausgegangen wird, dass es sich dabei um mehrere Festplatten handelt. 1 zeigt mit jeweiligen Sätzen von Speichereinheiten 50 verbundene Caches 40. In einigen Konfigurationen weisen die Sätze von Speichereinheiten 50 eine oder mehrere Festplatten auf, deren Leistungsverhalten unterschiedlich sein kann. Als Reaktion auf einen E/A-Befehl kann ein gegebener Cache 40 beispielhalber Daten an adressierbare(n) physische(n) Speicherpositionen einer gegebenen Speichereinheit 50 lesen oder schreiben. In der in 1 gezeigten Ausführungsform sind die Caches 40 in der Lage, bestimmte Steuerfunktionen über die Speichereinheiten 50 auszuüben. Diese Steuerfunktionen können alternativ durch Hardware-Einheiten wie beispielsweise Plattencontroller (nicht gezeigt) realisiert werden, die mit den Caches 40 verbunden sind.
  • Jedes Speichermodul 36 dient zur Überwachung seines Zustands, darunter der Zustände von zugehörigen Caches 40, und zur Übertragung von Konfigurationsinformationen an andere Komponenten des Speichersystems 20, zum Beispiel von Konfigurationsänderungen, die zu Blockierungsintervallen führen oder die Geschwindigkeit begrenzen, mit der E/A-Anforderungen für die Sätze von physischem Speicher angenommen werden.
  • Die Weiterleitung von Befehlen und Daten von den HBAs 28 an den Clusterspeichercontroller 34 und einen jeden Cache 40 kann über ein Netzwerk und/oder eine Vermittlungseinheit vorgenommen werden. Hierin können die HBAs 28 beispielhalber durch mindestens eine Vermittlungseinheit (nicht gezeigt) des SAN 26, die von einem beliebigen bekannten Typ sein kann, der über eine digitale Querverbindungsfunktion verfügt, mit den Speichermodulen 36 verbunden sein. Zusätzlich oder alternativ können die HBAs 28 mit den Speichermodulen 36 verbunden sein.
  • In einigen Ausführungsformen können Daten, die fortlaufende logische Adressen haben, auf Module 36 und innerhalb der Speichereinheiten in jedem der Module verteilt werden. Alternativ können die Daten unter Verwendung von anderen Algorithmen, z.B. Byte- oder Blockverschachtelung, verteilt werden. Im Allgemeinen erhöht dies die Bandbreite, zum Beispiel, indem man gestattet, dass ein Datenträger in einem SAN oder eine Datei in einem an das Netzwerk angeschlossenen Speicher aus jeweils mehr als einer gegebenen Speichereinheit 50 gelesen oder auf jeweils mehr als eine gegebene Speichereinheit 50 geschrieben wird. Jedoch erfordert diese Technik eine Koordinierung unter den verschiedenen Speichereinheiten, und in der Praxis kann sie komplexe Vorkehrungen für einen etwaigen Ausfall der Speichereinheiten und eine Strategie für den Umgang mit Fehlerprüfinformationen erforderlich machen, z.B. eine Technik, um Paritätsinformationen in Bezug auf verteilte Daten zu speichern. Tatsächlich können sich zu einer einzigen logischen Einheit gehörende Daten über alle Speichereinheiten 50 erstrecken, wenn Partitionen einer logischen Einheit in ausreichend kleiner Granularität verteilt sind.
  • Obgleich dies aus Gründen der veranschaulichenden Einfachheit nicht explizit gezeigt ist, wird der Fachmann verstehen, dass der Clusterspeichercontroller 34 in einigen Ausführungsformen für eine Ausführung in Verbindung mit bestimmter Hardware, wie beispielsweise einem Einschubsystem, einer Mittelplatine und/oder einer Rückwandplatine, angepasst werden kann. Tatsächlich kann das private Netzwerk 46 in einer einzelnen Ausführungsform mittels einer Rückwandplatine ausgeführt sein. Zusätzliche Hardware, wie beispielsweise die vorstehend erwähnten Vermittlungseinheiten, Prozessoren, Controller, Hauptspeichereinheiten und dergleichen, können ebenfalls in den Clusterspeichercontroller 34 und anderswo innerhalb des Speichersystems 20 integriert sein, wie der Fachmann ebenfalls verstehen wird. Des Weiteren kann eine Vielfalt an Software-Komponenten, Betriebssystemen, Firmware und dergleichen in ein einzelnes Speichersystem 20 integriert sein.
  • 2 ist eine schematische bildliche Darstellung einer Einrichtung 60, die so konfiguriert ist, dass sie eine Überwachung von Host-Computern gemäß einer Ausführungsform der vorliegenden Erfindung durchführt. In der Beschreibung hierin können die Host-Computer 22, die Speichercontroller 34 und ihre jeweiligen Komponenten unterschieden werden, indem ein Buchstabe an die Identifikationsziffer angefügt wird, so dass die Einrichtung 60 einen ersten Host-Computer 22A (der hierin auch als ein primärer Host-Computer bezeichnet wird), der mit einem Clusterspeichercontroller 34A über ein SAN 26A verbunden ist, und einen zweiten Host-Computer 22B (der hierin auch als ein sekundärer Host-Computer bezeichnet wird), der mit einem Clusterspeichercontroller 34B über ein SAN 26B verbunden ist, aufweist. In der in 2 gezeigten Konfiguration sind die Speichercontroller 34A und 34B über ein Einrichtungs-SAN 62 verbunden. In anderen Ausführungsformen, wie hierin beschrieben wird, kann der erste Host-Computer 22A mit dem Clusterspeichercontroller 34B direkt verbunden sein, und der zweite Host-Computer 22B kann mit dem Clusterspeichercontroller 34A über ein SAN, das ähnlich dem SAN 62 ist, eine virtualisierte Netzwerkverbindung oder ein beliebiges anderes durch einen Computer ausgeführtes Medium direkt verbunden sein.
  • Der Host-Computer 22 weist einen Prozessor 64A, einen Hauptspeicher 66A und einen Adapter 68A auf. Der Adapter 68A ist über eine Datenverbindung 24A mit dem SAN 26A verbunden.
  • Wie oben beschrieben ist, ist das Modul 36A mit den Speichereinheiten 50A über Datenverbindungen 48A verbunden und weist die Adapter 32A und 42A, einen Cache 40A und eine Schnittstelle 38A auf. Das Modul 36A weist auch einen Prozessor 70A und einen Hauptspeicher 72A auf. Wie nachstehend ausführlich erklärt wird, ist der Prozessor 70A so konfiguriert, dass er Messwerte 74, die einen Verbindungsstatus des Host-Computers 22A angeben, ermittelt und die Messwerte im Hauptspeicher 72A ablegt. In einigen Ausführungsformen kann der Prozessor 70A Messwerte 74 in den Speichereinheiten 50A speichern.
  • Der Host-Computer 22B weist einen Prozessor 64B, einen Hauptspeicher 66B und einen Adapter 68B auf. Der Adapter 68B ist über eine Datenverbindung 24B mit dem SAN 26B verbunden.
  • Wie oben beschrieben ist, ist das Modul 36B mit den Speichereinheiten 50B über Datenverbindungen 48B verbunden und weist die Adapter 32B und 42B, einen Cache 40B und eine Schnittstelle 38B auf. Das Modul 36B weist auch einen Prozessor 70B und einen Hauptspeicher 72B auf.
  • Die Prozessoren 64A, 64B, 70A und 70B weisen üblicherweise Universalcomputer auf, die in Software programmiert sind, um die hierin beschriebenen Funktionen auszuführen. Die Software kann auf die Host-Computer 22A und 22B und die Module 36A und 36B in elektronischer Form, zum Beispiel über ein Netzwerk, heruntergeladen werden oder sie kann auf nicht flüchtigen, physisch greifbaren Medien wie beispielsweise optischen, magnetischen oder elektronischen Hauptspeichermedien bereitgestellt werden. Alternativ können einige oder alle Funktionen der Prozessoren durch dedizierte oder programmierbare digitale Hardware-Komponenten oder durch Verwendung einer Kombination aus Hardware- und Software-Elementen ausgeführt werden.
  • Zu Beispielen für die Adapter 32A, 32B, 42A, 42B, 68A und 68B gehören Switched-Fabric-Adapter wie beispielsweise Fibre Channel-(FC-)Adapter, Internet Small Computer System Interface-(iSCSI-)Adapter, Fibre Channel over Ethernet-(FCoE-)Adapter und Infiniband™-Adapter.
  • Obgleich die in 2 gezeigte Konfiguration die Speicher-Host-Computer 22A und 22B zeigt, die mit den Speichercontrollern 34A und 34B über die SANs 26A und 26B verbunden sind, sind innerhalb des Umfangs der vorliegenden Erfindung andere Konfigurationen in Betracht zu ziehen. Zum Beispiel können die Host-Computer 22A und 22B mit einem einzigen Speichercontroller 34 über ein einziges SAN 26 verbunden sein.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen weiteren Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
    • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
    • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
    • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
    • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
    • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
    • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
    • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
    • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
    • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten und Speichersystemen (z.B. dem Speichersystem 20) aufweist.
  • Unter Bezugnahme auf 3 ist eine veranschaulichende Cloud-Computing-Umgebung 52 dargestellt. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 52 ein oder mehrere Speichersysteme 20 und Cloud-Computing-Knoten auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie zum Beispiel der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Speichersysteme 20 und die Cloud-Knoten können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 52, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 3 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Speichersysteme 20, die Cloud-Computing-Knoten und die Cloud-Computing-Umgebung 52 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 4 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 52 (3) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 4 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 80 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 81; auf der RISC-(Reduced-Instruction-Set-Computer-)Architektur beruhende Server 82; Server 83; Blade-Server 84; Speichereinheiten 85; und Netzwerke sowie Netzwerkkomponenten 86. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 87 und Datenbank-Software 88.
  • Die Virtualisierungsschicht 90 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 91; virtueller Speicher 92; virtuelle Netzwerke 93, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 94; und virtuelle Clients 95.
  • In einem Beispiel kann die Verwaltungsschicht 100 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 101 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 102 stellt die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 103 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 104 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 105 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 110 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 111; Software-Entwicklung und Lebenszyklusverwaltung 112; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 113; Datenanalytikverarbeitung 114; Transaktionsverarbeitung 115; und im Kontext der veranschaulichten Ausführungsformen der vorliegenden Erfindung verschiedene Arbeitslast- und Jobterminierungsfunktionen 116. Der Fachmann versteht, dass die Arbeitslast- und Jobterminierungsfunktionen 116 auch in Verbindung mit anderen Teilen der verschiedenen Abstraktionsschichten wie beispielsweise denen in Hardware und Software 80, Virtualisierung 90, Verwaltung 100 und anderen Arbeitslasten 110 (wie etwa der Datenanalytikverarbeitung 114, zum Beispiel) funktionieren, um die verschiedenen Zwecke der veranschaulichten Ausführungsformen der vorliegenden Erfindung zu erfüllen.
  • Wie vorstehend erwähnt wurde, besteht das resultierende Ziel der hierin beschriebenen Mechanismen darin, eine Terminierung einer gegebenen Arbeitslast an Cluster-Hosts zu erzeugen, die mit Datenzugriffserkennung optimiert ist, so dass die Arbeitslast innerhalb der Cluster-Hosts durchgeführt wird, mit denen die Daten, auf die von der Arbeitslast zugegriffen werden soll, im Verhältnis zu anderen Cluster-Hosts am optimalsten verfügbar oder erreichbar sind. Um dieses Ziel zu realisieren, ist eine Architektur 500 zur Verwaltung und Terminierung von Arbeitslasten in einem Datenverarbeitungscluster in 5 dargestellt.
  • Die Architektur 500 enthält das Speichersystem 20, wie zuvor beschrieben wurde, das mit einem Arbeitslastmanager 502 mit mehreren darin enthaltenen Modulen, darunter mindestens einem Datenanforderungsauswertungsmodul 506 und einem Terminierungsmodul 510, Daten austauscht. Es sei erwähnt, dass, wie der Fachmann verstehen würde, die in der Architektur 500 beschriebenen mehreren Module (d.h. das Datenanforderungsauswertungsmodul 506 und das Terminierungsmodul 510) jeweils aus durch einen Computer ausführbaren Teilen von Code oder aus einem oder mehreren physischen Hardware-Modul(en) innerhalb der verteilten Datenverarbeitungsumgebung bestehen können, um die hierin dargestellte Funktionalität durchzuführen. Überdies kann der Arbeitslastmanager 502 weitere, zusätzliche Module als die unmittelbar offenbarten enthalten.
  • In verschiedenen Ausführungsformen empfängt das Datenanforderungsauswertungsmodul 506 mindestens drei Arten der Eingabe (als die Blöcke 504 bezeichnet) von dem Speichersystem 20 und von anderen Modulen in dem Arbeitslastmanager 502, wie beschrieben wird. Das Datenanforderungsauswertungsmodul 506 erzeugt dann eine Liste von Cluster-Hosts, die zur Ausführung der gegebenen Arbeitslast gemäß Datenzugriffsüberlegungen in Verbindung mit den empfangenen Eingaben von den jeweiligen Modulen nach einer Rangfolge geordnet sind.
  • Eine erste von dem Datenanforderungsauswertungsmodul 506 empfangene Eingabe 504 kann Datenlokalitätsproportionen enthalten, die für einen Satz von Dateien erzeugt wurden, der zu einer gegebenen Arbeitslast gehört. Diese Datenlokalitätsproportionen-Eingabe gibt für den Satz von Dateien, der zu der gegebenen Arbeitslast gehört, den Anteil an den Gesamtdaten des Satzes von Dateien an, der auf einem jeden der Hosts in dem Cluster gespeichert ist. Anders ausgedrückt, die Datenlokalitätsproportionen-Eingabe gibt an, welcher Anteil an den Gesamtdaten des Satzes von Daten auf verschiedenen jeweiligen Hosts gespeichert ist, welche die zugrunde liegenden Daten speichern.
  • Eine von dem Datenanforderungsauswerter 506 empfangene zweite Eingabe 504 kann für jedes Paar von Hosts in dem Cluster angegebene Datenzugriffskosten enthalten. Diese Datenzugriffskosten-Eingabe gibt für jeden Host in dem Cluster die Kosten (z.B. mit Bezug auf die Latenzzeit und andere Überlegungen) des Zugriffs auf Daten an, die auf einem beliebigen anderen Host in dem Cluster gespeichert sind.
  • Zusätzlich zu den vorstehend erwähnten Eingaben können weitere Eingaben 504 von dem Datenanforderungsauswertungsmodul 506 empfangen werden, die hiermit angegeben werden, darunter: (a) eine Angabe, ob die aktuelle Arbeitslast bei der E/A von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist. Diese Angaben-Eingabe kann üblicherweise aus anderen Modulen in dem Arbeitslastmanager 502, die bestimmte Informationen über Arbeitslastattribute verfolgen, und/oder aus dem Speichersystem 20 abgerufen werden, das Informationen über Arbeitslast-E/A-Muster verfolgen kann; (b) eine Verfügbarkeit von Rechenressourcen in dem Cluster. Diese Eingabe kann üblicherweise aus anderen Modulen in dem Arbeitslastmanager 502 abgerufen werden, die eine Verfügbarkeit von Rechenressourcen in dem Cluster verfolgen; und (c) eine Verfügbarkeit von Speicherressourcen (freiem Speicherplatz) in dem Cluster. Diese Eingabe kann üblicherweise aus dem Speichersystem 20 abgerufen werden. Unter Berücksichtigung der zuvor angegebenen Eingaben verwendet das Datenanforderungsauswertungsmodul 506 dann die zu jeder Eingabe gehörenden Informationen, um die Liste von Cluster-Hosts zu erzeugen, die zur Ausführung der gegebenen Arbeitslast gemäß den Datenzugriffsüberlegungen 508 nach einer Rangfolge geordnet sind.
  • In verschiedenen Ausführungsformen empfängt das Terminierungsmodul 510 von dem Datenanforderungsauswertungsmodul 506 die Liste von Cluster-Hosts, die zur Ausführung der gegebenen Arbeitslast gemäß den Datenzugriffsüberlegungen nach einer Rangfolge geordnet sind, und erzeugt daraufhin als Ausgabe 512 eine Terminierung der gegebenen Arbeitslast an bestimmte Cluster-Hosts, wobei die Terminierung der Ausgabe mit Datenzugriffserkennung optimiert ist.
  • In verschiedenen Ausführungsformen speichert das Speichersystem 20 die zugrunde liegenden Daten, die zur Durchführung der gegebenen Arbeitslast erforderlich sind, stellt den Zugriff auf diese Daten bereit und stellt den verschiedenen Modulen in dem Arbeitslastmanager 502 die vorstehend erwähnten Eingaben bereit.
  • 6 veranschaulicht einen Ablaufplan, der ein beispielhaftes Verfahren/einen beispielhaften Algorithmus 600 zur Auswertung von Datenanforderungen von Arbeitslasten in dem Datenverarbeitungscluster gemäß Aspekten der vorliegenden Erfindung veranschaulicht. Genauer gesagt, das Verfahren 600 gibt den in Betracht gezogenen Algorithmus an, der von dem Datenanforderungsauswertungsmodul 506 angewandt wird, um die Liste von Cluster-Hosts zu erzeugen, die zur Ausführung der gegebenen Arbeitslast gemäß den Datenzugriffsüberlegungen nach einer Rangfolge geordnet sind. Der Algorithmus des Datenanforderungsauswertungsmoduls 506 verarbeitet mindestens drei hiermit angegebene beispielhafte Fälle.
  • Das Verfahren 600 kann gemäß der vorliegenden Erfindung in verschiedenen Ausführungsformen in beliebigen der Umgebungen durchgeführt werden, die unter anderem in den 1 bis 4 gezeigt sind. Natürlich können mehr oder weniger Operationen als diejenigen, die in 6 ausdrücklich beschrieben sind, in das Verfahren 600 aufgenommen werden, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 600 kann von einer beliebigen geeigneten Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 600 in verschiedenen Ausführungsformen ganz oder teilweise von einem Prozessor oder einer anderen Einheit durchgeführt werden, in der sich ein oder mehrere Prozessoren befinden. Der Prozessor, z.B. (eine) Verarbeitungsschaltung(en), (ein) Chip(s) und/oder (ein) Modul(e), die in Hardware und/oder Software ausgeführt sind und vorzugsweise über mindestens eine Hardware-Komponente verfügen, kann in jeder beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 600 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne darauf beschränkt zu sein, eine zentrale Verarbeitungseinheit (CPU, central processing unit), eine anwendungsspezifische integrierte Schaltung (ASIC, application specific integrated circuit), eine im Feld programmierbare Gatter-Anordnung (FPGA, field programmable gate array) usw., Kombinationen daraus oder eine beliebige andere geeignete, in der Technik bekannte Datenverarbeitungseinheit.
  • In einem ersten Fall ist die Arbeitslast bei der E/A von vorhandenen Daten intensiv. Das heißt, es wird festgestellt, dass die Arbeitslast bei der Verwendung von vorhandenen Daten, die zum Beispiel in dem Speichersystem 20 gespeichert sind, intensiv ist. Somit, beginnend am Block 602 und vorausgesetzt, dass die gegebene Arbeitslast am Block 604 tatsächlich E/A-intensiv ist, und des Weiteren nach der Feststellung im Block 606, dass die Arbeitslast bei der E/A der vorhandenen Daten intensiv ist, erzeugt der Algorithmus 600 eine geordnete Liste von bevorzugten Hosts gemäß Informationen über die Datenlokalität und die Datenzugriffskosten im Block 610. Das Verfahren 600 endet dann im Block 614.
  • In einem zweiten Fall ist die Arbeitslast bei der E/A von neuen Daten intensiv. Das heißt, es wird festgestellt, dass die Arbeitslast bei der Erzeugung von neuen Daten, die zum Beispiel in dem Speichersystem 20 gespeichert werden sollen, intensiv ist. Somit, zurückkehrend zum Block 604, wo festgestellt wird, dass die gegebene Arbeitslast tatsächlich E/A-intensiv ist, und des Weiteren nach der Feststellung im Block 606, dass die Arbeitslast bei der Erzeugung von neuen Daten intensiv ist, erzeugt der Algorithmus 600 im Block 608 eine geordnete Liste von bevorzugten Hosts gemäß dem verfügbaren Speicher. Genauer gesagt, je mehr verfügbarer Speicherplatz, der zu einem Host gehört, im Vergleich zu anderen Hosts in dem Cluster vorhanden ist, desto höher ist die Rangfolge dieses Hosts mit dem Mehr an verfügbarem Speicherplatz in der erzeugten Liste, wenn dieser mit den anderen Hosts der Liste verglichen wird. Das Verfahren 600 endet dann im Block 614.
  • In dem dritten Fall wird festgestellt, dass die Arbeitslast nicht E/A-intensiv ist. Somit, zurückkehrend zum Block 604, wo festgestellt wird, dass die Arbeitslast nicht E/Aintensiv ist, erzeugt der Algorithmus 600 im Block 612 eine leere Liste von bevorzugten Hosts, um anzugeben, dass es auf der Grundlage von Datenzugriffsüberlegungen keine bevorzugten Hosts gibt. Das Verfahren 600 endet dann im Block 614.
  • Nachstehend wird der in Betracht gezogene Algorithmus zur Erzeugung der geordneten Liste von bevorzugten Hosts gemäß den Informationen über die Datenlokalität und die Datenzugriffskosten angegeben. Dieser Algorithmus wird von dem Datenanforderungsauswertungsmodul 506 angewendet, um den Fall von Arbeitslasten zu verarbeiten, bei denen festgestellt wird, dass sie bei der E/A von vorhandenen Daten intensiv sind. Der Algorithmus empfängt als Eingabe Datenlokalitätsproportionen und Datenzugriffskosten (beide Eingaben werden im Folgenden näher erörtert) und erzeugt als Ausgabe eine geordnete Liste von bevorzugten Hosts, die insbesondere für solche Arbeitslasten optimiert ist, die E/A-intensiv sind, wenn vorhandene, in dem Speichersystem 20 gespeicherte Daten verwendet werden.
  • Eingabe: Datenlokalitätsproportionen
  • In einigen Ausführungsformen handelt es sich bei einer von dem Algorithmus des Datenanforderungsauswertungsmoduls 506 empfangenen ersten Eingabe um die für den Satz von Dateien erzeugten Datenlokalitätsproportionen, welcher zu der gegebenen Arbeitslast gehört. Diese Datenlokalitätsproportionen-Eingabe gibt für den Satz von Dateien, der zu der gegebenen Arbeitslast gehört, den Anteil an den Gesamtdaten des Satzes von Dateien an, der auf einem jeden der Cluster-Hosts gespeichert ist. Um diese Eingabe zu erzeugen, werden Lokalitätsinformationen für jede Datei (d.h., den Anteil an den Daten einer jeden Datei, die auf einem jeden der Cluster-Hosts gespeichert ist) zu der Ebene des Satzes von Dateien aggregiert, welcher zu der Arbeitslast gehört.
  • In dieser Ausführungsform wird für jeden Host in dem Cluster ein Wert berechnet, der von 0 (was anzeigt, dass keine Daten des Satzes von Dateien auf dem Host gespeichert sind) bis 1 (was anzeigt, dass alle Daten des Satzes von Dateien auf dem Host gespeichert sind) reicht. Es sei angemerkt, dass es möglich ist, dass ein Abschnitt der Daten auf mehreren Hosts in dem Cluster gespeichert ist. Des Weiteren sei angemerkt, dass die nachstehende Angabe D[Hi] den Anteil an der Gesamtgröße des Satzes von Dateien, der zu der Arbeitslast gehört, bezeichnet, der auf dem Host Hi gespeichert ist (wie im Rahmen der zweiten und der dritten Eingabe nachstehend weiter beschrieben wird).
  • 7 veranschaulicht ein Blockschaubild eines Beispiels der Datenlokalitätsproportionen-Eingabe 700 für einen gegebenen Satz von Dateien einer Arbeitslast innerhalb des Datenverarbeitungsclusters. Dieses Beispiel der Eingabe 700 zeigt drei Hosts in dem Cluster, nämlich den Host 1 (Block 702), den Host 2 (Block 704) und den Host 3 (Block 706). Die Gesamtgröße eines Satzes von Dateien, der zu einer gegebenen Arbeitslast gehört, ist als ein aggregierter Balken gezeigt, der einen demarkierten Balken und einen linierten Balken umfasst, wobei der aggregierte Balken 100 % der Gesamtgröße des Satzes von Dateien darstellt. Der Anteil an der Gesamtgröße des zu der gegebenen Arbeitslast gehörenden Satzes von Dateien, der auf jedem Host gespeichert ist (als Prozentsatz angegeben), ist daher als ein linierter Balken unter jedem demarkierten Balken gezeigt, welcher für den Host 1 (702) oder D[H1] mit 40 % der Gesamtdaten des Satzes von Dateien oder einem Wert von 0,4; für den Host 2 (704) als D[H2] mit 20 % der Gesamtdaten des Satzes von Dateien oder einem Wert von 0,2; und für den Host 3 (706) als D[H3] mit 80 % der Gesamtdaten des Satzes von Dateien oder einem Wert von 0,8 veranschaulicht ist. Man beachte in diesem Beispiel, dass, wie vorstehend angegeben, der gesamte Prozentsatz (40 % + 20 % + 80 %) von allen Hosts gleich einem Prozentsatz größer als 100 % ist, da ein Abschnitt der Daten des Satzes von Dateien innerhalb von mehreren Hosts in dem Cluster gespeichert sein kann.
  • Eingabe: Datenzugriffskosten
  • In einigen Ausführungsformen handelt es sich bei einer von dem Algorithmus des Datenanforderungsauswertungsmoduls 506 empfangenen zweiten Eingabe um die Datenzugriffskosten, die für jedes Paar von Hosts in dem Cluster angegeben werden. Diese Informationen werden für das ganze Cluster berechnet, oder anders ausgedrückt, Datenzugriffskosten werden für jedes Paar von Hosts in dem ganzen Cluster ermittelt. Für eine aktuelle Cluster-Topologie sind diese berechneten Informationen statisch, nachdem jedoch festgestellt wurde, dass eine Topologieänderung in dem Cluster stattgefunden hat (z.B. Hinzufügung/Entfernung von Hosts zu/aus dem Cluster), werden die Informationen über die Datenzugriffskosten für die neue Cluster-Topologie innerhalb des Datenanforderungsauswertungsmoduls 506 aktualisiert.
  • Wie vorstehend erwähnt wurde, werden die Informationen über die Datenzugriffskosten für jedes Paar von Hosts in dem Cluster berechnet und können in einer Matrix dargestellt werden, wobei die Matrixnotation sein kann: C [ H i , H j ] = K o s t e n   f u ¨ r   d e n   Z u g r i f f   a u f   i m   H o s t   H j   g e s p e i c h e r t e   D a t e n   v o m   H o s t   H i   a u s
    Figure DE112019000421B4_0001
  • Der Wertebereich für jede Zelle in der Matrix kann von 0 bis 1 reichen, wobei 0 = der lokale Hostzugriff und 1 = maximale Netzwerkzugriffskosten (z.B. maximale Netzwerkzugriffskosten über einen vorher festgelegten Latenzzeit-Schwellenwert hinaus) sind. In verschiedenen Ausführungsformen können die Datenzugriffskosten automatisch mittels vorhandener Funktionalität, die auf jedem Host ausgeführt wird, berechnet werden, indem an jedem der anderen Hosts in dem Cluster eine E/A durchgeführt wird, eine Latenzzeit der E/A gemessen und statistische Messwerte von dieser berechnet werden. Wenn ein neuer Host zu dem Cluster hinzukommt, sollte diese Funktionalität auf dem neuen Host zusätzlich zu jedem der vorhandenen Hosts in dem Cluster ausgeführt werden, um die Latenzzeit zu dem neuen Host zu messen. Überdies kann eine weitere Option das Verfolgen eines auf fortlaufende Daten bezogenen Netzbetriebs zwischen den Cluster-Hosts und das Ableiten von Datenzugriffskosten auf der Grundlage dieser Informationen aufweisen.
  • Die folgende Tabelle 100 zeigt ein Beispiel der Datenzugriffskosten für 3 Hosts in einem Cluster, wobei der zuvor angegebene Wertebereich verwendet wird. In diesem Beispiel sind die Hosts 2 und 3 näher beieinander (d.h., sie haben einen Wertebereich kleiner 1) und der Host 1 ist insbesondere vom Host 3 weiter entfernt (d.h. er hat einen Wertebereich von 1). Tabelle 100
    Hosts 1 2 3
    1 0 0,5 1
    2 0,5 0 0,2
    3 1 0,2 0
  • Berechnen einer geordneten Liste von bevorzugten Hosts
  • In verschiedenen Ausführungsformen und unter Berücksichtigung der vorstehend erwähnten beiden Eingaben erzeugt der Algorithmus des Datenanforderungsauswertungsmoduls 506 dann die geordnete Liste von bevorzugten Hosts, um die gegebene Arbeitslast auszuführen. Das Ordnen der Hosts wird für jeden Host Hi auf der Grundlage der Berechnung von erwarteten Kosten für einen Datenzugriff für eine Arbeitslast, die auf dem Host ausgeführt wird, Hi entsprechend der folgenden vorgeschlagenen Formel erzeugt: E C [ H i ] Erwartete Kosten f u ¨ r den Datenzugriff f u ¨ r eine auf dem Host H i ausgef u ¨ hrte Arbeltslast = ( 1 D [ H i ] ) Wahrscheinlichkeit f u ¨ r den Abruf von Daten von einem anderen Host als dem Host H i × j cluster j { P [ H j H i ] Wahrscheinlichkeit f u ¨ r den Abruf von Daten von dem Host H j  durch eine auf dem Host H i  aus gef u ¨ hrte Arbeitslast × C [ H i , H j ] Kosten f u ¨ r den Abruf von Daten vom Host H j durch eine auf dem Host H j  ausgef u ¨ hrte Arbeitslast } Erwartete Kosten f u ¨ r den Abruf von Daten von einem anderen Host als dem Host H j
    Figure DE112019000421B4_0002
  • Die vorgegebene Formel ermöglicht die Berechnung von erwarteten Kosten für einen Datenzugriff für eine Arbeitslast, die auf dem Host Hi ausgeführt wird, welche als EC[Hi] bezeichnet werden, indem die erwarteten Kosten des Abrufs von Daten von einem anderen Host als dem Host Hi mit der Wahrscheinlichkeit dieses Ereignisses (d.h. der Wahrscheinlichkeit, dass Daten von dem anderen Host als dem Host Hi abgerufen werden) multipliziert werden. Zusätzlich wird davon ausgegangen, wie zuvor angegeben wurde, dass die Kosten des Datenzugriffs auf dem Host Hi (d.h. dem lokalen Host) im Hinblick auf die Netzwerklatenzzeit null sind.
  • Wie in der gegebenen Formel angegeben ist, ist die Wahrscheinlichkeit, dass Daten von einem anderen Host als dem Host Hi abgerufen werden, durch den Anteil an der Gesamtgröße der zu der gegebenen Arbeitslast gehörenden Dateien gegeben, welcher nicht auf dem Host Hi gespeichert ist. Dieses Element kann auf der Grundlage der zuvor beschriebenen Datenlokalitätsproportionen-Eingabe berechnet werden. Des Weiteren werden die erwarteten Kosten des Abrufs von Daten von einem anderen Host als dem Host Hi angegeben, indem über alle Hosts in dem Cluster hinweg, mit Ausnahme des Hosts Hi, die Kosten des Abrufs von Daten von einem Host Hj durch eine Arbeitslast, die auf dem Host Hi ausgeführt wird, multipliziert mit der Wahrscheinlichkeit, dass Daten von dem Host Hj durch eine Arbeitslast abgerufen werden, die auf dem Host Hi ausgeführt wird, zusammengefasst werden. Ein vorgeschlagenes Verfahren zur Berechnung dieser Wahrscheinlichkeit ist in der folgenden Formel angegeben: P [ H j H i ] = D [ H j ] k c l u s t e r k 1 { D [ H k ] } Anteil an dem im Host H j  gespelcherten Datenteil im Verh a ¨ ltnis zu den auf allen Hosts mit Ausnahme des Hosts H i gespeicherten gesamten Datenanteilen
    Figure DE112019000421B4_0003
  • In dieser Formel zur Berechnung der Wahrscheinlichkeit wird die Wahrscheinlichkeit, dass Daten von dem Host Hj durch eine Arbeitslast abgerufen werden, die auf dem Host Hi ausgeführt wird, berechnet, indem der auf dem Host Hj gespeicherte Anteil an dem Datenteil durch die gesamten Datenanteile geteilt wird, die auf allen Hosts in dem Cluster mit Ausnahme des Hosts Hi gespeichert sind. Um eine geordnete Ausgabe-Liste von bevorzugten Hosts zu erzeugen, die für Arbeitslasten optimiert ist, welche bei der E/A von vorhandenen Daten intensiv sind, werden die Hosts auf der Grundlage einer aufsteigenden Reihenfolge ihrer berechneten EC[Hi]-Werte geordnet. Je niedriger der EC[Hi]-Wert eines Hosts Hi ist, desto höher ist nämlich die Präferenz, dass der Host Hi für die Ausführung der gegebenen Arbeitslast ausgewählt wird.
  • In einigen Ausführungsformen empfängt das Terminierungsmodul 510 des Arbeitslastmanagers 502 eine Ressourcenzuordnungsanforderung für die Durchführung der gegebenen (Eingabe-)Arbeitslast zusammen mit der geordneten Liste von bevorzugten, zur Ausführung der gegebenen Arbeitslast gemäß Datenzugriffsüberlegungen nach einer Rangfolge geordneten Hosts, welche von dem Datenanforderungsauswertungsmodul 506 berechnet wird.
  • Das Terminierungsmodul 510 versucht dann, Rechenressourcen von den bevorzugten Hosts gemäß der Ressourcenzuordnungsanforderung, die zu der gegebenen Arbeitslast und der geordneten Liste von bevorzugten Hosts gehört (unter der Voraussetzung, dass die Liste nicht leer ist), zuzuordnen, um die Zuordnungsanforderung zu erfüllen. Die Ausgabe des Terminierungsmoduls 510 ist eine Terminierung der gegebenen Arbeitslast an Cluster-Hosts, wobei die Terminierung mit Datenzugriffserkennung optimiert ist und die gegebene Arbeitslast unter Verwendung der zugeordneten Rechenressourcen innerhalb dieser Hosts des Clusters durchgeführt wird.
  • In verschiedenen Ausführungsformen wird ein Algorithmus gemäß dem Folgenden durchgeführt, um die Lokalitätsinformationen von einer Dateiebene zu der Ebene eines Satzes von Dateien zu aggregieren.
  • (1) Zunächst wird ein Satz von Speichergrößenzählern zurückgesetzt, wobei jeder Zähler einem Host in dem Cluster zugewiesen wird. Des Weiteren wird ein Gesamtspeichergrößenzähler für das Cluster zusätzlich zurückgesetzt. Diese Zähler geben die Datengröße des auf einem jeden Host des Clusters gespeicherten Anteils an Daten an. (2) Alle Dateien in dem Satz werden daraufhin gescannt, und für jede Datei: (a) werden die Lokalitätsinformationen der aktuellen Datei abgerufen (d.h. die Datengröße der auf jedem der Cluster-Hosts gespeicherten Datei). Diese Informationen erhält man üblicherweise aus dem Speichersystem 20; (b) die Lokalitätsinformationen der aktuellen Datei werden zu den Speichergrößenzählern der Hosts hinzugefügt; und (c) die Gesamtgröße der aktuellen Datei wird zu einem Gesamtspeichergrößenzähler hinzugefügt. (3) Der Anteil des Speichergrößenzählers eines jeden Hosts an dem Gesamtspeichergrößenzähler wird dann berechnet.
  • In Fällen, in denen ein zu einer gegebenen Arbeitslast gehörender Satz von Dateien groß ist, ist es im Hinblick auf die Leistungsfähigkeit gegebenenfalls nicht mehr vertretbar, die Lokalitätsinformationen einer jeden einzelnen Datei des Satzes von Dateien abzufragen. Für solche Fälle mit einem großen Satz von Dateien (d.h. einem Satz von Dateien, bei dem die Anzahl der Dateien in dem Satz einen vorher festgelegten Schwellenwert überschreitet) kommen die folgenden Optimierungen in Betracht. Eine Optimierung kann das Berechnen und Verwalten von Näherungswerten der Lokalitätsinformationen für den Satz von Dateien beinhalten. Zum Beispiel können die Näherungswerte auf dem Abfragen eines Teilsatzes der Dateien von dem Satz von Dateien beruhen, wobei es sich bei dem Teilsatz der Dateien um eine beliebige Kombination aus den folgenden Kriterien handeln kann: (a) den K größten Dateien des Satzes von Dateien; (b) den L Dateien, die mit dem höchsten E/A-Zugriff gekennzeichnet sind; und/oder (c) den M Dateien mit dem letzten E/A-Zugriff.
  • In diesem Beispiel, in dem K, L und M vorher festgelegte Werte sind, die kleiner als die Gesamtzahl der Dateien in dem Satz von Dateien sind. Die Werte von K, L und M sollten so gewählt werden, dass die üblichen Kosten und/oder die übliche Zeit für das Abfragen der Lokalitätsinformationen der resultierenden Anzahl von Dateien einen akzeptablen Schwellenwert nicht übersteigt. Da die Messwerte von Größe, E/A-Zugriffsmustern und Zugriffsaktualität von Dateien im Zeitverlauf dynamisch sind, können diese Messwerte als statistische Werte für ein aktuelles Zeitfenster berechnet werden.
  • In einigen Ausführungsformen kann eine Kombination der beschriebenen Kriterien berechnet werden, zum Beispiel, indem für jede Datei ein gewichteter Aggregationsmesswert auf der Grundlage der Messwerte der Datei für jedes der Kriterien berechnet wird. Die in Betracht gezogene Technik wählt daher einen Teilsatz von Dateien aus dem Satz von Dateien auf der Grundlage der gegebenen Kriterien aus, fragt die Lokalitätsinformationen für die Dateien in dem Teilsatz von Dateien ab, aggregiert diese Informationen und aktualisiert die Näherungswerte der Lokalitätsinformationen für den ganzen Satz von Dateien auf der Grundlage dieser Informationen. Die Näherungswerte können zusätzlich verwaltet und anstelle einer spezifischen Instanz einer Arbeitslast, die zur Ausführung übergeben wird, einem Typ (oder einer Vorlage) einer Arbeitslast zugeordnet werden.
  • Um den Aufwand des Abfragens der Lokalitätsinformationen weiter zu verringern, wird des Weiteren ein Verfahren zum Definieren von Triggern vorgeschlagen, um die Näherungswerte der Lokalitätsinformationen für den Satz von Dateien zu aktualisieren. Das Definieren von Triggern, um die Näherungswerte der Lokalitätsinformationen zu aktualisieren, kann auf einer beliebigen Kombination der folgenden Kriterien beruhen, so dass die Trigger umfassen können: (a) eine Registrierung eines Typs (oder einer Vorlage) einer Arbeitslast; (b) eine Anforderung, eine Instanz eines Arbeitslasttyps zur Ausführung in dem Cluster bereitzustellen; und/oder (c) das Erkennen, dass ein abgelaufener Zeitraum seit der vorherigen Aktualisierung der Näherungswerte einen angegebenen Schwellenwert überschreitet. Ein Beispiel-Trigger kann daher eine Anforderung aufweisen, eine Instanz eines Arbeitslasttyps bereitzustellen, wobei die Anforderung zu einem Zeitpunkt übergeben wird, dessen Differenz zum letzten Aktualisierungszeitpunkt nicht kleiner als der angegebene Schwellenwert ist.
  • 8 veranschaulicht einen Ablaufplan, der ein beispielhaftes Verfahren des Algorithmus zur Berechnung von Datenlokalitätsinformationen darstellt, die zu der gegebenen Arbeitslast in dem Datenverarbeitungscluster gehören, wobei die vorstehend erwähnten Konzepte veranschaulicht werden. Das Verfahren 800 kann gemäß der vorliegenden Erfindung in verschiedenen Ausführungsformen in beliebigen der Umgebungen durchgeführt werden, die unter anderem in den 1 bis 4 gezeigt sind. Natürlich können mehr oder weniger Operationen als diejenigen, die in 8 ausdrücklich beschrieben sind, in das Verfahren 800 aufgenommen werden, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 800 kann von einer beliebigen geeigneten Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 800 in verschiedenen Ausführungsformen ganz oder teilweise von einem Prozessor oder einer anderen Einheit durchgeführt werden, in der sich ein oder mehrere Prozessoren befinden. Der Prozessor, z.B. (eine) Verarbeitungsschaltung(en), (ein) Chip(s) und/oder (ein) Modul(e), die in Hardware und/oder Software ausgeführt sind und vorzugsweise über mindestens eine Hardware-Komponente verfügen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 800 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne darauf beschränkt zu sein, eine zentrale Verarbeitungseinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine im Feld programmierbare Gatter-Anordnung (FPGA) usw., Kombinationen daraus oder eine beliebige andere geeignete, in der Technik bekannte Datenverarbeitungseinheit.
  • Das Verfahren 800 beginnt im Block 802, indem festgestellt wird, ob ein Trigger (auf der Grundlage der zuvor angegebenen Kriterien) für die Aktualisierung von Datenlokalitäts-Näherungswerten aufgetreten ist (Block 804). Wenn kein Trigger erkannt wurde, fährt das Verfahren 800 damit fort, im Block 812 auf einen Trigger zu warten, und kehrt zum Block 804 zurück. Wenn am Block 804 ein Trigger erkannt wurde, wird ein Teilsatz von Dateien aus dem Satz von Dateien, der zu der Arbeitslast gehört, ausgewählt, um die Datenlokalitäts-Näherungswerte im Block 806 zu aktualisieren. Lokalitätsinformationen für diese Dateien innerhalb des Teilsatzes von Dateien werden abgefragt und diese Lokalitätsinformationen werden im Block 808 von der Dateiebene zu der Ebene des Teilsatzes von Dateien aggregiert. Schließlich werden die Datenlokalitäts-Näherungswerte innerhalb des Datenanforderungsauswertungsmoduls 506 im Block 810 mittels der aggregierten Lokalitätsinformationen für den Teilsatz von Dateien aktualisiert und das Verfahren 800 fährt damit fort, im Block 812 auf ein weiteres Triggerereignis zu warten. Erwähnenswert, und wie zuvor angegeben, ist, dass die Datenlokalitäts-Näherungswerte anstelle einer spezifischen Instanz einer Arbeitslast, die zur Ausführung übergeben wird, einem Typ (oder einer Vorlage) einer Arbeitslast zugeordnet werden können, wie im Block 810A angegeben ist.
  • 9 veranschaulicht einen zusätzlichen Ablaufplan, der ein beispielhaftes Verfahren zur Arbeitslastverwaltung mit Datenzugriffserkennung in dem Datenverarbeitungscluster veranschaulicht, durch das Aspekte der vorliegenden Erfindung umgesetzt werden können. Das Verfahren 900 kann gemäß der vorliegenden Erfindung in verschiedenen Ausführungsformen in beliebigen der Umgebungen durchgeführt werden, die unter anderem in den 1 bis 4 gezeigt sind. Natürlich können mehr oder weniger Operationen als diejenigen, die in 9 ausdrücklich beschrieben sind, in das Verfahren 900 aufgenommen werden, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 900 kann von einer beliebigen geeigneten Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 900 in verschiedenen Ausführungsformen ganz oder teilweise von einem Prozessor oder einer anderen Einheit durchgeführt werden, in der sich ein oder mehrere Prozessoren befinden. Der Prozessor, z.B. (eine) Verarbeitungsschaltung(en), (ein) Chip(s) und/oder (ein) Modul(e), die in Hardware und/oder Software ausgeführt sind und vorzugsweise über mindestens eine Hardware-Komponente verfügen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 900 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne darauf beschränkt zu sein, eine zentrale Verarbeitungseinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine im Feld programmierbare Gatter-Anordnung (FPGA) usw., Kombinationen daraus oder eine beliebige andere geeignete, in der Technik bekannte Datenverarbeitungseinheit.
  • Das Verfahren 900 beginnt im Block 902, indem es einen Arbeitslastmanager innerhalb des Datenverarbeitungsclusters so konfiguriert, dass er ein Datenanforderungsauswertungsmodul und ein Terminierungsmodul enthält, wie im Block 904. Als Reaktion auf das Empfangen einer Eingabe-Arbeitslast zur Terminierung durch den Arbeitslastmanager: (a) ruft das Datenanforderungsauswertungsmodul einen Satz von Eingaben aus einem Speichersystem ab, wobei jede der Eingaben mindestens eines oder mehr enthält von: (i) eine Angabe, ob die Eingabe-Arbeitslast bei der Eingabe/Ausgabe (E/A) von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist, (ii) Datenlokalitätsproportionen für einen Satz von Dateien, der zu der Eingabe-Arbeitslast gehört, und (iii) für jedes Paar von Hosts in dem Datenverarbeitungscluster angegebene Datenzugriffskosten, wie im Block 906. Das Datenanforderungsauswertungsmodul erzeugt daraufhin im Block 908 eine Liste von Cluster-Hosts, die zur Durchführung der Eingabe-Arbeitslast gemäß Datenzugriffsüberlegungen nach einer Rangfolge geordnet sind. Die nach einer Rangfolge geordnete Liste von Cluster-Hosts wird dem Terminierungsmodul im Block 910 bereitgestellt, das im Block 912 eine Terminierung der Eingabe-Arbeitslast an bestimmte Cluster-Hosts innerhalb der nach einer Rangfolge geordneten Liste von Cluster-Hosts erzeugt, die mit den Datenzugriffsüberlegungen optimiert ist. Das Verfahren 900 endet im Block 914.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (21)

  1. Verfahren (900) zur Arbeitslastverwaltung mit Datenzugriffserkennung in einem Datenverarbeitungscluster durch einen Prozessor (64, 70), das aufweist: Konfigurieren (904) eines Arbeitslastmanagers (502) innerhalb des Datenverarbeitungsclusters dergestalt, dass er ein Datenanforderungsauswertungsmodul (506) und ein Terminierungsmodul (510) enthält; und als Reaktion (906) auf das Empfangen einer Eingabe-Arbeitslast zur Terminierung durch den Arbeitslastmanager (502): Abrufen, durch das Datenanforderungsauswertungsmodul (506), eines Satzes von Eingaben (504) aus einem Speichersystem (20), wobei jede der Eingaben (504) enthält: eine Angabe, ob die Eingabe-Arbeitslast bei der Eingabe/Ausgabe (E/A) von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist, Datenlokalitätsproportionen für einen Satz von Dateien, der zu der Eingabe-Arbeitslast gehört, wobei die Datenlokalitätsproportionen einen Anteil an Gesamtdaten des Satzes von Dateien angibt, der jeweils auf einem jeden einer Vielzahl von Cluster-Hosts (22) des Datenverarbeitungsclusters gespeichert ist, und für jedes Paar der Vielzahl von Cluser-Hosts (22) in dem Datenverarbeitungscluster angegebene Datenzugriffskosten, wobei die Datenzugriffskosten für einen jeden der Vielzahl von Cluster-Hosts (22) Kosten für den Zugriff auf Daten angibt, die auf einem beliebigen anderen der Vielzahl von Cluster-Hosts (22) in dem Datenverarbeitungscluster gespeichert sind, wobei die Datenzugriffskosten auf der Grundlage von Netzwerklatenzzeiten zwischen der Vielzahl von Cluster-Hosts (22) und Speichereinheit-Zugriffslatenzzeiten innerhalb eines jeden der Vielzahl von Cluster-Hosts (22) berechnet werden; Erzeugen (908), durch das Datenanforderungsauswertungsmodul (506), einer Liste (508) der Vielzahl von Cluster-Hosts (22), die zur Durchführung der Eingabe-Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind; Bereitstellen (910) der nach der Rangfolge geordneten Liste (508) von Cluster-Hosts (22) für das Terminierungsmodul (510); und Erzeugen (912), durch das Terminierungsmodul (510), einer Terminierung (512) der Eingabe-Arbeitslast an bestimmte Hosts (22), die in der nach der Rangfolge geordneten Liste (508) von Cluster-Hosts (22) angegeben sind, innerhalb des Datenverarbeitungsclusters, wobei die erzeugte Terminierung (512) mit dem Satz von Eingaben (504) optimiert ist.
  2. Verfahren (900) nach Anspruch 1, das des Weiteren das Empfangen, durch das Datenanforderungsauswertungsmodul (506), von weiteren Eingaben (504) beinhaltet, die enthalten: eine Verfügbarkeit von Rechenressourcen in dem Datenverarbeitungscluster und/oder eine Verfügbarkeit von Speicherressourcen in dem Datenverarbeitungscluster.
  3. Verfahren (900) nach Anspruch 1, wobei das Erzeugen (908), durch das Datenanforderungsauswertungsmodul (506), der Liste (508) von Cluster-Hosts (22), die zur Durchführung der gegebenen Arbeitslast nach einer Rangfolge geordnet sind, des Weiteren beinhaltet: wenn die Eingabe-Arbeitslast bei der E/A von vorhandenen Daten intensiv ist, Erzeugen (610) der nach einer Rangfolge geordneten Liste (508) als eine geordnete Liste von bevorzugten Hosts (22) gemäß der Datenlokalitäts- und der Datenzugriffskosten-Eingabe; wenn die Eingabe-Arbeitslast bei der E/A von neuen Daten intensiv ist, Erzeugen (608) der geordneten Liste von bevorzugten Hosts (22) gemäß verfügbarem Speicher; und wenn die Eingabe-Arbeitslast nicht E/A-intensiv ist, Erzeugen (612) einer leeren Liste von bevorzugten Hosts (22).
  4. Verfahren (900) nach Anspruch 3, wobei das Erzeugen (608) der geordneten Liste von bevorzugten Hosts (22) gemäß verfügbarem Speicher darauf beruht, dass eine Rangfolge eines ersten der Vielzahl von Cluster-Hosts (22) so gesetzt wird, dass sie in der geordneten Liste im Vergleich zu anderen Cluster-Hosts (22) höher ist, nachdem festgestellt wurde, dass innerhalb des ersten der Clusters-Hosts (22) im Vergleich zu den anderen der Vielzahl von Cluster-Hosts (22) mehr verfügbarer Speicher vorhanden ist.
  5. Verfahren (900) nach Anspruch 1, wobei das Erzeugen (912), durch das Terminierungsmodul (510), der Terminierung (512) der Eingabe-Arbeitslast an die bestimmten Cluster-Hosts (22) beinhaltet: Empfangen einer Ressourcenzuordnungsanforderung für die Eingabe-Arbeitslast; und/oder Empfangen einer geordneten Liste von bevorzugten Hosts (22), die zur Ausführung der gegebenen Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind, von dem Datenanforderungsauswertungsmodul (506); und/oder Versuchen, Rechenressourcen von den bevorzugten Hosts (22) gemäß der Ressourcenzuordnungsanforderung und der geordneten Liste von bevorzugten Hosts (22) zuzuordnen, um die Zuordnungsanforderung zu erfüllen.
  6. Verfahren (900) nach Anspruch 1, wobei das Speichersystem (20) durchführt: Speichern von Daten auf lokalen Speichereinheiten (50), wobei jede lokale Speichereinheit (50) an einen der Mehrzahl der Cluster-Hosts (22) angeschlossen ist; und/oder Speichern von Daten auf einer gemeinsam genutzten Speichereinheit (50), die von einem jeden der Vielzahl von Cluster-Hosts (22) aus zugänglich ist, und/oder Speichern von Daten auf einer Kombination aus den lokalen und den gemeinsam genutzten Speichereinheiten (50).
  7. Verfahren (900) nach Anspruch 6, wobei Speicherpositionen in dem Cluster von Daten des Satzes von Dateien, der zu der Eingabe-Arbeitslast gehört, sowohl für lokalen Speicher als auch gemeinsam genutzten Speicher angegeben werden, indem: den gemeinsam genutzten Speichereinheiten (50) entsprechende Hostnamen zugewiesen werden; die lokalen Speichereinheiten (50) an einen jeden der Vielzahl von Cluster-Hosts (22) angeschlossen werden, wobei einem jeden der Vielzahl von Cluster-Hosts (22) jeweils ein Hostname zugewiesen wurde; und eine Speicherkennung (ID) innerhalb der lokalen oder der gemeinsam genutzten Speichereinheiten (50) verwendet wird, welche die Speicherpositionen angibt, wobei der Hostname und die Speicher-ID einen globalen Speicherort in dem Datenverarbeitungscluster für die lokalen und die gemeinsam genutzten Speichereinheiten (50) bereitstellt.
  8. System zur Arbeitslastverwaltung mit Datenzugriffserkennung in einem Datenverarbeitungscluster, wobei das System aufweist: einen Arbeitslastmanager (502) innerhalb des Datenverarbeitungsclusters, wobei der Arbeitslastmanager (502) ein Datenanforderungsauswertungsmodul (506) und ein Terminierungsmodul (510) enthält; und einen Prozessor (64, 70), der in einer Hauptspeichereinheit (66, 72) gespeicherte Anweisungen ausführt, wobei der Prozessor (64, 70) nach der Ausführung der Anweisungen: als Reaktion (906) auf das Empfangen einer Eingabe-Arbeitslast zur Terminierung durch den Arbeitslastmanager (502): durch das Datenanforderungsauswertungsmodul (506) einen Satz von Eingaben (504) aus einem Speichersystem (20) abruft, wobei jede der Eingaben (504) enthält: eine Angabe, ob die Eingabe-Arbeitslast bei der Eingabe/Ausgabe (E/A) von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist, Datenlokalitätsproportionen für einen Satz von Dateien, der zu der Eingabe-Arbeitslast gehört, wobei die Datenlokalitätsproportionen einen Anteil an Gesamtdaten des Satzes von Dateien angibt, der jeweils auf einem jeden einer Vielzahl von Cluster-Hosts (22) des Datenverarbeitungsclusters gespeichert ist, und für jedes Paar der Vielzahl von Cluster-Hosts (22) in dem Datenverarbeitungscluster angegebene Datenzugriffskosten, wobei die Datenzugriffskosten für einen jeden der Vielzahl von Cluster-Hosts (22) Kosten für den Zugriff auf Daten angibt, die auf einem beliebigen anderen der Vielzahl von Cluster-Hosts (22) in dem Datenverarbeitungscluster gespeichert sind, wobei die Datenzugriffskosten auf der Grundlage von Netzwerklatenzzeiten zwischen der Vielzahl von Cluster-Hosts (22) und Speichereinheit-Zugriffslatenzzeiten innerhalb eines jeden der Vielzahl von Cluster-Hosts (22) berechnet werden; durch das Datenanforderungsauswertungsmodul (506) eine Liste (508) der Vielzahl von Cluster-Hosts (22) erzeugt (908), die zur Durchführung der Eingabe-Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind; die nach der Rangfolge geordnete Liste (508) von Cluster-Hosts (22) dem Terminierungsmodul (510) bereitstellt (910); und durch das Terminierungsmodul (510) eine Terminierung (512) der Eingabe-Arbeitslast an bestimmte Hosts (22) innerhalb des Datenverarbeitungsclusters erzeugt (912), die in der nach der Rangfolge geordneten Liste (508) von Cluster-Hosts (22) angegeben sind, wobei die erzeugte Terminierung (512) mit dem Satz von Eingaben (504) optimiert ist.
  9. System nach Anspruch 8, wobei der Prozessor (64, 70) durch das Datenanforderungsauswertungsmodul (506) weitere Eingaben (504) empfängt, die enthalten: eine Verfügbarkeit von Rechenressourcen in dem Datenverarbeitungscluster und/oder eine Verfügbarkeit von Speicherressourcen in dem Datenverarbeitungscluster.
  10. System nach Anspruch 8, wobei das Erzeugen (908), durch das Datenanforderungsauswertungsmodul (506), der Liste (508) von Cluster-Hosts (22), die zur Durchführung der gegebenen Arbeitslast nach einer Rangfolge geordnet sind, des Weiteren beinhaltet: wenn die Eingabe-Arbeitslast bei der E/A von vorhandenen Daten intensiv ist, Erzeugen (610) der nach einer Rangfolge geordneten Liste (508) als eine geordnete Liste von bevorzugten Hosts (22) gemäß der Datenlokalitäts- und der Datenzugriffskosten-Eingabe; wenn die Eingabe-Arbeitslast bei der E/A von neuen Daten intensiv ist, Erzeugen (608) der geordneten Liste von bevorzugten Hosts (22) gemäß verfügbarem Speicher; und wenn die Eingabe-Arbeitslast nicht E/A-intensiv ist, Erzeugen (612) einer leeren Liste von bevorzugten Hosts (22).
  11. System nach Anspruch 10, wobei das Erzeugen (608) der geordneten Liste von bevorzugten Hosts (22) gemäß verfügbarem Speicher darauf beruht, dass eine Rangfolge eines ersten der Vielzahl von Cluster-Hosts (22) so gesetzt wird, dass sie in der geordneten Liste im Vergleich zu anderen Cluster-Hosts (22) höher ist, nachdem festgestellt wurde, dass innerhalb des ersten der Clusters-Hosts (22) im Vergleich zu den anderen der Vielzahl von Cluster-Hosts (22) mehr verfügbarer Speicher vorhanden ist.
  12. System nach Anspruch 8, wobei das Erzeugen (912), durch das Terminierungsmodul (510), der Terminierung (512) der Eingabe-Arbeitslast an die bestimmten Cluster-Hosts (22) beinhaltet: Empfangen einer Ressourcenzuordnungsanforderung für die Eingabe-Arbeitslast; und/oder Empfangen einer geordneten Liste von bevorzugten Hosts (22), die für eine Ausführung der gegebenen Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind, von dem Datenanforderungsauswertungsmodul (506); und/oder Versuchen, Rechenressourcen von den bevorzugten Hosts (22) gemäß der Ressourcenzuordnungsanforderung und der geordneten Liste von bevorzugten Hosts (22) zuzuordnen, um die Zuordnungsanforderung zu erfüllen.
  13. System nach Anspruch 8, wobei das Speichersystem (20) durchführt: Speichern von Daten auf lokalen Speichereinheiten (50), wobei jede lokale Speichereinheit (50) an einen der Mehrzahl der Cluster-Hosts (22) angeschlossen ist; und/oder Speichern von Daten auf einer gemeinsam genutzten Speichereinheit (50), die von einem jeden der Vielzahl von Cluster-Hosts (22) aus zugänglich ist, und/oder Speichern von Daten auf einer Kombination aus den lokalen und den gemeinsam genutzten Speichereinheiten (50).
  14. System nach Anspruch 13, wobei Speicherpositionen in dem Cluster von Daten des Satzes von Dateien, der zu der Eingabe-Arbeitslast gehört, sowohl für lokalen Speicher als auch gemeinsam genutzten Speicher angegeben werden, indem: den gemeinsam genutzten Speichereinheiten (50) entsprechende Hostnamen zugewiesen werden; die lokalen Speichereinheiten (50) an einen jeden der Vielzahl von Cluster-Hosts (22) angeschlossen werden, wobei einem jeden der Vielzahl von Cluster-Hosts (22) jeweils ein Hostname zugewiesen wurde; und eine Speicherkennung (ID) innerhalb der lokalen oder der gemeinsam genutzten Speichereinheiten (50) verwendet wird, welche die Speicherpositionen angibt, wobei der Hostname und die Speicher-ID einen globalen Speicherort in dem Datenverarbeitungscluster für die lokalen und die gemeinsam genutzten Speichereinheiten (50) bereitstellt.
  15. Computerprogrammprodukt zur Arbeitslastverwaltung mit Datenzugriffserkennung in einem Datenverarbeitungscluster durch einen Prozessor (64, 70), wobei das Computerprogrammprodukt auf einem nicht flüchtigen, durch einen Computer lesbaren Speichermedium realisiert ist, in dem Teile von durch einen Computer lesbaren Programmcode gespeichert sind, wobei die Teile des durch einen Computer lesbaren Programmcodes aufweisen: einen ausführbaren Teil, der einen Arbeitslastmanager (502) innerhalb des Datenverarbeitungsclusters so konfiguriert (904), dass er ein Datenanforderungsauswertungsmodul (506) und ein Terminierungsmodul (510) enthält; und einen ausführbaren Teil, der als Reaktion (906) auf das Empfangen einer Eingabe-Arbeitslast zur Terminierung durch den Arbeitslastmanager (502): einen Satz von Eingaben (504) durch das Datenanforderungsauswertungsmodul (506) aus einem Speichersystem (20) abruft, wobei jede der Eingaben (504) enthält: eine Angabe, ob die Eingabe-Arbeitslast bei der Eingabe/Ausgabe (E/A) von neuen Daten oder bei der E/A von vorhandenen Daten intensiv ist, Datenlokalitätsproportionen für einen Satz von Dateien, der zu der Eingabe-Arbeitslast gehört, wobei die Datenlokalitätsproportionen einen Anteil an Gesamtdaten des Satzes von Dateien angibt, der jeweils auf einem jeden einer Vielzahl von Cluster-Hosts (22) des Datenverarbeitungsclusters gespeichert ist, und für jedes Paar der Vielzahl von Cluster-Hosts (22) in dem Datenverarbeitungscluster angegebene Datenzugriffskosten, wobei die Datenzugriffskosten für einen jeden der Vielzahl von Cluster-Hosts (22) Kosten für den Zugriff auf Daten angibt, die auf einem beliebigen anderen der Vielzahl von Cluster-Hosts (22) in dem Datenverarbeitungscluster gespeichert sind, wobei die Datenzugriffskosten auf der Grundlage von Netzwerklatenzzeiten zwischen der Vielzahl von Cluster-Hosts (22) und Speichereinheit-Zugriffslatenzzeiten innerhalb eines jeden der Vielzahl von Cluster-Hosts (22) berechnet werden; eine Liste (508) der Vielzahl von Cluster-Hosts (22) durch das Datenanforderungsauswertungsmodul (506) erzeugt (908), die zur Durchführung der Eingabe-Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind; die nach der Rangfolge geordnete Liste (508) von Cluster-Hosts (22) dem Terminierungsmodul (510) bereitstellt (910); und eine Terminierung (512) der Eingabe-Arbeitslast an bestimmte Hosts (22), die in der nach der Rangfolge geordneten Liste (508) von Cluster-Hosts (22) angegeben sind, innerhalb des Datenverarbeitungsclusters durch das Terminierungsmodul (510) erzeugt (912), wobei die erzeugte Terminierung (512) mit dem Satz von Eingaben (504) optimiert ist.
  16. Computerprogrammprodukt nach Anspruch 15, das des Weiteren einen ausführbaren Teil enthält, der durch das Datenanforderungsauswertungsmodul (506) weitere Eingaben (504) empfängt, die enthalten: eine Verfügbarkeit von Rechenressourcen in dem Datenverarbeitungscluster und/oder eine Verfügbarkeit von Speicherressourcen in dem Datenverarbeitungscluster.
  17. Computerprogrammprodukt nach Anspruch 15, wobei das Erzeugen (908), durch das Datenanforderungsauswertungsmodul (506), der Liste (508) von Cluster-Hosts (22), die zur Durchführung der gegebenen Arbeitslast nach einer Rangfolge geordnet sind, des Weiteren beinhaltet: wenn die Eingabe-Arbeitslast bei der E/A von vorhandenen Daten intensiv ist, Erzeugen (610) der nach einer Rangfolge geordneten Liste (508) als eine geordnete Liste von bevorzugten Hosts (22) gemäß der Datenlokalitäts- und der Datenzugriffskosten-Eingabe; wenn die Eingabe-Arbeitslast bei der E/A von neuen Daten intensiv ist, Erzeugen (608) der geordneten Liste von bevorzugten Hosts (22) gemäß verfügbarem Speicher; und wenn die Eingabe-Arbeitslast nicht E/A-intensiv ist, Erzeugen (612) einer leeren Liste von bevorzugten Hosts (22).
  18. Computerprogrammprodukt nach Anspruch 17, wobei das Erzeugen (608) der geordneten Liste von bevorzugten Hosts (22) gemäß verfügbarem Speicher darauf beruht, dass eine Rangfolge eines ersten der Vielzahl von Cluster-Hosts (22) so gesetzt wird, dass sie in der geordneten Liste im Vergleich zu anderen Cluster-Hosts (22) höher ist, nachdem festgestellt wurde, dass innerhalb des ersten der Clusters-Hosts (22) im Vergleich zu den anderen der Vielzahl von Cluster-Hosts (22) mehr verfügbarer Speicher vorhanden ist.
  19. Computerprogrammprodukt nach Anspruch 15, wobei das Erzeugen (912), durch das Terminierungsmodul (510), der Terminierung (512) der Eingabe-Arbeitslast an die bestimmten Cluster-Hosts (22) beinhaltet: Empfangen einer Ressourcenzuordnungsanforderung für die Eingabe-Arbeitslast; und/oder Empfangen einer geordneten Liste von bevorzugten Hosts (22), die für eine Ausführung der gegebenen Arbeitslast gemäß dem Satz von Eingaben (504) nach einer Rangfolge geordnet sind, von dem Datenanforderungsauswertungsmodul (506); und/oder Versuchen, Rechenressourcen von den bevorzugten Hosts (22) gemäß der Ressourcenzuordnungsanforderung und der geordneten Liste von bevorzugten Hosts (22) zuzuordnen, um die Zuordnungsanforderung zu erfüllen.
  20. Computerprogrammprodukt nach Anspruch 15, wobei das Speichersystem (20) durchführt: Speichern von Daten auf lokalen Speichereinheiten (50), wobei jede lokale Speichereinheit (50) an einen der Mehrzahl der Cluster-Hosts (22) angeschlossen ist; und/oder Speichern von Daten auf einer gemeinsam genutzten Speichereinheit (50), die von einem jeden der Vielzahl von Cluster-Hosts (22) aus zugänglich ist, und/oder Speichern von Daten auf einer Kombination aus den lokalen und den gemeinsam genutzten Speichereinheiten (50).
  21. Computerprogrammprodukt nach Anspruch 20, wobei Speicherpositionen in dem Cluster von Daten des Satzes von Dateien, der zu der Eingabe-Arbeitslast gehört, sowohl für lokalen Speicher als auch gemeinsam genutzten Speicher angegeben werden, indem: den gemeinsam genutzten Speichereinheiten (50) entsprechende Hostnamen zugewiesen werden; die lokalen Speichereinheiten (50) an einen jeden der Vielzahl von Cluster-Hosts (22) angeschlossen werden, wobei einem jeden der Vielzahl von Cluster-Hosts (22) jeweils ein Hostname zugewiesen wurde; und eine Speicherkennung (ID) innerhalb der lokalen oder der gemeinsam genutzten Speichereinheiten (50) verwendet wird, welche die Speicherpositionen angibt, wobei der Hostname und die Speicher-ID einen globalen Speicherort in dem Datenverarbeitungscluster für die lokalen und die gemeinsam genutzten Speichereinheiten (50) bereitstellt.
DE112019000421.2T 2018-04-05 2019-03-20 Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster Active DE112019000421B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/945,886 2018-04-05
US15/945,886 US10768998B2 (en) 2018-04-05 2018-04-05 Workload management with data access awareness in a computing cluster
PCT/IB2019/052270 WO2019193443A1 (en) 2018-04-05 2019-03-20 Workload management with data access awareness in a computing cluster

Publications (2)

Publication Number Publication Date
DE112019000421T5 DE112019000421T5 (de) 2020-10-01
DE112019000421B4 true DE112019000421B4 (de) 2023-03-09

Family

ID=68096504

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000421.2T Active DE112019000421B4 (de) 2018-04-05 2019-03-20 Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster

Country Status (6)

Country Link
US (1) US10768998B2 (de)
JP (1) JP7217580B2 (de)
CN (1) CN112005219B (de)
DE (1) DE112019000421B4 (de)
GB (1) GB2584980B (de)
WO (1) WO2019193443A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11539847B2 (en) * 2018-11-12 2022-12-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for a chargeable party at a session management with required quality of service
US11366694B1 (en) 2020-12-06 2022-06-21 International Business Machines Corporation Estimating attributes of running workloads on platforms in a system of multiple platforms as a service
US11704156B2 (en) 2020-12-06 2023-07-18 International Business Machines Corporation Determining optimal placements of workloads on multiple platforms as a service in response to a triggering event
US11693697B2 (en) 2020-12-06 2023-07-04 International Business Machines Corporation Optimizing placements of workloads on multiple platforms as a service based on costs and service levels
US11960936B2 (en) 2021-01-15 2024-04-16 Google Llc Autonomous warehouse-scale computers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120185867A1 (en) 2011-01-17 2012-07-19 International Business Machines Corporation Optimizing The Deployment Of A Workload On A Distributed Processing System
US20120246158A1 (en) 2011-03-25 2012-09-27 Microsoft Corporation Co-range partition for query plan optimization and data-parallel programming model
US20130290957A1 (en) 2012-04-26 2013-10-31 International Business Machines Corporation Efficient execution of jobs in a shared pool of resources
WO2017105376A1 (en) 2015-12-14 2017-06-22 Vce Company, Llc Methods, systems, and computer readable mediums for workload clustering
US20170185452A1 (en) 2015-12-29 2017-06-29 EMC IP Holding Company LLC Apparatus and method for data processing

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769017B1 (en) 2000-03-13 2004-07-27 Hewlett-Packard Development Company, L.P. Apparatus for and method of memory-affinity process scheduling in CC-NUMA systems
US7089301B1 (en) 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US7490325B2 (en) 2004-03-13 2009-02-10 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
JP5245711B2 (ja) * 2008-10-17 2013-07-24 日本電気株式会社 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム
US8375392B2 (en) 2010-01-12 2013-02-12 Nec Laboratories America, Inc. Data aware scheduling on heterogeneous platforms
US8799418B2 (en) 2010-01-13 2014-08-05 Vmware, Inc. Cluster configuration
CN102137128A (zh) 2010-01-27 2011-07-27 腾讯科技(深圳)有限公司 一种集群服务的负载均衡方法和装置
JP2012133630A (ja) * 2010-12-22 2012-07-12 Nomura Research Institute Ltd ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法
US8392575B1 (en) 2011-03-31 2013-03-05 Amazon Technologies, Inc. Clustered device dispersion in a multi-tenant environment
JP5603843B2 (ja) * 2011-08-22 2014-10-08 日本電信電話株式会社 データベースの負荷分散装置
US9292350B1 (en) 2011-12-15 2016-03-22 Symantec Corporation Management and provisioning of virtual machines
US9626222B2 (en) * 2012-01-17 2017-04-18 Alcatel Lucent Method and apparatus for network and storage-aware virtual machine placement
US9582221B2 (en) 2012-08-24 2017-02-28 Vmware, Inc. Virtualization-aware data locality in distributed data processing
US9081826B2 (en) 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
US9465669B2 (en) 2013-08-13 2016-10-11 Vmware, Inc. NUMA scheduling using inter-vCPU memory access estimation
US20150161529A1 (en) 2013-12-09 2015-06-11 Eventbrite, Inc. Identifying Related Events for Event Ticket Network Systems
US9785581B2 (en) 2014-02-28 2017-10-10 Red Hat, Inc. Memory distribution across multiple non-uniform memory access nodes
AU2015247375B2 (en) 2014-04-17 2020-03-26 Ab Initio Technology Llc Integrated monitoring and control of processing environment
US20170060769A1 (en) 2014-05-01 2017-03-02 Coho Data, Inc. Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof
US9483378B2 (en) 2014-05-21 2016-11-01 Dynatrace Llc Method and system for resource monitoring of large-scale, orchestrated, multi process job execution environments
US9513967B2 (en) 2014-09-18 2016-12-06 International Business Machines Corporation Data-aware workload scheduling and execution in heterogeneous environments
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
CN104317658B (zh) 2014-10-17 2018-06-12 华中科技大学 一种基于MapReduce的负载自适应任务调度方法
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
CN104657221B (zh) 2015-03-12 2019-03-22 广东石油化工学院 一种云计算中基于任务分类的多队列错峰调度模型及方法
US10310748B2 (en) 2015-08-26 2019-06-04 Pivotal Software, Inc. Determining data locality in a distributed system using aggregation of locality summaries
US9959146B2 (en) 2015-10-20 2018-05-01 Intel Corporation Computing resources workload scheduling
CA2957584A1 (en) 2016-02-12 2017-08-12 Coho Data, Inc. Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems
US10162682B2 (en) 2016-02-16 2018-12-25 Red Hat, Inc. Automatically scaling up physical resources in a computing infrastructure
CN106027647B (zh) * 2016-05-20 2019-07-09 云南云电同方科技有限公司 Lxpfs集群分布式文件存储系统
CN106502792B (zh) 2016-10-20 2019-11-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120185867A1 (en) 2011-01-17 2012-07-19 International Business Machines Corporation Optimizing The Deployment Of A Workload On A Distributed Processing System
US20120246158A1 (en) 2011-03-25 2012-09-27 Microsoft Corporation Co-range partition for query plan optimization and data-parallel programming model
US20130290957A1 (en) 2012-04-26 2013-10-31 International Business Machines Corporation Efficient execution of jobs in a shared pool of resources
WO2017105376A1 (en) 2015-12-14 2017-06-22 Vce Company, Llc Methods, systems, and computer readable mediums for workload clustering
US20170185452A1 (en) 2015-12-29 2017-06-29 EMC IP Holding Company LLC Apparatus and method for data processing

Also Published As

Publication number Publication date
CN112005219A (zh) 2020-11-27
DE112019000421T5 (de) 2020-10-01
GB202016788D0 (en) 2020-12-09
JP7217580B2 (ja) 2023-02-03
US20190310893A1 (en) 2019-10-10
US10768998B2 (en) 2020-09-08
CN112005219B (zh) 2024-03-26
WO2019193443A1 (en) 2019-10-10
GB2584980A (en) 2020-12-23
JP2021517683A (ja) 2021-07-26
GB2584980B (en) 2021-05-19

Similar Documents

Publication Publication Date Title
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112018005268T5 (de) Priorisieren von anwendungen für eine diagonale skalierung in einer verteilten datenverarbeitungsumgebung
DE112019001433T5 (de) Datenanonymisierung
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112020002189T5 (de) Container-basierte anwendungen
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112021000338T5 (de) Auslagern der statistikerfassung
DE112021003668T5 (de) Zuteilen von aufgaben und daten unter verwendung von multi-access edge computing
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112018004138T5 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021004695T5 (de) Umgang mit zurückstellbaren netzwerkanforderungen
DE102021125019A1 (de) Orchestrierung von einheiten für das internet der dinge
DE112018005973T5 (de) Automatisches diagonales skalieren von arbeitslasten in einer verteilten datenverarbeitungsumgebung
DE112020005326T5 (de) Erzeugen eines skalierungsplans für externe systeme während eines cloud-tenant-onboardings/offboardings
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen

Legal Events

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